Option Explicit On Option Strict On Imports System.Data Imports System.Web.Compilation Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.Xml.Serialization Imports System.IO Imports System.Xml Partial Class Ventas_RepVentas Inherits ClsPaginas #Region "Propiedades" Private Property Opcion As String Get Return ViewState("Opcion").ToString End Get Set(value As String) ViewState("Opcion") = value End Set End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString End Get Set(value As String) ViewState("Agrupador") = value End Set End Property Private Property CveProyecto As Integer Get Return ViewState("CveProyecto").ToString.ToEntero End Get Set(value As Integer) ViewState("CveProyecto") = value End Set End Property Private Property TipoCambio As Integer Get Return ViewState("TipoCambio").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoCambio") = value End Set End Property Private Property TCEspecifico As Decimal Get Return ViewState("TCEspecifico").ToString.ToDecimal End Get Set(value As Decimal) ViewState("TCEspecifico") = value End Set End Property Private Property DtVentas As DataTable Get Return DirectCast(ViewState("DtVentas"), DataTable) End Get Set(value As DataTable) ViewState("DtVentas") = value End Set End Property Private Property DtColor As DataTable Get Return DirectCast(ViewState("DtColor"), DataTable) End Get Set(value As DataTable) ViewState("DtColor") = value End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then TipoCambio = 1 TCEspecifico = -1 If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario.Contiene(77, 21) Then Response.Redirect("/Inicio.aspx") CargaCombos() 'MODALIDADES If Request("Op") IsNot Nothing AndAlso Request("Op").ToString <> "" Then Opcion = Request("Op").ToString Else Opcion = "-1" End If If UsuarioActual.CveEmpresa = 72 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1614, 1517) Then liRepHP.Visible = True End If 'Modalidad Cotizacion If Opcion = "Cot" Then DdlTipoComprobante.SelectedValuesIfExistM(Opcion) DdlGrupo.SelectedValueExist("7") DdlTipoComprobante_SelectedIndexChanged(DdlTipoComprobante, EventArgs.Empty) 'DdlEstatus.SelectedValue = "-1" End If CargaGrupo() CargaTipoCentroCosto() CreaDataTableColor() If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValuesIfExistM(UsuarioActual.CveVendedor.ToString()) DdlVendedor.Attributes.Add("disabled", "disabled") DdlVendedor.Enabled = False End If End If End Sub #Region " CARGA COMBOS " Private Sub CargaGrupo() DdlGrupo.Items.Insert(0, New ListItem("Año", "1")) DdlGrupo.Items.Insert(1, New ListItem("Mes", "2")) DdlGrupo.Items.Insert(2, New ListItem("Año/Mes", "3")) DdlGrupo.Items.Insert(3, New ListItem("Fecha", "4")) DdlGrupo.Items.Insert(4, New ListItem("Cliente", "5")) DdlGrupo.Items.Insert(5, New ListItem("Corte", "16")) DdlGrupo.Items.Insert(6, New ListItem("Vendedor", "7")) DdlGrupo.Items.Insert(7, New ListItem("Usuario", "8")) DdlGrupo.Items.Insert(8, New ListItem("Estatus", "9")) DdlGrupo.Items.Insert(9, New ListItem("% IVA", "10")) DdlGrupo.Items.Insert(10, New ListItem("Año Ejec.", "11")) DdlGrupo.Items.Insert(11, New ListItem("Mes Ejec.", "12")) DdlGrupo.Items.Insert(12, New ListItem("Año/Mes Ejec.", "13")) DdlGrupo.Items.Insert(13, New ListItem("Fecha Ejec.", "14")) DdlGrupo.Items.Insert(13, New ListItem("Tipo Cliente", "20")) DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("3") End Sub Private Sub CargaTipoCentroCosto() If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then DdlSubProyecto.Items.Clear() DivProyecto.Visible = False LblProyecto.Visible = False LblSubProyecto.InnerText = "Sucursal:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() DdlSubProyectoEjecucion.Items.Clear() LblSubProyectoEjecucion.InnerText = "Sucursal Ejecución:" DdlSubProyectoEjecucion.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyectoEjecucion.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyectoEjecucion.DataBind() DdlGrupo.Items.Insert(5, New ListItem("Sucursal", "6")) DdlGrupo.Items.Insert(15, New ListItem("Sucursal Ejec.", "15")) DdlGrupo.Items.Insert(16, New ListItem("Año/Mes Sucursal", "17")) DdlGrupo.Items.Insert(17, New ListItem("% IVA Sucursal", "18")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then DdlSubProyecto.Items.Clear() DivProyecto.Visible = False LblProyecto.Visible = False LblSubProyecto.InnerText = "Proyecto:" DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyecto.DataBind() DdlSubProyectoEjecucion.Items.Clear() LblSubProyectoEjecucion.InnerText = "Proyecto Ejecución:" DdlSubProyectoEjecucion.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyectoEjecucion.Items.Insert(0, New ListItem("Todos", "-1")) DdlSubProyectoEjecucion.DataBind() DdlGrupo.Items.Insert(5, New ListItem("Proyecto", "6")) DdlGrupo.Items.Insert(15, New ListItem("Proyecto Ejec.", "15")) DdlGrupo.Items.Insert(16, New ListItem("Año/Mes Proyecto", "17")) DdlGrupo.Items.Insert(17, New ListItem("% IVA Proyecto", "18")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then DdlGrupo.Items.Insert(14, New ListItem("SubProyecto Ejec.", "15")) DdlGrupo.Items.Insert(15, New ListItem("Año/Mes SubProyecto", "17")) DdlGrupo.Items.Insert(16, New ListItem("% IVA SubProyecto", "18")) DdlGrupo.Items.Insert(17, New ListItem("Centro de Costo", "19")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then LblProyecto.InnerText = "Sucursal:" LblSubProyecto.InnerText = "Proyecto:" LblSubProyectoEjecucion.InnerText = "Proyecto Ejecución:" DdlGrupo.Items.Insert(14, New ListItem("SubProyecto Ejec.", "15")) DdlGrupo.Items.Insert(15, New ListItem("Año/Mes SubProyecto", "17")) DdlGrupo.Items.Insert(16, New ListItem("% IVA SubProyecto", "18")) DdlGrupo.Items.Insert(17, New ListItem("Centro de Costo", "19")) DdlGrupo.DataBind() ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then LblProyecto.InnerText = "Proyecto:" LblSubProyecto.InnerText = "Sucursal:" LblSubProyectoEjecucion.InnerText = "Sucursal Ejecución:" DdlGrupo.Items.Insert(14, New ListItem("SubProyecto Ejec.", "15")) DdlGrupo.Items.Insert(15, New ListItem("Año/Mes SubProyecto", "17")) DdlGrupo.Items.Insert(16, New ListItem("% IVA SubProyecto", "18")) DdlGrupo.Items.Insert(17, New ListItem("Centro de Costo", "19")) DdlGrupo.DataBind() End If End Sub Private Sub ConfiguraEmpresa() ' If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(8).Visible = False If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(9).Visible = False End Sub Private Sub CargaCombos() 'CargaClientes Dim EsWS = If(UsuarioActual.Empresa.Funcionalidad(105) = "1" Or UsuarioActual.Empresa.Funcionalidad(141) = "1", True, False) If EsWS Then DdlClientes.setEsWebService(True) Else DdlClientes.setEsWebService(False) DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1) DdlClientes.DataBind() DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If 'DdlClientes.setEsWebService(False) '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() 'DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) 'Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1")) '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 = 1 Else DdlEstatus.SelectedIndex = 0 End If 'CargaProyectos DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1")) 'Carga Clasificacion Cliente DdlClienteClasificacion.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) DdlClienteClasificacion.DataBind() DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Private Sub CargaSubProyecto() DdlSubProyecto.Items.Clear() DdlSubProyecto.DataSource = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa) DdlSubProyecto.DataBind() 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) End Sub #End Region #Region " CARGA DATOS " Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() ConfiguraEmpresa() Personaliza() UPDatos.Update() 'XmlConf(UsuarioActual.CveUsuario, 9) End Sub Private Sub CargaDatos() Dim ObjVentas As New ClsVentas() Dim TipoComprobante As String = If(DdlTipoComprobante.GetSelectedValuesM = "", "-1", DdlTipoComprobante.GetSelectedValuesM) Dim Sucursales As String = If(DdlSubProyecto.GetSelectedValuesM = "", "-1", DdlSubProyecto.GetSelectedValuesM) Dim Estatus As String = If(DdlEstatus.GetSelectedValuesM = "", "-1", DdlEstatus.GetSelectedValuesM) Dim Vendedores As String = If(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM) Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then TCEspecifico = TxtEspecifico.Text.ToDecimal Else TCEspecifico = -1 End If Dim FechaI, FechaF, FechaIEjec, FechaFEjec As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim.ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim.ToDate, MaxFecha) FechaIEjec = If(IsDate(TxtFechaIEjec.Text.Trim()), TxtFechaIEjec.Text.Trim.ToDate, MinFecha) FechaFEjec = If(IsDate(TxtFechaFEjec.Text.Trim()), TxtFechaFEjec.Text.Trim.ToDate, MaxFecha) If ObjVentas.GetRepVentas(FechaI, FechaF, FechaIEjec, FechaFEjec, CveCliente, DdlSubProyectoEjecucion.SelectedValue.ToEntero, Vendedores, DdlUsuario.SelectedValue.ToEntero, Estatus, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, TipoComprobante, DdlProyecto.SelectedValue.ToEntero, Sucursales, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, CveCondicionesPago:=DdlCondicionesPago.SelectedValue.ToEntero, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=ChkModalidadContable.Checked) Then GvDatos.DataSource = ObjVentas.DtResultados DtVentas = ObjVentas.DtResultados Else GvDatos.DataSource = Nothing End If Agrupador = DdlGrupo.SelectedItem.Text CveProyecto = DdlProyecto.SelectedValue.ToEntero ObjVentas.Dispose() GvDatos.DataBind() End Sub #End Region #Region "SELECTED INDEX CHANGE" Protected Sub DdlClienteClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) CargaClientes() End Sub Private Sub CargaClientes() DdlClientes.ddl.Items.Clear() DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveClienteClasificacion = {DdlClienteClasificacion.SelectedValue.ToEntero} OR {DdlClienteClasificacion.SelectedValue.ToEntero} = -1") DdlClientes.DataBind() DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyecto() End Sub Protected Sub DdlTipoComprobante_SelectedIndexChanged(sender As Object, e As EventArgs) DdlEstatus.Items.Clear() If DdlTipoComprobante.GetSelectedValuesM <> "" Then DdlEstatus.DataSource = GlobalDTEstatusFactura.FiltraParametros(String.Format("TipoDocto IN ({0}) OR ('Cot' IN ({0}) AND CveEstatusFactura = 2)", DdlTipoComprobante.GetSelectedValuesM(True).Replace("Ant", "Ing"))) Else DdlEstatus.DataSource = GlobalDTEstatusFactura End If 'DdlEstatus.Items.Add(New ListItem("Todos", "-1")) DdlEstatus.DataBind() End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged TipoCambio = RblTipoCambio.SelectedValue.ToEntero If TipoCambio = 3 Then LiEspecifico.Visible = True TCEspecifico = GlobalTipoCambio(Now).ToDecimal TxtEspecifico.Text = TCEspecifico.ToString Else LiEspecifico.Visible = False End If UpBodyTipoCambio.Update() End Sub Private Sub BtnTipoCambio_Click(sender As Object, e As EventArgs) Handles BtnTipoCambio.Click CargaDatos() RegistraScript(String.Format("$('#{0}').modal('hide');", "DivTipoCambio")) UPDatos.Update() End Sub #End Region #Region " GV DATOS - ROW DATABOUND " Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim Css As String = "Texto" ' CABECERA TOTAL If e.Row.DBCampo("Orden") = "" Then e.Row.CssClass = "Totales" e.Row.Cells(2).BackColor = Drawing.Color.Transparent e.Row.Cells(6).BackColor = Drawing.Color.Transparent End If If e.Row.DBCampo("GPO") = "Total Dólares" Then e.Row.CssClass = "Totales" End If ' PARA LIGA 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") Dim CveMoneda As Integer = -1 If TipoCambio = 1 Then CveMoneda = e.Row.DBCampo("CveMoneda").ToString.ToEntero End If Dim CveSubProyecto = "-1", CveProyecto = "-1" If DdlGrupo.SelectedValue.ToEntero = 19 Then CveSubProyecto = e.Row.DBCampo("CveCentroCosto") CveProyecto = e.Row.DBCampo("CveCentroCostoProyecto") Else CveSubProyecto = e.Row.DBCampo("CveSubProyecto") CveProyecto = e.Row.DBCampo("CveProyecto") End If Dim FechaInicial As String = FechaI Dim FechaFinal As String = FechaF If Not e.Row.DBCampo("GPO").Contains("Total") Then Select Case DdlGrupo.SelectedValue.ToEntero() Case 2 ' MES Dim FechaIRef As DateTime = FechaI.ToDateTime() Dim FechaFRef As DateTime = FechaF.ToDateTime() If e.Row.DBCampo("Mes").ToEntero() > 0 Then Dim Anio As Integer = FechaFRef.Year Dim Mes As Integer = e.Row.DBCampo("Mes").ToEntero() Dim lastDayOfMonth = DateTime.DaysInMonth(Anio, Mes) Dim Dia As Integer = FechaFRef.Day If e.Row.DBCampo("Mes").ToEntero() <> FechaFRef.Month Then Dia = lastDayOfMonth End If If e.Row.DBCampo("Mes").ToEntero() <> FechaIRef.Month Then FechaInicial = New DateTime(Anio, Mes, 1).ToString("dd/MM/yyyy") End If FechaFinal = New DateTime(Anio, Mes, Dia).ToString("dd/MM/yyyy") End If Case 3 ' AÑO/MES Dim FechaIRef As DateTime = FechaI.ToDateTime() Dim FechaFRef As DateTime = FechaF.ToDateTime() Dim separator As Char = "/".ToCharArray().FirstOrDefault() Dim AnioMes = e.Row.DBCampo("AnioMes").Split(separator) Dim Anio As Integer = AnioMes(0).ToEntero() Dim Mes As Integer = AnioMes(1).ToEntero() If Anio > 0 AndAlso Mes > 0 Then Dim lastDayOfMonth = DateTime.DaysInMonth(Anio, Mes) Dim Dia As Integer = FechaFRef.Day If e.Row.DBCampo("Mes").ToEntero() <> FechaFRef.Month Then Dia = lastDayOfMonth End If If e.Row.DBCampo("Mes").ToEntero() <> FechaIRef.Month Then FechaInicial = New DateTime(Anio, Mes, 1).ToString("dd/MM/yyyy") End If FechaFinal = New DateTime(Anio, Mes, Dia).ToString("dd/MM/yyyy") End If Case 4 ' FECHA FechaInicial = e.Row.DBCampo("Fecha").ToDateTime().ToString("dd/MM/yyyy") FechaFinal = e.Row.DBCampo("Fecha").ToDateTime().ToString("dd/MM/yyyy") End Select End If 'LIGA A DETALLE Dim Liga As String = $"/Ventas/RepVentaDetalle.aspx?GPO={DdlGrupo.SelectedValue}&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&AnioEjec={e.Row.DBCampo("AnioEjec")}&MesEjec={e.Row.DBCampo("MesEjec")}&AnioMesEjec={e.Row.DBCampo("AnioMesEjec")}&FechaEjec={e.Row.DBCampo("FechaEjec")}&CveCliente={e.Row.DBCampo("CveCliente")}&CveVendedor={ e.Row.DBCampo("CveVendedor")}&CveUsuario={e.Row.DBCampo("CveUsuario")}&CveEstatusFactura={e.Row.DBCampo("CveEstatusFactura")}&FechaI={FechaInicial}&FechaF={FechaFinal}&FechaIEjec={FechaIEjec}&FechaFEjec={FechaFEjec}&IVA={e.Row.DBCampo("GPO_IVA")}&CveCorte={ e.Row.DBCampo("CveCorte")}&TipoDocto={ DdlTipoComprobante.GetSelectedValuesM}&CveSubProyectoEjecucion={e.Row.DBCampo("CveSubProyectoEjecucion")}&CveSubProyecto={CveSubProyecto}&CveProyecto={CveProyecto}&TipoCambio={TipoCambio}&TCEspecifico={TCEspecifico}&CveMoneda={CveMoneda}&CveClienteClasificacion={e.Row.DBCampo("CveClienteClasificacion")}&CveCondicionesPago={DdlCondicionesPago.SelectedValue}&TipoCliente={ If(DdlGrupo.SelectedValue.ToEntero = 20, e.Row.DBCampo("TipoCliente"), DdlTipoCliente.SelectedValue)}&ModalidadContable={If(ChkModalidadContable.Checked, 1, 0)}" e.Row.FCLiteral("LtlGrupo").Text = "" & e.Row.FCLiteral("LtlGrupo").Text & "" e.Row.FCLiteral("LtlCantidad").Text = "" & e.Row.FCLiteral("LtlCantidad").Text & "" If DdlGrupo.SelectedValue.ToEntero > 16 AndAlso e.Row.DBCampo("Orden") = "2" AndAlso DdlGrupo.SelectedValue.ToEntero <> 20 Then e.Row.CssClass = "SubTotales" e.Row.Attributes.Add("style", "background:#CCCCCC !important") End If End If End Sub #End Region #Region " PERSONALIZAR " Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Personaliza() End Sub Private Sub Personaliza() If ChkSubTotal2.Checked Then GvDatos.Columns(5).Visible = True Else GvDatos.Columns(5).Visible = False End If If ChkIEPS.Checked Then GvDatos.Columns(7).Visible = True Else GvDatos.Columns(7).Visible = False End If If ChkRetIVA.Checked Then GvDatos.Columns(8).Visible = True Else GvDatos.Columns(8).Visible = False End If If ChkRetISR.Checked Then GvDatos.Columns(9).Visible = True Else GvDatos.Columns(9).Visible = False End If If ChkImpLoc.Checked Then GvDatos.Columns(10).Visible = True Else GvDatos.Columns(10).Visible = False End If If ChkMinSub.Checked Then GvDatos.Columns(12).Visible = True Else GvDatos.Columns(12).Visible = False End If If ChkAVGSub.Checked Then GvDatos.Columns(13).Visible = True Else GvDatos.Columns(13).Visible = False End If If ChkMaxSub.Checked Then GvDatos.Columns(14).Visible = True Else GvDatos.Columns(14).Visible = False End If If ChkMinTot.Checked Then GvDatos.Columns(17).Visible = True Else GvDatos.Columns(17).Visible = False End If If ChkAvgTot.Checked Then GvDatos.Columns(16).Visible = True Else GvDatos.Columns(16).Visible = False End If If ChkMaxTot.Checked Then GvDatos.Columns(15).Visible = True Else GvDatos.Columns(15).Visible = False End If If CheckRefacturado.Checked Then GvDatos.Columns(18).Visible = True Else GvDatos.Columns(18).Visible = False End If UPDatos.Update() End Sub #End Region #Region " EXCEL " Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click 'GvDatos.ExportToExcel("ReporteVentas" & Now.ToShortDateString) GenerarPDF("Excel") End Sub #End Region #Region "PDF" Private Sub GenerarPDF(Optional Formato As String = "PDF") If DtVentas IsNot Nothing Then Dim StrFiltro As New StringBuilder StrFiltro.AppendFormat(" Agrupado por: {0}", DdlGrupo.SelectedItem.Text) If DdlTipoComprobante.GetSelectedText <> "" Then StrFiltro.AppendFormat(" Tipo Documento: {0}", DdlTipoComprobante.GetSelectedText) If txtFechaI.Text <> "" Then StrFiltro.AppendFormat(" Fecha Inicio : {0}", txtFechaI.Text.ToDate.ToShortDateString) If txtFechaF.Text <> "" Then StrFiltro.AppendFormat(" Fecha Fin : {0}", txtFechaF.Text.ToDate.ToShortDateString) If DdlProyecto.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Proyecto: {0}", DdlProyecto.SelectedItem.Text) If DdlSubProyecto.GetSelectedText <> "" Then StrFiltro.AppendFormat(" SubProyecto: {0}", DdlSubProyecto.GetSelectedText) If DdlClientes.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Cliente: {0}", DdlClientes.SelectedText) If DdlVendedor.GetSelectedText <> "" Then StrFiltro.AppendFormat(" Vendedor: {0}", DdlVendedor.GetSelectedText) If DdlEstatus.GetSelectedText <> "" Then StrFiltro.AppendFormat(" Estatus: {0}", DdlEstatus.GetSelectedText) If DdlSubProyectoEjecucion.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Proyecto Ejecución: {0}", DdlSubProyectoEjecucion.SelectedItem.Text) If TxtFechaIEjec.Text <> "" Then StrFiltro.AppendFormat(" Fecha I. Ejecución: {0}", TxtFechaIEjec.Text.ToDate.ToShortDateString) If TxtFechaFEjec.Text <> "" Then StrFiltro.AppendFormat(" Fecha I. Ejecución: {0}", TxtFechaFEjec.Text.ToDate.ToShortDateString) If DdlUsuario.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Usuario: {0}", DdlUsuario.SelectedItem.Text) If DdlClienteClasificacion.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Clasificación Cliente: {0}", DdlClienteClasificacion.SelectedItem.Text) If DdlCondicionesPago.SelectedValue <> "-1" Then StrFiltro.AppendFormat(" Condiciones Pago: {0}", DdlCondicionesPago.SelectedItem.Text) Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = DtVentas '.FiltraParametros("", "Orden") '.FiltraParametros("Total > 0", DistinctColumns:={"GPO", "Cantidad", "SubTotal", "Descuento", "Amortizacion", "IVA", "Total"}) Dim FechaI, FechaF As String FechaI = If(txtFechaI.Text = "" Or txtFechaI.Text = "__/__/____", "-1", txtFechaI.Text) FechaF = If(txtFechaF.Text = "" Or txtFechaF.Text = "__/__/____", "-1", txtFechaF.Text) Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaI)) params.Add(New ReportParameter("FechaFin", FechaF)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("Filtros", StrFiltro.ToString)) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If ImprimirPDF("Empresas/Grales/Formatos/RepVentas.rdlc", dt, params, String.Format("ReporteVentas-{0}", Now.ToDateTime.ToShortDateString), Formato:=Formato) Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click GenerarPDF() End Sub Private Sub LnkRepHP_Click(sender As Object, e As EventArgs) Handles LnkRepHP.Click Dim Rep As New ClsVentas Dim Str As New StringBuilder Str.AppendLine("Header Section,,,,,,,,,,,End Customer Identification ,,,,,,,,,,,,, Ship To Identification,,,,,,,,,,,,, Sold To Identification,,,,,,,,,,,,, Bill To Identification,,,,,,,,,,,,, Salesperson Detail,,,,,, Line Item Detail,,,,,,,,,,,,,,,,,,,,,,,,,,,, New FIELDS,,,,,,,,,,,,,,,,,,,,,,,,,, ") Str.AppendLine("Partner Purchase Price Currency Code, Exchange Rate, Reporter_id, Reported Partner Type, Reporter Company Name , Sell From Address line 1, Sell From Address line 2, Sell From City, Reported Partner State/Province, Sell from postal code, Sell from Country code,End User Customer Name,End User Company Tax ID,End User Address Line 1,End User Address Line 2,End User City,End User State/Province Code,End User Postal Code,End User Country Code,End User ID,End Customer Department,End Customer Contact Name,End Customer Contact Phone,End Customer County, Ship To Customer Name, Ship To Company Tax ID, Ship To Address Line 1, Ship To Address Line 2, Ship To City, Ship To State/Province Code, Ship To Postal Code, Ship To Country Code, Ship To Customer ID, Ship To Department, Ship To Contact Name, Ship To Contact Phone, Ship To County, Sold To Customer Name, Sold To Company Tax ID, Sold To Address Line 1, Sold To Address Line 2, Sold To City, Sold To State/Province Code, Sold To Postal Code, Sold To Country Code, Sold To Customer ID, Sold To Department, Sold To Contact Name, Sold To Contact Phone, Sold To County, Bill To Customer Name, Bill To Company Tax ID, Bill To Address Line 1 , Bill To Address Line 2, Bill To City, Bill To State/Province Code, Bill To Postal Code, Bill To Country Code, Bill To Customer ID, Bill To Agreement Number, Bill To Contact Name, Bill To Contact Phone, Bill To County, HP Representative Name, HP Sales Rep Email, Salesperson2 Name, Salesperson2 Unique Employee ID, Salesperson's Manager's Name,Salesperson's Manager Unique Employee ID,Quantity Qualifier,Product Quantity Shipped/Sold,Line Item ID,Partner Reported Product ID,Product Description,Date Type Qualifier,Channel Partner to Customer Transaction Date,Reseller’’s Product Number,Partner Purchase Price,Extended Price,Partner Sell Price,Extended Resale Price,Transaction Type,Rebate Tracking #,Partner Requested Rebate Amount,Extended Rebate Amount,Debit Number,Channel Partner to Customer Invoice ID,Reference Number,Customer to Channel Partner Purchase Order ID,Deal ID #1,Deal ID #2,Deal ID #3,Deal ID #4,Deal ID #5,Deal ID #6,Marketing Subprogram Code,Product Serial ID assigned by HP,Purchasing Source wholesaler indicator,Drop Ship Flag,Distributor's Invoice Number,Partner Internal transaction ID,Partner Comment,Deal Bundle ID #1,Deal Bundle ID #2,Deal Bundle ID #3,Deal Bundle ID #4,Deal Bundle ID #5,Deal Bundle ID #6,NMSO NAME,Sales Type,Purchase Agreement,Product Origin,Partner Reported CBN#,Partner Reference,Supplies Tracking ID (QR Code),Sell From Location ID (assigned by HP or Partner-assigned),Sell from name,Comment Deal ID #1,Comment Deal ID #2,Comment Deal ID #3,Comment Deal ID #4,Comment Deal ID #5,Comment Deal ID #6,Partner Sell Price Currency Code") If Rep.GetReporteHP(72, Now.AddMonths(-1).FirstDayOfMonth, Now.AddMonths(-1).LastDayOfMonth) Then For Each dr As DataRow In Rep.DtResultados.Rows Str.AppendLine($"MXN,,AM30089,,""COMPUPROVEEDORES, S.A.DE C.V."",,,,,,,,,,,,,,,,,,,,{dr("Nombre")},{dr("RFC")},{dr("Direccion")},,{dr("Ciudad")},{dr("Estado")},{dr("CP")},MX,{dr("RFC")},,,,,{dr("Nombre")},{dr("RFC")},{dr("Direccion")},,{dr("Ciudad")},{dr("Estado")},{dr("CP")},MX,{dr("RFC")},,,,,,,,,,,,,,,,,,,,,,,,,{dr("Cantidad")},,{dr("Codigo")},,,{dr("Fecha")},,,,{dr("PU")},,,,,,,{dr("SerieFolio")},,,,,,,,,,{dr("Serie")},,,,,,,,,,,,,,,{dr("Proveedor")},,,,,,,,,,,,MXN") Next End If Rep.Dispose() 'GenerarPDF una salida Response.Clear() Response.ContentType = "text/csv" Response.AppendHeader("Content-Disposition", "attachment; filename=ReporteHP.csv") Response.Write(Str.ToString) Context.Response.End() End Sub #End Region #Region "XML-CONFIGURACIÓN" Private Sub XmlConf(CveUsuario As Integer, CveModulo As Integer, Values As String(,)) Dim settings As New XmlWriterSettings() settings.Indent = True Dim Xmlwrt As XmlWriter = XmlWriter.Create(String.Format("{0}\Menu\ERP\{1}_Conf.xml", AppDomain.CurrentDomain.BaseDirectory, CveUsuario, settings)) With Xmlwrt .WriteStartDocument() .WriteComment("XML Configuración") .WriteStartElement(CveModulo.ToString()) Dim bound0 As Integer = Values.GetUpperBound(0) For i As Integer = 0 To bound0 AgregaNodo(Values(i, 0), Values(i, 1), Xmlwrt) Next .WriteEndElement() .WriteEndDocument() .Close() End With End Sub Private Sub AgregaNodo(Filtro As String, Valor As String, ByRef xml As XmlWriter) xml.WriteStartElement(Filtro) xml.WriteValue(Valor) xml.WriteEndElement() End Sub Private Sub GenerarXml() Dim values(,) As String = New String(,) { {"Tipo", DdlTipoComprobante.GetSelectedText}, {"Sucursal", DdlSubProyecto.Text.ToString()}, {"SucursalEjecuccion", DdlSubProyectoEjecucion.Text.ToString()}, {"Proyecto", DdlProyecto.Text.ToString()} } End Sub #End Region #Region "GRAFICA" Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtVentas IsNot Nothing AndAlso DtVentas.Rows.Count > 0 Then Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) Exit Sub End If LblTituloGrafica.Text = $"Agrupado por: {Agrupador}" RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub Private Sub CreaDataTableColor() DtColor = New DataTable DtColor.Columns.Add("Color") Dim RowColor As DataRow = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF0F00" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF6600" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FF9E01" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#FCD202" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#F8FF01" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#B0DE09" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#04D215" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#0D8ECF" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#0D52D1" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#2A0CD0" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#8A0CCF" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#CD0D74" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#754DEB" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#DDDDDD" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#999999" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#333333" DtColor.Rows.Add(RowColor) RowColor = Nothing RowColor = DtColor.NewRow() RowColor("Color") = "#000000" DtColor.Rows.Add(RowColor) End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() Dt.Columns.Add("Texto") Dt.Columns.Add("Valor") Dt.Columns.Add("Color") Dt.Columns.Add("Moneda") Dim RowColorIndex As Integer = 0 For Each Dr As DataRow In DtVentas.Rows If Not Dr("Orden").ToString = "" Then Dim Row As DataRow = Nothing Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Select Case DdlVer.SelectedValue.ToEntero Case 1 Row("Valor") = Dr("Total").ToString.FormatoNumero Case 2 Row("Valor") = Dr("SubTotal").ToString.FormatoNumero Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 If RowColorIndex = 17 Then RowColorIndex = 0 End If End If Next Dim query = From s In Dt.AsEnumerable() Select New With {.Texto = s("Texto").ToString(), .Valor = s("Valor").ToString().ToDouble(), .Color = s("Color").ToString(), .Moneda = s("Moneda").ToString()} Dim json As String = Newtonsoft.Json.JsonConvert.SerializeObject(query) Select Case DdlGrafica.SelectedValue.ToEntero Case 1 RegistraScript($"CargaGraficaBarras({json});console.log({json})", "22") Case 2 RegistraScript($"CargaGraficaPastel({json})", "22") End Select UPModalProd.Update() End Sub Protected Sub DdlGrafica_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub Protected Sub DdlVer_SelectedIndexChanged(sender As Object, e As EventArgs) CambioGrafica() End Sub #End Region End Class