Option Explicit On Option Strict On Imports System.Data Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.IO Imports System.IO.Compression Imports System.Net Imports System.Net.Http Partial Class RepVentaDetalle Inherits ClsPaginas #Region "P R O P I E D A D E S" 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 CveSubProyecto() As String Get Return ViewState("CveSubProyecto").ToString End Get Set(ByVal value As String) ViewState("CveSubProyecto") = 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 TipoCambio As Integer Get Return ViewState("TipoCambio").ToString.ToEntero End Get Set(value As Integer) ViewState("TipoCambio") = value End Set End Property Private Property CveMoneda As Integer Get Return ViewState("CveMoneda").ToString.ToEntero End Get Set(value As Integer) ViewState("CveMoneda") = value End Set End Property Private Property TipoCliente As Integer Get If ViewState("TipoCliente") Is Nothing Then Return -1 Else Return ViewState("TipoCliente").ToString.ToEntero End If End Get Set(value As Integer) ViewState("TipoCliente") = 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 Personalizo As Integer Get Return ViewState("Personalizo").ToString.ToEntero End Get Set(value As Integer) ViewState("Personalizo") = 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 DtColor As DataTable Get Return DirectCast(ViewState("DtColor"), DataTable) End Get Set(value As DataTable) ViewState("DtColor") = value End Set End Property #End Region 'pRivate ReadOnly Property ColumnasVisibles As 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") Personalizo = 0 CargaCombos() InicializaValores() CargaDatos() CreaDataTableColor() End If End Sub Private Sub InicializaValores() Dim Grupo, CveCliente, CveSucursal, CveSubProyectoEjecucion, CveVendedor, CveUsuario, CveEstatusFactura, CveCorte, IVA, TipoDocto, CveClienteClasificacion, CveCondicionesPago As String Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String Dim AnioEjec, MesEjec, AnioMesEjec, FechaEjec, FechaIEjec, FechaFEjec As String 'Dim CveSubProyecto As Integer Grupo = If(Request("GPO") IsNot Nothing AndAlso Request("GPO").ToEntero() > 0, Request("GPO").ToEntero(), -1).ToString CveCliente = If(Request("CveCliente") IsNot Nothing AndAlso Request("CveCliente").ToEntero() > 0, Request("CveCliente").ToEntero(), -1).ToString CveClienteClasificacion = If(Request("CveClienteClasificacion") IsNot Nothing AndAlso Request("CveClienteClasificacion").ToEntero() > 0, Request("CveClienteClasificacion").ToEntero(), -1).ToString CveSucursal = If(Request("CveSucursal") IsNot Nothing AndAlso Request("CveSucursal").ToEntero() > 0, Request("CveSucursal").ToEntero(), -1).ToString CveSubProyectoEjecucion = If(Request("CveSubProyectoEjecucion") IsNot Nothing AndAlso Request("CveSubProyectoEjecucion").ToEntero() > 0, Request("CveSubProyectoEjecucion").ToEntero(), -1).ToString CveUsuario = If(Request("CveUsuario") IsNot Nothing AndAlso Request("CveUsuario").ToEntero() > 0, Request("CveUsuario").ToEntero(), -1).ToString CveCorte = If(Request("CveCorte") IsNot Nothing AndAlso Request("CveCorte").ToEntero() > 0, Request("CveCorte").ToEntero(), -1).ToString IVA = If(Request("IVA") IsNot Nothing, Request("IVA").ToString, "-1").ToString Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString AnioEjec = If(Request("AnioEjec") IsNot Nothing, Request("AnioEjec").ToString, "-1").ToString MesEjec = If(Request("MesEjec") IsNot Nothing, Request("MesEjec").ToString, "-1").ToString AnioMesEjec = If(Request("AnioMesEjec") IsNot Nothing, Request("AnioMesEjec").ToString, "-1").ToString FechaEjec = If(Request("FechaEjec") IsNot Nothing, Request("FechaEjec").ToString, "-1").ToString FechaIEjec = If(Request("FechaIEjec") IsNot Nothing, Request("FechaIEjec").ToString, "-1").ToString FechaFEjec = If(Request("FechaFEjec") IsNot Nothing, Request("FechaFEjec").ToString, "-1").ToString CveProyecto = If(Request("CveProyecto") IsNot Nothing, Request("CveProyecto").ToString.ToEntero, -1).ToString.ToEntero TipoCambio = If(Request("TipoCambio") IsNot Nothing, Request("TipoCambio").ToString.ToEntero, -1).ToString.ToEntero TCEspecifico = If(Request("TCEspecifico") IsNot Nothing, Request("TCEspecifico").ToString.ToEntero, -1).ToString.ToDecimal CveMoneda = If(Request("CveMoneda") IsNot Nothing, Request("CveMoneda").ToString.ToEntero, -1).ToString.ToEntero TipoCliente = If(Request("TipoCliente") IsNot Nothing, Request("TipoCliente").ToString.ToEntero, -1).ToString.ToEntero DdlTipoCliente.SelectedValueExist(TipoCliente) 'LISTBOXS TipoDocto = If(Request("TipoDocto") IsNot Nothing, Request("TipoDocto").ToString, "-1").ToString CveSubProyecto = If(Request("CveSubProyecto") IsNot Nothing, Request("CveSubProyecto").ToString, "-1").ToString CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor") <> "", Request("CveVendedor"), "-1").ToString CveEstatusFactura = If(Request("CveEstatusFactura") IsNot Nothing AndAlso Request("CveEstatusFactura") <> "", Request("CveEstatusFactura"), "-1").ToString CveCondicionesPago = If(Request("CveCondicionesPago") IsNot Nothing AndAlso Request("CveCondicionesPago") <> "", Request("CveCondicionesPago"), "-1").ToString DdlTipoComprobante.SelectedValuesIfExistM(TipoDocto) CargaEstatus() DdlEstatus.SelectedValuesIfExistM(CveEstatusFactura) DdlCondicionesPago.SelectedValueExist(CveCondicionesPago) DdlProyecto.SelectedValueExist(CveProyecto) If DivProyecto.Visible Then CargaSubProyecto() DdlSubProyecto.SelectedValuesIfExistM(CveSubProyecto) DdlSubProyectoEjecucion.SelectedValueExist(CveSubProyectoEjecucion) DdlVendedor.SelectedValuesIfExistM(CveVendedor) DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion) CargaClientes() DdlClientes.SelectedValue = CveCliente DdlUsuario.SelectedValueExist(CveUsuario) DdlGrupo.SelectedValueExist(Grupo) UPFiltros.Update() txtFechaI.Text = If(Anio <> "-1", String.Format("01/01/{0}", Anio), txtFechaI.Text) txtFechaI.Text = If(Mes <> "-1", String.Format("01/{0}/0001", Mes), txtFechaI.Text) Dim sMes As String Dim sAnio As String = If(AnioMes <> "-1", AnioMes.Substring(0, 4), "") If AnioMes.Trim.Length = 7 Then sMes = AnioMes.Substring(5, 2).ToEntero.ToString("00") Else sMes = If(AnioMes <> "-1", AnioMes.Substring(5, 1).ToEntero.ToString("00"), "") End If txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", sMes, sAnio), txtFechaI.Text) If Anio <> "-1" AndAlso txtFechaF.Text = "" Then txtFechaF.Text = String.Format("31/12/{0}", Anio) ElseIf Mes <> "-1" AndAlso txtFechaF.Text = "" Then txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString ElseIf AnioMes <> "-1" AndAlso txtFechaF.Text = "" Then txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString End If If FechaF <> "-1" Then txtFechaF.Text = FechaF End If If FechaI <> "-1" Then txtFechaI.Text = FechaI End If If Fecha <> "-1" Then txtFechaI.Text = Fecha txtFechaF.Text = Fecha End If TxtFechaIEjec.Text = If(AnioEjec <> "-1", String.Format("01/01/{0}", AnioEjec), TxtFechaIEjec.Text) TxtFechaIEjec.Text = If(MesEjec <> "-1", String.Format("01/{0}/0001", MesEjec), TxtFechaIEjec.Text) TxtFechaIEjec.Text = If(AnioMesEjec <> "-1", String.Format("01/{0}/{1}", AnioMesEjec.Substring(5, 1).PadLeft(2, "0"c), AnioMesEjec.Substring(0, 4)), TxtFechaIEjec.Text) If AnioEjec <> "-1" Then TxtFechaFEjec.Text = String.Format("31/12/{0}", AnioEjec) ElseIf MesEjec <> "-1" Then TxtFechaFEjec.Text = TxtFechaIEjec.Text.ToDate.LastDayOfMonth.ToShortDateString ElseIf AnioMesEjec <> "-1" Then TxtFechaFEjec.Text = TxtFechaIEjec.Text.ToDate.LastDayOfMonth.ToShortDateString End If If FechaFEjec <> "-1" Then TxtFechaFEjec.Text = FechaFEjec End If If FechaIEjec <> "-1" Then TxtFechaIEjec.Text = FechaIEjec End If If FechaEjec <> "-1" Then TxtFechaIEjec.Text = FechaEjec TxtFechaFEjec.Text = FechaEjec End If If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12) Then ImgExcelVSH.Visible = True ImgExcel.Visible = False End If If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValuesIfExistM(UsuarioActual.CveVendedor.ToString) DdlVendedor.Attributes.Add("disabled", "") DdlVendedor.Enabled = False 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("Vendedor/Cliente", "21")) DdlGrupo.DataBind() 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 CargaCombos() CargaClientes() '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")) 'CargaProyectos DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) DdlProyecto.DataBind() DdlProyecto.Items.Insert(0, New ListItem("Todos", "-1")) 'Vendedor DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) DdlVendedor.DataBind() DdlVendedor.Items.Insert(0, New ListItem("Sin Vendedor", "-2")) 'CargaUsuarios DdlUsuario.DataSource = GlobalDTUsuarios.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) DdlUsuario.DataBind() 'CargaEstatus DdlEstatus.DataSource = GlobalDTEstatusFactura DdlEstatus.DataBind() 'Carga Clasificacion Cliente DdlClienteClasificacion.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) DdlClienteClasificacion.DataBind() DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) CargaGrupo() CargaTipoCentroCosto() End Sub Private Sub CargaEstatus() DdlEstatus.Items.Clear() If DdlTipoComprobante.GetSelectedText <> "" Then DdlEstatus.DataSource = GlobalDTEstatusFactura.FiltraParametros(String.Format("TipoDocto IN ({0})", 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 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 "SELECTED INDEX CHANGE" Protected Sub DdlTipoComprobante_SelectedIndexChanged(sender As Object, e As EventArgs) CargaEstatus() End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlProyecto.SelectedIndexChanged CargaSubProyecto() End Sub Protected Sub DdlClienteClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs) CargaClientes() End Sub Private Sub 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).FiltraParametros($"CveClienteClasificacion = {DdlClienteClasificacion.SelectedValue.ToEntero} OR {DdlClienteClasificacion.SelectedValue.ToEntero} = -1") DdlClientes.DataBind() DdlClientes.ddl.Items.Insert(0, New ListItem("Todos", "-1")) End If '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 #End Region #Region "CONSULTAR" Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() ConfiguraEmpresa() UPDatos.Update() End Sub Private Sub CargaDatos() Dim AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString Dim Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString Dim IVA = If(Request("IVA") IsNot Nothing, Request("IVA").ToString, "-1").ToString Dim FechaI, FechaF, FechaIEjec, FechaFEjec As Date Dim Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString Dim Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString Dim CveCorte = If(Request("CveCorte") IsNot Nothing AndAlso Request("CveCorte").ToEntero() > 0, Request("CveCorte").ToEntero(), -1).ToString 'PARAMETROS DE LOS LISTBOXS 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 CveCondicionesPago As Integer = If(DdlCondicionesPago.SelectedValue = "", -1, DdlCondicionesPago.SelectedValue.ToEntero) Dim Vendedores As String = If(DdlVendedor.GetSelectedValuesM = "", "-1", DdlVendedor.GetSelectedValuesM) Dim CveCliente As Integer = If(DdlClientes.SelectedValue = "", -1, DdlClientes.SelectedValue.ToEntero) 'Anio = txtFechaI.Text.ToDate.Year.ToString 'Mes = txtFechaI.Text.ToDate.Month.ToString AnioMes = String.Format("{0}/{1}", txtFechaI.Text.ToDate.Year.ToString, txtFechaI.Text.ToDate.Month.ToString) 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) Dim ModalidadContable As Boolean = CBool(If(Request("ModalidadContable") IsNot Nothing, Request("ModalidadContable").ToEntero(), 0)) ChkLecturaAdmin.Checked = Not ModalidadContable Dim ObjVentas As New ClsVentas() 'FechaI, FechaF, -1, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero If ObjVentas.GetRepVentasDetalle(DdlGrupo.SelectedValue.ToEntero, Anio.ToEntero, Mes.ToEntero, AnioMes, Fecha, CveCliente, IVA, Vendedores, DdlUsuario.SelectedValue.ToEntero, Estatus, FechaI, FechaF, CveCorte.ToEntero, TipoComprobante, DdlSubProyectoEjecucion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaIEjec, FechaFEjec, CveProyecto, Sucursales, TipoCambio, TCEspecifico, CveMoneda, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, CveCondicionesPago:=CveCondicionesPago, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=Not ChkLecturaAdmin.Checked) Then DtVentas = AddRows(ObjVentas.DtResultados) ImgImprimir.Enabled = True GvDatos.DataSource = AddRows(ObjVentas.DtResultados) GvVsh.DataSource = ObjVentas.DtResultados.FiltraParametros("CveVenta > 0") Else GvDatos.DataSource = Nothing GvVsh.DataSource = Nothing End If ObjVentas.Dispose() Agrupador = DdlGrupo.SelectedItem.Text GvDatos.DataBind() GvVsh.DataBind() End Sub #End Region #Region "GRIDVIEW" Private Function AddRows(ByRef DT As DataTable) As DataTable Dim i As Integer = 0 Dim Ultima As String = String.Empty Dim Rows As Integer = 0 Dim dbRow As DataRow While i < DT.Rows.Count If DT.Rows(i)("GPO").ToString <> "" AndAlso DT.Rows(i)("CveVenta").ToString = "" AndAlso Ultima <> DT.Rows(i)("GPO").ToString Then dbRow = DT.NewRow() dbRow("GPO") = DT.Rows(i)("GPO") : Ultima = DT.Rows(i)("GPO").ToString DT.Rows.InsertAt(dbRow, i) End If i += 1 End While Return DT End Function Private Sub ConfiguraEmpresa() 'Dim ObjEmpresa As New ClsEmpresas() 'If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(10).Visible = False If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(11).Visible = False 'End If 'ObjEmpresa.Dispose() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then If e.Row.RowIndex = 0 Then e.Row.CssClass = "Totales" End If If e.Row.DBCampo("GPO") <> "" AndAlso e.Row.DBCampo("Cantidad") = "" Then For i As Integer = 1 To GvDatos.Columns.Count - 1 e.Row.Cells(i).Visible = False Next e.Row.Cells(0).ColumnSpan = GvDatos.Columns.Count e.Row.CssClass = "SubTotales2" e.Row.FCLiteral("LtlTipo").Text = e.Row.DBCampo("GPO") e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Visible = False ElseIf e.Row.DBCampo("CveVenta") = "" Then If e.Row.RowIndex > 0 Then e.Row.CssClass = "SubTotales" e.Row.FCLiteral("LtlFolio").Text = e.Row.DBCampo("Cantidad") e.Row.Cells(3).Text = e.Row.DBCampo("GPO") Else e.Row.FCLiteral("LtlFolio").Text = "" & e.Row.DBCampo("SerieFolio") & "" e.Row.FCLiteral("LtlCodCliente").Text = "" & e.Row.DBCampo("Codigo") & "" e.Row.FCLiteral("LtlCliente").Text = "" & e.Row.DBCampo("Nombre") & "" e.Row.FCLiteral("LtlFacturaCotizacion").Text = "" & e.Row.DBCampo("FolioVenta") & "" End If e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(8).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(9).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(10).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(11).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(12).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(13).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(14).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(15).HorizontalAlign = HorizontalAlign.Center e.Row.Cells(20).HorizontalAlign = HorizontalAlign.Left 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("SubTotal").ToDouble < 0 Then e.Row.Cells(4).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Descuento").ToDouble < 0 Then e.Row.Cells(5).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Amortizacion").ToDouble < 0 Then e.Row.Cells(7).ForeColor = Drawing.Color.Red If e.Row.DBCampo("IVA").ToDouble < 0 Then e.Row.Cells(8).ForeColor = Drawing.Color.Red If e.Row.DBCampo("RetIVA").ToDouble < 0 Then e.Row.Cells(9).ForeColor = Drawing.Color.Red If e.Row.DBCampo("RetISR").ToDouble < 0 Then e.Row.Cells(10).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(11).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(12).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Total").ToDouble < 0 Then e.Row.Cells(13).ForeColor = Drawing.Color.Red '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 Protected Sub GvVsh_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvVsh.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then GvVsh.Caption = String.Format("{0} {1} {2}
** FACTURACION DEL MES **", UsuarioActual.Empresa.Direccion, UsuarioActual.Empresa.NoExt, UsuarioActual.Empresa.NoInt) e.Row.Cells(0).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(2).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(3).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(4).HorizontalAlign = HorizontalAlign.Left e.Row.Cells(5).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(6).HorizontalAlign = HorizontalAlign.Right e.Row.Cells(7).HorizontalAlign = HorizontalAlign.Right End If End Sub #End Region #Region "PERSONALIZAR COLUMNAS" Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click If ChkFolio.Checked Then GvDatos.Columns(1).Visible = True Else GvDatos.Columns(1).Visible = False End If If ChkFecha.Checked Then GvDatos.Columns(2).Visible = True Else GvDatos.Columns(2).Visible = False End If If ChkCliente.Checked Then GvDatos.Columns(3).Visible = True Else GvDatos.Columns(3).Visible = False End If If ChkSubTotal.Checked Then GvDatos.Columns(4).Visible = True Else GvDatos.Columns(4).Visible = False End If If ChkDescuento.Checked Then GvDatos.Columns(5).Visible = True Else GvDatos.Columns(5).Visible = False End If If ChlMotivoDescuento.Checked Then GvDatos.Columns(6).Visible = True Else GvDatos.Columns(6).Visible = False End If If ChkAmortizacion.Checked Then GvDatos.Columns(7).Visible = True Else GvDatos.Columns(7).Visible = False End If If ChkIVA.Checked Then GvDatos.Columns(8).Visible = True Else GvDatos.Columns(8).Visible = False End If If ChkIEPS.Checked Then GvDatos.Columns(9).Visible = True Else GvDatos.Columns(9).Visible = False End If If ChkRetIVA.Checked Then GvDatos.Columns(10).Visible = True Else GvDatos.Columns(10).Visible = False End If If ChkRetISR.Checked Then GvDatos.Columns(11).Visible = True Else GvDatos.Columns(11).Visible = False End If If ChkTotalImpuestos.Checked Then GvDatos.Columns(12).Visible = True Else GvDatos.Columns(12).Visible = False End If If ChkTotal.Checked Then GvDatos.Columns(13).Visible = True Else GvDatos.Columns(13).Visible = False End If GvDatos.Columns(14).Visible = ChkMoneda.Checked If ChkSucursal.Checked Then GvDatos.Columns(15).Visible = True Else GvDatos.Columns(15).Visible = False End If If ChkSucursalEjecucion.Checked Then GvDatos.Columns(16).Visible = True Else GvDatos.Columns(16).Visible = False End If If ChkCodigo.Checked Then GvDatos.Columns(17).Visible = True Else GvDatos.Columns(17).Visible = False End If If ChkSucursalCliente.Checked Then GvDatos.Columns(18).Visible = True Else GvDatos.Columns(18).Visible = False End If If ChkSucursalCobranza.Checked Then GvDatos.Columns(19).Visible = True Else GvDatos.Columns(19).Visible = False End If If ChkSucursalEjecucion.Checked Then GvDatos.Columns(20).Visible = True Else GvDatos.Columns(20).Visible = False End If If ChkVendedor.Checked Then GvDatos.Columns(21).Visible = True Else GvDatos.Columns(21).Visible = False End If If ChkEstatusFactura.Checked Then GvDatos.Columns(22).Visible = True Else GvDatos.Columns(22).Visible = False End If If ChkMotivoCancelacion.Checked Then GvDatos.Columns(23).Visible = True Else GvDatos.Columns(23).Visible = False End If If ChkSeTimbro.Checked Then GvDatos.Columns(24).Visible = True Else GvDatos.Columns(24).Visible = False End If If ChkSeEnvioMail.Checked Then GvDatos.Columns(25).Visible = True Else GvDatos.Columns(25).Visible = False End If If ChkCuentaContable.Checked Then GvDatos.Columns(26).Visible = True Else GvDatos.Columns(26).Visible = False End If If ChkUsuario.Checked Then GvDatos.Columns(27).Visible = True Else GvDatos.Columns(27).Visible = False End If If ChkObservaciones.Checked Then GvDatos.Columns(28).Visible = True Else GvDatos.Columns(28).Visible = False End If GvDatos.Columns(29).Visible = ChkFolioFiscal.Checked GvDatos.Columns(30).Visible = ChkMailCliente.Checked GvDatos.Columns(31).Visible = True = ChkEstatusFacturacion.Checked GvDatos.Columns(32).Visible = ChkFolioFacturacion.Checked GvDatos.Columns(33).Visible = ChkSaldo.Checked Personalizo = 1 If Personalizo = 1 Then ImgExcelPersonalizado.Visible = True Else ImgExcelPersonalizado.Visible = False End If UPDatos.Update() End Sub #End Region #Region "IMPRESIONES" Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click 'GvDatos.ExportToExcel("DetalleVentas_" & Now.ToShortDateString) GenerarPDF("Excel") End Sub Protected Sub ImgExcelVSH_Click(sender As Object, e As EventArgs) Handles ImgExcelVSH.Click 'GvVsh.Visible = True 'GvVsh.ExportToExcel("DetalleVentas_" & Now.ToShortDateString) 'GvVsh.Visible = False GvDatos.ExportToExcel("DetalleVentas_" & Now.ToShortDateString) End Sub Protected Sub ImgExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles ImgExcelPersonalizado.Click 'GvVsh.Visible = True 'GvVsh.ExportToExcel("DetalleVentas_" & Now.ToShortDateString) 'GvVsh.Visible = False GvDatos.ExportToExcel("DetalleVentas_" & Now.ToShortDateString & ".xls") 'GvDatos.ExportToExcelG("DetalleVentas_" & Now.ToShortDateString & ".xlsx") End Sub Public Overrides Sub VerifyRenderingInServerForm(control As Control) End Sub Private Sub BtnDescargarPDF_Click(sender As Object, e As EventArgs) Handles BtnDescargarPDF.Click Dim pathPDF As String Dim TipoDocto As String = "" 'Dim ListaPDF As New List(Of MFacturaDescarga) 'GENERA FACTURAS QUE NO ESTAN EN LA CARPETA For Each gvr As GridViewRow In GvDatos.Rows If gvr.DataKey("CveVenta").ToEntero > 0 Then Select Case gvr.DataKey("TipoDocumento").ToString Case "Ingreso" TipoDocto = "Ing" Case = "Cotización" TipoDocto = "Cot" Case "Remisión" TipoDocto = "Rem" Case "Pedido" TipoDocto = "Ped" Case "Anticipo" TipoDocto = "Ant" Case "Egreso" TipoDocto = "Egs" Case "Devolucion" TipoDocto = "Dev" End Select pathPDF = Server.MapPath(String.Format("~/Empresas/{0}/PDF/{1}/{2}.pdf", UsuarioActual.CveEmpresa, TipoDocto, gvr.DataKey("SerieFolio").ToString)) If Not IO.File.Exists(pathPDF) Then GenerarFacturaVentaDEV(gvr.DataKey("CveVenta").ToEntero, UsuarioActual.CveUsuario) 'ListaPDF.Add(New MFacturaDescarga() With {.CveVenta = gvr.DataKey("CveVenta").ToEntero, .PDF = GenerarFacturaVentaDEV(gvr.DataKey("CveVenta").ToEntero, 100)}) End If End If Next 'D E S C A R G A I O N I C ! Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() Using DescargaZIP DescargaZIP.UseZip64WhenSaving = Ionic.Zip.Zip64Option.AsNecessary For Each gvr As GridViewRow In GvDatos.Rows If gvr.DataKey("CveVenta").ToEntero > 0 Then Select Case gvr.DataKey("TipoDocumento").ToString Case "Ingreso" TipoDocto = "Ing" Case = "Cotización" TipoDocto = "Cot" Case "Remisión" TipoDocto = "Rem" Case "Pedido" TipoDocto = "Ped" Case "Anticipo" TipoDocto = "Ant" Case "Egreso" TipoDocto = "Egs" Case "Devolucion" TipoDocto = "Dev" End Select pathPDF = Server.MapPath(String.Format("~/Empresas/{0}/PDF/{1}/{2}.pdf", UsuarioActual.CveEmpresa, TipoDocto, gvr.DataKey("SerieFolio").ToString)) If IO.File.Exists(pathPDF) Then 'NO AGREGAR ARCHIVOS REPETIDOS Dim File As New IO.FileInfo(pathPDF) If Not DescargaZIP.Any(Function(x) x.FileName.Contains(File.Name)) Then DescargaZIP.AddFile(pathPDF, gvr.DataKey("TipoDocumento").ToString) End If End If End If Next DescargaZIP.Save(Response.OutputStream) End Using Response.AddHeader("content-Disposition", "attachment; filename=ReporteVentasPDF.zip") Response.ContentType = "application/zip" Response.End() End Sub Private Function DescargarFactura(CveVenta As Integer, CveEmpresa As Integer, CveUsuarioCreo As Integer) As Byte() Dim Url = New Uri(String.Format("{0}Compras/PopUpVerFactura.aspx?P={1}", "http://localhost:85/", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", CveVenta)))) Dim File As Byte() = Nothing Try Using httpClient = New HttpClient() httpClient.Timeout = New TimeSpan(0, 15, 0) Using request = New HttpRequestMessage(HttpMethod.Get, Url) request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO={2}", CveEmpresa, DateTime.UtcNow.Ticks, CveUsuarioCreo))) Dim response = httpClient.SendAsync(request).Result If response.StatusCode = Net.HttpStatusCode.OK Then File = response.Content.ReadAsByteArrayAsync().Result End If End Using End Using Catch ex As Exception File = Nothing OnError("Ocurrió un error al descargar la factura", ex) End Try Return File End Function Private Sub BtnDescargarXML_Click(sender As Object, e As EventArgs) Handles BtnDescargarXML.Click Dim pathXML As String Dim TipoDocto As String = "" 'D E S C A R G A I O N I C ! Dim DescargaZIP As Ionic.Zip.ZipFile = New Ionic.Zip.ZipFile() Using DescargaZIP For Each gvr As GridViewRow In GvDatos.Rows If gvr.DataKey("CveVenta").ToEntero > 0 Then Select Case gvr.DataKey("TipoDocumento").ToString Case "Ingreso" TipoDocto = "Ing" Case = "Cotización" TipoDocto = "Cot" Case "Remisión" TipoDocto = "Rem" Case "Pedido" TipoDocto = "Ped" Case "Anticipo" TipoDocto = "Ant" Case "Egreso" TipoDocto = "Egs" Case "Devolucion" TipoDocto = "Dev" End Select pathXML = Server.MapPath(String.Format("~/Empresas/{0}/XML/{1}/{2}.xml", UsuarioActual.CveEmpresa, TipoDocto, gvr.DataKey("SerieFolio").ToString)) If IO.File.Exists(pathXML) Then 'NO AGREGAR ARCHIVOS REPETIDOS Dim File As New IO.FileInfo(pathXML) If Not DescargaZIP.Any(Function(x) x.FileName.Contains(File.Name)) Then DescargaZIP.AddFile(pathXML, gvr.DataKey("TipoDocumento").ToString) End If End If End If Next DescargaZIP.Save(Response.OutputStream) End Using Response.AddHeader("content-Disposition", "attachment; filename=ReporteVentasXML.zip") Response.ContentType = "application/zip" Response.End() End Sub Private Sub GenerarPDF(Optional Formato As String = "PDF") If DtVentas IsNot Nothing Then Dim Grupo, CveCliente, CveSucursal, CveSucursalEjec, Vendedor, CveUsuario, CveEstatusFactura, TipoDocto, CondicionesPago As String Dim FechaIEjec, FechaFEjec As String 'Dim CveSubProyecto As Integer Grupo = DdlGrupo.SelectedItem.Text TipoDocto = If(DdlTipoComprobante.GetSelectedText = "", "", $" Tipo Docto: {DdlTipoComprobante.GetSelectedText}") Dim FechaIn As String = $" Fecha Inicio: {txtFechaI.Text}" Dim FechaFn As String = $" Fecha Fin: {txtFechaF.Text}" If txtFechaI.Text = "" Then FechaIn = "" If txtFechaF.Text = "" Then FechaFn = "" FechaIEjec = $" Fecha Inicio Ejec: {TxtFechaIEjec.Text}" FechaFEjec = $" Fecha Fin Ejec: {TxtFechaFEjec.Text}" If TxtFechaIEjec.Text = "" Then FechaIEjec = "" If TxtFechaFEjec.Text = "" Then FechaFEjec = "" CveCliente = If(DdlClientes.SelectedValue = "-1", "", $" Cliente: {DdlClientes.SelectedText}") CveSucursal = If(DdlSubProyecto.GetSelectedText = "", "", $" Sucursal: {DdlSubProyecto.GetSelectedText}") CveSucursalEjec = If(DdlSubProyectoEjecucion.SelectedValue = "-1", "", $" Sucursal Ejecución: {DdlSubProyectoEjecucion.SelectedItem.Text}") Vendedor = If(DdlVendedor.GetSelectedText = "", "", $" Vendedor: {DdlVendedor.GetSelectedText}") CveUsuario = If(DdlUsuario.SelectedValue = "-1", "", $" Usuario: {DdlUsuario.SelectedItem.Text}") CveEstatusFactura = If(DdlEstatus.GetSelectedText = "", "", $" Estatus: {DdlEstatus.GetSelectedText}") CondicionesPago = If(DdlCondicionesPago.selectedValue = "-1", "", String.Format(" Condiciones Pago: {0}", DdlCondicionesPago.SelectedItem.Text)) Dim RutaFormato = String.Format("{0}Formatos\RepVentaDetalle.rdlc", UsuarioActual.Empresa.Ruta) Dim Archivo As New System.IO.FileInfo(RutaFormato) 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("(GPO IS NULL AND Cantidad IS NOT NULL) OR (GPO IS NOT NULL AND Cantidad IS NOT NULL)") Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("FechaInicio", FechaIn)) params.Add(New ReportParameter("FechaFin", FechaFn)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString)) params.Add(New ReportParameter("TipoDocto", TipoDocto)) params.Add(New ReportParameter("AgrupadoPor", $"Agrupado Por: {Grupo} {TipoDocto} {FechaIn} {FechaFn} {FechaIEjec} {FechaFEjec} {CveCliente} {CveSucursal} {CveSucursalEjec} {Vendedor} {CveUsuario} {CveEstatusFactura} {CondicionesPago} ")) If Imagen.Exists Then params.Add(New ReportParameter("LogoPath", logouri)) Else params.Add(New ReportParameter("LogoPath", "")) End If If Not Archivo.Exists Then RutaFormato = "Empresas/Grales/Formatos/RepVentaDetalle.rdlc" End If ImprimirPDF(RutaFormato, dt, params, String.Format("ReporteVentaDetalle-{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 Function GenerarFacturaVentaDEV(CveVenta As Integer, CveUsuario As Integer) As Byte() Return DescargarFactura(CveVenta, UsuarioActual.CveEmpresa, CveUsuario) 'Dim ObjVentas As New ClsVentas 'Dim Vta As Modelos.Factura = Nothing 'Dim TmpDTImpuestos = New DataTable 'TmpDTImpuestos.Columns.Add("ImpuestoLocal", GetType(String)) 'TmpDTImpuestos.Columns.Add("Importe", GetType(Double)) 'TmpDTImpuestos.Columns.Add("Orden", GetType(Integer)) 'If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then ' Dim dtVentas As DataTable = ObjVentas.DtResultados ' ' se rellenan los campos de la factura ' Vta = New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, Server.MapPath("/")) ' Vta.MonedaAbreviatura = dtVentas(0)("Abreviatura").ToString ' 'se rellena la sucursal ' Vta.Cliente.Sucursal = New Modelos.ClienteModel(dtVentas(0)("CveCliente").ToString.ToEntero, UsuarioActual.CveEmpresa) ' Vta.Cliente = New Modelos.ClienteModel ' Vta.Cliente.Nombre = dtVentas(0)("ClienteNombre").ToString ' Vta.Cliente.Telefono = dtVentas(0)("Telefono").ToString ' Vta.Cliente.Direccion = dtVentas(0)("ClienteDireccion").ToString ' Vta.Cliente.CP = dtVentas(0)("CPCliente").ToString ' Vta.Cliente.Ciudad = dtVentas(0)("ClienteCiudad").ToString ' Vta.Cliente.Localidad = dtVentas(0)("ClienteLocalidad").ToString ' Vta.Cliente.Estado = dtVentas(0)("ClienteEstado").ToString ' Vta.Cliente.Pais = dtVentas(0)("ClientePais").ToString ' Vta.Cliente.RFC = dtVentas(0)("ClienteRFC").ToString ' Vta.Cliente.Colonia = dtVentas(0)("ColoniaCliente").ToString ' Vta.AtencionA = dtVentas(0)("AtencionA").ToString ' Vta.Cliente.NoExt = dtVentas(0)("ClienteNoExt").ToString ' Vta.Cliente.NoInt = dtVentas(0)("ClienteNoInt").ToString ' Vta.Cliente.Codigo = dtVentas(0)("ClienteCodigo").ToString ' Vta.Cliente.Mail = dtVentas(0)("Mail").ToString ' Vta.RefDocto = dtVentas(0)("Ref").ToString ' Vta.CveVenta = dtVentas(0)("CveVenta").ToString.ToEntero ' Vta.ClienteSucursal = New Modelos.SucursalModel ' Vta.ClienteSucursal.Direccion = dtVentas(0)("SucClienteDireccion").ToString ' Vta.ClienteSucursal.NoExt = dtVentas(0)("SucClienteNoExt").ToString ' Vta.ClienteSucursal.NoInt = dtVentas(0)("SucClienteNoInt").ToString ' Vta.ClienteSucursal.Colonia = dtVentas(0)("SucClienteColonia").ToString ' Vta.ClienteSucursal.CP = dtVentas(0)("SucClienteCP").ToString ' Vta.ClienteSucursal.Municipio = dtVentas(0)("SucClienteCiudad").ToString ' Vta.ClienteSucursal.Estado = dtVentas(0)("SucClienteEstado").ToString ' Vta.ClienteSucursal.Pais = dtVentas(0)("SucClientePais").ToString ' Vta.ClienteSucursal.Localidad = dtVentas(0)("SucClienteLocalidad").ToString ' Vta.ClienteSucursal.CorreoSucursal = dtVentas(0)("SucClienteCorreo").ToString ' Vta.ClienteSucursal.TelefonoSucursal = dtVentas(0)("SucClienteTelefono").ToString ' Vta.ClienteSucursal.Sucursal = dtVentas(0)("SucursalCliente").ToString ' Vta.EnviarA = New Modelos.EnviarAModel ' Vta.EnviarA.CveDireccionEnvio = dtVentas(0)("CveDireccionEnvio").ToString.ToEntero ' Vta.EnviarA.EnvioDireccion = dtVentas(0)("EnvioDireccion").ToString ' Vta.EnviarA.EnvioColonia = dtVentas(0)("EnvioColonia").ToString ' Vta.EnviarA.EnvioCiudad = dtVentas(0)("EnvioCiudad").ToString ' Vta.EnviarA.EnvioEstado = dtVentas(0)("EnvioEstado").ToString ' Vta.EnviarA.EnvioCP = dtVentas(0)("EnvioCP").ToString ' Dim DR As DataRow = TmpDTImpuestos.NewRow() ' If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then ' If dtVentas(0)("SubTotal").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Subtotal" : DR("Importe") = dtVentas(0)("SubTotal").ToString.ToDouble : DR("Orden") = 10 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("Descuento").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Descuentos" : DR("Importe") = dtVentas(0)("Descuento").ToString.ToDouble : DR("Orden") = 20 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("Amortizacion").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Amort.Ant" : DR("Importe") = dtVentas(0)("Amortizacion").ToString.ToDouble : DR("Orden") = 30 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("SubTotal").ToString.ToDouble <> (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) Then DR("ImpuestoLocal") = "SubTotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) : DR("Orden") = 40 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("IVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "IVA" : DR("Importe") = dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 50 : TmpDTImpuestos.Rows.Add(DR) ' 'solo para eclipse, que muesre un subtotal debajo de IVA ' If UsuarioActual.CveEmpresa = 15 Then DR = TmpDTImpuestos.NewRow() : DR("ImpuestoLocal") = "Subtotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) + dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 51 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("RetIVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.IVA" : DR("Importe") = dtVentas(0)("RetIVA").ToString.ToDouble : DR("Orden") = 60 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("RetISR").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.ISR" : DR("Importe") = dtVentas(0)("RetISR").ToString.ToDouble : DR("Orden") = 70 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' If dtVentas(0)("Total").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Total" : DR("Importe") = dtVentas(0)("Total").ToString.ToDouble : DR("Orden") = 1000 : TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' End If ' If ObjVentas.GetVentaDetalle(CveVenta) Then 'Obtenemos el Detalle de la Oorden de Compra ' Vta.DtDetalle = ObjVentas.DtResultados ' End If ' If ObjVentas.GetVentaImpuestosLocales(CveVenta) Then ' If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then ' Dim dtImpuesto As DataTable = ObjVentas.DtResultados ' If dtImpuesto.Rows.Count > 0 Then ' For Each Row As DataRow In dtImpuesto.Rows ' Dim Orden = 80 ' If Row("Importe").ToString.ToDouble <> 0 Then ' DR("ImpuestoLocal") = Row("ImpuestoLocal").ToString ' DR("Importe") = Row("Importe").ToString.ToDouble ' DR("Orden") = Orden ' TmpDTImpuestos.Rows.Add(DR) ' DR = TmpDTImpuestos.NewRow() ' Orden = Orden + 1 ' End If ' Next ' End If ' Vta.DtDeduccion = TmpDTImpuestos.FiltraParametros("", Orderby:="Orden ASC") ' Else ' Vta.DtDeduccion = ObjVentas.DtResultados ' End If ' End If ' If ObjVentas.GetVentasFirmas(CveVenta) Then ' Vta.DtFirmas = ObjVentas.DtResultados ' End If 'End If 'ObjVentas.Dispose() 'If Not IsNothing(Vta) Then ' PdfFactura(Vta) ' Vta = Nothing 'End If End Function #End Region #Region "GRAFICA" 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 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 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.FiltraParametros("(GPO IS NULL AND Cantidad IS NOT NULL) OR (GPO IS NOT NULL AND Cantidad IS NOT NULL)").Rows If Not Dr("CveVenta").ToString.ToEntero > 0 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 = Newtonsoft.Json.JsonConvert.SerializeObject(query) Select Case DdlGrafica.SelectedValue.ToEntero Case 1 RegistraScript($"CargaGraficaBarras({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