From f241fd1df641c1536ce881abc1bec5ad8af0c92d Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 12:58:14 -0700 Subject: [PATCH 01/25] -- --- Contabilidad/RegPrePolizaS.aspx.vb | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index f2660112b..e55099358 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -459,7 +459,7 @@ Partial Class ContabilidadC_RegPrePolizaS TxtFechaelaboracion.Text = dr("FechaIng").ToString.ToDate.ToString("dd/MM/yyyy") TxtFechaelaboracion.ToolTip = dr("FechaIng").ToString.ToDate.ToShortTimeString CvePlantillaPoliza = dr("CvePlantillaPoliza").ToString.ToEntero - DdlPlantilla.SelectedValue = CvePlantillaPoliza.ToString + DdlPlantilla.SelectedValueExist(CvePlantillaPoliza) HplImprimirPDF.NavigateUrl = $"/Compras/PopUpVerFactura.aspx?P={Encripta($"OP=PREPO&CvePrePoliza={CvePrePoliza}")}" HplImprimirPDF.Visible = True If UsuarioActual.CveRol = 1 Then TxtUsuarioElaboro.ToolTip = dr("Modulo").ToString @@ -579,20 +579,16 @@ Partial Class ContabilidadC_RegPrePolizaS Private Sub CargaPlantillas(TipoPlantilla As Integer) - 'GvPlantillas.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) - 'GvPlantillas.DataBind() + Dim dtt As DataTable = Nothing If UsuarioActual.CveEmpresa.Contiene(120) Then - DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1) - DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1) - + dtt = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, -1) Else - DdlPlantilla.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) - DdlPlantilla2.DataSource = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) - + dtt = GlobalDTContaPlantillasPolizas(UsuarioActual.CveEmpresa, TipoPlantilla) End If - + DdlPlantilla.DataSource = dtt + DdlPlantilla2.DataSource = dtt DdlPlantilla.DataBind() DdlPlantilla.Items.Insert(0, New ListItem("Plantilla Personalizada", "53")) @@ -1722,9 +1718,7 @@ Partial Class ContabilidadC_RegPrePolizaS If dr("EsMonedaExtranjera").ToString = "True" Then dr("ImporteME") = TxtME.Text.ToDecimal End If - If DdlPorcentajeIVAE.Visible Then - dr("PorcentajeImpuesto") = DdlPorcentajeIVAE.SelectedValue.ToDecimal - End If + If DdlPorcentajeIVAE.Visible Then dr("PorcentajeImpuesto") = DdlPorcentajeIVAE.SelectedValue.ToDecimal If TxtCargoE.Text <> "" Then dr("Cargo") = TxtCargoE.Text.ToDecimal : dr("Abono") = 0 @@ -1743,7 +1737,7 @@ Partial Class ContabilidadC_RegPrePolizaS GvPrePoliza.DataBind() UpPrePoliza.Update() GvPrePoliza.Visible = True - If IndiceGrid > 0 Then GvPrePoliza.Rows(IndiceGrid).FCCheckBox("chkModificado").Checked = True + If IndiceGrid >= 0 Then GvPrePoliza.Rows(IndiceGrid).FCCheckBox("chkModificado").Checked = True TxtTotalCargos.Text = DtMovimientos.SUMD("Cargo").ToString.FormatoNumero TxtTotalAbonos.Text = DtMovimientos.SUMD("Abono").ToString.FormatoNumero From 507d0064140c445efeaf1ccd4442bfd562cf8b26 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 12:58:26 -0700 Subject: [PATCH 02/25] - --- Ventas/CatImpuestosLocales.aspx.vb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Ventas/CatImpuestosLocales.aspx.vb b/Ventas/CatImpuestosLocales.aspx.vb index 9c236d2a6..407d49483 100644 --- a/Ventas/CatImpuestosLocales.aspx.vb +++ b/Ventas/CatImpuestosLocales.aspx.vb @@ -60,7 +60,7 @@ Partial Class Ventas_CatImpuestosLocales End Sub Private Sub CargaCuentasContables() - If UsuarioActual.Empresa.UsaContabilidad OrElse UsuarioActual.Empresa.UsaAC Then + If UsuarioActual.Empresa.TipoContabilidad = 2 OrElse UsuarioActual.Empresa.UsaAC Then Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) 'UsuarioActual.Empresa.Funcionalidad(208).ToEntero If ObjContabilidad.GetCuentasRecursiva(1, 1) Then @@ -82,7 +82,7 @@ Partial Class Ventas_CatImpuestosLocales Protected Sub GvImpuestos_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles GvImpuestos.RowDeleting Dim ObjVentas As New ClsVentas() - Dim TieneError = False + Dim TieneError As Boolean = False Dim CveImpuesto As Integer = GvImpuestos.Rows(e.RowIndex).DataKey("CveImpuestoLocal").ToEntero @@ -155,7 +155,7 @@ Partial Class Ventas_CatImpuestosLocales Private Sub BtnAgregarImpuesto_Click(sender As Object, e As EventArgs) Handles BtnAgregarImpuesto.Click Dim ObjVentas As New ClsVentas - Dim Estatus = 0 + Dim Estatus As Integer = 0 If CveImpuestoLocal = -1 Then If ChkEstatus.Checked Then Estatus = 1 @@ -169,11 +169,11 @@ Partial Class Ventas_CatImpuestosLocales TxtImpuesto.Focus() Else If CveImpuestoLocal <> -1 Then - Dim TieneError = False + Dim TieneError As Boolean = False Dim Impuesto As String = TxtImpuesto.Text.Trim Dim Porcentaje As Decimal = TxtPorcentaje.Text.ToDecimal - Dim Orden = TxtOrden.Text.ToEntero - Dim TipoImpuesto = DdlTipoImpuesto.SelectedValue.ToEntero + Dim Orden As Integer = TxtOrden.Text.ToEntero + Dim TipoImpuesto As Integer = DdlTipoImpuesto.SelectedValue.ToEntero If ChkEstatus.Checked Then Estatus = 1 If Not ObjVentas.UpdateImpuestosLocales(CveImpuestoLocal, Impuesto, Porcentaje, Orden, TipoImpuesto, Estatus, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero) Then From 9fac0b8ac99ce307be2e1fb3cfde8da9e050ee65 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 14:20:04 -0700 Subject: [PATCH 03/25] - dll. para carta porte 3.0 --- Bin/GoCfdi.dll | Bin 483328 -> 527360 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll index 73bf07e1ec9810aebbf49e05b6c5f187e32f005c..732b2112351e82e0783e4165edb5058cd38ab679 100644 GIT binary patch delta 91958 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 LpLro+XR-NTL+={9 delta 80165 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 Vrg-?=A-a8eOsMxuV{uE*{{z^;KF0t6 From 4fc6b1d7bf05ea2e6f7d4c3fb2f31dd220403874 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 18:08:53 -0700 Subject: [PATCH 04/25] - --- Compras/Compras.aspx.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index c6a2fd3ed..ef64bf4d7 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -19745,7 +19745,7 @@ Partial Class Compras_Compras Dim DTInventarios As DataTable = ObjInventarios.DtResultados If DTInventarios.Rows.Count > 0 Then - Dim DTMovimientos As DataTable = DTInventarios.FiltraParametros("", "", {"CVeMovimiento"}) + Dim DTMovimientos As DataTable = DTInventarios.FiltraParametros("", "", {"CveMovimiento"}) For Each diRow As DataRow In DTMovimientos.Rows @@ -19789,7 +19789,7 @@ Partial Class Compras_Compras SBEliminacionCompra.Append($"-Cantidad: {dRow("Cantidad").ToString.ToDecimal().ToString("###,###,###.00") }, PS: {dRow("PS")}, Obs: {dRow("Obs")}, Sub Proyecto: {dRow("SubProyecto")}, Tipo Gasto: {dRow("TipoGasto")}, IVA: {dRow("IVA").ToString.ToDecimal.ToString("###,###,###.00")}, IEPSPS: {dRow("IEPSPS").ToString.ToDecimal.ToString("###,###,###.00") }
") Next - If Not ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, CveCompra, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, + If Not ErrorCompra AndAlso Not ObjGral.AddHistorialBitacora(Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, CveCompra, Nothing, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 1, TxtModalEliminarCompraDescripcion.Text, "Compras", SBEliminacionCompra.ToString) Then ErrorCompra = True End If From d3938c94d0c7bd2d85f0ce5892a381549b847c81 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 18:09:51 -0700 Subject: [PATCH 05/25] - --- Compras/RepComprasAF.aspx.vb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Compras/RepComprasAF.aspx.vb b/Compras/RepComprasAF.aspx.vb index 360e706c8..0448dfd73 100644 --- a/Compras/RepComprasAF.aspx.vb +++ b/Compras/RepComprasAF.aspx.vb @@ -60,19 +60,19 @@ Partial Class Compras_RepComprasAF DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() - DdlProveedores.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlProveedores.Items.Insert(0, New ListItem("Todos", "-1")) DdlMonedas.DataSource = GlobalDTMonedas() DdlMonedas.DataBind() - DdlMonedas.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlMonedas.Items.Insert(0, New ListItem("Todos", "-1")) DdlTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo") DdlTipoActivoFijo.DataBind() - DdlTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlTipoActivoFijo.Items.Insert(0, New ListItem("Todos", "-1")) DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") DdlClasificacion.DataBind() - DdlClasificacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlClasificacion.Items.Insert(0, New ListItem("Todos", "-1")) Dim ObjClasificacion As New ClsClasificaciones @@ -85,11 +85,11 @@ Partial Class Compras_RepComprasAF ObjClasificacion.Dispose() DdlClasificacion2.DataBind() - DdlClasificacion2.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlClasificacion2.Items.Insert(0, New ListItem("Todos", "-1")) DdlActivoFijo.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa) DdlActivoFijo.DataBind() - DdlActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlActivoFijo.Items.Insert(0, New ListItem("Todos", "-1")) CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, LblProyecto, LblSubProyecto, divProyecto:=DivProyecto) From 6fece1a750bcbe2d2c2c942b6e9638e9bf21257a Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 4 Dec 2023 18:10:12 -0700 Subject: [PATCH 06/25] - --- Ventas/Clientes.aspx.vb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb index 34e5ce3ae..3f38cf00d 100644 --- a/Ventas/Clientes.aspx.vb +++ b/Ventas/Clientes.aspx.vb @@ -9197,8 +9197,7 @@ Partial Class Clientes TmpDT.Columns.Add("TotalImporte", GetType(Decimal)) TmpDT.Columns.Add("Total", GetType(Decimal)) 'Para uso del módulo contable - TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer)) - TmpDT.Columns.Add("IdCtaContVentas", GetType(Integer)) + TmpDT.Columns.Add("AsientoContableVentas", GetType(Integer)) TmpDT.Columns.Add("AplicaParaConcepto", GetType(Boolean)) TmpDT.Columns.Add("CveProyecto", GetType(Integer)) TmpDT.Columns.Add("Proyecto", GetType(String)) From 0ff5e2851f674e8cf67e32e6e540957b0087f292 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 6 Dec 2023 15:40:23 -0700 Subject: [PATCH 07/25] - --- Inventarios/EntradasSalidas.aspx.vb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 5c0405d79..55170195e 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -1937,9 +1937,7 @@ Partial Class Inventarios_EntradasSalidas CveConceptoContable = 181 TipoMovtoOtro = False If DdlSubProyecto.Visible = True AndAlso DdlSubProyecto.SelectedValue.ToEntero > 0 Then tCveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero - 'If UsuarioActual.Empresa.Funcionalidad(342).ToEntero > 0 Then - ' IdCtaContableOtro = UsuarioActual.Empresa.Funcionalidad(342).ToEntero - 'End If + Case 34 CveConceptoContable = 51 EsContabilizable = True @@ -3901,9 +3899,6 @@ Partial Class Inventarios_EntradasSalidas ' Exit For ' End If ' Else - ' If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - ' IdCtaContable = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero - ' End If ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorInventario, Concepto, 176, Concepto, TxtFecha.Text.ToDate, IdCtaContable, -1, CveVenta:=CveVenta, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=ValorInventario, CveOC:=HdnCveOrdenCompra.Value.ToEntero, CveOCDetalle:=RowOC("CveOrdenCompraDetalle").ToString.ToEntero) Then ' ErrorMovInv = True @@ -5486,7 +5481,6 @@ Partial Class Inventarios_EntradasSalidas tCveSubProyecto = drAlmacenVirtual("CveSubProyecto").ToString.ToEntero End If - 'VERIFICA SI TIENE ALMACEN VIRTUAL If CveAlmacenVirtual > 0 Then If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then @@ -5528,6 +5522,9 @@ Partial Class Inventarios_EntradasSalidas End If End If + End If + End If + Catch ex As Exception ErrorMovInv = True End Try From 1da10419c97dcc7129c02c4ee2174425b05b4aa5 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 6 Dec 2023 19:42:19 -0700 Subject: [PATCH 08/25] =?UTF-8?q?--=20correcci=C3=B3n=20en=20paquetes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/ProductosServicios.aspx | 6 +++--- Ventas/ProductosServicios.aspx.vb | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Ventas/ProductosServicios.aspx b/Ventas/ProductosServicios.aspx index 5da6f5a23..d3dce6a85 100644 --- a/Ventas/ProductosServicios.aspx +++ b/Ventas/ProductosServicios.aspx @@ -1404,7 +1404,7 @@ Cantidad Producto - U.M. + U.M. Tipo Comandos @@ -1423,7 +1423,7 @@ - + @@ -1440,7 +1440,7 @@ - + diff --git a/Ventas/ProductosServicios.aspx.vb b/Ventas/ProductosServicios.aspx.vb index ef22ae7ed..11d94c44e 100644 --- a/Ventas/ProductosServicios.aspx.vb +++ b/Ventas/ProductosServicios.aspx.vb @@ -1321,7 +1321,7 @@ Partial Class ProductosyServicios End If txtCantidad.Text = "" - DdlProductows.ddl.SelectedIndex = 0 + DdlProductows.ddl.SelectedIndex = -1 ddlUnidad.SelectedIndex = 0 ddlTipo.SelectedIndex = 0 End If From c74eef479ecae73fea8afa4ba2f5ff769fe30116 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 12:24:28 -0700 Subject: [PATCH 09/25] =?UTF-8?q?-=20parametro=20p=C3=A1gina=20en=20alta?= =?UTF-8?q?=20cliente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- General/SaldosIniciales.aspx.vb | 52 +++++++++++++++++---------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index fe266b6b4..2796721dc 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -1105,8 +1105,6 @@ Partial Class General_SaldosIniciales End If End If - - If ErrorProv Then Alert($"Errores detectados
{sbErrores.ToString()}", TipoMensaje.MsgAdvertencia) Exit For @@ -1241,7 +1239,6 @@ Partial Class General_SaldosIniciales For Each Row As DataRow In dt.FiltraParametros("RFC <> ''").Rows NumRow = NumRow + 1 - Dim Codigo As String = Row("Codigo").ToString() Dim RazonSocial As String = Row("RazonSocial").ToString() Dim RFC As String = Row("RFC").ToString().Trim @@ -1252,13 +1249,12 @@ Partial Class General_SaldosIniciales Dim CodigoPostal As String = Row("Código Postal").ToString() Dim Poblacion As String = Row("Población").ToString() Dim Estado As String = Row("Estado").ToString().Trim - Dim Pais As String = Row("Pais").ToString() + Dim Pais As String = If(dt.Columns.Contains("Pais"), Row("Pais").ToString(), "") Dim Telefono As String = Row("Teléfono").ToString().Replace("-", "").Replace(" ", "").Replace("(", "").Replace(")", "") - Dim Contacto As String = Row("Contacto").ToString() + Dim Contacto As String = If(dt.Columns.Contains("Contacto"), Row("Contacto").ToString(), "") - - Dim Vendedor As String = Row("Vendedor").ToString() - Dim Clasificacion As String = Row("ClasificacionCliente").ToString() + Dim Vendedor As String = If(dt.Columns.Contains("Vendedor"), Row("Vendedor").ToString(), "") + Dim Clasificacion As String = If(dt.Columns.Contains("ClasificacionCliente"), Row("ClasificacionCliente").ToString(), "") Dim CveCliente As Integer = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveCliente", $"RFC = '{RFC}'").ToString().ToEntero() Dim CveVendedor As Integer = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveVendedor", $"Vendedor = '{Vendedor}'").ToString().ToEntero() @@ -1267,16 +1263,27 @@ Partial Class General_SaldosIniciales Dim CargoUsado As Boolean = If(dt.Columns.Contains("Cargo Usados"), If(Row("Cargo Usados").ToString().ToUpper = "SI", True, False), False) Dim BonificacionUsado As Boolean = If(dt.Columns.Contains("EmitirBon Usado"), If(Row("EmitirBon Usado").ToString().ToUpper = "SI", True, False), False) - Dim LimiteCredito As Decimal = Row("Limite Credito").ToString().ToDecimal - Dim CobranzaCorreo As String = Row("CorreoPagos").ToString() - Dim PlazoCobranza As Integer = Row("Plazo Cobranza").ToString().ToEntero() + Dim LimiteCredito As Decimal = If(dt.Columns.Contains("Limite Credito"), Row("Limite Credito").ToString(), "").ToDecimal + Dim CobranzaCorreo As String = If(dt.Columns.Contains("CorreoPagos"), Row("CorreoPagos").ToString(), "") + Dim PlazoCobranza As Integer = If(dt.Columns.Contains("Plazo Cobranza"), Row("Plazo Cobranza").ToString(), "").ToEntero Dim DìaVisita As String = If(dt.Columns.Contains("Dia Pago"), Row("Dia Pago").ToString(), "") Dim DiasPagoEspecifico As String = If(dt.Columns.Contains("Dìa Visita"), Row("Dìa Visita").ToString(), "") - Dim CobranzaContacto As String = If(dt.Columns.Contains("Encargado Pagoa"), Row("Encargado Pago").ToString(), "") - Dim CobranzaTelefono As String = Row("Celular Contacto").ToString().Replace("-", "").Replace(" ", "").Replace("(", "").Replace(")", "") - Dim CveUsoCFDI As Integer = If(Row("UsoCFDI").ToString() = "", -1, GlobalDTSATUsosCFDI().FiltroPrimeroValor("CveUsoCFDI", String.Format("UsoCFDI = '{0}'", Row("UsoCFDI").ToString())).ToEntero()) + Dim CobranzaContacto As String = If(dt.Columns.Contains("Encargado Pago"), Row("Encargado Pago").ToString(), "") + Dim CobranzaTelefono As String = If(dt.Columns.Contains("Celular Contacto"), Row("Celular Contacto").ToString(), "").Replace("-", "").Replace(" ", "").Replace("(", "").Replace(")", "") + Dim CveUsoCFDI As Integer = If(Row("UsoCFDI").ToString() = "", -1, GlobalDTSATUsosCFDI().FiltroPrimeroValor("CveUsoCFDI", String.Format("UsoCFDI = '{0}' OR UsoCFDIDescripcion = '{0}'", Row("UsoCFDI").ToString())).ToEntero()) Dim CuentaContable As String = If(dt.Columns.Contains("CuentaContable"), Row("CuentaContable").ToString(), "") + Dim RegimenSociedad As String = If(dt.Columns.Contains("RegimenSociedad"), Row("RegimenSociedad").ToString(), "") + Dim Pagina As String = If(dt.Columns.Contains("Pagina"), Row("Pagina").ToString(), "") + Dim CodigoRegimenFiscal As String = Row("RegimenFiscal").ToString() + Dim CveRegimenFiscal As Integer = 0 + + If CodigoRegimenFiscal.Trim.Length > 0 Then + CveRegimenFiscal = GlobalDTRegimenesFiscales.FiltroPrimeroValor("CveRegimenFiscal", $"CodigoRegimenFiscal= '{CodigoRegimenFiscal}' ").ToEntero() + If Not CveRegimenFiscal > 0 Then + sbErrores.AppendLine($"Proveedor {RazonSocial} Codigo RegimenFiscal {CodigoRegimenFiscal} invalido.
") + End If + End If CuentaContable = CuentaContable.Trim.Replace("-", "").Replace(" ", "") If CuentaContable.Length > 0 Then @@ -1289,15 +1296,9 @@ Partial Class General_SaldosIniciales End If 'Telefono + If Telefono.Trim.Length > 10 Then Telefono = "" - If Telefono.Trim.Length > 10 Then - Telefono = "" - End If - - If CobranzaTelefono.Trim.Length > 10 Then - - CobranzaTelefono = "" - End If + If CobranzaTelefono.Trim.Length > 10 Then CobranzaTelefono = "" Dim FormaPago As String = If(dt.Columns.Contains("Forma Pago"), Row("Forma Pago").ToString(), "") Dim CveFormaPago33 As Integer = 99 @@ -1380,11 +1381,12 @@ Partial Class General_SaldosIniciales ExisteCliente = True Contador = Contador + 1 Else - Dim CveSATEstado As Integer = GlobalDTGralEstados("MEX").FiltroPrimeroValor("CveSATEstado", String.Format(" NombreEstado ='{0}'", Estado.ToUpper)).ToEntero() + Dim CveSATEstado As Integer = GlobalDTGralEstados("-1").FiltroPrimeroValor("CveSATEstado", String.Format(" NombreEstado ='{0}'", Estado.ToUpper)).ToEntero() - If Not ObjClientes.AddCliente(RazonSocial, RazonSocial, Calle, NumExt.ToString(), NumInt, Colonia, Poblacion, Poblacion, Estado, Pais, RFC, CodigoPostal, Telefono, Contacto, "", "", "", "", "", -1, False, 0, 0, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", CveVendedor, PlazoCobranza, -1, + If Not ObjClientes.AddCliente(RazonSocial, RazonSocial, Calle, NumExt.ToString(), NumInt, Colonia, Poblacion, Poblacion, Estado, Pais, RFC, CodigoPostal, Telefono, Contacto, "", "", "", Pagina, "", -1, False, 0, 0, False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, "", CveVendedor, PlazoCobranza, -1, "-1", "-1", "-1", Codigo, LimiteCredito, False, "", "", "", False, "", "", "", "", "", False, "", "", "", False, 0, -1, EsDistribuidor:=EsDistribuidor, CveClienteClasificacion:=CveClasificación, CargoUsado:=CargoUsado, - BonificacionUsado:=BonificacionUsado, CobranzaContacto:=CobranzaContacto, CobranzaCorreo:=CobranzaCorreo, DiasEspecifico:=DiasPagoEspecifico, DiasRevision:=DìaVisita, CobranzaTelefono:=CobranzaTelefono, CveFormaPago:=CveFormaPago33, CveUsoCFDI:=CveUsoCFDI, CveSATEstado:=CveSATEstado, CveAdminTrayecto:=0) Then + BonificacionUsado:=BonificacionUsado, CobranzaContacto:=CobranzaContacto, CobranzaCorreo:=CobranzaCorreo, DiasEspecifico:=DiasPagoEspecifico, DiasRevision:=DìaVisita, CobranzaTelefono:=CobranzaTelefono, CveFormaPago:=CveFormaPago33, CveUsoCFDI:=CveUsoCFDI, CveSATEstado:=CveSATEstado, CveAdminTrayecto:=0, + RegimenSociedad:=RegimenSociedad, CveRegimenFiscal:=CveRegimenFiscal) Then ErrorClientes = True RFC.GuardaLog From 7e6e7940a272cae7392acc259e3baac38d0300b2 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:06:54 -0700 Subject: [PATCH 10/25] - --- Contabilidad/RegPrePolizaS.aspx.vb | 93 +++++++++++++++--------------- 1 file changed, 48 insertions(+), 45 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index e55099358..0073d92ad 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -271,10 +271,18 @@ Partial Class ContabilidadC_RegPrePolizaS Beneficiario = "-1" Actualizar = False IdPoliza = -1 + TipoPlantilla = -1 + If IfNull(Request("Tipo"), "").ToString = "Ing" Then + TipoPlantilla = 1 + LblEncabezado.Text = "Otros Ingresos" + End If CargaPlantillas(TipoPlantilla) CargaConceptosContablesE() CargaModalConceptoCuentas() + CargaConceptos() + CargaSubProyectos() + CargaCuentasBancos() If IfNull(Request("Tipo"), "").ToString = "NOMPROV" Then DivTipoGasto.Visible = True @@ -346,20 +354,6 @@ Partial Class ContabilidadC_RegPrePolizaS End If - TipoPlantilla = -1 - If IfNull(Request("Tipo"), "").ToString = "Ing" Then - TipoPlantilla = 1 - LblEncabezado.Text = "Otros Ingresos" - End If - - - - 'If UsuarioActual.CveRol = 1 Then trNotificar.Visible = True - - CargaConceptos() - CargaSubProyectos() - CargaCuentasBancos() - 'crea tabla temporal ArregloMovs = New ArrayList If IfNull(Request("Tipo"), "").ToString <> "NOMPROV" Then @@ -882,7 +876,7 @@ Partial Class ContabilidadC_RegPrePolizaS e.Row.FCLinkButton("ImgBancos").Visible = True If e.Row.DataKey("ContadoTipoTransaccion").ToEntero > 0 And e.Row.DataKey("ContadoCuenta").ToEntero > 0 And e.Row.DataKey("ContadoNumeroFolio").ToString.Length > 0 And - e.Row.DataKey("ContadoImporte").ToDecimal > 0 And e.Row.DataKey("ContadoBeneficiario").ToString.Length > 0 Then + e.Row.DataKey("ContadoBeneficiario").ToString.Length > 0 Then e.Row.FCLinkButton("ImgBancos").CssClass = "btn btn-circle btn-sm green" End If End If @@ -905,10 +899,17 @@ Partial Class ContabilidadC_RegPrePolizaS TotalCargos = TxtTotalCargos.Text.ToDecimal TotalAbonos = TxtTotalAbonos.Text.ToDecimal Else - For Each Gvr As GridViewRow In GvMov.Rows - TotalCargos += Gvr.FCTextBox("TxtCargo").Text.ToDecimal - TotalAbonos += Gvr.FCTextBox("TxtAbono").Text.ToDecimal - Next + If GvPrePoliza.Visible Then + For Each Gvr As GridViewRow In GvPrePoliza.Rows + TotalCargos += Gvr.DataKey("Cargo").ToDecimal + TotalAbonos += Gvr.DataKey("Abono").ToDecimal + Next + Else + For Each Gvr As GridViewRow In GvMov.Rows + TotalCargos += Gvr.FCTextBox("TxtCargo").Text.ToDecimal + TotalAbonos += Gvr.FCTextBox("TxtAbono").Text.ToDecimal + Next + End If End If 'validaciones @@ -974,28 +975,6 @@ Partial Class ContabilidadC_RegPrePolizaS 'inserto las compras que voy a pagarDdlSaldos For Each gvr As GridViewRow In Gv.Rows - 'Registra movimieno bancario - If gvr.DataKey("CveConceptoContable").ToEntero = 30 AndAlso (gvr.DataKey("ContadoImporte").ToDecimal <> 0 OrElse TipoGrid = 1) Then - Dim tFolio As String = gvr.DataKey("ContadoNumeroFolio").ToString - If tFolio.ToEntero = 0 Then tFolio = SiguienteFolioBancos(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero) - - Dim tCveMoneda As Integer = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCuenta.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda").ToEntero - - CveIE = ObjIE.AddBancos_IE(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero, TxtFechaDocumento.Text.ToDate, tFolio, - gvr.DataKey("ContadoBeneficiario"), gvr.DataKey("ContadoImporte").ToDecimal, tCveMoneda, 0, gvr.DataKey("ContadoObservaciones"), "", - False, False, 0, CvePrePolizaInsertada, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - If CveIE < 0 Then - MsgError = "No se pudo registrar movimiento bancario" - Exit For - Else - If tFolio <> "0" Or tFolio <> "" Then - FolioIE = tFolio - Else - FolioIE = ObjIE.Folio - End If - End If - End If - ImporteME = 0 TipoCambio = 1 @@ -1035,6 +1014,7 @@ Partial Class ContabilidadC_RegPrePolizaS End If End If + If Not gvr.DataKey("CveConceptoContable").Contiene("30", "10", "204") Then ' 30-bancos, 10-anticipos proveedores, 204- blancos complementaria If gvr.DataKey("CveConceptoContable").ToEntero = 41 Then CveIE = gvr.FCDropDownList("DdlSaldos").SelectedValue.ToEntero @@ -1043,6 +1023,29 @@ Partial Class ContabilidadC_RegPrePolizaS End If End If + 'Registra movimieno bancario + If gvr.DataKey("CveConceptoContable").ToEntero = 30 Then + Dim tFolio As String = gvr.DataKey("ContadoNumeroFolio").ToString + If tFolio.ToEntero = 0 Then tFolio = SiguienteFolioBancos(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero) + + Dim tCveMoneda As Integer = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCuenta.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda").ToEntero + + CveIE = ObjIE.AddBancos_IE(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero, TxtFechaDocumento.Text.ToDate, tFolio, + gvr.DataKey("ContadoBeneficiario"), Importe, tCveMoneda, 0, gvr.DataKey("ContadoObservaciones"), "", + False, False, 0, CvePrePolizaInsertada, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + If CveIE < 0 Then + MsgError = "No se pudo registrar movimiento bancario" + Exit For + Else + If tFolio <> "0" Or tFolio <> "" Then + FolioIE = tFolio + Else + FolioIE = ObjIE.Folio + End If + End If + End If + + If Importe <> 0 OrElse TipoGrid = 1 Then 'si es diferente de cero o si viene de grid prepolizas, que registre todo Dim tCveCuenta As Integer = gvr.DataKey("CveCuenta").ToEntero Dim tReferencia, tConcepto As String @@ -1688,8 +1691,8 @@ Partial Class ContabilidadC_RegPrePolizaS dr("CveConceptoContable") = DdlConceptosContablesE.SelectedValue dr("Concepto") = TxtConceptoE.Text dr("Referencia") = TxtReferenciaE.Text - dr("TipoMovto") = If(Math.Abs(TxtCargoE.Text.ToDecimal) > 0, False, True) - dr("ImporteMN") = If(Math.Abs(TxtCargoE.Text.ToDecimal) > 0, TxtCargoE.Text.ToDecimal, TxtAbonoE.Text.ToDecimal) + dr("TipoMovto") = If(Math.Abs(TxtCargoE.Text.ToDecimal) <> 0, False, True) + dr("ImporteMN") = If(Math.Abs(TxtCargoE.Text.ToDecimal) <> 0, TxtCargoE.Text.ToDecimal, TxtAbonoE.Text.ToDecimal) dr("CveSubProyecto") = DdlSubProyectoE.SelectedValue dr("SubProyecto") = DdlSubProyectoE.SelectedItem.Text dr("CveClasificacion") = DdlClasificacionesE.SelectedValue.ToEntero @@ -1707,7 +1710,7 @@ Partial Class ContabilidadC_RegPrePolizaS dr("ContadoNumeroFolio") = TxtModalConceptoDocumentoFolio.Text dr("ContadoBeneficiario") = TxtModalConceptoDocumentoBeneficiario.Text dr("ContadoObservaciones") = TxtModalConceptoDocumentoObservaciones.Text - dr("ContadoImporte") = TxtModalConceptoDocumentoImporte.Text.ToDecimal + 'dr("ContadoImporte") = TxtModalConceptoDocumentoImporte.Text.ToDecimal If DdlComprasE.Visible = True AndAlso DdlComprasE.SelectedValue.ToEntero > 0 Then dr("FolioFactura") = DdlComprasE.SelectedItem.ToString() If DdlVentasE.Visible = True AndAlso DdlVentasE.SelectedValue.ToEntero > 0 Then dr("FolioFactura") = DdlVentasE.SelectedItem.ToString() @@ -1720,7 +1723,7 @@ Partial Class ContabilidadC_RegPrePolizaS If DdlPorcentajeIVAE.Visible Then dr("PorcentajeImpuesto") = DdlPorcentajeIVAE.SelectedValue.ToDecimal - If TxtCargoE.Text <> "" Then + If TxtCargoE.Text <> "" AndAlso TxtCargoE.Text.ToDecimal <> 0 Then dr("Cargo") = TxtCargoE.Text.ToDecimal : dr("Abono") = 0 Else dr("Abono") = TxtAbonoE.Text.ToDecimal : dr("Cargo") = 0 From 1bf654c9d666ee7fcd47d539902aeed2c13f9069 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:08:59 -0700 Subject: [PATCH 11/25] - mejora --- Ventas/PVCobranza.aspx | 104 ++++++++++++++++++++++++-------------- Ventas/PVCobranza.aspx.vb | 104 ++++++++++++++++++++++++++++---------- 2 files changed, 143 insertions(+), 65 deletions(-) diff --git a/Ventas/PVCobranza.aspx b/Ventas/PVCobranza.aspx index 30d86e5aa..f9d40297c 100644 --- a/Ventas/PVCobranza.aspx +++ b/Ventas/PVCobranza.aspx @@ -38,47 +38,48 @@ - + +
+ Fecha Inicio Docto: +
+
+
+ + + + +
+ + + + + + +
+
+ Fecha Fin Docto: +
+
+
+ + + + +
+ + + + + + +
@@ -257,7 +258,7 @@
$ - +
@@ -271,7 +272,8 @@
- + +
@@ -287,5 +289,31 @@ - + diff --git a/Ventas/PVCobranza.aspx.vb b/Ventas/PVCobranza.aspx.vb index 660217f72..fa46e1e24 100644 --- a/Ventas/PVCobranza.aspx.vb +++ b/Ventas/PVCobranza.aspx.vb @@ -7,9 +7,20 @@ Imports Extensiones Partial Class Ventas_PVCobranza Inherits ClsPaginas + Private Property CveCorte As Integer + Get + Return ViewState("CveCorte").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveCorte") = value + End Set + End Property + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then + CveCorte = 0 CargaFiltros() + CargaCorteCaja() End If End Sub @@ -18,7 +29,7 @@ Partial Class Ventas_PVCobranza DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) DdlSubProyecto.DataBind() - txtFechaI.Text = Now.AddDays(-7).ToShortDateString + txtFechaI.Text = Now.AddDays(-1).ToShortDateString txtFechaF.Text = Now.ToShortDateString 'DdlCuentaEfectivo.Items.Clear() @@ -34,19 +45,11 @@ Partial Class Ventas_PVCobranza 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DdlCuentaEfectivo.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1 AND TieneTerminal = 0", CveMon)) DdlCuentaCheque.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1 AND TieneTerminal = 0", CveMon)) - 'Else - ' DdlCuentaEfectivo.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", CveMon)) - ' DdlCuentaCheque.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1", CveMon)) - 'End If + 'If UsuarioActual.Empresa.Funcionalidad(558) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DdlCuentaTarjetaCredito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1 AND TieneTerminal = 1", CveMon)) DdlCuentaTarjetaDebito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta = 1 AND TieneTerminal = 1", CveMon)) - 'Else - ' DdlCuentaTarjetaCredito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND (CveTipoCuenta <> 1 OR TieneTerminal = 1)", CveMon)) - 'DdlCuentaTarjetaDebito.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND (CveTipoCuenta <> 1 OR TieneTerminal = 1)", CveMon)) - 'End If - DdlCuentaTransferencia.DataSource = DtCC.FiltraParametros(String.Format("CveMoneda = {0} AND CveTipoCuenta <> 1", CveMon)) DtCC.Dispose() @@ -56,6 +59,28 @@ Partial Class Ventas_PVCobranza DdlCuentaTarjetaDebito.DataBind() DdlCuentaCheque.DataBind() DdlCuentaTransferencia.DataBind() + TxtImporteEfectivo.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + TxtImporteCredito.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + TxtImporteDebito.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + TxtImporteCheque.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + TxtImporteTransferencia.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + TxtImporteOtrosContado.Attributes.Add("onKeyUp", "CalculaTotalPagoContado();") + + End Sub + + Private Sub CargaCorteCaja() + Dim DebeCerrarCorte As Boolean = False + 'Checar si hay un Turno Abierto + Dim ObjPVenta As New ClsPuntoVenta + + If ObjPVenta.GetVta_Cortes("-1", "-1", UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, 0) Then + + If ObjPVenta.DtResultados.Rows.Count > 0 Then + CveCorte = ObjPVenta.CveCorte + End If + End If + ObjPVenta.Dispose() + End Sub @@ -65,21 +90,27 @@ Partial Class Ventas_PVCobranza Dim FechaI, FechaF As Date FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha).AddDays(1) + If ObjMovtos.GetRemisionesCobranza(UsuarioActual.CveEmpresa, DdlSubProyecto.SelectedValue.ToEntero, FechaI, FechaF) Then - If ObjMovtos.GetCxCDetalle(FechaI, FechaF, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, -1, "-1", "-1", -1, "-1", -1, - "-1", 1, UsuarioActual.CveEmpresa, -1, 1, - TipoDocto:="Rem", FechaCorte:=NowADS.AddDays(1), CveUsuarioConsulta:=UsuarioActual.CveUsuario, AplicaAnticiposPagados:=0) Then - - Dim dtt As DataTable = ObjMovtos.DSResultados.Tables(0).FiltraParametros($"CveVenta > 0 AND (CveUsuarioCobranza IS NULL OR CveUsuarioCobranza = {UsuarioActual.CveUsuario})") + Dim dtt As DataTable = ObjMovtos.DtResultados.FiltraParametros($"CveVenta > 0 AND (CveUsuarioCobranza IS NULL OR CveUsuarioCobranza = {UsuarioActual.CveUsuario})") 'si hay ya asignado, solo la mostrará Dim Dtta As DataTable = dtt.FiltraParametros($"CveUsuarioCobranza = {UsuarioActual.CveUsuario}") If Dtta IsNot Nothing AndAlso Dtta.Rows.Count > 0 Then dtt = Dtta GvDatos.DataSource = dtt End If + ObjMovtos.Dispose() GvDatos.DataBind() UpL.Update() + TxtImporteEfectivo.Text = "" + TxtImporteCredito.Text = "" + TxtImporteDebito.Text = "" + TxtImporteCheque.Text = "" + TxtImporteTransferencia.Text = "" + TxtImporteOtrosContado.Text = "" + TxtCambio.Text = "" + End Sub Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click @@ -109,7 +140,9 @@ Partial Class Ventas_PVCobranza TieneError = True End If HdnCveVenta.Value = CveVenta.ToString - TxtImporteEfectivo.Text = GvRow.DataKey("Saldo") + TxtImporteEfectivo.Text = GvRow.DataKey("Saldo").FormatoNumero + TxtImporteContado.Text = GvRow.DataKey("Saldo").FormatoNumero + HdnTotal.Value = GvRow.DataKey("Saldo") TxtImporteEfectivo.Focus() LtlNombre.Text = GvRow.DataKey("DescripcionVenta") LtlSaldo.Text = GvRow.DataKey("Saldo").ToDecimal.FormatoNumero @@ -164,26 +197,38 @@ Partial Class Ventas_PVCobranza Dim ObjConta As New ClsContabilidad Dim ObjIE As New ClsBancos(ObjConta.IniciaTransacSQL()) + Dim ObjVentas2 As New ClsVentas(ObjConta.IniciaTransacSQL()) Dim CvePrePoliza As Integer Dim Fecha As Date = NowADS() + Dim PagoEfectivo As Decimal = TxtImporteEfectivo.Text.ToDecimal Dim Mensaje As String = "" + Dim SaldoPendiente As Decimal = VentaActual.Total CvePrePoliza = ObjConta.AddPrePolizas("PVCobranza", 5, 0, 0, 1, Fecha, $"Pago {VentaActual.SerieFolio}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CvePrePoliza > 0 Then - If TxtImporteEfectivo.Text.ToDecimal > 0 Then - Mensaje = RegistraIE(13, DdlCuentaEfectivo.SelectedValue.ToEntero, TxtImporteEfectivo.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta) + If PagoEfectivo > 0 Then + If PagoEfectivo > VentaActual.Total Then + TxtCambio.Text = (VentaActual.Total - PagoEfectivo).FormatoNumero + PagoEfectivo = VentaActual.Total + End If + Mensaje = RegistraIE(13, DdlCuentaEfectivo.SelectedValue.ToEntero, PagoEfectivo, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) End If - If TxtImporteCredito.Text.ToDecimal > 0 Then - Mensaje = RegistraIE(12, DdlCuentaTarjetaCredito.SelectedValue.ToEntero, TxtImporteCredito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta) + SaldoPendiente -= PagoEfectivo + If SaldoPendiente > 0 AndAlso TxtImporteCredito.Text.ToDecimal > 0 Then + Mensaje = RegistraIE(12, DdlCuentaTarjetaCredito.SelectedValue.ToEntero, TxtImporteCredito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) + PagoEfectivo = TxtImporteCredito.Text.ToDecimal End If - If TxtImporteDebito.Text.ToDecimal > 0 Then - Mensaje = RegistraIE(11, DdlCuentaTarjetaDebito.SelectedValue.ToEntero, TxtImporteDebito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta) + SaldoPendiente -= PagoEfectivo + If SaldoPendiente > 0 AndAlso TxtImporteDebito.Text.ToDecimal > 0 Then + Mensaje = RegistraIE(11, DdlCuentaTarjetaDebito.SelectedValue.ToEntero, TxtImporteDebito.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) + PagoEfectivo = TxtImporteDebito.Text.ToDecimal End If - If TxtImporteCheque.Text.ToDecimal > 0 Then - Mensaje = RegistraIE(3, DdlCuentaCheque.SelectedValue.ToEntero, TxtImporteCheque.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta) + If SaldoPendiente > 0 AndAlso TxtImporteCheque.Text.ToDecimal > 0 Then + Mensaje = RegistraIE(3, DdlCuentaCheque.SelectedValue.ToEntero, TxtImporteCheque.Text.ToDecimal, Fecha, CvePrePoliza, VentaActual, ObjIE, ObjConta, ObjVentas2) + PagoEfectivo = TxtImporteCheque.Text.ToDecimal End If Else @@ -194,7 +239,7 @@ Partial Class Ventas_PVCobranza PnlContado.Visible = False ObjConta.Commit() CargaDatos() - Alert("Pago Registrado correctamente.", TipoMensaje.MsgInformacion) + Alert("Pago Registrado correctamente.

Imprimir ticket", TipoMensaje.MsgInformacion) Else ObjConta.RollBack() End If @@ -202,11 +247,11 @@ Partial Class Ventas_PVCobranza End Sub - Private Function RegistraIE(Metodo As Integer, CveBancoCuenta As Integer, ImportePago As Decimal, Fecha As Date, CvePrePoliza As Integer, VentaActual As Venta, ByRef ObjIE As ClsBancos, ByRef ObjConta As ClsContabilidad) As String + Private Function RegistraIE(Metodo As Integer, CveBancoCuenta As Integer, ImportePago As Decimal, Fecha As Date, CvePrePoliza As Integer, VentaActual As Venta, ByRef ObjIE As ClsBancos, ByRef ObjConta As ClsContabilidad, ByRef ObjVentas As ClsVentas) As String Dim Retorno As String = "" Dim CveIEPago As Integer = 0 Dim ErrorConta As Boolean - CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImportePago, 1, 1, VentaActual.SerieFolio, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + CveIEPago = ObjIE.AddBancos_IE(CveBancoCuenta, Metodo, Fecha, "-1", VentaActual.ClienteNombre, ImportePago, 1, 1, VentaActual.SerieFolio, "", False, True, 0, CvePrePoliza, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCorte:=CveCorte) If CveIEPago > 0 Then Dim Pago As New VentaPago Pago.ImportePagoVenta = ImportePago @@ -220,6 +265,11 @@ Partial Class Ventas_PVCobranza If ErrorConta Then Retorno = "Error en aplicación de pago" End If + Dim MetodoPago As Integer = If(Metodo = 13, 1, If(Metodo = 12, 4, If(Metodo = 11, 5, If(Metodo = 3, 2, 3)))) + If Not ErrorConta AndAlso Not ObjVentas.AddVta_VentaPago(VentaActual.CveVenta, MetodoPago, ImportePago) Then + Retorno = "Error en aplicación de pago.." + ErrorConta = True + End If Else Retorno = "Pago en Bancos no registrado" ErrorConta = True From e0e13d19e4122c32bdc3dc1d81882168c1030b0b Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:09:38 -0700 Subject: [PATCH 12/25] - --- Inventarios/EntradasSalidas.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 55170195e..6bc4593c9 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -3942,7 +3942,7 @@ Partial Class Inventarios_EntradasSalidas ErrorMovInv = True End If Else - If DdlConcepto.SelectedValue.Contiene("6", "22", "23", "7", "16", "21", "24", "32") Then + If DdlConcepto.SelectedValue.Contiene("1", "6", "22", "23", "7", "16", "21", "24", "32") Then 'genero las prepolizas manuales Dim tCveConcepto As Integer = 95 Dim CveCuenta As Integer From f3c42689adefe95911765b2a6345059bfbc83c6f Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:10:52 -0700 Subject: [PATCH 13/25] -- verificar venta como pv -- quitar texto de mas en estilos --- Ventas/Ventas.aspx | 2 +- Ventas/Ventas.aspx.vb | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index dcc9544ea..2232a23f4 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -9,7 +9,7 @@ padding: 0px 5px; } - .nolineheight {ChkRequiereTecnico + .nolineheight { line-height: 1; } diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index c80df0e69..04529be4f 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -4754,6 +4754,7 @@ Partial Class Ventas If UsuarioActual.Empresa.Funcionalidad(705) = "1" Then Me.CveLineaAdicionalVenta = DbRowVenta("CveLineaAdicional").ToString().ToEntero() End If + TxtDescripcionVenta.Text = DbRowVenta("DescripcionVenta").ToString() 'CargaEncabezado If Not (CveRemision > 0 Or CveCotizacion > 0) Then @@ -4859,10 +4860,8 @@ Partial Class Ventas If UsuarioActual.Empresa.Funcionalidad(163) = "1" Then TrDescripcionVenta.Visible = True - TxtDescripcionVenta.Text = DbRowVenta("DescripcionVenta").ToString() End If - HplDownXML.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto")))) Case "Egs" HplDownXML.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto")))) @@ -9475,7 +9474,7 @@ Partial Class Ventas End If If DivAlmacen.Visible AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Dev") AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 AndAlso ddlAlmacen.SelectedValue.ToEntero() <= 0 Then - Alert("Tiene que seleccionar un almacén para la salida de almacén", TipoMensaje.MsgAdvertencia) + Alert("Seleccione el almacén del cual saldrán los productos.", TipoMensaje.MsgAdvertencia) Exit Sub End If @@ -19448,8 +19447,6 @@ Partial Class Ventas End Sub Protected Sub TxtCodigo_TextChanged(sender As Object, e As System.EventArgs) Handles TxtCodigo.TextChanged - Dim ObjClientes As New ClsClientes() - Dim Nombre As String = "-1" Dim Codigo As String = "-1" Dim NombreCorto As String = "-1" @@ -19460,6 +19457,7 @@ Partial Class Ventas If TxtCodigo.Text.Trim <> String.Empty Then Codigo = TxtCodigo.Text.Trim If Codigo <> "-1" Then + Dim ObjClientes As New ClsClientes() If ObjClientes.GetClientes(-1, Nombre, Codigo, NombreCorto, RFC, Telefono, Mail, -1, UsuarioActual.CveEmpresa, TipoCliente:=-1) Then If ObjClientes.DtResultados.Rows.Count > 0 Then If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 77 AndAlso Not ObjClientes.CveCliente.Contiene(10450, 10460, 10458) Then @@ -21559,8 +21557,6 @@ Partial Class Ventas Dim DrProducto As DataRow = Nothing If TxtCantidad.Text.Trim.ToDouble <= 0 Then TxtCantidad.Text = "1" - Dim SerieL As String = "" - Dim CodigoBarras As String = "" Dim CvePS As Integer 'LIMPIA "PROPIEDAD" @@ -21577,7 +21573,7 @@ Partial Class Ventas If Existencia - ExistenciaActual > 0 Then If CvePS > 0 Then - DrProducto = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") + DrProducto = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") If DrProducto IsNot Nothing Then HdnCvePS.Value = CvePS.ToString() TxtCantidad.Text = "1" @@ -21593,17 +21589,16 @@ Partial Class Ventas End If End If - 'BUSCA POR CODIGO DE BARRAS - If Not CvePS > 0 Then + If Not CvePS > 0 AndAlso TxtCodigoBarras.Text.Trim() <> "" Then CodigoBarras = TxtCodigoBarras.Text.Trim() - DrProducto = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras = '{CodigoBarras}'") + DrProducto = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras = '{CodigoBarras}'") If DrProducto IsNot Nothing Then - If DrProducto("Inv_CveMetodoInventario").ToString() = "5" Then 'si es serie + If DrProducto("Inv_CveMetodoInventario").ToString() = "5" OrElse DrProducto("AplicaSerie").ToString = "True" Then 'si es serie TxtCodigoSerie.Focus() Exit Sub Else - CvePS = DrProducto("CvePS").ToString().ToEntero() + CvePS = DrProducto("CvePS").ToString.ToEntero() HdnCvePS.Value = CvePS.ToString() End If Else @@ -21622,8 +21617,9 @@ Partial Class Ventas DdlPSIndexChange(CvePS, DdlPS) If Not TxtCantidad.Text.ToDouble > 0 Then TxtCantidad.Text = "1" TxtPrecio.Focus() + TxtPrecio.Text = "11" RegistraScript($"$('#{TxtPrecio.ClientID}').select();") - + UpPS.Update() 'LO DE ABAJO YA NO SE USA - ES VIEJO Exit Sub @@ -21838,6 +21834,10 @@ Partial Class Ventas DivTransferencia.Visible = False End If TxtImporteContado.Text = TxtTotal.Text + 'SI ES MODALIDAD COBRANZA, NO MOSTRAR + If (UsuarioActual.Empresa.Funcionalidad(109) = "1") Then + DivContado.Visible = False + End If End If TxtFechaPago.Text = NowADS().ToShortDateString 'SI ES CONTADO EL METODO DE PAGO DEBE SER PUE From 014bb24e1ff4ef59eda8d0df230b8752f2b1c02f Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:11:59 -0700 Subject: [PATCH 14/25] =?UTF-8?q?-=20activaci=C3=B3n=20guia,=20E119?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/EntregaAlmacen.aspx | 2 +- Inventarios/EntregaAlmacen.aspx.vb | 13 ++++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx index 80305b09f..4f63bc076 100644 --- a/Inventarios/EntregaAlmacen.aspx +++ b/Inventarios/EntregaAlmacen.aspx @@ -211,7 +211,7 @@ - + Guía: diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 9fc025498..1bb3a4ea3 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -381,11 +381,16 @@ Partial Class Inventarios_EntregaAlmacen DdlFolio.Items.Insert(0, New ListItem("Seleccione", "-1")) - TxtFechaPendientes.Text = NowADS().ToShortDateString - 'TxtFechaCaducidad.Text = NowADS().ToShortDateString + TxtFechaPendientes.Text = NowADS().ToShortDateString TxtFecha.Text = NowADS().ToShortDateString RVFecha.MaximumValue = MaxFecha.ToShortDateString - If UsuarioActual.CveEmpresa.Contiene(119) Then RVFecha.MinimumValue = NowADS().ToShortDateString : CEFecha.StartDate = NowADS() Else RVFecha.MinimumValue = MinFecha.ToShortDateString + If UsuarioActual.CveEmpresa.Contiene(119) Then + RVFecha.MinimumValue = NowADS().ToShortDateString + CEFecha.StartDate = NowADS() + trGuia.Visible = True + Else + RVFecha.MinimumValue = MinFecha.ToShortDateString + End If If Not UsuarioActual.TienePermisoProceso(190) Then 'CARGA SOLO LAS SUCURSALES DE LOS ALMCENES QUE TIENE ASIGNADO EL USUARIO @@ -406,8 +411,6 @@ Partial Class Inventarios_EntregaAlmacen CreaDtDetalle() CreaDtDetalleLote() CargaPendientes() - - LimpiaCampos() End Sub From a787717677bf00723be5f221f264a2ef5ae82465 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:15:56 -0700 Subject: [PATCH 15/25] =?UTF-8?q?--=20nuevo=20m=C3=B3dulo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsPaginas.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index d63910d2f..ba9ec7593 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -9306,6 +9306,7 @@ Public Class ClsPaginas 'PaginaDict.Add("/Ventas/RepABT.aspx".ToUpper(), 353) PaginaDict.Add("/Ventas/CatPromociones.aspx".ToUpper(), 123) PaginaDict.Add("/Ventas/Promociones.aspx".ToUpper(), 123) + PaginaDict.Add("/Ventas/RepEntregasEcommerce.aspx".ToUpper(), 371) PaginaDict.Add("/Ventas/CatFamiliaSubFamilia.aspx".ToUpper(), 372) PaginaDict.Add("/Ventas/RepComisiones.aspx".ToUpper(), 382) PaginaDict.Add("/Ventas/RepComisionesDetalle.aspx".ToUpper(), 382) From 6f2c45d8d5c9b7b5f08d40f043096052987951b7 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:17:48 -0700 Subject: [PATCH 16/25] =?UTF-8?q?-=20nuevo=20m=C3=A9todo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsMovimientos.vb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index 32eda4c1c..937f5cfc6 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -1875,5 +1875,24 @@ Public Class ClsMovimientos Return Retorno End Function + + Public Function GetRemisionesCobranza(CveEmpresa As Integer, CveSubProyecto As Integer, FechaInicio As Date, FechaFin As Date) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_RemisionesCobranza") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio + .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As SqlException + OnError("Ocurrió un error al consultar las Compras Pagadas de Caja Chica.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function End Class From b7cef51a620f735ee38d556aa785dba991915536 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 13:18:22 -0700 Subject: [PATCH 17/25] -- metodo ecommerce --- App_Code/ClsVentas.vb | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 6f2f06af9..e8c7de4e4 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -1721,7 +1721,7 @@ Public Class ClsVentas Optional EsGarantia As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional EsDistribuidor As Integer = -1, Optional CveClasificacion2 As Integer = -1, Optional ServicioDomicilio As Integer = -1) As Boolean Dim Retorno As Boolean = False - DataAdapter("PA_Vta_GetRepPS") + DataAdapter("PA_Vta_GetRepPS33") With SqlAdapter.SelectCommand.Parameters .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto @@ -6161,6 +6161,28 @@ Public Class ClsVentas #End Region + +#Region "ECOMMERCE" + Public Function GetEntregasEcommerce(FechaI As Date, FechaF As Date, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_EntregasEcommerceGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@FechaInicio", SqlDbType.Date).Value = FechaI + .Add("@FechaFin", SqlDbType.Date).Value = FechaF + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Reporte de Comisiones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function +#End Region #Region "IDisposable Support" From c04e6302d18e124d121db72b5f6d05ad8313b0c8 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Thu, 7 Dec 2023 13:16:43 -0700 Subject: [PATCH 18/25] RegPrepolizas TC --- Contabilidad/RegPrePolizaS.aspx.vb | 28 ++++++++++++++++++---------- Ventas/CatProcedimientoDetalle.aspx | 16 ++++++++++------ 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index d932c2a87..7fa9bebf6 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -559,17 +559,17 @@ Partial Class ContabilidadC_RegPrePolizaS Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero - If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) - If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) - If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) - If CveConceptoContable.Contiene(30, 204, 66, 92, 202, 10, 21, 48, 56, 338, 339, 340, 345, 346, 347) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) + If CveConceptoContable.Contiene(1, 2, 12, 91, 13, 38, 207, 203, 39, 61, 62, 63, 4, 278, 291, 292, 293, 294, 272, 150, 251, 301) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DataKey("CveVenta")) + If CveConceptoContable.Contiene(5, 6, 17, 18, 14, 19, 25, 26, 60, 205, 225, 234, 235, 240, 305, 306, 307, 308, 309, 310, 311, 312, 201, 206, 323, 324, 341, 342, 343, 344, 304, 272, 259, 287, 288) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) + If CveConceptoContable.Contiene(68) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}", e.Row.DBCampo("CveMovimientoAlmacen")) + If CveConceptoContable.Contiene(30, 204, 66, 92, 202, 10, 21, 48, 56, 338, 339, 340, 345, 346, 347) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) - If e.Row.DBCampo("Modificado") = "True" Then - e.Row.FCCheckBox("chkModificado").Checked = True - End If - End If + If e.Row.DBCampo("Modificado") = "True" Then + e.Row.FCCheckBox("chkModificado").Checked = True + End If + End If - If e.Row.RowType = DataControlRowType.Header Then + If e.Row.RowType = DataControlRowType.Header Then 'e.Row.FCDropDownList("DdlSubProyectoFiltro").DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) 'e.Row.FCDropDownList("DdlSubProyectoFiltro").DataBind() 'e.Row.FCDropDownList("DdlSubProyectoFiltro").Items.Insert(0, New ListItem("Todos", "-1")) @@ -991,8 +991,16 @@ Partial Class ContabilidadC_RegPrePolizaS Dim tCveMoneda As Integer = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveCuenta:=DdlCuenta.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveMoneda").ToEntero + Dim TC As Decimal = 0D + Try + TC = gvr.DataKey("TC").ToDecimal + Catch ex As Exception + + End Try + + CveIE = ObjIE.AddBancos_IE(gvr.DataKey("ContadoCuenta").ToEntero, gvr.DataKey("ContadoTipoTransaccion").ToEntero, TxtFechaDocumento.Text.ToDate, tFolio, - gvr.DataKey("ContadoBeneficiario"), ImporteIE, tCveMoneda, 0, gvr.DataKey("ContadoObservaciones"), "", + gvr.DataKey("ContadoBeneficiario"), gvr.DataKey("ContadoImporte").ToDecimal, tCveMoneda, TC, gvr.DataKey("ContadoObservaciones"), "", False, False, 0, CvePrePolizaInsertada, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If CveIE < 0 Then MsgError = "No se pudo registrar movimiento bancario" diff --git a/Ventas/CatProcedimientoDetalle.aspx b/Ventas/CatProcedimientoDetalle.aspx index 34d26b50e..0efda7029 100644 --- a/Ventas/CatProcedimientoDetalle.aspx +++ b/Ventas/CatProcedimientoDetalle.aspx @@ -101,6 +101,14 @@ + + + + + + + + @@ -117,13 +125,9 @@ - - - + - - - + From 0ff66534352ebe24a3ab74c1c031faa174653810 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 16:36:51 -0700 Subject: [PATCH 19/25] - --- OC/OC.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index bca8c6791..8c5e80bbb 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -3035,7 +3035,7 @@ Partial Class OC_OC ImporteMEComp = (DiferenciaInvOC - ImporteME).RoundSQL() 'COMPLEMENTARIA - 'If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteME, SerieFolio, 232, SerieFolio, Fecha, If(ConceptoSalida = 0, 0, IdCtaContableRecepcionOCERME), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, CveCuenta:=CveCuentaAlmacen, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + 'If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteME, SerieFolio, 232, SerieFolio, Fecha, If(ConceptoSalida = 0, 0, 0), -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, CveCuenta:=CveCuentaAlmacen, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMEComp, SerieFolio, 233, SerieFolio, Fecha, 0, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then ' TieneError = True ' Exit For From 0cdec84ac1e074e416586902830dd32656d86ef1 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 16:37:01 -0700 Subject: [PATCH 20/25] - mejoras --- Ventas/RepEntregasEcommerce.aspx | 119 ++++++++++++++++++++++++ Ventas/RepEntregasEcommerce.aspx.vb | 139 ++++++++++++++++++++++++++++ 2 files changed, 258 insertions(+) create mode 100644 Ventas/RepEntregasEcommerce.aspx create mode 100644 Ventas/RepEntregasEcommerce.aspx.vb diff --git a/Ventas/RepEntregasEcommerce.aspx b/Ventas/RepEntregasEcommerce.aspx new file mode 100644 index 000000000..b8a4c8fc7 --- /dev/null +++ b/Ventas/RepEntregasEcommerce.aspx @@ -0,0 +1,119 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepEntregasEcommerce.aspx.vb" Inherits="Ventas_RepEntregasEcommerce" %> + + + + + + + +
  • + PDF +
  • +
  • + Excel +
  • + +
    + + Entregas de ecommerce + + + + + + +
    +
    +
    +
    + +
    Fecha Inicial
    +
    +
    + + + + + + + + + + +
    +
    +
    Fecha Final
    +
    +
    + + + + + + + + + + +
    +
    +
    + + + + +
    +
    +
    +
    + + "> + +
    +
    +
    > + +
    +
    +
    +
    +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + diff --git a/Ventas/RepEntregasEcommerce.aspx.vb b/Ventas/RepEntregasEcommerce.aspx.vb new file mode 100644 index 000000000..69b071605 --- /dev/null +++ b/Ventas/RepEntregasEcommerce.aspx.vb @@ -0,0 +1,139 @@ +Imports System.Data +Imports Extensiones +Imports iText.Barcodes.Dmcode +Imports Microsoft.Reporting.WebForms + +Partial Class Ventas_RepEntregasEcommerce + Inherits ClsPaginas + + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CargaCombos() + CargaDatos() + + End If + End Sub + + Private Sub CargaCombos() + txtFechaI.Text = NowADS.AddDays(-3).ToShortDateString + txtFechaF.Text = NowADS.ToShortDateString + End Sub + + Private Sub CargaDatos() + + Dim FechaI, FechaF As Date + If txtFechaI.Text <> "" Then FechaI = txtFechaI.Text.Trim.ToDate Else FechaI = MinFecha + If txtFechaF.Text <> "" Then FechaF = txtFechaF.Text.Trim.ToDate Else FechaF = MaxFecha + Dim Obj As New ClsVentas + If Obj.GetEntregasEcommerce(FechaI, FechaF, UsuarioActual.CveEmpresa) Then + GvD.DataSource = Obj.DtResultados + End If + Obj.Dispose() + GvD.DataBind() + UPDatos.Update() + End Sub + + + Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs) Handles BtnConsultar.Click + CargaDatos() + End Sub + + + + +#Region " I M P R I M I R P D F" + Protected Sub LnkExcel_Click(sender As Object, e As EventArgs) Handles LnkExcel.Click + Dim EsVisibleColPagoProveedor As Boolean = False + + If GvD.Columns(10).Visible Then + EsVisibleColPagoProveedor = True + GvD.Columns(10).Visible = False + End If + + GenerarPDFpp("Excel") + + End Sub + Protected Sub LnkPDF_Click(sender As Object, e As EventArgs) Handles LnkPDF.Click + GenerarPDFpp() + End Sub + + Protected Sub LnkPDFSubProyecto_Click(sender As Object, e As EventArgs) + GenerarPDFpp(AgrupadoPorSubProyecto:=True) + End Sub + Protected Sub LnkExcelSubProyecto_Click(sender As Object, e As EventArgs) + Dim EsVisibleColPagoProveedor As Boolean = False + + If GvD.Columns(10).Visible Then + EsVisibleColPagoProveedor = True + GvD.Columns(10).Visible = False + End If + + GenerarPDFpp("Excel", True) + + If EsVisibleColPagoProveedor Then + GvD.Columns(10).Visible = True + End If + End Sub + + Private Sub GenerarPDFpp(Optional Formato As String = "PDF", Optional AgrupadoPorSubProyecto As Boolean = False) + + Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") + + + 'OBTENEMOS LOS DATOS + + Dim DTpp As DataTable = Nothing + + + If DTpp.Rows.Count > 0 Then + Dim dr As DataRow = DTpp.Rows(0) + Dim params As New List(Of ReportParameter) + Dim Filtros As New StringBuilder + Filtros.Append("Filtros ") + Dim ExistenFechas As Boolean = False + + If txtFechaI.Text.Trim.Length > 0 Then + Filtros.Append($" Fecha Inicio: {txtFechaI.Text.Trim}") + ExistenFechas = True + End If + + + If txtFechaF.Text.Trim.Length > 0 Then + Filtros.Append($" Fecha Fin: {txtFechaF.Text.Trim}") + ExistenFechas = True + End If + + + If ExistenFechas Then + params.Add(New ReportParameter("AgrupadoPor", Filtros.ToString)) + End If + + params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) + ' params.Add(New ReportParameter("FechaInicio", FI)) + ' params.Add(New ReportParameter("FechaFin", FF)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToString)) + ' params.Add(New ReportParameter("AgrupadoPor", $"{Programo} {Proveedor} {Registro} {Responsable} {Clasificacion} {Moneda} {Estatus} {SubProyecto} {FechaIn} {FechaFn}{FVI}{FVF}")) + + + params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) + ImprimirPDF("Empresas/Grales/Formatos/RepPagoProveedores.rdlc", DTpp, params, "ReportePagoProveedores", Formato) + Else + Alert("No se tienen registrados movimientos", TipoMensaje.MsgAdvertencia) + End If + + + End Sub + + Private Sub GvD_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvD.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + If e.Row.DBCampo("CvePS") = "" Then e.Row.CssClass = "SubTotales" + End If + End Sub + + +#End Region + + + +End Class From 9da9deb306b70b45c1c0c85ba8d410fdc929a9e1 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 16:51:25 -0700 Subject: [PATCH 21/25] - cambio columna nombre cuenta --- Contabilidad2/CatCuentas.aspx.vb | 2 +- Contabilidad2/CatCuentasAsignaciones.aspx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Contabilidad2/CatCuentas.aspx.vb b/Contabilidad2/CatCuentas.aspx.vb index f8cd86cfe..0e0af4ea5 100644 --- a/Contabilidad2/CatCuentas.aspx.vb +++ b/Contabilidad2/CatCuentas.aspx.vb @@ -168,7 +168,7 @@ Partial Class Contabilidad2_CatCuentas ArbolCuentas.nivel = "CtaInicial" ArbolCuentas.nodoid = "CveCuenta" ArbolCuentas.padre = "CvePadre" - ArbolCuentas.titulo = "CtaCodigo" + ArbolCuentas.titulo = "CuentaFormatoNombre" ArbolCuentas.DataBind() diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx b/Contabilidad2/CatCuentasAsignaciones.aspx index 7f497862d..583b6dc42 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx +++ b/Contabilidad2/CatCuentasAsignaciones.aspx @@ -139,7 +139,7 @@
    - +
    From bdc3c26e2c4a217614a68665158397ece71b591c Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 16:56:42 -0700 Subject: [PATCH 22/25] - crear GlobalDTContaCuentas --- Ashx/SIGWeb.ashx | 61 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 58 insertions(+), 3 deletions(-) diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index b7689a08c..82169dccc 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -124,6 +124,8 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState cancelarRemision(context) Case "RemoveMovimiento" RemoveMovimiento(context) + Case "GetContaCuentas" + GetContaCuentas(context) End Select Catch ex As Exception ex.GuardaLog(ex.Message) @@ -872,7 +874,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState If objInv.GetExistenciasProducto(CvePS, -1, CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm")) Then ' limpio los almacenes donde no tiene ningun producto existencia - For i = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 + For i As Integer = objInv.DtResultados.Columns.Count - 1 To 1 Step -1 If Not objInv.DtResultados.Columns(i).ColumnName.Contiene("CveAlmacen", "Almacen", "Existencia") Then objInv.DtResultados.Columns.RemoveAt(i) @@ -996,7 +998,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState 'If FuePorXml >= 0 Then ' DTPS = DTPS.Where((Function(a) Convert.ToInt32(a!FuePorXML) = FuePorXml)) 'End If - + Name = Name.REPLACE(" ", "*") If Name <> "-1" Then If PSCodigoDescripcion = "PSCodigo" Then DTPS = DTPS.Where((Function(a) a!PSCodigo.ToString.ToLower Like ("*" + Name.ToLower + "*"))) @@ -1434,6 +1436,59 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState End Function #End Region + Private Function GetContaCuentas(ByVal context As HttpContext, Optional PSCodigoDescripcion As String = "PSCodigo") As String + Dim retorno As String = "" + Dim DtPSRetorno As DataTable = Nothing + + 'NOTA: + ' EN EL WHERE DE LINQ NO SE DEBE USAS EL OPERADOR 'AND' SABE PORQUE FUNCIONA DIFERENTE SE DEBE USAR 'ANDALSO', + ' EJEMPLO UNA CONDICION AND DE DOS CAMPOS ARROJA CERO RESULTADOS PERO SI SE PONE ESTAS DOS CONDICIONES POR SEPARADO ARROJA DATOS + Dim usuario As Usuario = UsuarioActual(context) + Dim CveEmpresa As Integer + If IsNothing(usuario) Then + context.Response.Write("") + Else + CveEmpresa = usuario.CveEmpresa + Dim Afectable = IfNull(context.Request("Afectable"), "-1").ToString.ToEntero + Dim Name = IfNull(context.Request("Name"), "-1").ToString.Replace(" ", "%") + 'Dim CveClasificacion = IfNull(context.Request("CveClasificacion"), "-1").ToString.ToEntero + 'Dim CveSubFamilia = IfNull(context.Request("CveSubFamilia"), "-1").ToString.ToEntero + 'Dim CveClasificacionPresupuesto = IfNull(context.Request("CveClasificacionPresupuesto"), "-1").ToString.ToEntero + 'Dim Pagina = IfNull(context.Request("Pagina"), "-1").ToString + 'Dim Estatus = IfNull(context.Request("Estatus"), "1").ToString + 'Dim CveSucursal = IfNull(context.Request("cvesucursal"), "-1").ToString.ToEntero + 'Dim CveSubProyecto = IfNull(context.Request("cvesubproyecto"), "-1").ToString.ToEntero + 'Dim UsoClasificacion = IfNull(context.Request("usoclasificacion"), "-1").ToString.ToEntero + 'Dim AplicaParaVenta = IfNull(context.Request("aplicaparaventa"), "1").ToString.ToEntero + 'Dim CveMarca = IfNull(context.Request("cvemarca"), "-1").ToString.ToEntero + + DtPSRetorno = ClsPaginas.GlobalDTContaCuentasContables(CveEmpresa, "-1", Afectable).FiltraParametros($"CuentaFormatoNombre like '%{Name}%'") + + + + + If DtPSRetorno IsNot Nothing AndAlso DtPSRetorno.Rows.Count > 0 Then + + DtPSRetorno.Columns("CvePS").ColumnName = "id" + DtPSRetorno.Columns(PSCodigoDescripcion).ColumnName = "text" + If PSCodigoDescripcion = "PSCodigo" Then + DtPSRetorno.Columns().Remove("PSCodigoClasificacion") + Else + DtPSRetorno.Columns().Remove("PSCodigo") + End If + + retorno = JsonConvert.SerializeObject(DtPSRetorno).ToString + context.Response.Write(retorno) + DtPSRetorno.Dispose() + DtPSRetorno = Nothing + Else + context.Response.Write("[]") + End If + + End If + + Return retorno + End Function Private Function GetFilesDirectory(ByVal context As HttpContext) As String Dim retorno As String = "" @@ -1443,7 +1498,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState Dim xmlarchivos As System.Xml.Linq.XDocument = New System.Xml.Linq.XDocument() Dim xfolder As XElement = New XElement("folder") - For Each urfile In System.IO.Directory.GetFiles(directorio) + For Each urfile As String In System.IO.Directory.GetFiles(directorio) Dim xfile As New XElement("archivo", "") xfile.SetAttributeValue("EXT", Path.GetExtension(urfile)) xfile.SetAttributeValue("urlfile", urfile) From 805962d88e63631190e0437afc89617ff42858dc Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 7 Dec 2023 20:05:31 -0700 Subject: [PATCH 23/25] -- nombrecolumna cuenta formato --- Contabilidad2/CatContaEjercicios.aspx | 2 +- Contabilidad2/CatCuentas.aspx | 2 +- Contabilidad2/CatCuentas.aspx.vb | 3 +-- Contabilidad2/CatCuentasAsignaciones.aspx | 2 +- Contabilidad2/RepAnexoCatalogo.aspx | 2 +- Contabilidad2/RepAnexoCatalogo.aspx.vb | 16 ---------------- Contabilidad2/RepAnexoCatalogoAnual.aspx | 2 +- Contabilidad2/RepAnexoCatalogoCC.aspx | 2 +- Contabilidad2/RepAnexoCatalogoMensual.aspx | 2 +- .../RepAnexoCatalogoMensualHorizontal.aspx | 2 +- .../RepAnexoCatalogoMensualHorizontal.aspx.vb | 16 ---------------- .../RepMovimientosAuxiliaresCatalogo.aspx | 2 +- Contabilidad2/RepSituacionFinanciera.aspx | 2 +- Inventarios/CatAlmacenes.aspx | 4 ++-- 14 files changed, 13 insertions(+), 46 deletions(-) diff --git a/Contabilidad2/CatContaEjercicios.aspx b/Contabilidad2/CatContaEjercicios.aspx index 43e5f2be4..60eac9825 100644 --- a/Contabilidad2/CatContaEjercicios.aspx +++ b/Contabilidad2/CatContaEjercicios.aspx @@ -159,7 +159,7 @@