Files
SIG/PV/PVRepVentas.aspx.vb
JORGE LUIS CAUDILLO ESPARZA c35cf91883 Commit inicial Ventas Productivo
2019-08-14 16:40:54 -07:00

366 lines
17 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Partial Class PV_PVRepVentas
Inherits ClsPaginas
#Region "Propiedades"
'Local
Private Property TmpDT As DataTable
Get
Return CType(ViewState("TmpDT"), DataTable)
End Get
Set(value As DataTable)
ViewState("TmpDT") = value
End Set
End Property
#End Region
Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
CreaGrid()
End Sub
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
' If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario.Contiene(77, 21) Then Response.Redirect("/Inicio.aspx")
CargaCombos()
'ImgPersonalizar.Attributes.Add("onclick", "javascript:$('#DivPersonalizar').show(1000); PosicionaObjeto(this.id,'DivPersonalizar');")
End If
End Sub
Private Sub CargaCombos()
'CargaClientes
Dim ObjClientes As New ClsClientes
If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
DdlClientes.DataSource = ObjClientes.DtResultados
Else
DdlClientes.DataSource = Nothing
End If
ObjClientes.Dispose()
DdlClientes.DataBind()
'CargaSucursales
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyectoEjecucion.DataSource = GlobalDTSubProyectos(-1).FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
DdlSubProyectoEjecucion.DataBind()
'Vendedor
'CargaUsuarios
DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa)
DdlUsuario.DataBind()
'CargaEstatus
DdlEstatus.DataSource = GlobalDTEstatusFactura.FiltraParametros(" CveEstatusFactura NOT IN (1, 4, 5) ")
DdlEstatus.DataBind()
DdlEstatus.Items.Add(New ListItem("Canceladas", "4"))
'If UsuarioActual.Empresa.TipoFacturacion = "CFDi" Then
' DdlEstatus.SelectedIndex = 2
'Else
DdlEstatus.SelectedIndex = 1
'End If
End Sub
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
CargaDatos()
ConfiguraEmpresa()
UPDatos.Update()
End Sub
Private Sub CreaGrid()
Dim TotalAncho As Integer = 150
Dim TotalAnchoSucursal As Integer = 0
Dim SucursalTitulo As String = ""
TmpDT = New DataTable
TmpDT.Columns.Add("GPO", GetType(String))
Dim ObjVentas As New ClsPV()
Dim FechaI, FechaF, FechaIEjec, FechaFEjec As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.Trim(), "-1")
FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.Trim(), "-1")
If ObjVentas.GetRepPVVentas(FechaI, FechaF, FechaIEjec, FechaFEjec, DdlClientes.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlSubProyectoEjecucion.SelectedValue.ToEntero, DdlVendedor.SelectedValue,
DdlUsuario.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero) Then
Dim gv As New GridView
For Each Col As DataColumn In ObjVentas.DtResultados.Columns
If Col.ColumnName.Split(CChar("_")).Length >= 3 AndAlso Col.ColumnName.Substring(0, 2).ToUpper = "T_" Then
Dim Sucursal As String = Col.ColumnName.Split(CChar("_"))(1).ToUpper()
Dim Categoria As String = Col.ColumnName.Split(CChar("_"))(2).ToUpper()
' Dim CveSucursal As Integer = Col.ColumnName.Split(CChar("_"))(3).ToEntero
Dim bfield As New TemplateField
' Dim iTemplate As System.Web.UI.ITemplate
bfield.HeaderText = Categoria
'bfield.FooterText = Row("CveEstatus").ToString
bfield.ItemStyle.HorizontalAlign = HorizontalAlign.Right
If Sucursal = "TOTAL" Or Categoria = "TOTAL" Then
bfield.ItemStyle.Width = 97
TotalAnchoSucursal = TotalAnchoSucursal + 100
TotalAncho = TotalAncho + 100
Else
bfield.ItemStyle.Width = 87
TotalAnchoSucursal = TotalAnchoSucursal + 90
TotalAncho = TotalAncho + 90
End If
bfield.ItemTemplate = New GridViewTemplate(ListItemType.Item, Col.ColumnName)
' bfield.ItemTemplate
gv.Columns.Add(bfield)
TmpDT.Columns.Add(Col.ColumnName, GetType(Integer))
If SucursalTitulo <> Sucursal And Categoria.ToUpper = "TOTAL" Then
SucursalTitulo = Sucursal
Dim Celda As New HtmlTableCell()
'Celda.InnerHtml = String.Format("<font color='White'>{0}</font>", SucursalTitulo)
Celda.InnerText = SucursalTitulo
'Celda.BorderColor = "White"
'Celda.BgColor = "Gray"
Celda.Attributes.Add("class", "Titulos")
Celda.Attributes.Add("style", "border-width: 1px;border-right-style: solid;")
Celda.Width = TotalAnchoSucursal.ToString
tblSucursales.Rows(0).Cells.Add(Celda)
TotalAnchoSucursal = 0
End If
End If
Next
For Each Columna In gv.Columns
GvDatos.Columns.Add(CType(Columna, DataControlField))
Next
GvDatos.Width = TotalAncho
Else
GvDatos.DataSource = Nothing
End If
ObjVentas.Dispose()
UPDatos.Update()
End Sub
Private Sub CargaDatos()
Dim ObjVentas As New ClsPV()
Dim FechaI, FechaF, FechaIEjec, FechaFEjec As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.Trim(), "-1")
FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.Trim(), "-1")
If ObjVentas.GetRepPVVentas(FechaI, FechaF, FechaIEjec, FechaFEjec, DdlClientes.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlSubProyectoEjecucion.SelectedValue.ToEntero, DdlVendedor.SelectedValue,
DdlUsuario.SelectedValue.ToEntero, DdlEstatus.SelectedValue.ToEntero, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero) Then
GvDatos.DataSource = ObjVentas.DtResultados
tblSucursales.Visible = True
Else
GvDatos.DataSource = Nothing
End If
ObjVentas.Dispose()
GvDatos.DataBind()
End Sub
Private Sub ConfiguraEmpresa()
'If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(6).Visible = False
'If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(7).Visible = False
End Sub
Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click
If ChkRetIVA.Checked Then
GvDatos.Columns(6).Visible = True
Else
GvDatos.Columns(6).Visible = False
End If
If ChkRetISR.Checked Then
GvDatos.Columns(7).Visible = True
Else
GvDatos.Columns(7).Visible = False
End If
If ChkMinSub.Checked Then
GvDatos.Columns(9).Visible = True
Else
GvDatos.Columns(9).Visible = False
End If
If ChkAVGSub.Checked Then
GvDatos.Columns(10).Visible = True
Else
GvDatos.Columns(10).Visible = False
End If
If ChkMaxSub.Checked Then
GvDatos.Columns(11).Visible = True
Else
GvDatos.Columns(11).Visible = False
End If
If ChkMinTot.Checked Then
GvDatos.Columns(12).Visible = True
Else
GvDatos.Columns(12).Visible = False
End If
If ChkAvgTot.Checked Then
GvDatos.Columns(13).Visible = True
Else
GvDatos.Columns(13).Visible = False
End If
If ChkMaxTot.Checked Then
GvDatos.Columns(14).Visible = True
Else
GvDatos.Columns(14).Visible = False
End If
UPDatos.Update()
End Sub
Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("ReporteVentas" & Now.ToShortDateString)
End Sub
'Region "TEMPLATE"
Public Class GridViewTemplate
Implements ITemplate
'A variable to hold the type of ListItemType.
Private _templateType As ListItemType
'A variable to hold the column name.
Private _columnName As String
'Constructor where we define the template type and column name.
Public Sub New(type As ListItemType, colname As String)
'Stores the template type.
_templateType = type
'Stores the column name.
_columnName = colname
End Sub
Private Sub ITemplate_InstantiateIn(container As System.Web.UI.Control) Implements ITemplate.InstantiateIn
Select Case _templateType
Case ListItemType.Header
'Creates a new label control and add it to the container.
Dim lbl As New Label()
'Allocates the new label object.
lbl.Text = _columnName
'Assigns the name of the column in the lable.
container.Controls.Add(lbl)
'Adds the newly created label control to the container.
Exit Select
Case ListItemType.Item
'Creates a new text box control and add it to the container.
Dim ltl1 As New Literal
ltl1.ID = String.Format("ltl{0}", _columnName)
AddHandler ltl1.DataBinding, AddressOf ltl_DataBinding
'AddHandler hdn1.DataBinding, AddressOf hdn_DataBinding
'Creates a column with size 4.
container.Controls.Add(ltl1)
'Adds the newly created textbox to the container.
Exit Select
Case ListItemType.EditItem
'As, I am not using any EditItem, I didnot added any code here.
Exit Select
Case ListItemType.Footer
Dim chkColumn As New CheckBox()
chkColumn.ID = Convert.ToString("Chk") & _columnName
container.Controls.Add(chkColumn)
Exit Select
End Select
End Sub
Private Sub hdn_DataBinding(sender As Object, e As EventArgs)
Dim hidden As HiddenField = DirectCast(sender, HiddenField)
Dim row As GridViewRow = DirectCast(hidden.NamingContainer, GridViewRow)
Dim value As String = DataBinder.Eval(row.DataItem, _columnName).ToString()
hidden.Value = If(value Is Nothing OrElse value = String.Empty, "-1", value)
End Sub
Private Sub ltl_DataBinding(sender As Object, e As EventArgs)
Dim ltl As Literal = DirectCast(sender, Literal)
Dim row As GridViewRow = DirectCast(ltl.NamingContainer, GridViewRow)
Dim celda As DataControlFieldCell = DirectCast(ltl.Parent, DataControlFieldCell)
Dim value As String = DataBinder.Eval(row.DataItem, _columnName).ToString()
ltl.Text = value.FormatoNumero
End Sub
''' <summary>
''' This is the event, which will be raised when the binding happens.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
Private Sub tb1_DataBinding(sender As Object, e As EventArgs)
Dim txtdata As TextBox = DirectCast(sender, TextBox)
Dim container As GridViewRow = DirectCast(txtdata.NamingContainer, GridViewRow)
Dim dataValue As Object = DataBinder.Eval(container.DataItem, _columnName)
If dataValue Is DBNull.Value Then
txtdata.Text = dataValue.ToString()
End If
End Sub
End Class
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim Css As String = "Texto"
If e.Row.RowIndex = 0 Then
e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Center
' e.Row.Cells(0).Width = Unit.Pixel(150)
e.Row.CssClass = "Totales"
Css = "Totales"
End If
Dim FechaI, FechaF As String
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
Dim Liga As String = String.Format("/Ventas/RepVentaDetalle.aspx?GPO={0}&Anio={1}&Mes={2}&AnioMes={3}&Fecha={4}&CveCliente={5}&CveSucursal={6}&Vendedor={7}&CveUsuario={8}&CveEstatusFactura={9}&FechaI={10}&FechaF={11}&IVA={12}&CveCorte={13}",
DdlGrupo.SelectedValue, e.Row.DBCampo("Anio"), e.Row.DBCampo("Mes"), e.Row.DBCampo("AnioMes"), e.Row.DBCampo("Fecha"), e.Row.DBCampo("CveCliente"), e.Row.DBCampo("CveSubProyecto"),
e.Row.DBCampo("Vendedor"), e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), FechaI, FechaF, e.Row.DBCampo("GPO_IVA"), e.Row.DBCampo("CveCorte"))
e.Row.FCLiteral("LtlGrupo").Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral("LtlGrupo").Text & "</a>"
'e.Row.FCLiteral("LtlCantidad").Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral("LtlCantidad").Text & "</a>"
For Each Col As DataColumn In DirectCast(e.Row.DataItem, System.Data.DataRowView).Row.Table.Columns
If Col.ColumnName.Split(CChar("_")).Count = 4 Then
Dim CveSubProyecto As Integer = Col.ColumnName.Split(CChar("_"))(3).ToEntero
Liga = String.Format("/Ventas/RepVentaDetalle.aspx?GPO={0}&Anio={1}&Mes={2}&AnioMes={3}&Fecha={4}&CveCliente={5}&CveSucursal={6}&Vendedor={7}&CveUsuario={8}&CveEstatusFactura={9}&FechaI={10}&FechaF={11}&IVA={12}&CveCorte={13}",
DdlGrupo.SelectedValue, e.Row.DBCampo("Anio"), e.Row.DBCampo("Mes"), e.Row.DBCampo("AnioMes"), e.Row.DBCampo("Fecha"), e.Row.DBCampo("CveCliente"), CveSubProyecto,
e.Row.DBCampo("Vendedor"), e.Row.DBCampo("CveUsuario"), e.Row.DBCampo("CveEstatusFactura"), FechaI, FechaF, e.Row.DBCampo("GPO_IVA"), e.Row.DBCampo("CveCorte"))
e.Row.FCLiteral(String.Format("ltl{0}", Col.ColumnName)).Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral(String.Format("ltl{0}", Col.ColumnName)).Text & "</a>"
End If
Next
'If e.Row.DBCampo("SubTotal").ToDouble = 0 Then e.Row.FCLiteral("LtlSubTotal").Text = ""
'If e.Row.DBCampo("Descuento").ToDouble = 0 Then e.Row.FCLiteral("LtlDescuento").Text = ""
'If e.Row.DBCampo("Amortizacion").ToDouble = 0 Then e.Row.FCLiteral("LtlAmortizacion").Text = ""
'If e.Row.DBCampo("IVA").ToDouble = 0 Then e.Row.FCLiteral("LtlIVA").Text = ""
'If e.Row.DBCampo("RetIVA").ToDouble = 0 Then e.Row.FCLiteral("LtlRetIVA").Text = ""
'If e.Row.DBCampo("RetISR").ToDouble = 0 Then e.Row.FCLiteral("LtlRetISR").Text = ""
'If e.Row.DBCampo("Total").ToDouble = 0 Then e.Row.FCLiteral("LtlTotal").Text = ""
'If e.Row.DBCampo("MAX_SubTotal").ToDouble = 0 Then e.Row.FCLiteral("LtlMaxSubTotal").Text = ""
'If e.Row.DBCampo("AVG_SubTotal").ToDouble = 0 Then e.Row.FCLiteral("LtlAVGSubTotal").Text = ""
'If e.Row.DBCampo("MIN_SubTotal").ToDouble = 0 Then e.Row.FCLiteral("LtlMinSubTotal").Text = ""
'If e.Row.DBCampo("MAX_Total").ToDouble = 0 Then e.Row.FCLiteral("LtlMaxTotal").Text = ""
'If e.Row.DBCampo("AVG_Total").ToDouble = 0 Then e.Row.FCLiteral("LtlAVGTotal").Text = ""
'If e.Row.DBCampo("MIN_Total").ToDouble = 0 Then e.Row.FCLiteral("LtlMinTotal").Text = ""
End If
End Sub
End Class