From eb3c1fd9349e8963b025e0dfdacd123a13126d1a Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 28 Apr 2023 12:11:43 -0700 Subject: [PATCH 01/37] -- pago con acreedores --- Bancos/PopIECompras.aspx.vb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index a5f621127..2f2075c60 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1542,14 +1542,14 @@ Partial Class Bancos_PopIECompras Exit Sub End If - For Each rw As GridViewRow In GvDeudores.Rows + For Each rw As GridViewRow In GvAcreedores.Rows If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then Pago.CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero - Pago.TipoPago = "DD" + Pago.TipoPago = "Egsc" If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" Else @@ -1624,9 +1624,14 @@ Partial Class Bancos_PopIECompras If ObjConta IsNot Nothing Then ObjConta.Commit() Dim StrMsg As New StringBuilder StrMsg.Append("El Documento se guardó correctamente.
") - If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) - If IdPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) - + If TipoTransaccion = "Egs" AndAlso CveIE > 0 Then GeneraChequePDF(CveIE, UsuarioActual.Empresa) + If UsuarioActual.Empresa.TipoContabilidad = 1 Then + StrMsg.AppendFormat("

Ver Póliza", CvePrePoliza) + Else + If IdPoliza > 0 Then + StrMsg.AppendFormat("

Ver Póliza", IdPoliza) + End If + End If If RBLContado.SelectedValue.ToEntero = 6 And ChkEmitirComplementoPago.Checked Then GeneraTimbre(CvePrePoliza) Else Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") EnviarCorreoNotificacion(CveIE, NotificarA, "", UsuarioActual, False) From 35130bc7015faad46e4168cad80d132bd727528a Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 28 Apr 2023 12:11:59 -0700 Subject: [PATCH 02/37] -pago con conta=1 --- Bancos/PolizaCheque.aspx | 4 +-- Bancos/PolizaCheque.aspx.vb | 71 ++++++++++--------------------------- 2 files changed, 20 insertions(+), 55 deletions(-) diff --git a/Bancos/PolizaCheque.aspx b/Bancos/PolizaCheque.aspx index 88b3514dc..32ed1c0b4 100644 --- a/Bancos/PolizaCheque.aspx +++ b/Bancos/PolizaCheque.aspx @@ -24,7 +24,7 @@
- +
@@ -213,7 +213,7 @@ --%>
- + Código diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb index 0b28dc305..1879bd21b 100644 --- a/Bancos/PolizaCheque.aspx.vb +++ b/Bancos/PolizaCheque.aspx.vb @@ -155,6 +155,7 @@ Partial Class Bancos_PolizaCheque Dim IDMov As DataColumn = DtMovimientos.Columns.Add("IdMov", Type.GetType("System.Int32")) : IDMov.AutoIncrement = True With DtMovimientos.Columns .Add("IdCuenta", Type.GetType("System.Int32")) + .Add("CveCuenta", Type.GetType("System.Int32")) .Add("CodigoCuenta", Type.GetType("System.String")) .Add("Cuenta", Type.GetType("System.String")) .Add("Referencia", Type.GetType("System.String")) @@ -401,6 +402,7 @@ Partial Class Bancos_PolizaCheque Dim Dt As DataTable = GlobalDTContaPlantillasPolizasDetalle(UsuarioActual.CveEmpresa, CvePlantilla).FiltraParametros("", "Orden") Dim Cuenta As String = "" Dim IdCuenta As Integer = 0 + Dim CveCuenta As Integer = 0 Dim CodigoCuenta As String = "" Dim NombreCuenta As String = "" Dim EsComodin As Integer = 0 @@ -412,6 +414,7 @@ Partial Class Bancos_PolizaCheque Cuenta = drt("ConceptoContable").ToString IdCuenta = 0 + CveCuenta = 0 CodigoCuenta = "" NombreCuenta = "" @@ -420,7 +423,7 @@ Partial Class Bancos_PolizaCheque Dim drr As DataRow = DtCuentasContables.FiltroPrimero(String.Format("CveCuenta={0}", drt("CveCuenta").ToString)) If drr IsNot Nothing Then - IdCuenta = drt("IdCtaContable").ToString.ToEntero + CveCuenta = drt("CveCuenta").ToString.ToEntero CodigoCuenta = drr("CuentaFormato").ToString() NombreCuenta = drr("Nombre").ToString() 'Cuenta = drr("Nombre").ToString() @@ -469,7 +472,8 @@ Partial Class Bancos_PolizaCheque Dim dr As DataRow = DtMovimientos.NewRow - dr("IdCuenta") = IdCuenta + dr("IdCuenta") = IdCuenta + dr("CveCuenta") = CveCuenta dr("CodigoCuenta") = CodigoCuenta & "
" & NombreCuenta dr("Cuenta") = Cuenta 'TxtCuentaContable.Text dr("RazonSocial") = drt("RazonSocial") @@ -566,24 +570,8 @@ Partial Class Bancos_PolizaCheque dr("CvePersonal") = drt("CvePersonal") DtMovimientos.Rows.Add(dr) - Next - 'Dim drtt As DataRow = DtMovimientos.NewRow - 'drtt("IdCuenta") = 0 - 'drtt("CodigoCuenta") = "" - 'drtt("Cuenta") = Cuenta - 'drtt("RazonSocial") = "" - 'drtt("Concepto") = "" - 'drtt("TipoMovto") = 0 - 'drtt("EsComodin") = EsComodin - 'drtt("CveConcepto") = 44 - 'drtt("CveProveedor") = "-1" - 'drtt("SubProyecto") = "" - 'drtt("Proyecto") = "" - 'drtt("Personal") = "" - 'drtt("CveSubProyecto") = -1 - 'drtt("CvePersonal") = -1 - 'DtMovimientos.Rows.Add(drtt) - + Next + ObjNomina.Dispose() ObjConta.Dispose() @@ -809,20 +797,8 @@ Partial Class Bancos_PolizaCheque If UsuarioActual.CveEmpresa = 119 Then e.Row.FCLiteral("LtlSP").Visible = False e.Row.FCDropDownList("DdlSubProyecto").Visible = True - End If - 'cuando se modifica el importe de la cuenta bancaria que se actualice el importe del documento - 'If e.Row.DBCampo("EsComodin") = "1" Then - ' If e.Row.DBCampo("TipoMovto") = "1" Then - ' e.Row.FCTextBox("TxtAbono").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)") - ' e.Row.FCTextBox("TxtAbono").Text = TxtImporte.Text - ' Else - ' e.Row.FCTextBox("TxtCargo").Attributes.Add("onkeyup", "FncImporte('TxtImporte',this.id,2)") - ' e.Row.FCTextBox("TxtCargo").Text = TxtImporte.Text - ' End If - ' TxtImporte.Attributes.Add("onkeyup", String.Format("FncImporte(this.id,'{0}',1)", e.Row.FCTextBox(If(e.Row.DBCampo("TipoMovto") = "1", "TxtAbono", "TxtCargo")).ClientID)) - - ' UPPImporte.Update() - 'End If + End If + End If End Sub @@ -966,7 +942,7 @@ Partial Class Bancos_PolizaCheque Importe = Importe * TC End If - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, TipoCambio:=TC, CveCuenta:=gvr.DataKey("CveCuenta").ToEntero) Then MsgError = "no se pudo insertar el detalle de la póliza2" End If @@ -1009,12 +985,6 @@ Partial Class Bancos_PolizaCheque MsgError = "No se insertó el encabezado" End If - 'If ChkContabilizar.Checked AndAlso UsuarioActual.Empresa.UsaContabilidad Then - ' If Not ObjIE.UpdateIEPrePoliza(TxtFechaDocumento.Text.ToDate, NumPoliza.ToString, IDPoliza, CvePrePoliza, CveIE, 0) Then - ' MsgError = "Error al actualizar la poliza" - ' End If - 'End If - Catch ex As Exception MsgError = "Error" End Try @@ -1030,20 +1000,17 @@ Partial Class Bancos_PolizaCheque End If End If - 'El movimiento 2 es el de Pago If UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then - If idCuentaContabilizacion > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - 'Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) - IDPoliza = ObjMov.ContaIdPoliza - Else - MsgError = "Error al contabilizar" - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) - End If + + If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + 'Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) + IDPoliza = ObjMov.ContaIdPoliza Else - Alert("No se puede contabilizar la Prepoliza debido a que una o mas cuentas son inválidas", TipoMensaje.MsgError) + MsgError = "Error al contabilizar" + Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError) End If + End If @@ -1090,8 +1057,6 @@ Partial Class Bancos_PolizaCheque Alert("La suma de los movimientos no son iguales", TipoMensaje.MsgAdvertencia) End If - - End Sub '' -------------------------------------- codigo para generar la poliza del cheque From 3508fdc62c03ac72a5d31d192e9ff0e9705636fa Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 28 Apr 2023 12:12:12 -0700 Subject: [PATCH 03/37] =?UTF-8?q?ver=20p=C3=B3liza=20en=20conta=3D1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Contabilidad/ContabilizacionCompras.aspx | 8 ++++---- Contabilidad/ContabilizacionCompras.aspx.cs | 22 ++++++++++++++------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Contabilidad/ContabilizacionCompras.aspx b/Contabilidad/ContabilizacionCompras.aspx index ab7a04460..9f2eaf940 100644 --- a/Contabilidad/ContabilizacionCompras.aspx +++ b/Contabilidad/ContabilizacionCompras.aspx @@ -192,7 +192,7 @@ - + @@ -296,7 +296,7 @@ - + @@ -386,7 +386,7 @@ - + @@ -476,7 +476,7 @@ - + diff --git a/Contabilidad/ContabilizacionCompras.aspx.cs b/Contabilidad/ContabilizacionCompras.aspx.cs index d943a01c3..ce1fe858d 100644 --- a/Contabilidad/ContabilizacionCompras.aspx.cs +++ b/Contabilidad/ContabilizacionCompras.aspx.cs @@ -128,7 +128,6 @@ public partial class Contabilidad_ContabilizacionCompras : ClsPaginas e.Row.FCCheckBox("Chk").Enabled = false; e.Row.FCCheckBox("Chk").ToolTip = "Póliza ya contabilizada"; } - GvD.DataSource = contP.DtResultados; } else @@ -137,22 +136,31 @@ public partial class Contabilidad_ContabilizacionCompras : ClsPaginas } } - if (TienePermisoEditar) { e.Row.FCHyperLink("HplEdicion").Visible = true; } - - e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0; - + + if (UsuarioActual.Empresa.TipoContabilidad == 1) // conta SIG + { + e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("FolioPoliza").ToEntero() > 0; + e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={e.Row.DBCampo("CvePrePoliza")}"; + } + else + { + if (UsuarioActual.Empresa.TipoContabilidad == 2) // conta Contpaq + { + e.Row.FCHyperLink("HLPoliza").Visible = TienePermisoVerPoliza & e.Row.DBCampo("IdPoliza").ToEntero() > 0; + e.Row.FCHyperLink("HLPoliza").NavigateUrl = $"/Contabilidad/RegPoliza.aspx?IdPoliza={e.Row.DBCampo("IdPoliza")}"; + } + } + contP.Dispose(); GvD.DataBind(); - if (e.Row.DBCampo("Moneda") == "USD" && e.Row.FCLinkButton("LBActualizarTC") != null) { e.Row.FCLinkButton("LBActualizarTC").Visible = true; } - } } From fecff614d45c4fc516a0b923ccd7e822cbbd4483 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 28 Apr 2023 12:12:40 -0700 Subject: [PATCH 04/37] =?UTF-8?q?ver=20p=C3=B3liza=20en=20conta=3D1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/PopIEVentas.aspx.vb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb index 28ee2316a..2e1f84392 100644 --- a/Bancos/PopIEVentas.aspx.vb +++ b/Bancos/PopIEVentas.aspx.vb @@ -3402,17 +3402,14 @@ Partial Class Bancos_PopIEVentas 'Conta ContPAQ If UsuarioActual.Empresa.Funcionalidad(200) = "1" And MsgError = "" Then - If idCuentaContabilizacion > 0 Then - If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then - IdPoliza = ObjMov.ContaIdPoliza - ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) - Else - Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") - End If + If ObjMov.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then + IdPoliza = ObjMov.ContaIdPoliza + ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) Else - Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son invalidas: {0}", CuentasContablesInvalidas)) + Alert("Ocurrio un error al contabilizar, pongase en contacto con Soporte Técnico") End If + End If End If @@ -3461,11 +3458,12 @@ Partial Class Bancos_PopIEVentas If IdPoliza > 0 Then StrMsg.AppendFormat("
Ver Póliza", IdPoliza) End If + If UsuarioActual.Empresa.TipoContabilidad = 1 Then + StrMsg.AppendFormat("

Póliza: {1}
", CvePrePoliza, ObjMov.ContaFolio) + End If Alert($"{StrMsg.ToString}
", TipoMensaje.MsgInformacion, "self.parent.tb_remove();self.parent.location.reload();") - 'Limpiar - 'LimpiarTodo() Else ObjIE.RollBack() Alert(MsgError, TipoMensaje.MsgError) From be95ea7fcae7a7ed4d5eb0632a6bfb6cb7de70fa Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 28 Apr 2023 12:13:21 -0700 Subject: [PATCH 05/37] - correcciones en exporta excel --- Contabilidad/RegPrePolizaS.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index fbcb71590..88146d494 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -2310,7 +2310,7 @@ Partial Class ContabilidadC_RegPrePolizaS { .ConceptoAdministrativo = row.Item("ConceptoContable"), .Cuenta = row.Item("Codigo"), - .NombreCuenta = row.Item("NombreCuenta"), + .NombreCuenta = row.Item("CodigoNombreCuenta"), .Cargo = "", .Abono = "", .Referencia = "", From fce13adc957a227580215f03d4fc6170dc7915bb Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 3 May 2023 10:54:28 -0700 Subject: [PATCH 06/37] =?UTF-8?q?-=20mejora=20en=20mensaje=20de=20la=20p?= =?UTF-8?q?=C3=B3liza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/PolizaCheque.aspx.vb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb index 1879bd21b..fc8c83826 100644 --- a/Bancos/PolizaCheque.aspx.vb +++ b/Bancos/PolizaCheque.aspx.vb @@ -1034,7 +1034,15 @@ Partial Class Bancos_PolizaCheque TxtImporte.Text = "" TxtPagueseA.Text = "" TxtObservaciones.Text = "" - Alert($"El Movimiento se guardo correctamente

Movimiento
{If(ObjMov.ContaIdPoliza > 0, "Ver Póliza", "")}", TipoMensaje.MsgInformacion, "window.location.reload();") + Dim StrMsg As New StringBuilder + StrMsg.AppendFormat("El Movimiento se guardo correctamente

Movimiento
", CveIE) + If UsuarioActual.Empresa.TipoContabilidad = 1 Then + StrMsg.AppendFormat("
Ver Póliza", CvePrePoliza) + Else + StrMsg.AppendFormat("
Ver Póliza", ObjMov.ContaIdPoliza) + End If + + Alert(StrMsg.ToString, TipoMensaje.MsgInformacion, "window.location.reload();") Else Alert(MsgError.ToString, TipoMensaje.MsgError) ObjIE.RollBack() From 4403abf4d161a3e624dec75d4f60d813e1f485c4 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 3 May 2023 13:06:20 -0700 Subject: [PATCH 07/37] --Escape de caracteres al crear xml de cancelacion en el PAC 5 --- App_Code/Timbrado.vb | 2 +- App_Code/modExtensiones.vb | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index f48142f14..62fcbb5da 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -865,7 +865,7 @@ Public Class Timbrado {UsuarioServicio} {PassServicio} {rfcEmisor} - {arregloUUID}|{rfcReceptor}|{rfcEmisor}|{Total}|{MotivoCancelacion}|{FolioSustitucion} + {arregloUUID}|{rfcReceptor.ToEscapeXML()}|{rfcEmisor.ToEscapeXML()}|{Total}|{MotivoCancelacion}|{FolioSustitucion} {certBase64} {keyBase64} {keyPass} diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb index 9b8998052..fb6ddaac8 100644 --- a/App_Code/modExtensiones.vb +++ b/App_Code/modExtensiones.vb @@ -3960,6 +3960,19 @@ Namespace Extensiones Return text End Function + + + + Function ToEscapeXML(ByVal str As String) As String + Dim text As String = "" + + text = str.Replace("'", "'") + text = str.Replace("<", "<") + text = str.Replace(">", ">") + text = str.Replace("&", "&") + + Return text + End Function End Module #End Region From 325ba5c910c066252525ecdde884f30f232eb687 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Wed, 3 May 2023 19:50:22 -0700 Subject: [PATCH 08/37] Correcion en conceptos de clasificacion por porcentaje de iva --- App_Code/ClsPaginas.vb | 3 +- App_Code/Modelos.vb | 44 ++------------------------ Ventas/Ventas.aspx.vb | 72 ++---------------------------------------- 3 files changed, 6 insertions(+), 113 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 215aada2b..c3dfdb544 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -6040,7 +6040,8 @@ Public Class ClsPaginas If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) Then Dim QRDescarga As String = "" Dim cfdi As New RVCFDI33.GeneraCFDI() - Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?P={Encripta($"File={Vta.SerieFolio}.pdf")}") + Dim Parametros As String = Encripta($"CveVenta={Vta.CveVenta}&CveEmpresa={Vta.CveEmpresa}") + Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?PV={Parametros}") QRDescarga = Convert.ToBase64String(b) params.Add(New ReportParameter("QRDescarga", QRDescarga)) End If diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 26c66ef60..05806fca4 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -3324,27 +3324,12 @@ Namespace Modelos CveVentaAmortizacionAplicar = ObjFactura.CveVenta End If - ''código fijo en base el porcentaje iva, que se afecten las clasificaciones - 'For i = 0 To TmpDTDetalle.Rows.Count - 1 - - ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso - ' If Not TmpDTDetalle(i)("CveClasificacion").ToString.Contiene("19958", "19933") Then - - ' 'reclasifica la clasificación del producto, por la del ingreso correspondiente a su iva - ' If ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString.ToDecimal).Rows.Count > 0 Then - ' TmpDTDetalle(i)("CveClasificacion") = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString.ToDecimal).Rows(0)("CveClasificacion").ToString - ' End If - - ' End If - - 'Next - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) For Each Row2 As DataRow In DT.Rows - importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString.ToDecimal) * ValorMultiplicador) + importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador) importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString.ToEntero > 0, ClsPaginas.GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString}"), "")} - {If(Row2("CveSubProyecto").ToString.ToEntero > 0, ClsPaginas.GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString}"), "Sin SubProyecto Asignado")}" @@ -3388,37 +3373,12 @@ Namespace Modelos CveVentaAmortizacionAplicar = ObjFactura.CveVenta End If - 'If UsuarioActual.CveEmpresa = 119 Then - - ' 'código fijo en base el porcentaje iva, que se afecten las clasificaciones - ' For i = 0 To TmpDTDetalle.Rows.Count - 1 - - ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso - ' If Not TmpDTDetalle(i)("CveClasificacion").ToString.Contiene("19958", "19933", "20242") Then - - ' If ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows.Count > 0 Then - ' TmpDTDetalle(i)("CveClasificacion") = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows(0)("CveClasificacion").ToString - ' End If - - ' End If - - ' Next - - 'End If - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {ObjFactura.CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) For Each Row2 As DataRow In DT.Rows - importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString.ToDecimal) * ValorMultiplicador) - - 'If ObjFactura.TipoDocto = "Egs" Then - ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - 'End If + importeMovimiento = ((TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} AND CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString.ToDecimal) * ValorMultiplicador) importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index de144aa72..6fa940342 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -14788,49 +14788,12 @@ Partial Class Ventas CveVentaAmortizacionAplicar = ObjFactura.CveVenta End If - ''Cuando se está amortizando con un anticipo y es la modalidad de NC - 'If ObjFactura.TipoDocto.Contiene("Ing") AndAlso CveAnticipo > 0 AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then - ' ConceptoContableAplicar = 11 - ' CveVentaAplicar = CveAnticipo - ' CveVentaAmortizacionAplicar = ObjFactura.CveVenta - 'End If - - ' If UsuarioActual.CveEmpresa = 119 Then - - 'código fijo en base el porcentaje iva, que se afecten las clasificaciones - 'For i = 0 To TmpDTDetalle.Rows.Count - 1 - - ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso - ' If Not TmpDTDetalle(i)("CveClasificacion").ToString().Contiene("19958", "19933", "18097", "24479") Then - - ' 'If TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal > 0 Then - ' ' If TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal = 0.08 Then - ' ' TmpDTDetalle(i)("CveClasificacion") = 20242 'clasif: ventas tasa 8% - ' ' Else - ' ' TmpDTDetalle(i)("CveClasificacion") = 19929 'clasif: ventas tasa 16% - ' ' End If - - ' ' Else - ' ' TmpDTDetalle(i)("CveClasificacion") = 19930 'clasif: ventas tasa 0% - ' ' End If - - ' 'reclasifica la clasificación del producto, por la del ingreso correspondiente a su iva - ' If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal).Rows.Count > 0 Then - ' TmpDTDetalle(i)("CveClasificacion") = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDecimal).Rows(0)("CveClasificacion").ToString() - ' End If - - ' End If - - 'Next - - ' End If - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) For Each Row2 As DataRow In DT.Rows - importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador + importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString().ToDecimal()) * ValorMultiplicador importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago Concepto = $"{ObjFactura.SerieFolio} {If(Row2("CveClasificacion").ToString().ToEntero() > 0, GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Clasificacion", $"CveClasificacion = {Row2("CveClasificacion").ToString()}"), "")} - {If(Row2("CveSubProyecto").ToString().ToEntero() > 0, GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltroPrimeroValor("SubProyecto", $"CveSubProyecto = {Row2("CveSubProyecto").ToString()}"), "Sin SubProyecto Asignado")}" @@ -14844,8 +14807,6 @@ Partial Class Ventas End If - 'CveCuenta = GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresosSIG", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero() - If importeMovimiento <> 0 Then If IdCtaContable <= 0 Then @@ -14871,37 +14832,12 @@ Partial Class Ventas Dim CveVentaAplicar = ObjFactura.CveVenta Dim CveVentaAmortizacionAplicar = -1 - 'If UsuarioActual.CveEmpresa = 119 Then - - ' 'código fijo en base el porcentaje iva, que se afecten las clasificaciones - ' For i = 0 To TmpDTDetalle.Rows.Count - 1 - - ' 'se excluyen las clasificaciones anteriores para que se asignen las de ingreso - ' If Not TmpDTDetalle(i)("CveClasificacion").ToString().Contiene("19958", "19933", "18097") Then - - ' If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows.Count > 0 Then - ' TmpDTDetalle(i)("CveClasificacion") = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=TmpDTDetalle(i)("PorcentajeIVA").ToString().ToDouble).Rows(0)("CveClasificacion").ToString() - ' End If - - ' End If - - ' Next - - 'End If - DT = TmpDTDetalle.FiltraParametros($"CvePS <> {CvePSAmortizacion}", "", {"CveClasificacion", "CveSubProyecto", "PorcentajeIVA"}) If DT.Rows.Count > 0 Then 'Se agrega movimiento separado por la cuenta de ventas (ER) For Each Row2 As DataRow In DT.Rows - importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - - 'If ObjFactura.TipoDocto = "Egs" Then - ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento += (TmpDTDetalle.SUM("ImporteIEPS", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetIVA", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - ' importeMovimiento -= (TmpDTDetalle.SUM("ImporteRetISR", String.Format("CveClasificacion = {0} And CveSubProyecto = {1}", Row2("CveClasificacion"), Row2("CveSubProyecto"))).ToString().ToDecimal) * ValorMultiplicador - 'End If + importeMovimiento = (TmpDTDetalle.SUM("TotalImporte", String.Format("CveClasificacion = {0} And CveSubProyecto = {1} AND PorcentajeIVA = {2}", Row2("CveClasificacion"), Row2("CveSubProyecto"), Row2("PorcentajeIVA"))).ToString().ToDecimal) * ValorMultiplicador importeMX = importeMovimiento * tipoCambio * Multiplicador FechaMovimiento = ObjFactura.FechaPago @@ -14917,10 +14853,6 @@ Partial Class Ventas IdCtaContable = GlobalDTClasificaciones(ObjFactura.CveEmpresa).FiltroPrimeroValor("IdCuentaIngresos", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToEntero() End If - If UsuarioActual.CveEmpresa = 119 Then - If Row2("CveClasificacion").ToString() = "19930" Then IdCtaContable = 1141 - If Row2("CveClasificacion").ToString() = "19929" Then IdCtaContable = 1142 - End If If importeMovimiento <> 0 Then From e733e6db82d06d4e7511ca78aa22d43602844fea Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:11:08 -0700 Subject: [PATCH 09/37] -- funcioinalidad para activar carta porte --- Ventas/Ventas.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index caebcc4a0..fc778ada6 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -2450,7 +2450,7 @@ Partial Class Ventas UpFacturar.Update() 'CargaTiposDocumentos() TrEmitir.Visible = False - If UsuarioActual.CveRol = 1 OrElse UsuarioActual.CveEmpresa.Contiene(13, 83, 172, 173) Then + If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then DivCartaPorte.Visible = True End If ViewState("EstablecioFolio") = False From be36ad1b2ba7f8b13a9c5287d4c73c7759c70fe0 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:18:40 -0700 Subject: [PATCH 10/37] =?UTF-8?q?cambios,=20para=20activaci=C3=B3n=20de=20?= =?UTF-8?q?cuentas=20de=20cr=C3=A9dito?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsContabilidad.vb | 7 ++-- Bancos/Creditos.aspx | 4 +-- Bancos/Creditos.aspx.vb | 2 +- Contabilidad2/CatCuentasAsignaciones.aspx | 6 +++- Contabilidad2/CatCuentasAsignaciones.aspx.vb | 34 +++++++++++++++++--- 5 files changed, 43 insertions(+), 10 deletions(-) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 51106972c..522115cf8 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -5986,7 +5986,8 @@ Public Class ClsContabilidad Public Function AddCuentasAsignaciones(Optional CveConceptoContable As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCuenta As Integer = -1, Optional IdCtaContable As Integer = -1, Optional CveProveedor As Integer = -1, Optional CveCliente As Integer = -1, Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1, - Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1, Optional RegeneraCuenta As Boolean = False, + Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1, Optional CveCredito As Integer = -1, + Optional RegeneraCuenta As Boolean = False, Optional OpActualizarClasificacion As Boolean = False) As Boolean Dim Retorno = False @@ -6008,6 +6009,7 @@ Public Class ClsContabilidad .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo .Add("@CveTipoGasto", SqlDbType.Int).Value = CveTipoGasto + .Add("@CveCredito", SqlDbType.Int).Value = CveCredito .Add("@RegeneraCuenta", SqlDbType.Bit).Value = RegeneraCuenta .Add("@OpActualizarClasificacion", SqlDbType.Bit).Value = OpActualizarClasificacion End With @@ -6027,7 +6029,7 @@ Public Class ClsContabilidad Optional CvePersonal As Integer = -1, Optional CveClasificacion As Integer = -1, Optional CveAlmacen As Integer = -1, Optional PorcentajeIVA As Decimal = -1, Optional CveConceptoNomina As Decimal = -1, Optional CveBancoCuenta As Integer = -1, Optional CveSubProyecto As Integer = -1, Optional CveActivoFijo As Integer = -1, Optional CveTipoGasto As Integer = -1, - Optional RegeneraCuenta As Boolean = False) As Boolean + Optional CveCredito As Integer = -1, Optional RegeneraCuenta As Boolean = False) As Boolean Dim Retorno = False DataAdapter("PA_Conta_CuentasAsignacionesUpdate") @@ -6048,6 +6050,7 @@ Public Class ClsContabilidad .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveActivoFijo", SqlDbType.Int).Value = CveActivoFijo .Add("@CveTipoGasto", SqlDbType.Int).Value = CveTipoGasto + .Add("@CveCredito", SqlDbType.Int).Value = CveCredito .Add("@RegeneraCuenta", SqlDbType.Bit).Value = RegeneraCuenta End With diff --git a/Bancos/Creditos.aspx b/Bancos/Creditos.aspx index 9cfa5c2aa..9811be61a 100644 --- a/Bancos/Creditos.aspx +++ b/Bancos/Creditos.aspx @@ -493,7 +493,7 @@ - + @@ -501,7 +501,7 @@ - + Cuenta Contable: diff --git a/Bancos/Creditos.aspx.vb b/Bancos/Creditos.aspx.vb index 79963120b..ca0aac1cb 100644 --- a/Bancos/Creditos.aspx.vb +++ b/Bancos/Creditos.aspx.vb @@ -549,7 +549,7 @@ Partial Class Bancos_Creditos DdlCtaContable.Items.Clear() Dim IdCuentaPadre As Integer = If(RBLClasificacionContable.SelectedValue.ToEntero = 1, UsuarioActual.Empresa.Funcionalidad(203).ToEntero, UsuarioActual.Empresa.Funcionalidad(202).ToEntero) - If IdCuentaPadre > 0 Then + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso IdCuentaPadre > 0 Then Dim ObjContabilidad As New ClsContPAQi(UsuarioActual.Empresa) If ObjContabilidad.GetCuentasRecursiva(IdCuentaPadre, 1) Then DdlCtaContable.DataSource = ObjContabilidad.DtResultados diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx b/Contabilidad2/CatCuentasAsignaciones.aspx index 685958e85..13673cbd0 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx +++ b/Contabilidad2/CatCuentasAsignaciones.aspx @@ -74,7 +74,7 @@ @@ -186,6 +186,10 @@
+
+ + +
diff --git a/Contabilidad2/CatCuentasAsignaciones.aspx.vb b/Contabilidad2/CatCuentasAsignaciones.aspx.vb index 009282029..6dfad76ba 100644 --- a/Contabilidad2/CatCuentasAsignaciones.aspx.vb +++ b/Contabilidad2/CatCuentasAsignaciones.aspx.vb @@ -180,6 +180,18 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlPersonal.SelectedText = drp End If + If GvRow.DataKey("CveCredito").ToEntero > 0 Then + DdlCreditos.Items.Clear() + DdlCreditos.ClearSelection() + Dim ObjCreditos As New ClsBancos + If ObjCreditos.GetCreditos(-1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + DdlCreditos.DataSource = ObjCreditos.DtResultados.FiltraParametros("", DistinctColumns:={"CveCredito", "Referencia"}) + End If + ObjCreditos.Dispose() + DdlCreditos.DataBind() + DdlCreditos.SelectedValue = GvRow.DataKey("CveCredito") + End If + LbAgregar.Text = "Actualizar" UpModalModulos.Update() RegistraScript("$('#ModalCat').modal();") @@ -203,6 +215,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones divAlmacen.Visible = Boolean.Parse(Dr("AplicaAlmacen").ToString) divSubProyectos.Visible = Boolean.Parse(Dr("AplicaSubProyecto").ToString) divActivoFijo.Visible = Boolean.Parse(Dr("AplicaActivoFijo").ToString) + divCredito.Visible = Boolean.Parse(Dr("AplicaCredito").ToString) DdlActivoFijo.Enabled = False @@ -215,10 +228,8 @@ Partial Class Contabilidad2_CatCuentasAsignaciones Else DdlActivoFijo.Enabled = False End If - End If - divConceptoNomina.Visible = Dr("AplicaNomina").ToString = "True" If CveConceptoContable = 51 Then @@ -231,6 +242,21 @@ Partial Class Contabilidad2_CatCuentasAsignaciones If Dr("CveTipoSaldo").ToString = "1" Then divRegeneraCuenta.Visible = True End If + + If Dr("AplicaCredito").ToString = "True" Then + Dim ObjCreditos As New ClsBancos + If ObjCreditos.GetCreditos(-1, -1, -1, -1, -1, UsuarioActual.CveEmpresa) Then + DdlCreditos.DataSource = ObjCreditos.DtResultados.FiltraParametros("", DistinctColumns:={"CveCredito", "Referencia"}) + End If + ObjCreditos.Dispose() + DdlCreditos.DataBind() + + If OpAgregar Then + DdlCreditos.Enabled = True + Else + DdlCreditos.Enabled = False + End If + End If End If End Sub @@ -322,7 +348,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal, CveBancoCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero(), CveConceptoNomina:=DdlConceptoNomina.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, - CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then + CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, CveCredito:=DdlCreditos.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then ErrorString = "Error al agregar" End If ElseIf HdnCveCuentaAsignacion.Value.ToEntero > 0 Then @@ -330,7 +356,7 @@ Partial Class Contabilidad2_CatCuentasAsignaciones DdlProveedor.SelectedValue.ToEntero, DdlClientes.SelectedValue.ToEntero, DdlPersonal.SelectedValue.ToEntero, DdlClasificacion.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, TxtPorcentajeIVA.Text.ToDecimal, CveBancoCuenta:=DdlCuentaBancaria.SelectedValue.ToEntero(), CveConceptoNomina:=DdlConceptoNomina.SelectedValue.ToEntero(), CveSubProyecto:=DdlSubProyectos.SelectedValue.ToEntero, CveActivoFijo:=DdlActivoFijo.SelectedValue.ToEntero, - CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then + CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, CveCredito:=DdlCreditos.SelectedValue.ToEntero, RegeneraCuenta:=chkRegeneraCuenta.Checked) Then ErrorString = "Error al actualizar" End If End If From e10759d9cd79f8f858d1e290f257f149d210f250 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:19:18 -0700 Subject: [PATCH 11/37] =?UTF-8?q?--=20registro=20de=20pago=20de=20cr=C3=A9?= =?UTF-8?q?ditos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/IE.aspx.vb | 198 ++++++++++++++++++++++++---------------------- 1 file changed, 103 insertions(+), 95 deletions(-) diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index a1c19340e..de4d721c9 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -1034,34 +1034,28 @@ Partial Class Bancos_IE IDPoliza = ObjIE.IDPoliza IDCtaContable = ObjIE.IdCtaContable + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjIE.IDPoliza > 0 Then - If ObjIE.IDPoliza > 0 Then - - If UsuarioActual.TienePermisoProceso(107) Then - BtnDescontabilizar.Visible = True + If UsuarioActual.TienePermisoProceso(107) Then + BtnDescontabilizar.Visible = True + End If + BtnContabilizar.Visible = False + HplIrPoliza.Visible = True + HplIrPoliza.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", ObjIE.IDPoliza) + 'ImgEliminarMovimiento.OnClientClick = "return confirm('Esta seguro de eliminar el documento y su póliza?');" + LnkEliminar.OnClientClick = "return confirm('¿Está seguro de eliminar el documento y su póliza?');" + EstaContabilizado = True + TxtFechaDocumento.Enabled = False + ImgCalendario.Visible = False + Else + BtnContabilizar.Visible = True + BtnDescontabilizar.Visible = False + HplIrPoliza.Visible = False + EstaContabilizado = False End If - BtnContabilizar.Visible = False - HplIrPoliza.Visible = True - HplIrPoliza.NavigateUrl = String.Format("/Contabilidad/RegPoliza.aspx?IdPoliza={0}", ObjIE.IDPoliza) - 'ImgEliminarMovimiento.OnClientClick = "return confirm('Esta seguro de eliminar el documento y su póliza?');" - LnkEliminar.OnClientClick = "return confirm('¿Está seguro de eliminar el documento y su póliza?');" - - EstaContabilizado = True - - TxtFechaDocumento.Enabled = False - ImgCalendario.Visible = False - - - Else - BtnContabilizar.Visible = True - BtnDescontabilizar.Visible = False - HplIrPoliza.Visible = False - EstaContabilizado = False - - 'TxtFechaDocumento.Enabled = True - 'ImgCalendario.Visible = True - End If + UPPDesContabilizar.Update() 'ImgImprimir.Visible = True @@ -1416,9 +1410,9 @@ Partial Class Bancos_IE IDCtaBeneficiario = ObjProveedor.IdCtaContAcreedor - If Not IDCtaBeneficiario > 0 Then - Alert("No se pudo cargar IDCtaBeneficiario", TipoMensaje.MsgAdvertencia) - End If + 'If Not IDCtaBeneficiario > 0 Then + ' Alert("No se pudo cargar IDCtaBeneficiario", TipoMensaje.MsgAdvertencia) + 'End If End If @@ -2651,6 +2645,7 @@ Partial Class Bancos_IE Case "P" 'Proveedores If CveProveedor > 0 Then CveConceptoCompra = 10 'Anticipo a proveedor + If CveMoneda = 2 Then CveConceptoCompra = 338 CveConceptoContable = 30 'Pago a Proveedor CvePlantillaPoliza = 3 End If @@ -2720,7 +2715,11 @@ Partial Class Bancos_IE Dim FolioFijo As Integer = 0 Dim tCveMoneda As Integer = CveMoneda Dim tImporteMonedaExtranjera As Decimal = TxtImporte.Text.ToDecimal - If tCveMoneda <> 1 Then tImporteMonedaExtranjera = (TxtImporte.Text.ToDecimal * GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString.ToDecimal).RoundSQL + Dim tImporteMonedaME As Decimal = 0 + If tCveMoneda <> 1 Then + tImporteMonedaExtranjera = (TxtImporte.Text.ToDecimal * GlobalTipoCambio(TxtFechaDocumento.Text.Trim.ToDate).ToString.ToDecimal).RoundSQL + tImporteMonedaME = TxtImporte.Text.ToDecimal + End If Dim PagueseA = "" If HdnCveCliente.Value.ToEntero > 0 Then @@ -2884,7 +2883,7 @@ Partial Class Bancos_IE Select Case ConceptoContable - Case 10 + Case 10, 338 If RBL.SelectedValue = "P" AndAlso CveProveedor > 0 Then importeMovimiento = TxtImporte.Text.ToDecimal importeMX = importeMovimiento @@ -3596,71 +3595,76 @@ Partial Class Bancos_IE Dim ConceptoContable As Integer Dim TipoMovimiento As Boolean - Dim importeMovimiento As Decimal + Dim importeMovimiento As Decimal = TxtImporte.Text.ToDecimal Dim FechaMovimiento As Date = Now Dim Concepto As String = "" Dim Referencia As String = PagueseA + Dim CveCredito As Integer - Dim importeMX As Decimal - Dim Multiplicador As Integer + CveCredito = IfNull(Request("CveCredito"), "-1").ToString.ToEntero + CveCreditoDetalle = IfNull(Request("CveCreditoDetalle"), "-1").ToString.ToEntero + Concepto = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, PagueseA, "", ObjIE.Folio) - If ObjMov.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPoliza) Then - - For Each Row As DataRow In ObjMov.DtResultados.Rows - - ConceptoContable = Row("CveConcepto").ToString.ToEntero - TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False) - importeMovimiento = 0 - Multiplicador = (Row("Multiplicador").ToString.ToEntero) - Concepto = ObjMov.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, PagueseA, "", ObjIE.Folio) - - Select Case ConceptoContable - - Case 30 - importeMovimiento = TxtImporte.Text.ToDecimal - importeMX = importeMovimiento - If tCveMoneda > 1 Then - 'Agregamos complementaria - Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal - - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Concepto, 204, Concepto, FechaMovimiento, IDCtaContableComplementaria, -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=(importeMovimiento * TC - importeMovimiento).RoundSQL, ImporteME:=importeMovimiento, TipoCambio:=TC) Then - MsgError = "Ocurrió un error al registrar el asiento del ingreso." - End If - End If - Case 42 - - importeMovimiento = TxtImporte.Text.ToDecimal - importeMX = importeMovimiento - If tCveMoneda > 1 Then - importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal - importeMX = importeMovimiento - End If - - - Case 46 - If TxtInteresMoratorio.Text.ToDecimal > 0 Then - importeMovimiento = TxtInteresMoratorio.Text.ToDecimal - importeMX = importeMovimiento - Else - importeMovimiento = 0 - importeMX = 0 - End If - Case 48 - - importeMovimiento = TxtImporte.Text.ToDecimal - importeMX = importeMovimiento - - End Select - - If importeMovimiento <> 0 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then - MsgError = "Ocurrió un error al registrar el asiento del ingreso." - End If - End If - - Next + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Concepto, 57, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal, CveCredito:=CveCredito) Then + MsgError = "Ocurrió un error al registrar el asiento del ingreso." End If + If MsgError = "" AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Concepto, 30, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal, CveCredito:=CveCredito) Then + MsgError = "Ocurrió un error al registrar el asiento del ingreso." + End If + + If MsgError = "" AndAlso tCveMoneda > 1 Then + 'Agregamos complementaria + Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal + + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Concepto, 204, Concepto, FechaMovimiento, IDCtaContableComplementaria, -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=(importeMovimiento * TC - importeMovimiento).RoundSQL, ImporteME:=importeMovimiento, TipoCambio:=TC, CveCredito:=CveCredito) Then + MsgError = "Ocurrió un error al registrar el asiento del ingreso." + End If + End If + + 'Select Case ConceptoContable + + ' Case 30 + ' importeMovimiento = TxtImporte.Text.ToDecimal + ' importeMX = importeMovimiento + + ' Case 42 + + ' importeMovimiento = TxtImporte.Text.ToDecimal + ' importeMX = importeMovimiento + ' If tCveMoneda > 1 Then + ' importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal + ' importeMX = importeMovimiento + ' End If + + ' Case 57 + + ' importeMovimiento = TxtImporte.Text.ToDecimal + ' importeMX = importeMovimiento + ' If tCveMoneda > 1 Then + ' importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal + ' importeMX = importeMovimiento + ' End If + + ' Case 46 + ' If TxtInteresMoratorio.Text.ToDecimal > 0 Then + ' importeMovimiento = TxtInteresMoratorio.Text.ToDecimal + ' importeMX = importeMovimiento + ' Else + ' importeMovimiento = 0 + ' importeMX = 0 + ' End If + + + 'End Select + + ' If importeMovimiento <> 0 Then + ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then + ' MsgError = "Ocurrió un error al registrar el asiento del ingreso." + ' End If + ' End If + + Case Else Dim TipoMovimiento As Boolean = True @@ -3681,7 +3685,7 @@ Partial Class Bancos_IE 'MOVIMIENTOS EGRESOS - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=Importe30, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=Importe30, ImporteME:=tImporteMonedaME, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then Dim IVA As Decimal = 0 ' TxtImporte.Text.ToDouble * HdnProvPorIVA.Value.ToDouble If ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, TxtImporte.Text.ToDecimal - IVA - CIF, Ref, CveConceptoCompra, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=If(UsaComplementariaBancos, TxtImporte.Text.ToDecimal, tImporteMonedaExtranjera), ImporteME:=TxtImporte.Text.ToDecimal, CveIEDevolucion:=DdlIEAcreedor.SelectedValue.ToEntero) Then If IVA > 0 AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, IVA, Ref, 19, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=TxtImporte.Text.ToDecimal, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then @@ -3702,12 +3706,12 @@ Partial Class Bancos_IE If tCveMoneda > 1 And UsaComplementariaBancos Then Dim ImporteAplicar As Decimal = TxtImporte.Text.ToDecimal Dim ImporteAplicarMN = (ImporteAplicar * TxtTipoCambio.Text.ToDecimal - ImporteAplicar).RoundSQL() - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=tImporteMonedaME, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If - If CveConceptoCompra = 10 Then - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, 266, Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then + If CveConceptoCompra.Contiene(10, 338, 48) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, If(CveConceptoCompra = 10, 266, 340), Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If End If @@ -3873,8 +3877,12 @@ Partial Class Bancos_IE End If End If - If IDPoliza > 0 Then - Msg.AppendFormat("

Ver Póliza", IDPoliza) + If UsuarioActual.Empresa.TipoContabilidad = 1 Then + Msg.AppendFormat("

Ver Póliza", CvePrePoliza) + Else + If IDPoliza > 0 Then + Msg.AppendFormat("

Ver Póliza", IDPoliza) + End If End If 'AUTO DESCARGAR PDF PARA COMPU @@ -3888,7 +3896,7 @@ Partial Class Bancos_IE Else ObjIE.RollBack() Alert(MsgError, TipoMensaje.MsgAdvertencia) - If Opcion = "INGPC" Then + If Opcion.Contiene("INGPC", "EGSCREDITO") Then CveIE = -1 End If End If From 02ca97579488c54ae062d6ac6effd05b2ff6d83a Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:19:36 -0700 Subject: [PATCH 12/37] =?UTF-8?q?-mejora=20en=20mensaje=20de=20la=20p?= =?UTF-8?q?=C3=B3liza?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bancos/PrestamoPersonal.aspx.cs | 34 ++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/Bancos/PrestamoPersonal.aspx.cs b/Bancos/PrestamoPersonal.aspx.cs index a1d223eb4..4e65de59d 100644 --- a/Bancos/PrestamoPersonal.aspx.cs +++ b/Bancos/PrestamoPersonal.aspx.cs @@ -453,12 +453,21 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas // Msg.AppendFormat(@"

{1} ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE)), String.Format("Imprimir {0}", DdlTipoTransaccion.SelectedItem)); // } //} + + ObjIE.Commit(); + + if (UsuarioActual.Empresa.TipoContabilidad == 1) + { + Msg.AppendFormat(@"

Ver Póliza", CvePrePoliza); + } + else + { + if (IDPoliza > 0) + { + Msg.AppendFormat(@"

Ver Póliza", IDPoliza); + } + } - if (IDPoliza > 0) - { - Msg.AppendFormat(@"

Ver Póliza", IDPoliza); - } - ObjIE.Commit(); } else { @@ -757,10 +766,17 @@ public partial class Bancos_PrestamoPersonal : ClsPaginas archivo = new System.IO.FileInfo(String.Format("{0}Formatos/ComprobanteEgreso.rdlc", UsuarioActual.Empresa.Ruta, DdlCuentaPrestamo.SelectedValue.ToEntero())); } - if (IDPoliza > 0) - { - Msg.AppendFormat(@"

Ver Póliza", IDPoliza); - } + if (UsuarioActual.Empresa.TipoContabilidad == 1) + { + Msg.AppendFormat(@"

Ver Póliza", CvePrePoliza); + } + else + { + if (IDPoliza > 0) + { + Msg.AppendFormat(@"

Ver Póliza", IDPoliza); + } + } } else From e186f81dc9be6972c2d87092d9db107033dcfeb0 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:20:13 -0700 Subject: [PATCH 13/37] -- mejora de validacion de errores --- App_Code/ClsBancos.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 8b1f062b8..ca61f5bd1 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -4807,7 +4807,7 @@ Public Class ClsBancos strBody.AppendFormat(" Cuenta:") strBody.AppendFormat(" {0}", NumCuenta) strBody.AppendFormat(" ") - If CuentaDepositado.ToString <> "" Then + If CuentaDepositado IsNot Nothing AndAlso CuentaDepositado.ToString <> "" Then strBody.AppendFormat(" ") strBody.AppendFormat(" Cuenta Destino:") strBody.AppendFormat(" {0}", CuentaDepositado) From f254ceeddc919a7c435301d8e45be95b40fd115e Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:20:45 -0700 Subject: [PATCH 14/37] - mejora en mensaje de liga a prepoliza --- Bancos/ProveedoresAbonar.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 186558956..b12097b53 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -1101,7 +1101,7 @@ Partial Class Bancos_ProveedoresAbonar Msg.AppendFormat("
  • Imprimir movimiento
  • ", Encripta(String.Format("OP=IECHEQUE&CVEIE={0}", CveIE))) 'End If Msg.AppendFormat("
  • Listado
  • ", Encripta(String.Format("OP=ImprimeMov&CveIE={0}", CveIE))) - If IDPoliza > 0 Then Msg.AppendFormat("
  • Póliza
  • ", IDPoliza) + If IDPoliza > 0 AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then Msg.AppendFormat("
  • Póliza
  • ", IDPoliza) Dim Mensaje As String = String.Format("
    El Documento se generó correctamente.


    Descargas:
      {0}
    ", Msg.ToString) From 768e367ff5b33a537af2e5794f98e80a71bed9f8 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:21:14 -0700 Subject: [PATCH 15/37] -- redirect de conta a conta2 --- Contabilidad/CatCuentas.aspx.vb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Contabilidad/CatCuentas.aspx.vb b/Contabilidad/CatCuentas.aspx.vb index a63d13ba8..131ba86cf 100644 --- a/Contabilidad/CatCuentas.aspx.vb +++ b/Contabilidad/CatCuentas.aspx.vb @@ -29,6 +29,9 @@ Partial Class Contabilidad_CatCuentas If Not Page.IsPostBack Then 'inicio() 'RegistraScript("$('#Tsubcuenta').mask('00000-0000-0000-00000');") + If UsuarioActual.Empresa.TipoContabilidad = 1 OrElse UsuarioActual.CveEmpresa = 119 Then + Server.Transfer("/Contabilidad2/CatCuentas.aspx") + End If If UsuarioActual.Empresa.UsaContabilidad Then CargaMonedas() From ffa77a301d7f4ec81362c08e3b232e03836f966b Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:22:15 -0700 Subject: [PATCH 16/37] -reducir espacio --- Contabilidad/FiltraPolizas.aspx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Contabilidad/FiltraPolizas.aspx b/Contabilidad/FiltraPolizas.aspx index 155ba2d57..df35f97f9 100644 --- a/Contabilidad/FiltraPolizas.aspx +++ b/Contabilidad/FiltraPolizas.aspx @@ -81,15 +81,11 @@
    - -
    - +
    " style="display: inline-block; width: 150px;" /> " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info">
    - -
    From 652fecd99e407e326c704edbd7212cc19a93e0a1 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:23:43 -0700 Subject: [PATCH 17/37] ligas --- Contabilidad/RegPrePolizaS.aspx.vb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index 88146d494..0d677d195 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -562,8 +562,8 @@ Partial Class ContabilidadC_RegPrePolizaS Dim CveConceptoContable As Integer = e.Row.DataKey("CveConceptoContable").ToEntero - If CveConceptoContable.Contiene(1, 2, 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, 341, 342, 304, 272, 259) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Compras/Compras.aspx?CveCompra={0}", e.Row.DataKey("CveCompra")) + 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, 341, 342, 343, 344, 304, 272, 259) 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) Then e.Row.FCHyperLink("HlReferencia").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveIE")) @@ -1044,7 +1044,7 @@ Partial Class ContabilidadC_RegPrePolizaS TipoMovto = True If gvr.DataKey("EsComplementaria") = "True" Then ImporteME = gvr.DataKey("ImporteME").ToDecimal - If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TC").ToDecimal + If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TxtTC").ToDecimal End If Else @@ -1061,7 +1061,7 @@ Partial Class ContabilidadC_RegPrePolizaS TipoMovto = False If gvr.DataKey("EsComplementaria") = "True" Then ImporteME = gvr.DataKey("ImporteME").ToDecimal - If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TC").ToDecimal + If gvr.DataKey("EsMonedaExtranjera") = "True" Then TipoCambio = gvr.DataKey("TxtTC").ToDecimal End If End If From c4f03f51093efbeff3940ad6337ebd7630f02b14 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:24:39 -0700 Subject: [PATCH 18/37] =?UTF-8?q?--=20reubicaci=C3=B3n=20visual=20--=20fil?= =?UTF-8?q?trado=20de=20conceptos,=20solo=20de=20n=C3=B3minas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Nomina/ConceptoNomina.aspx | 29 +++++++++++++++-------------- Nomina/ConceptoNomina.aspx.cs | 2 +- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Nomina/ConceptoNomina.aspx b/Nomina/ConceptoNomina.aspx index aea471a02..067ac9bc9 100644 --- a/Nomina/ConceptoNomina.aspx +++ b/Nomina/ConceptoNomina.aspx @@ -135,20 +135,7 @@
    -
    -
    -
    - - - - -
    -
    -
    -
    -
    -
    -
    +
    @@ -168,6 +155,20 @@
    +
    +
    +
    + + + + +
    +
    +
    +
    +
    +
    +
    diff --git a/Nomina/ConceptoNomina.aspx.cs b/Nomina/ConceptoNomina.aspx.cs index 37f978e04..b89504546 100644 --- a/Nomina/ConceptoNomina.aspx.cs +++ b/Nomina/ConceptoNomina.aspx.cs @@ -225,7 +225,7 @@ public partial class Nomina_CatConcepto : ClsPaginas } protected void CargaConceptoContable() { - DdlConceptoContable.DataSource = get_GlobalDTContaConceptosContables(-1); + DdlConceptoContable.DataSource = get_GlobalDTContaConceptosContables(-1).FiltraParametros("Tipo = 'Nom'"); DdlConceptoContable.DataBind(); DdlConceptoContable.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlConceptoContable.SelectedValueExist("-1"); From a7e0d41b0d137f70d845ab03ce8490e3aa47e726 Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:27:23 -0700 Subject: [PATCH 19/37] -- pago de compra, con diferentes monedas --- App_Code/ClsPaginas.vb | 111 ++++++++++++++++++++++++++++------------- 1 file changed, 76 insertions(+), 35 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 215aada2b..0f744635e 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -6,6 +6,7 @@ Imports System.IO Imports System.Net.Http Imports System.Xml Imports CrystalDecisions.CrystalReports.Engine +Imports CrystalDecisions.ReportSource Imports CrystalDecisions.Shared Imports Extensiones Imports iText.Kernel.Pdf @@ -7667,7 +7668,6 @@ Public Class ClsPaginas #Region "P A G O D E C O M P R A S " Public Function AplicaPrePolizaPagoCompra(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean Dim ErrorMovtos As Boolean = False - Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total Dim ImporteMovimiento As Decimal = 0 Dim ImporteMN As Decimal = 0 Dim ImporteME As Decimal = 0 @@ -7677,6 +7677,14 @@ Public Class ClsPaginas Dim tFechaUltimaFluctuacion As Date Dim tImportePago As Decimal Dim tImporteCompra As Decimal = Pago.ImportePago + Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total + 'VALIDACIONES A CONSIDERAR + If CompraActual.CveMoneda = Pago.CveMonedaPago Then + Pago.TCCambioMoneda = 1 ' si la moneda es igual, el importe debe ser 1 + ElseIf CompraActual.CveMoneda <> Pago.CveMonedaPago AndAlso Pago.TCCambioMoneda = 1 Then + ErrorMovtos = True + Return ErrorMovtos + End If Dim ConPreP As ConceptosTipoSaldo = ObtenerCveConceptoPrePoliza(1, CompraActual.CveMoneda, True, CompraActual.CveTipoConceptoProveedor) 'cuando el Pago viene por NC, se utiliza un concepto @@ -7701,25 +7709,32 @@ Public Class ClsPaginas If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL + PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + tImportePago = (Pago.ImportePago).RoundSQL + PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + PorcentajePago = Pago.ImportePago / CompraActual.Total + ElseIf CompraActual.CveMoneda = 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = Pago.ImportePago + tImportePago = Pago.ImportePago + PorcentajePago = Pago.ImportePago / CompraActual.Total End If - Dim ImportePagoMN As Decimal = Pago.ImportePago + Dim ImportePagoMN As Decimal = Pago.ImportePagoCompra Dim UsaComplementaria As Boolean = True - If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePago + If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoCompra If UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'caso excepcional de complementarias UsaComplementaria = False - ImportePagoMN = (Pago.ImportePago * TCValuacionCompra).RoundSQL + ImportePagoMN = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL End If 'movimiento de pago proveedor - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImportePagoMN, ConPreP.CveConcepto, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePagoCompra, ImportePagoMN, ConPreP.CveConcepto, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True 'movimiento de pago proveedor Complementaria If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, ConPreP.CveConceptoComplementario, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePagoCompra, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, ConPreP.CveConceptoComplementario, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto, CveVenta:=Pago.CveVentaRelacionada) Then ErrorMovtos = True End If If Pago.AplicaAcreditable Then 'si tiene iva y su proporcion @@ -7886,6 +7901,12 @@ Public Class ClsPaginas Public Property CveIE As Integer = -1 Public Property CvePersonal As Integer = -1 Public Property ImportePago As Decimal = 0 + Public ReadOnly Property ImportePagoCompra As Decimal + Get + Return (ImportePago * TCCambioMoneda).RoundSQL + End Get + End Property + Public Property TCCambioMoneda As Decimal = 1 Public Property CveMonedaPago As Integer = 1 Public Property TCPago As Decimal = 1 Public Property CveCompraAmortizacion As Integer = 0 @@ -8037,43 +8058,53 @@ Public Class ClsPaginas End Get End Property End Class - ' 1. Proveedores, 11. anticipos proveedores, 15. Notas de crédito de proveedores - Public Shared ReadOnly Property ObtenerCveConceptoPrePoliza(CveTipoSaldo As Integer, CveMoneda As Integer, EsAplicacionPago As Boolean, CveTipoProveedor As Integer) As ConceptosTipoSaldo + ' 1. Proveedores, 11. anticipos proveedores, 15. Notas de crédito de proveedores, 6. Clientes + 'CveTipoProveedorTipoDocto: cuando es TipoSaldo=2: 1. Proveedor, 2. Acreedor, TipoSaldo=6: 1.Factura, 2.NC + Public Shared ReadOnly Property ObtenerCveConceptoPrePoliza(CveTipoSaldo As Integer, CveMoneda As Integer, EsAplicacionPago As Boolean, CveTipoProveedorTipoDocto As Integer) As ConceptosTipoSaldo Get + Dim Retorno As New ConceptosTipoSaldo If EsAplicacionPago Then Select Case CveTipoSaldo Case 1 ' proveedores/acreedores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 17, 308) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 17, 308) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 312, 309) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 206, 310) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 312, 309) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 206, 310) End Select Case 11 ' anticipos Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 21, 56) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 21, 56) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 339, 346) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 340, 347) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 339, 346) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 340, 347) End Select Case 15 ' notas de crédito Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 60, 324) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 60, 324) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 342, 344) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 235, 235) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 342, 344) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 235, 235) End Select Case 17 ' deudores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 37, 37) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 37, 37) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 37, 37) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 256, 256) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 37, 37) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 256, 256) + End Select + Case 6 ' clientes + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 2, 91) '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 292, 294) '1.Venta.2.NC + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 207, 203) '1.Venta.2.NC End Select End Select Else 'cuando es la provisión @@ -8081,35 +8112,44 @@ Public Class ClsPaginas Case 1 ' proveedores/acreedores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 5, 305) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 5, 305) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 311, 306) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 201, 307) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 311, 306) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 201, 307) End Select Case 11 ' anticipos Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 10, 48) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 10, 48) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 338, 345) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 340, 347) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 338, 345) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 340, 347) End Select Case 15 ' notas de crédito Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 18, 323) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 18, 323) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 341, 343) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 234, 234) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 341, 343) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 234, 234) End Select Case 17 ' deudores Select Case CveMoneda Case 1 'pesos - Retorno.CveConcepto = If(CveTipoProveedor = 1, 43, 43) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 43, 43) Case 2 'dólares - Retorno.CveConcepto = If(CveTipoProveedor = 1, 43, 43) - Retorno.CveConceptoComplementario = If(CveTipoProveedor = 1, 256, 256) + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 43, 43) + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 256, 256) End Select + Case 6 ' clientes + Select Case CveMoneda + Case 1 'pesos + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 1, 12) '1.Venta.2.NC + Case 2 'dólares + Retorno.CveConcepto = If(CveTipoProveedorTipoDocto = 1, 291, 293) '1.Venta.2.NC + Retorno.CveConceptoComplementario = If(CveTipoProveedorTipoDocto = 1, 203, 203) '1.Venta.2.NC + End Select + End Select End If @@ -8401,6 +8441,7 @@ Public Class ClsPaginas PaginaDict.Add("/Nomina/ISRCalculoAnual.aspx".ToUpper(), 918) PaginaDict.Add("/Nomina/MovimientosSUA.aspx".ToUpper(), 919) PaginaDict.Add("/Nomina/Acumulados.aspx".ToUpper(), 916) + PaginaDict.Add("/RH/CalculoSBC.aspx".ToUpper(), 915) PaginaDict.Add("/Inicio.aspx".ToUpper(), -1) PaginaDict.Add("/reporteador.aspx".ToUpper(), -1) From a377b0df4b244c7592a9136cb047584b4262913c Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 4 May 2023 18:29:01 -0700 Subject: [PATCH 20/37] ids fluctuaciones fijas E13 --- Contabilidad/DiarioPagos.aspx.vb | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Contabilidad/DiarioPagos.aspx.vb b/Contabilidad/DiarioPagos.aspx.vb index f6e19b1f6..10a005927 100644 --- a/Contabilidad/DiarioPagos.aspx.vb +++ b/Contabilidad/DiarioPagos.aspx.vb @@ -109,7 +109,7 @@ Partial Class Contabilidad_DiarioPagos DdlPolizaTipo.SelectedValue = "2" 'busco si se ocupa el tipo de cambio - CargaDatos(-1) + 'CargaDatos(-1) Cc.Dispose() Else @@ -1066,16 +1066,13 @@ Partial Class Contabilidad_DiarioPagos End If - - FluctuacionCambiaria += Math.Round((CompraPagadoRetISR * TipoCambioCompra) - (CompraPagadoRetISR * TipoCambioPago), 2) 'FLUCTUACION CAMBIARIA DE ISR - Dim Dif As Double = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria - + Dim Dif As Decimal = (CompraPagadoTotal * TipoCambioPago) - Math.Round(CompraPagadoTotal * TipoCambioCompra, 2) + FluctuacionCambiaria If Dif < 0 Then - tempMovto = True ' ganancia cambiaria + CtaFluctuacion = If(UsuarioActual.CveEmpresa = 13, 579, 0) : tempMovto = True ' ganancia cambiaria Else - tempMovto = False ' perdida cambiaria + CtaFluctuacion = If(UsuarioActual.CveEmpresa = 13, 578, 0) : tempMovto = False ' perdida cambiaria End If ConceptoDetalle = String.Format("{0} TC:{1} ${2}", gvr.FCTextBox("TxtDescripcion").Text, TipoCambioPago, Math.Abs(Dif).FormatoNumero) From b12fde09bdd8fec4a79fff7a699f6c2107873e66 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 07:29:17 -0700 Subject: [PATCH 21/37] =?UTF-8?q?--=20mejora=20en=20saldado,=20para=20que?= =?UTF-8?q?=20tome=20los=20conceptos=20de=20la=20func=C3=AD=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/ClientesAbonar.aspx.vb | 30 ++--- Ventas/RepAnticipo-NC-IXCDetalle.aspx | 2 +- Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs | 142 +++++++++++++---------- 3 files changed, 91 insertions(+), 83 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 1d4659597..f051b4b33 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2476,22 +2476,18 @@ Partial Class Ventas_ClientesAbonar Else IdCtaContable = IdCuentaCliente End If + Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, False, 1) + + 'normal + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, ConPreP.CveConcepto, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + MsgError = "Ocurrio un error al saldar el movimiento" + End If If UsaComplementaria AndAlso tCveMoneda = 2 Then - 'normal - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If 'complementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, 207, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, 0, gr.DataKey("SerieFolio").ToString, ConPreP.CveConceptoComplementario, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContComplementaria, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, (Saldo * TCVenta) - Saldo).RoundSQL, ImporteME:=Saldo, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If - - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, CveConceptoCliente, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then - MsgError = "Ocurrio un error al saldar el movimiento" - End If - End If 'fluctuación. @@ -2519,18 +2515,6 @@ Partial Class Ventas_ClientesAbonar End If - ' iva - Dim PorcentajeImpuesto As Decimal = gr.DataKey("PorcentajeIVA").ToDecimal - - Dim IdCtaIVAXTrasladar As Integer = 0 - Dim CveCuentaIVAxTrasladar As Integer = 0 - - 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows.Count > 0 Then - ' IdCtaIVAXTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("IdCtaIVAXTrasladar").ToString.ToEntero - ' CveCuentaIVAxTrasladar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeImpuesto).Rows(0)("CveCuentaIVAxTrasladar").ToString.ToEntero - 'End If - - If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If diff --git a/Ventas/RepAnticipo-NC-IXCDetalle.aspx b/Ventas/RepAnticipo-NC-IXCDetalle.aspx index 2ba2f08ee..06c7486cd 100644 --- a/Ventas/RepAnticipo-NC-IXCDetalle.aspx +++ b/Ventas/RepAnticipo-NC-IXCDetalle.aspx @@ -152,7 +152,7 @@ diff --git a/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs b/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs index baf38dc5a..54a1a7722 100644 --- a/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs +++ b/Ventas/RepAnticipo-NC-IXCDetalle.aspx.cs @@ -1,4 +1,5 @@ using System; +using System.Activities.Expressions; using System.Collections.Generic; using System.Data; using System.Linq; @@ -324,80 +325,103 @@ public partial class Ventas_RepAnticipo_NC_IXCDetalle : ClsPaginas { ClsContabilidad ObjConta = new ClsContabilidad(); ObjConta.IniciaTransacSQL(); - int CvePrePoliza = 0, ConceptoContable1 = 0, ConceptoContable2 = 0, CveVenta = -1, CveIE = -1; + int CvePrePoliza = 0, CveVenta = -1, CveIE = -1; decimal Saldo = 0; - string MsgError = ""; - if (Tipo == 2) - { - ConceptoContable1 = 91; - ConceptoContable2 = 12; - } - else if (Tipo == 1) - { - ConceptoContable1 = 11; - ConceptoContable2 = 3; - } - else if (Tipo == 3) - { - ConceptoContable1 = 92; - ConceptoContable2 = 92; - } + decimal ImporteTotalGasto = 0; + string MsgError = ""; + + CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, 0, 0, 1, TxtFecha.Text.ToDate(), TxtConcepto.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); - foreach (GridViewRow Gv in GvDatos.Rows) - { - if (Gv.FCCheckBox("Chk").Checked) + if (CvePrePoliza > 0) + { + foreach (GridViewRow Gv in GvDatos.Rows) { - if (Tipo == 1 || Tipo == 2) - { - CveVenta = Gv.DataKey("CveVenta").ToEntero(); - Saldo = -Gv.DataKey("Saldo").ToDecimal(); - } - else if (Tipo == 3) - { - CveIE = Gv.DataKey("CveIE").ToEntero(); - Saldo = Gv.DataKey("Saldo").ToDecimal(); - } - - int IdCtaContable = 0; - if (ObjConta.GetRetCuenta(ConceptoContable1, Gv.DataKey("CveCliente").ToEntero())) - { - if (ObjConta.DtResultados.Rows.Count > 0) + ConceptosTipoSaldo ConPreP = new ConceptosTipoSaldo(); + if (Gv.FCCheckBox("Chk").Checked) + { + if (Tipo == 2) + { + ConPreP = ClsPaginas.get_ObtenerCveConceptoPrePoliza(6, Gv.DataKey("CveMoneda").ToEntero(), false, 2); + } + else if (Tipo == 1) + { + ConPreP.CveConcepto = 3; + } + + if (Tipo == 1 || Tipo == 2) { - if (Tipo == 1 || Tipo == 2) - { - IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContable"].ToString().ToEntero(); - } - else if (Tipo == 3) - { - IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContClientes"].ToString().ToEntero(); + CveVenta = Gv.DataKey("CveVenta").ToEntero(); + Saldo = -Gv.DataKey("Saldo").ToDecimal(); + } + else if (Tipo == 3) + { + ConPreP.CveConcepto = 92; + CveIE = Gv.DataKey("CveIE").ToEntero(); + Saldo = Gv.DataKey("Saldo").ToDecimal(); + } + + int IdCtaContable = 0; + if (UsuarioActual.Empresa.TipoContabilidad == 2) + { + if (UsuarioActual.Empresa.TipoContabilidad == 2 && ObjConta.GetRetCuenta(ConPreP.CveConcepto, Gv.DataKey("CveCliente").ToEntero())) + { + if (ObjConta.DtResultados.Rows.Count > 0) + { + if (Tipo == 1 || Tipo == 2) + { + IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContable"].ToString().ToEntero(); + } + else if (Tipo == 3) + { + IdCtaContable = ObjConta.DtResultados.Rows[0]["IdCtaContClientes"].ToString().ToEntero(); + } + } + } + else + { + break; + } + } + + ImporteTotalGasto += Saldo; + if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("SerieFolio").ToString(), ConPreP.CveConcepto, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteMX: Saldo)) + { + MsgError = "Ocurrio un error al saldar el movimiento"; + break; + } + if (Gv.DataKey("CveMoneda").ToEntero() > 1 ) + { + decimal ImporteMN = (Saldo * Gv.DataKey("TipoCambio").ToDecimal() - Saldo).RoundSQL(); + ImporteTotalGasto += ImporteMN; + if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("SerieFolio").ToString(), ConPreP.CveConceptoComplementario, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteME: Saldo, ImporteMX: ImporteMN, TipoCambio: Gv.DataKey("TipoCambio").ToDecimal())) + { + MsgError = "Ocurrio un error al saldar el movimiento"; + break; } } - } - else + } + } + + if (ImporteTotalGasto != 0) + { + ImporteTotalGasto = ImporteTotalGasto * -1; // se invierte el valor, para cuadre de prepoliza + if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, ImporteTotalGasto, "", 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: ImporteTotalGasto, CveSubProyecto: DdlSubProyectoSaldar.SelectedValue.ToEntero())) { - break; - } - CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepNCXAplicar", 6, Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("Saldo").ToDouble(), Gv.DataKey("CveMoneda").ToEntero(), TxtFecha.Text.ToDate(), "Saldo de NC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa); - - if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Saldo, Gv.DataKey("Folio").ToString(), ConceptoContable2, TxtConcepto.Text, TxtFecha.Text.ToDate(), IdCtaContable, -1, CveIE, CveVenta, CveCliente: Gv.DataKey("CveCliente").ToEntero(), ImporteMX: Saldo)) - { - MsgError = "Ocurrio un error al saldar el movimiento"; - break; - } - - if (!ObjConta.AddPrePolizasDetalle(CvePrePoliza, true, Gv.DataKey("Saldo").ToDecimal(), Gv.DataKey("Folio").ToString(), 78, TxtConcepto.Text, TxtFecha.Text.ToDate(), UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, CveIE, CveVenta, ImporteMX: Gv.DataKey("Saldo").ToDecimal(), CveSubProyecto: DdlSubProyectoSaldar.SelectedValue.ToEntero())) - { MsgError = "Ocurrio un error al saldar el movimiento"; - break; } - + } + else + { + MsgError = "Poliza no insertada"; } } if (MsgError == "") { ObjConta.Commit(); - Alert("Los movimientos se saldaron correctamente."); + string Msg = "Los movimientos se saldaron correctamente."; + Msg = Msg + $"

    Ver Póliza   "; + Alert(Msg); } else { From e70366e1f1d0dff5b4be33ae3a9f8149faa30f6d Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 07:29:39 -0700 Subject: [PATCH 22/37] =?UTF-8?q?--=20mejora=20aplicaci=C3=B3n=20pagos=20o?= =?UTF-8?q?tras=20moendas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx | 13 +++++++++---- Compras/Compras.aspx.vb | 7 +++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 17f32de8d..5718df506 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -5903,9 +5903,9 @@ if (t.checked) { if (DifSaldo > importevalue) { - txt.value = ToDouble(importevalue*TCC).toFixed(2); + txt.value = toFixed(ToDouble(importevalue*TCC),2); } else { - txt.value = ToDouble(DifSaldo*TCC).toFixed(2); + txt.value = toFixed(ToDouble(DifSaldo*TCC),2); } } else { txt.value = ""; @@ -5914,7 +5914,7 @@ $("#LblTotalAnticipos").text(FormatoNumero(FnSumaValoresAnt(), 2)); $("#LblAplicadoCompraAnt").text(FormatoNumero(FnSumaValoresAnt(), 2)); $("#LblAplicadoCompraAntComision").text(FormatoNumero(FnSumaValoresAntComisiones(), 2)); - $("#LblSaldoFactura").text(FormatoNumero(TotalSaldo - FnSumaValoresAnt(), 2)); + $("#LblSaldoFactura").text(FormatoNumero(TotalSaldoCompra - FnSumaValoresAnt(), 2)); } @@ -5948,7 +5948,7 @@ txtvalue = ToDouble(txtvalue * TCAnticipo); } - var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue)).toFixed(2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); + var SaldoCompra = toFixed(TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue),2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); if (SaldoCompra < 0) txt.value = SaldoCompra - txtvalue; //minimo entre saldocompra y el saldoanticipo @@ -5971,6 +5971,11 @@ $("#LblSaldoFactura").text(FormatoNumero(TotalSaldo - FnSumaValoresAnt(), 2)); } + //funcion para truncar en lugar de redondear + function toFixed(num, fixed) { + var re = new RegExp('^-?\\d+(?:\.\\d{0,' + (fixed || -1) + '})?'); + return num.toString().match(re)[0]; + } function FnSumaValoresAnt() { var totalPoints = 0; diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 18d4f15da..278d7160a 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -8586,9 +8586,8 @@ Partial Class Compras_Compras Pago.TCPago = TipoCambioAnt Pago.CveProveedor = gvr.DataKey("CveProveedor").ToEntero - If CompraActual.CveMoneda = 1 AndAlso Pago.CveMonedaPago = 2 Then - CompraActual.TC = Pago.TCPago - End If + If ChkPagarConPesos.Checked Then Pago.TCCambioMoneda = 1 / TipoCambioAnt + If ChkPagarConDolares.Checked Then Pago.TCCambioMoneda = TipoCambioAnt Select Case gvr.DataKey("TipoDocto") Case "NC", "DEV" @@ -10061,7 +10060,7 @@ Partial Class Compras_Compras e.Row.DBCampo("Saldo"), If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda"), - tTCFecha, + e.Row.DBCampo("TCCompra").ToDouble, DdlMoneda.SelectedValue, IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text))) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO From a52ec03c15cb3adbb70040a2d1adeb9552f666a6 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 07:29:54 -0700 Subject: [PATCH 23/37] =?UTF-8?q?--=20cambios=20aplicaci=C3=B3n=20pagos=20?= =?UTF-8?q?compras?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsPaginas.vb | 39 +++++++++++++++++++++---------------- Bancos/IE.aspx.vb | 35 +++------------------------------ Bancos/PopIECompras.aspx.vb | 17 ++++++++++++---- 3 files changed, 38 insertions(+), 53 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 233d3befb..1ff3db797 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -7707,23 +7707,28 @@ Public Class ClsPaginas If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion End If End If - If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares - tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago).RoundSQL - PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL - PorcentajePago = Pago.ImportePago / CompraActual.Total - ElseIf CompraActual.CveMoneda = 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = Pago.ImportePago - tImportePago = Pago.ImportePago - PorcentajePago = Pago.ImportePago / CompraActual.Total - End If + + tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total + + 'If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares + ' tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL + ' tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + ' PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total + 'ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + ' tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + ' tImportePago = (Pago.ImportePago).RoundSQL + ' PorcentajePago = Pago.ImportePago * Pago.TCCambioMoneda / CompraActual.Total + 'ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares + ' tImporteCompra = (Pago.ImportePagoCompra * TCValuacionCompra).RoundSQL + ' tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + ' PorcentajePago = Pago.ImportePago / CompraActual.Total + 'ElseIf CompraActual.CveMoneda = 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + ' tImporteCompra = Pago.ImportePagoCompra + ' tImportePago = Pago.ImportePago + ' PorcentajePago = Pago.ImportePago / CompraActual.Total + 'End If Dim ImportePagoMN As Decimal = Pago.ImportePagoCompra Dim UsaComplementaria As Boolean = True If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoCompra diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index de4d721c9..583fafb2d 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -2660,6 +2660,7 @@ Partial Class Bancos_IE Case "AC" ' Acreedores Diversos If CveProveedor > 0 Then CveConceptoCompra = 48 'anticipo a acreedor diverso + If CveMoneda = 2 Then CveConceptoCompra = 345 CveConceptoContable = 30 'Bancos 'limpio el iva HdnProvPorIVA.Value = "0" @@ -2883,7 +2884,7 @@ Partial Class Bancos_IE Select Case ConceptoContable - Case 10, 338 + Case 10, 338, 345 If RBL.SelectedValue = "P" AndAlso CveProveedor > 0 Then importeMovimiento = TxtImporte.Text.ToDecimal importeMX = importeMovimiento @@ -3622,29 +3623,6 @@ Partial Class Bancos_IE End If End If - 'Select Case ConceptoContable - - ' Case 30 - ' importeMovimiento = TxtImporte.Text.ToDecimal - ' importeMX = importeMovimiento - - ' Case 42 - - ' importeMovimiento = TxtImporte.Text.ToDecimal - ' importeMX = importeMovimiento - ' If tCveMoneda > 1 Then - ' importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal - ' importeMX = importeMovimiento - ' End If - - ' Case 57 - - ' importeMovimiento = TxtImporte.Text.ToDecimal - ' importeMX = importeMovimiento - ' If tCveMoneda > 1 Then - ' importeMovimiento = TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal - ' importeMX = importeMovimiento - ' End If ' Case 46 ' If TxtInteresMoratorio.Text.ToDecimal > 0 Then @@ -3656,13 +3634,6 @@ Partial Class Bancos_IE ' End If - 'End Select - - ' If importeMovimiento <> 0 Then - ' If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, If(ConceptoContable = 30, IDCtaContable, IDCtaBeneficiario), -1, CveIE:=CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=importeMovimiento, ImporteME:=tImporteMonedaExtranjera, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then - ' MsgError = "Ocurrió un error al registrar el asiento del ingreso." - ' End If - ' End If Case Else @@ -3710,7 +3681,7 @@ Partial Class Bancos_IE MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If - If CveConceptoCompra.Contiene(10, 338, 48) Then + If CveConceptoCompra.Contiene(10, 338, 48, 345) Then If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, ImporteAplicar, Ref, If(CveConceptoCompra = 10, 266, 340), Conc, Now, IdCtaAnticipoComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then MsgError = "Ocurrió un error al registrar el asiento de bancos complementaria de devolución" End If diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 2f2075c60..866df3a64 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -1402,11 +1402,15 @@ Partial Class Bancos_PopIECompras 'Tipos de cambio If Pago.CveMonedaPago = 1 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en Pesos Pago.TCPago = TxtTipoCambio.Text.ToDecimal + Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 2 Then 'Si la venta viene en Dolares y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal ElseIf Pago.CveMonedaPago = 2 AndAlso CompraActual.CveMoneda = 1 Then 'Si la venta viene en pesos y se va a pagar en DOLARES Pago.TCPago = TxtTipoCambio.Text.ToDecimal + Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal End If + If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal + If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal If TxtComision.Text.ToDecimal <> 0 Then Pago.OtroGastoIngreso = TxtComision.Text.ToDecimal Else Pago.OtroGastoIngreso = 0 @@ -1416,6 +1420,7 @@ Partial Class Bancos_PopIECompras If Not CveIE > 0 Then MsgError = "Ocurrio un Error al registrarse el movimiento bancario." End If + 'Importe de pago Pago.ImportePago = ImportePagado Pago.CveIE = CveIE @@ -1473,8 +1478,6 @@ Partial Class Bancos_PopIECompras Alert("No se encontro movimientos bancarios de personal", TipoMensaje.MsgAdvertencia) Exit Sub End If - - Dim saldo As Decimal = DtCheques.Rows(DDlCheques.SelectedIndex)("Saldo").ToString.ToDecimal If TxtImporte.Text.ToDecimal > saldo Then @@ -1503,6 +1506,8 @@ Partial Class Bancos_PopIECompras Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal + If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / rw.DataKey("TipoCambio").ToDecimal + If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = rw.DataKey("TipoCambio").ToDecimal If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" @@ -1544,11 +1549,15 @@ Partial Class Bancos_PopIECompras For Each rw As GridViewRow In GvAcreedores.Rows If rw.FCCheckBox("Chk").Checked AndAlso rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal <> 0 Then + Dim TCC As Decimal = 1 + Pago = New CompraPago + If ChkPagarPesos.Checked Then Pago.TCCambioMoneda = 1 / TxtTipoCambio.Text.ToDecimal + If ChkPagarDolares.Checked Then Pago.TCCambioMoneda = TxtTipoCambio.Text.ToDecimal Pago.CveIE = rw.DataKey("CveIE").ToEntero Pago.CveMonedaPago = rw.DataKey("CveMoneda").ToEntero Pago.ImportePago = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - Pago.TCPago = rw.DataKey("TipoCambio").ToDecimal - Pago.CveProveedor = DdlDeudor.SelectedValue.ToEntero + Pago.TCPago = TxtTipoCambio.Text.ToDecimal + Pago.CveProveedor = DdlAcreedor.SelectedValue.ToEntero Pago.TipoPago = "Egsc" If AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjMov) Then MsgError = "No se pudo insertar la póliza" From 24d3c1289f6945efb76ad2359a507f6e9bdb6ce1 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 07:30:18 -0700 Subject: [PATCH 24/37] -- desbloqueo antes de eliminar movto --- Inventarios/EntradasSalidas.aspx.vb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 41ec07a45..a73301e22 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -1371,6 +1371,12 @@ Partial Class Inventarios_EntradasSalidas TieneError = True End If + If Not TieneError Then + If Not Conta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then + TieneError = True + End If + End If + If Inv.MovimientoRemove(CveMovimiento, UsuarioActual.CveEmpresa, UsuarioActual.CveUsuario) Then If HdnIdPoliza.Value.ToEntero > 0 Then If Not ObjConta.RemovePoliza(HdnIdPoliza.Value.ToEntero) Then @@ -1381,12 +1387,6 @@ Partial Class Inventarios_EntradasSalidas TieneError = True End If - If Not TieneError Then - If Not Conta.UpdatePrePolizasDetalleBloquear(CvePrePoliza, False) Then - TieneError = True - End If - End If - If Not TieneError Then If ObjConta IsNot Nothing Then ObjConta.Commit() Inv.Commit() From 6a14f0858c98807878bb07a4d886322a3f4a2887 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 07:50:11 -0700 Subject: [PATCH 25/37] - --- Ventas/ClientesAbonar.aspx.vb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index f051b4b33..6a4d9b431 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2515,15 +2515,15 @@ Partial Class Ventas_ClientesAbonar End If - If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + If (IVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And IVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IVA, gr.DataKey("SerieFolio").ToString, 13, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IVA, IVA * TCVenta), PorcentajeImpuesto:=gr.DataKey("PorcetajeIVA").ToDecimal, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If - If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, gr.DataKey("SerieFolio").ToString, 8, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContRetIVA, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, RETIVA, RETIVA * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + If (RETIVA > 0 Or UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122) And RETIVA < 0) AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, RETIVA, gr.DataKey("SerieFolio").ToString, 8, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContRetIVA, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, RETIVA, RETIVA * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If - If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), PorcentajeImpuesto:=PorcentajeImpuesto, TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then + If IEPS > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ImpuestosMovto, IEPS, gr.DataKey("SerieFolio").ToString, 38, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable, -1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, IEPS, IEPS * TCVenta), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then MsgError = "Ocurrio un error al saldar el movimiento" End If From 1dfc212ca7f46e12346dcf887a22e161abe28edd Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 09:40:43 -0700 Subject: [PATCH 26/37] -- si se manda el parametro de cveprepoliza, y no existe que tome el comportamiento como nueva prepoliza --- Contabilidad/RegPrePolizaS.aspx.vb | 70 +++++++++++++++++------------- 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb index 0d677d195..75068d7ea 100644 --- a/Contabilidad/RegPrePolizaS.aspx.vb +++ b/Contabilidad/RegPrePolizaS.aspx.vb @@ -284,32 +284,41 @@ Partial Class ContabilidadC_RegPrePolizaS If Request("CvePrePoliza") IsNot Nothing AndAlso IsNumeric(Request("CvePrePoliza")) AndAlso Request("CvePrePoliza").ToEntero > 0 Then - ViewState("CvePrePoliza") = Request("CvePrePoliza").ToEntero CreaDT() CreaDTEliminar() - CargaPrePoliza() - If IfNull(Request("Tipo"), "").ToString <> "NOMPROV" Then - GvPrePoliza.Columns(5).Visible = False - DivTG.Visible = False - GvMov.Columns(5).Visible = False - End If - ValidaCrearAPartirDe() - DvPlantilla.Visible = False + If CargaPrePoliza(Request("CvePrePoliza").ToEntero) Then + If IfNull(Request("Tipo"), "").ToString <> "NOMPROV" Then + GvPrePoliza.Columns(5).Visible = False + DivTG.Visible = False + GvMov.Columns(5).Visible = False + End If + ValidaCrearAPartirDe() + DvPlantilla.Visible = False + If UsuarioActual.Empresa.TipoContabilidad = 1 Then + If Folio.ToEntero > 0 Then + BtnDescontabilizar.Visible = True + LnkFolioManual.Visible = False + Else + BtnDescontabilizar.Visible = False + LnkFolioManual.Visible = True + End If - If UsuarioActual.Empresa.TipoContabilidad = 1 Then - - If Folio.ToEntero > 0 Then - BtnDescontabilizar.Visible = True - LnkFolioManual.Visible = False - Else - BtnDescontabilizar.Visible = False - LnkFolioManual.Visible = True End If + Exit Sub + Else + BtnEliminar.Visible = False + LnkExcel.Visible = True + LnkImprimirPDF.Visible = False + DvPlantilla.Visible = True + + TxtFechaDocumento.Text = Now.ToString("dd/MM/yyyy") + TxtFechaelaboracion.Text = Now.ToString("dd/MM/yyyy") + TxtConcepto.Enabled = True + TxtUsuarioElaboro.Text = UsuarioActual.Usuario End If - Exit Sub ElseIf Request("CvePrePolizaOrigen") IsNot Nothing AndAlso IsNumeric(Request("CvePrePolizaOrigen")) AndAlso Request("CvePrePolizaOrigen").ToEntero > 0 Then @@ -334,10 +343,6 @@ Partial Class ContabilidadC_RegPrePolizaS TxtFechaelaboracion.Text = Now.ToString("dd/MM/yyyy") TxtConcepto.Enabled = True TxtUsuarioElaboro.Text = UsuarioActual.Usuario - DvPlantilla.Visible = True - 'LnkAddConcepto.Visible = False - - 'UpPrePoliza.Visible = False End If @@ -366,8 +371,6 @@ Partial Class ContabilidadC_RegPrePolizaS GvMov.Columns(5).Visible = False End If - - End If End Sub @@ -437,14 +440,18 @@ Partial Class ContabilidadC_RegPrePolizaS End With DtMovimientosEliminar.AcceptChanges() End Sub - Private Sub CargaPrePoliza() - BtnEliminar.Visible = True - LblEncabezado.Text = "Edición de Póliza" - + Private Function CargaPrePoliza(tCvePrePoliza As Integer) As Boolean + Dim retorno As Boolean = False Dim ObjContabilidad As New ClsContabilidad - If ObjContabilidad.GetPrePoliza(CvePrePoliza, UsuarioActual.CveEmpresa) Then + If ObjContabilidad.GetPrePoliza(tCvePrePoliza, UsuarioActual.CveEmpresa) Then + Dim dr As DataRow = ObjContabilidad.DtResultados.FiltroPrimero("") If dr IsNot Nothing Then + retorno = True + BtnEliminar.Visible = True + LblEncabezado.Text = "Edición de Póliza" + + ViewState("CvePrePoliza") = tCvePrePoliza DdlTipoPoliza.SelectedValue = dr("CveTipoPoliza") TxtFechaDocumento.Text = dr("Fecha") TxtConcepto.Text = dr("Concepto") @@ -544,7 +551,8 @@ Partial Class ContabilidadC_RegPrePolizaS ObjContabilidad.Dispose() UpPoliza.Update() - End Sub + Return retorno + End Function Private Sub GvPrePoliza_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvPrePoliza.RowDataBound @@ -1274,7 +1282,7 @@ Partial Class ContabilidadC_RegPrePolizaS End If ObjContabilidad.Dispose() - CargaPrePoliza() + CargaPrePoliza(CvePrePoliza) If Not OcurrioError Then If IdPoliza > 0 AndAlso contador Then From 777ef72d221d8b801dbff7dbfd38e2865b802b2e Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 12:48:22 -0700 Subject: [PATCH 27/37] -- cargar clientes de carta porte --- Inventarios/EntradasSalidas.aspx | 2 +- Inventarios/EntradasSalidas.aspx.vb | 32 +---------------------------- 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx b/Inventarios/EntradasSalidas.aspx index 6005f6427..e66bfc7f7 100644 --- a/Inventarios/EntradasSalidas.aspx +++ b/Inventarios/EntradasSalidas.aspx @@ -697,7 +697,7 @@
    <%-- --%> - +
    diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index a73301e22..5c74dc695 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -686,8 +686,7 @@ Partial Class Inventarios_EntradasSalidas TxtFechaLlegada.Text = Now.ToShortDateString CargarCamiones() - - CargaClientesCarta() + DdlClienteCarta.setEsWebService(True) End Sub Private Sub CargaPS() @@ -5906,18 +5905,11 @@ Partial Class Inventarios_EntradasSalidas DdlConfigAuto.Items.Clear() DdlUnidadCamion.Items.Clear() - 'DdlUnidadCamion.DataSource = GlobalDTInvCamiones(UsuarioActual.CveEmpresa) - 'DdlUnidadCamion.DataBind() - - - Using ObjInv As New ClsInventarios If ObjInv.GetCamiones(-1, UsuarioActual.CveEmpresa, 1, Estatus:=1) Then DdlUnidadCamion.DataSource = ObjInv.DtResultados End If - - If ObjInv.GetCamiones(-1, UsuarioActual.CveEmpresa, 2, Estatus:=1) Then DdlRemolque1.DataSource = ObjInv.DtResultados End If @@ -5926,13 +5918,9 @@ Partial Class Inventarios_EntradasSalidas DdlUnidadCamion.DataBind() DdlUnidadCamion.Items.Insert(0, New ListItem("Seleccione Uno", "-1")) - - DdlRemolque1.DataBind() DdlRemolque1.Items.Insert(0, New ListItem("Seleccione Uno", "-1")) - - Using ObjGrales As New ClsGenerales If ObjGrales.GetCartaPorteConfigAutoTransportes() Then @@ -5940,27 +5928,9 @@ Partial Class Inventarios_EntradasSalidas End If End Using - DdlConfigAuto.DataBind() DdlConfigAuto.Items.Insert(0, New ListItem("Seleccione una", "-1")) - 'Using ObjGral As New ClsGenerales - ' If ObjGral.GetCartaPorteConfigAutoTransportes() Then - ' DdlConfigAuto.DataSource = ObjGral.DtResultados - ' End If - 'End Using - - 'DdlConfigAuto.DataBind() - - End Sub - - Private Sub CargaClientesCarta() - 'DdlClienteCarta.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - 'DdlClienteCarta.DataBind() - - 'DdlClienteCarta.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlClienteCarta.SelectedValue = "-1" - End Sub Private Sub EmitirTimbrado(CveTimbre As Integer, CveMovimientoTimbrado As Integer, ByRef MensajeAlert As StringBuilder) From 140fae6b83af8434be370402d0a12dfcb6bf036f Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 14:09:20 -0700 Subject: [PATCH 28/37] =?UTF-8?q?-=20se=20quit=C3=B3=20un=20br?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../RepMovimientosAuxiliaresCatalogo.aspx | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx b/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx index 2fc415eb8..c17f5d1e9 100644 --- a/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx +++ b/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx @@ -137,26 +137,18 @@
    -
    - +
    - - - -
    - -
    + +
    " style="display: inline-block; margin-right: -20px; width: 150px;" /> " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info">
    - - - Date: Fri, 5 May 2023 16:15:37 -0700 Subject: [PATCH 29/37] Mejores en descarga de pdf de econo --- App_Code/ClsPaginas.vb | 2 +- Ashx/E141.ashx | 32 ++++++++++++++++++++++++++------ 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index c3dfdb544..8413198cf 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -6040,7 +6040,7 @@ Public Class ClsPaginas If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) Then Dim QRDescarga As String = "" Dim cfdi As New RVCFDI33.GeneraCFDI() - Dim Parametros As String = Encripta($"CveVenta={Vta.CveVenta}&CveEmpresa={Vta.CveEmpresa}") + Dim Parametros As String = Encripta($"SerieFolio={Vta.SerieFolio}&TipoDocto={Vta.TipoDocto}&CveEmpresa={Vta.CveEmpresa}") Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?PV={Parametros}") QRDescarga = Convert.ToBase64String(b) params.Add(New ReportParameter("QRDescarga", QRDescarga)) diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index 7f6bf47cb..9e87ebed5 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -99,16 +99,36 @@ Public Class E141 : Implements IHttpHandler Dim retorno As String = "" Try Dim Params = If(context.Request("P") = Nothing, "", context.Request("P").ToString()) + Dim ParamsV = If(context.Request("PV") = Nothing, "", context.Request("PV").ToString()) + + Dim ParametrosNuevos As Boolean = False + If Not String.IsNullOrEmpty(ParamsV) Then + ParametrosNuevos = True + Params = ParamsV + End If 'DESCARGA DEL PDF If Not String.IsNullOrEmpty(Params) Then Try - Dim UrlParametros As Hashtable = Parametros(Decripta(Params)) + If ParametrosNuevos Then + Dim UrlParametros As Hashtable = Parametros(Decripta(Params)) - Dim File As String = UrlParametros("FILE").ToString() - If Not String.IsNullOrEmpty(File) Then - ImprimirbytesPDF(context, DescargarFactura(File), File) + Dim File As String = String.Format("{0}.pdf", UrlParametros("SERIEFOLIO").ToString()) + Dim TipoDocto As String = UrlParametros("TIPODOCTO").ToString() + Dim CveEmpresaParam As Integer = UrlParametros("CVEEMPRESA").ToString().ToEntero() + + If Not String.IsNullOrEmpty(File) AndAlso Not String.IsNullOrEmpty(TipoDocto) AndAlso CveEmpresaParam > 0 Then + ImprimirbytesPDF(context, DescargarFactura(File, CveEmpresaParam, TipoDocto), File) + End If + Else + Dim UrlParametros As Hashtable = Parametros(Decripta(Params)) + + Dim File As String = UrlParametros("FILE").ToString() + If Not String.IsNullOrEmpty(File) Then + ImprimirbytesPDF(context, DescargarFactura(File, Me.CveEmpresa), File) + End If End If + Catch ex As Exception GuardaLogAD("Ocurrió un error al descargar el pdf. " + ex.ToString() + ".parametros: " + Params, "LogE141") End Try @@ -2202,8 +2222,8 @@ Public Class E141 : Implements IHttpHandler #Region "D E S C A R G A - P D F" - Private Function DescargarFactura(FilePDF As String) As Byte() - Dim Url = New Uri(String.Format("{0}://{1}:{2}/Compras/PopUpVerFactura.aspx?TipoDocto=Ing&File={3}&TipoArchivo=PDF", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, FilePDF)) + Private Function DescargarFactura(FilePDF As String, CveEmpresa As Integer, Optional TipoDocto As String = "Ing") As Byte() + Dim Url = New Uri(String.Format("{0}://{1}:{2}/Compras/PopUpVerFactura.aspx?TipoDocto={4}&File={3}&TipoArchivo=PDF", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, FilePDF, TipoDocto)) Dim File As Byte() = Nothing Try Using httpClient = New HttpClient() From 288938b9516ec84b2048852e839e530183465841 Mon Sep 17 00:00:00 2001 From: rrene Date: Fri, 5 May 2023 17:53:46 -0700 Subject: [PATCH 30/37] =?UTF-8?q?--=20correcci=C3=B3n=20de=20validaci?= =?UTF-8?q?=C3=B3n=20del=20costo,=20cuando=20no=20hay=20existencia=20en=20?= =?UTF-8?q?el=20centro=20de=20costo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ventas/Ventas.aspx.vb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 1e4c35860..20312ddfb 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -8191,7 +8191,7 @@ Partial Class Ventas Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) + If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() Dim PrecioMinimo As Decimal = 0 @@ -18420,7 +18420,7 @@ Partial Class Ventas Dim Costo As Decimal = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, DdlSubProyectoDatos.SelectedValue.ToEntero(), CveTipoAlmacen:=1) 'si el costo es cero, puede ser que no halla movimientos del producto, en esa sucursal. y se volverá a sacar sin especificar sucursal - If Costo = 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) + If Costo <= 0 Then Costo = ObjInventarios.GetCostoPS(CvePS, TxtCantidad.Text.Trim.ToDouble, -1, "-1", TxtFecha.Text.ToDate, -1, CveTipoAlmacen:=1) ObjInventarios.Dispose() Dim PrecioMinimo As Decimal = 0 From 91702da4a1f2fc86923751b1389a2c24d6e29ed7 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 May 2023 12:16:36 -0700 Subject: [PATCH 31/37] - Cambio de concepto contable. incobrable --- Ventas/ClientesAbonar.aspx | 2 +- Ventas/ClientesAbonar.aspx.vb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Ventas/ClientesAbonar.aspx b/Ventas/ClientesAbonar.aspx index 1a276b46f..a968aba58 100644 --- a/Ventas/ClientesAbonar.aspx +++ b/Ventas/ClientesAbonar.aspx @@ -644,7 +644,7 @@   - + diff --git a/Ventas/ClientesAbonar.aspx.vb b/Ventas/ClientesAbonar.aspx.vb index 6a4d9b431..169cb891c 100644 --- a/Ventas/ClientesAbonar.aspx.vb +++ b/Ventas/ClientesAbonar.aspx.vb @@ -2443,7 +2443,7 @@ Partial Class Ventas_ClientesAbonar Dim ConceptoPartida As String = TxtObsSaldarIncobrable.Text.Trim & " " & gr.DataKey("SerieFolio").ToString If CveConceptoDeduccion = 255 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(266).ToEntero - If CveConceptoDeduccion = 211 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero + If CveConceptoDeduccion = 179 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(559).ToEntero If CveConceptoDeduccion = 263 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(537).ToEntero If CveConceptoDeduccion = 252 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.Funcionalidad(581).ToEntero If CveConceptoDeduccion = 78 Then IdCuentaContableNoDeducible = UsuarioActual.Empresa.IdCuentaOtrosIngresos @@ -2476,7 +2476,7 @@ Partial Class Ventas_ClientesAbonar Else IdCtaContable = IdCuentaCliente End If - Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, False, 1) + Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(6, tCveMoneda, True, 1) 'normal If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, ClienteMovto, Saldo, gr.DataKey("SerieFolio").ToString, ConPreP.CveConcepto, ConceptoPartida, TxtFechaIncobrable.Text.ToDate, IdCtaContable:=IdCtaContable, CveIE:=-1, IdSegmentoNegocio:=-1, CveCliente:=gr.DataKey("CveCliente").ToEntero, CveVenta:=gr.DataKey("CveVenta").ToEntero, ImporteMX:=If(CveMonedaFiltro = 1, Saldo, Saldo), TipoCambio:=TCVenta, TipoCambioPago:=TCPago) Then From deaed8a24643ba70c6edd0ff93c8b9ea859f44e1 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 May 2023 13:31:42 -0700 Subject: [PATCH 32/37] =?UTF-8?q?--=20aplicaci=C3=B3n=20de=20antcipo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 5718df506..2e2d188fe 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -5897,7 +5897,8 @@ txtvalue = ToDouble(txtvalue * TCAnticipo); importevalue = ToDouble(importevalue * TCAnticipo); } - } + } + else { TCC = 1; } var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo if (t.checked) From b92c975fb527d33af523fb84351135fd560a00c2 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 May 2023 13:31:56 -0700 Subject: [PATCH 33/37] -- quitar variable, Empresaprueba --- Compras/Compras.aspx.vb | 3361 ++++++++++++++++++--------------------- 1 file changed, 1523 insertions(+), 1838 deletions(-) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 278d7160a..a83716886 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -747,14 +747,7 @@ Partial Class Compras_Compras ViewState("CveCompraRefacturacion") = value End Set End Property - Private Property EmpresaPrueba As Boolean - Get - Return CBool(ViewState("EmpresaPrueba")) - End Get - Set(value As Boolean) - ViewState("EmpresaPrueba") = value - End Set - End Property + Private Property StringProrrateo As String Get Return ViewState("StringProrrateo").ToString @@ -1252,19 +1245,13 @@ Partial Class Compras_Compras 'VALIDACION DE XML NuevaValidacionXML = IfNull(Request("NuevaValidacionXML"), 0).ToString.ToEntero - IdVale = New List(Of Integer) - ListaDocumentos = New List(Of String) - 'If UsuarioActual.Empresa.Funcionalidad(207) = "1" Then 'Esquema nuevo PrePolizas - If Not UsuarioActual.Empresa.UsaAC Then - EmpresaPrueba = True - TotalGeneral = 0 + TotalGeneral = 0 CompraSaldo = 0 - ViewState("CvePersonal") = -1 - IdCuentaBancaria = 0 - End If + ViewState("CvePersonal") = -1 + IdCuentaBancaria = 0 IdCuentaBancariaComplementaria = 0 @@ -2761,10 +2748,8 @@ Partial Class Compras_Compras ImgAddObs.Visible = True ChkAplicaNotaCredito.Checked = CBool(dr("AplicaNotaCredito").ToString) - CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble - If EmpresaPrueba Then - CompraSaldo = dr("Saldo").ToString.ToDouble - End If + 'CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble + CompraSaldo = dr("Saldo").ToString.ToDouble If CompraSaldo > dr("Saldo").ToString.ToDouble Then CompraSaldo = dr("Saldo").ToString.ToDouble @@ -4643,31 +4628,20 @@ Partial Class Compras_Compras Alert("El Importe seleccionado es mayor a la compra", TipoMensaje.MsgAdvertencia) Exit Sub End If - End If If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then - If EmpresaPrueba Then - If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - CvePlantillaPrePoliza = 60 - Else - CvePlantillaPrePoliza = 1 - End If + If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + CvePlantillaPrePoliza = 60 Else - CvePlantillaPrePoliza = 9 + CvePlantillaPrePoliza = 1 End If End If - 'If RBLPago.SelectedValue.ToEntero = 4 And UsuarioActual.CveEmpresa.Contiene(1, 7) Then - ' CvePlantillaPrePoliza = 69 - 'End If - TmpDT.AcceptChanges() If Correcto Then - - Dim ObjCompras As New ClsCompras() Dim ObjConta As New ClsContabilidad(ObjCompras.IniciaTransacSQL()) Dim ObjIE As New ClsBancos(ObjCompras.IniciaTransacSQL) @@ -5732,9 +5706,8 @@ Partial Class Compras_Compras CveProveedorConcepto = DdlAcreedor.SelectedValue.ToEntero CveConceptoAfectacion = 41 - If EmpresaPrueba Then - CveIE = If(DdlAcreedorDetalle.SelectedValue.ToEntero = -2, -1, DdlAcreedorDetalle.SelectedValue.ToEntero) - End If + CveIE = If(DdlAcreedorDetalle.SelectedValue.ToEntero = -2, -1, DdlAcreedorDetalle.SelectedValue.ToEntero) + End Select End If @@ -5833,317 +5806,243 @@ Partial Class Compras_Compras TipoMovimientoImpuestos = Not TipoMovimientoImpuestos End If - If EmpresaPrueba Then 'Empresa Prueba + Dim PorcentajePagos As Decimal = 0 + Dim sumaPagos As Decimal = 0 + Dim tipoCambioActual As Decimal + Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

    " + Dim idCuentaContabilizacion As Long = 1 + Dim CveCuentaContabilizacion As Long = 1 + Dim FechaMovimiento As Date = TxtFecha.Text.ToDate + Dim DT As DataTable = Nothing + Dim CuentasContablesInvalidas As New StringBuilder + Dim ConceptoPersonal As String = "" + Dim IdCtaIVAXAcreditar As Integer = 0 + ' Dim IdCtaIVAAcreditable As Integer = 0 + Dim GuardoConcepto18 As Boolean = False - Dim PorcentajePagos As Decimal = 0 - Dim sumaPagos As Decimal = 0 - Dim tipoCambioActual As Decimal - Dim alertaContabilizacion As String = "Se enviaron correctamente las siguientes pólizas:

    " - Dim idCuentaContabilizacion As Long = 1 - Dim CveCuentaContabilizacion As Long = 1 - Dim FechaMovimiento As Date = TxtFecha.Text.ToDate - Dim DT As DataTable = Nothing - Dim CuentasContablesInvalidas As New StringBuilder - Dim ConceptoPersonal As String = "" - Dim IdCtaIVAXAcreditar As Integer = 0 - ' Dim IdCtaIVAAcreditable As Integer = 0 - Dim GuardoConcepto18 As Boolean = False + 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then + ' IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero + ' ' IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero + 'End If - 'If GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows.Count > 0 Then - ' IdCtaIVAXAcreditar = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - ' ' IdCtaIVAAcreditable = GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA).Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - 'End If + '********************** Variables '********************** - '********************** Variables '********************** + '****** Pagos - '****** Pagos + 'Bancos (30) + Dim importeBanco As Decimal = 0 + If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then + importeBanco = TxtDocumentoImporte.Text.ToDecimal + sumaPagos += importeBanco + End If - 'Bancos (30) - Dim importeBanco As Decimal = 0 - If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso (Not DivTarjeta.Visible Or DdlTarjeta.SelectedValue.ToEntero = -1) Then - importeBanco = TxtDocumentoImporte.Text.ToDecimal - sumaPagos += importeBanco + 'Caja Chica (30) + Dim importeCajaChica As Decimal = 0 + If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "6" Then + importeCajaChica = TxtDocumentoImporteCaja.Text.ToDecimal + sumaPagos += importeCajaChica + End If + + 'Funcionarios y Empleados (29) + Dim importeFE As Decimal = 0 + If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "2" Then + ViewState("CvePersonal") = DdlFuncionarioEmpleado.SelectedValue.ToEntero + ConceptoPersonal = DdlFuncionarioEmpleado.SelectedItem.ToString + importeFE = TxtDocumentoImporteFE.Text.ToDecimal + sumaPagos += importeFE + End If + + 'Deudores (37) + Dim importeDD As Decimal = 0 + Dim OtrosGastosIngresos As Decimal = 0 + If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "4" Then + ConceptoPersonal = DdlDeudor.SelectedItem.ToString + importeDD = TxtContadoDeudor.Text.ToDecimal + OtrosGastosIngresos = TxtDeudoresOtrosGastosIngresos.Text.ToDecimal + sumaPagos += importeDD + End If + + 'Acreedores (41) SinTarjeta + Dim importeAcreedores As Decimal = 0 + If (CveIE > 0 Or DdlAcreedorDetalle.SelectedValue.ToEntero = -2) AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "5" Then + ConceptoPersonal = DdlAcreedor.SelectedItem.ToString + importeAcreedores = TxtContadoAcreedor.Text.ToDecimal + sumaPagos += importeAcreedores + End If + + 'Acreedores (42) ConTarjeta + Dim importeAcreedoresTarjeta As Decimal = 0 + If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then + ConceptoPersonal = DdlTarjeta.SelectedItem.ToString + importeAcreedoresTarjeta = TxtDocumentoImporte.Text.ToDecimal + sumaPagos += importeAcreedoresTarjeta + End If + + 'Creditos/Documentos (59) + Dim importeCreditos As Decimal = 0 + Dim CveIECreditos = -1 + If RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "3" AndAlso DdlTipoCredito.SelectedValue.ToEntero = 2 Then + If ObjIE.GetCreditosDetalle(DdlCredito.SelectedValue.ToEntero, -1) Then + CveIECreditos = ObjIE.DtResultados.FiltroPrimero($"CveCreditoDetalle = {DdlCreditoDetalle.SelectedValue.ToEntero}")("CveIE").ToString.ToEntero End If + ConceptoPersonal = DdlCredito.SelectedItem.ToString + importeCreditos = TxtTotal.Text.ToDecimal + sumaPagos += importeCreditos + End If - 'Caja Chica (30) - Dim importeCajaChica As Decimal = 0 - If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "6" Then - importeCajaChica = TxtDocumentoImporteCaja.Text.ToDecimal - sumaPagos += importeCajaChica - End If + PorcentajePagos = If(TxtTotal.Text.ToDecimal > 0, sumaPagos / TxtTotal.Text.ToDecimal, 0) - 'Funcionarios y Empleados (29) - Dim importeFE As Decimal = 0 - If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "2" Then - ViewState("CvePersonal") = DdlFuncionarioEmpleado.SelectedValue.ToEntero - ConceptoPersonal = DdlFuncionarioEmpleado.SelectedItem.ToString - importeFE = TxtDocumentoImporteFE.Text.ToDecimal - sumaPagos += importeFE - End If + '****** Acreditables - 'Deudores (37) - Dim importeDD As Decimal = 0 - Dim OtrosGastosIngresos As Decimal = 0 - If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "4" Then - ConceptoPersonal = DdlDeudor.SelectedItem.ToString - importeDD = TxtContadoDeudor.Text.ToDecimal - OtrosGastosIngresos = TxtDeudoresOtrosGastosIngresos.Text.ToDecimal - sumaPagos += importeDD - End If + 'IVA Acreditable (19) + Dim importeIVAAcreditable As Decimal = 0 + importeIVAAcreditable = TxtIVA.Text.ToDecimal * PorcentajePagos - 'Acreedores (41) SinTarjeta - Dim importeAcreedores As Decimal = 0 - If (CveIE > 0 Or DdlAcreedorDetalle.SelectedValue.ToEntero = -2) AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "5" Then - ConceptoPersonal = DdlAcreedor.SelectedItem.ToString - importeAcreedores = TxtContadoAcreedor.Text.ToDecimal - sumaPagos += importeAcreedores - End If + 'IEPS Acreditable (26) + Dim ImporteIEPSAcreditable As Decimal = 0 + ImporteIEPSAcreditable = TxtIEPS.Text.ToDecimal * PorcentajePagos - 'Acreedores (42) ConTarjeta - Dim importeAcreedoresTarjeta As Decimal = 0 - If CveIE > 0 AndAlso RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "1" AndAlso DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then - ConceptoPersonal = DdlTarjeta.SelectedItem.ToString - importeAcreedoresTarjeta = TxtDocumentoImporte.Text.ToDecimal - sumaPagos += importeAcreedoresTarjeta - End If + 'RetIVA Acrediable (22) + Dim importeRetIVAAcreditable As Decimal = 0 + importeRetIVAAcreditable = TxtRetIVA.Text.ToDecimal * PorcentajePagos - 'Creditos/Documentos (59) - Dim importeCreditos As Decimal = 0 - Dim CveIECreditos = -1 - If RBLPago.SelectedValue.ToEntero = 2 AndAlso RBLContado.SelectedValue = "3" AndAlso DdlTipoCredito.SelectedValue.ToEntero = 2 Then - If ObjIE.GetCreditosDetalle(DdlCredito.SelectedValue.ToEntero, -1) Then - CveIECreditos = ObjIE.DtResultados.FiltroPrimero($"CveCreditoDetalle = {DdlCreditoDetalle.SelectedValue.ToEntero}")("CveIE").ToString.ToEntero - End If - ConceptoPersonal = DdlCredito.SelectedItem.ToString - importeCreditos = TxtTotal.Text.ToDecimal - sumaPagos += importeCreditos - End If - - PorcentajePagos = If(TxtTotal.Text.ToDecimal > 0, sumaPagos / TxtTotal.Text.ToDecimal, 0) - - '****** Acreditables - - 'IVA Acreditable (19) - Dim importeIVAAcreditable As Decimal = 0 - importeIVAAcreditable = TxtIVA.Text.ToDecimal * PorcentajePagos - - 'IEPS Acreditable (26) - Dim ImporteIEPSAcreditable As Decimal = 0 - ImporteIEPSAcreditable = TxtIEPS.Text.ToDecimal * PorcentajePagos - - 'RetIVA Acrediable (22) - Dim importeRetIVAAcreditable As Decimal = 0 - importeRetIVAAcreditable = TxtRetIVA.Text.ToDecimal * PorcentajePagos - - 'RetISR Acreditable (23) - Dim importeRetISRAcreditable As Decimal = 0 - importeRetISRAcreditable = TxtRetISR.Text.ToDecimal * PorcentajePagos + 'RetISR Acreditable (23) + Dim importeRetISRAcreditable As Decimal = 0 + importeRetISRAcreditable = TxtRetISR.Text.ToDecimal * PorcentajePagos - '****** Movimientos Independientes + '****** Movimientos Independientes - 'Pago Proveedores (17) - Dim importePagoProv As Decimal = 0 - importePagoProv = sumaPagos + 'Pago Proveedores (17) + Dim importePagoProv As Decimal = 0 + importePagoProv = sumaPagos - 'Proveedores (5) - Dim importeProv As Decimal = 0 - importeProv = TxtTotal.Text.ToDecimal + 'Proveedores (5) + Dim importeProv As Decimal = 0 + importeProv = TxtTotal.Text.ToDecimal - 'Nota de Credito (18) - Dim importeNC As Decimal = 0 - If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - importeNC = TxtTotal.Text.ToDecimal - End If + 'Nota de Credito (18) + Dim importeNC As Decimal = 0 + If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + importeNC = TxtTotal.Text.ToDecimal + End If - '************************************************************************************************************************** + '************************************************************************************************************************** - Dim TipoCambioCompra As Decimal = 1 - TipoCambioCompra = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal - TipoCambioCompra = If(DivTC.Visible, TipoCambio, TipoCambioCompra) + Dim TipoCambioCompra As Decimal = 1 + TipoCambioCompra = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal + TipoCambioCompra = If(DivTC.Visible, TipoCambio, TipoCambioCompra) - If CveMonedaPago = 1 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then - TipoCambioCompra = 1 - End If + If CveMonedaPago = 1 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then + TipoCambioCompra = 1 + End If - If DdlMoneda.SelectedValue.ToString.ToEntero = 2 Then - tipoCambioActual = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal - tipoCambioActual = If(DivTC.Visible, TipoCambio, tipoCambioActual) - Else - tipoCambioActual = 1 - End If + If DdlMoneda.SelectedValue.ToString.ToEntero = 2 Then + tipoCambioActual = GlobalTipoCambio(FechaMovimiento).ToString.ToDecimal + tipoCambioActual = If(DivTC.Visible, TipoCambio, tipoCambioActual) + Else + tipoCambioActual = 1 + End If - 'CASO ESPECIAL CREDITOS - If CveIECreditos > 0 Then - CveIE = CveIECreditos - 'Dim CveIEProvisional = CveIE - End If + 'CASO ESPECIAL CREDITOS + If CveIECreditos > 0 Then + CveIE = CveIECreditos + 'Dim CveIEProvisional = CveIE + End If - If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then + If ObjConta.GetPlantillaConceptos(UsuarioActual.CveEmpresa, CvePlantillaPrePoliza) Then - Dim DTPlatilla As New DataTable - DTPlatilla = ObjConta.DtResultados + Dim DTPlatilla As New DataTable + DTPlatilla = ObjConta.DtResultados - For Each Row As DataRow In DTPlatilla.Rows + For Each Row As DataRow In DTPlatilla.Rows - Dim CveSubProyectoInsertar As Integer = CveSubProyectoPrincipal - Dim ConceptoContable As Integer = Row("CveConcepto").ToString.ToEntero + Dim CveSubProyectoInsertar As Integer = CveSubProyectoPrincipal + Dim ConceptoContable As Integer = Row("CveConcepto").ToString.ToEntero - Dim TipoMovimiento As Boolean = If(Row("TipoMovto").ToString = "True", True, False) - Dim importeMovimiento As Decimal = 0 - Dim IdCtaContable As Integer = 0 - Dim Concepto As String = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreProveedor, $"{TxtSerie.Text}-{TxtFolio.Text}", If(TxtDocumentoFolio.Visible, TxtDocumentoFolio.Text, If(TxtDocumentoFolioCaja.Visible, TxtDocumentoFolioCaja.Text, ConceptoPersonal))) - Dim importeMN As Decimal = 0 + Dim TipoMovimiento As Boolean = If(Row("TipoMovto").ToString = "True", True, False) + Dim importeMovimiento As Decimal = 0 + Dim IdCtaContable As Integer = 0 + Dim Concepto As String = ObjConta.ObtenerConceptoEmpresa(UsuarioActual.CveEmpresa, ConceptoContable, NombreProveedor, $"{TxtSerie.Text}-{TxtFolio.Text}", If(TxtDocumentoFolio.Visible, TxtDocumentoFolio.Text, If(TxtDocumentoFolioCaja.Visible, TxtDocumentoFolioCaja.Text, ConceptoPersonal))) + Dim importeMN As Decimal = 0 - Dim Multiplicador As Integer = Row("Multiplicador").ToString.ToEntero ' If(Row("Multiplicador").ToString.ToEntero = 1, -1, 1) + Dim Multiplicador As Integer = Row("Multiplicador").ToString.ToEntero ' If(Row("Multiplicador").ToString.ToEntero = 1, -1, 1) - Dim Referencia As String = $"{TxtSerie.Text}-{TxtFolio.Text}" ' concatenation interpolation - Dim PorcentajeImpuesto As Decimal = 0 - CveConceptoOriginal = ConceptoContable + Dim Referencia As String = $"{TxtSerie.Text}-{TxtFolio.Text}" ' concatenation interpolation + Dim PorcentajeImpuesto As Decimal = 0 + CveConceptoOriginal = ConceptoContable - Select Case ConceptoContable + Select Case ConceptoContable - Case 17 'Pago Proveedores + Case 17 'Pago Proveedores - If CveTipoConcepto = 2 Then ConceptoContable = 308 'cuando es acreedor - If CveMoneda <> 1 Then - Select Case ConceptoContable - Case 17 - ConceptoContable = 312 - Case 308 - ConceptoContable = 309 - Case Else - End Select - End If + If CveTipoConcepto = 2 Then ConceptoContable = 308 'cuando es acreedor + If CveMoneda <> 1 Then + Select Case ConceptoContable + Case 17 + ConceptoContable = 312 + Case 308 + ConceptoContable = 309 + Case Else + End Select + End If - importeMovimiento = importePagoProv - If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then - importeMovimiento = importeMovimiento / TipoCambioCompra - End If - importeMN = importeMovimiento * TipoCambioCompra * Multiplicador - IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) + importeMovimiento = importePagoProv + If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then + importeMovimiento = importeMovimiento / TipoCambioCompra + End If + importeMN = importeMovimiento * TipoCambioCompra * Multiplicador + IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) - If RBLPago.SelectedValue.ToEntero = 4 And EstatusCredito.Contiene(2, 102) Then 'SI ES CRÉDITO Y ESTA PAGADO + If RBLPago.SelectedValue.ToEntero = 4 And EstatusCredito.Contiene(2, 102) Then 'SI ES CRÉDITO Y ESTA PAGADO - For Each Row2 As DataRow In TmpDT.Rows - - importeMovimiento = TxtTotal.Text.ToDecimal 'TmpDT.SUM("Total", String.Format("ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto, 0) = {2} Then", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - 'CLASIFICACION - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso Row2("CveClasificacion").ToString.ToEntero > 0 Then - If ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then - If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero - Else - IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero - End If - End If - 'AGREGA MOVIMIENTO - If importeMovimiento <> 0 Then - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 6))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If + For Each Row2 As DataRow In TmpDT.Rows + importeMovimiento = TxtTotal.Text.ToDecimal 'TmpDT.SUM("Total", String.Format("ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto, 0) = {2} Then", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + 'CLASIFICACION + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso Row2("CveClasificacion").ToString.ToEntero > 0 Then + If ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then + If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero + Else + IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero End If End If + 'AGREGA MOVIMIENTO + If importeMovimiento <> 0 Then + 'Conta ContPAQ + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 6))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 + End If - Next - - Dim CveClasificacionDT As Integer = -1 - Dim CveSubProyectoDT As Integer = -1 - Dim CveTipoGastoDT As Integer = -1 - - If TmpDT.Rows.Count > 0 Then - CveClasificacionDT = TmpDT(0)("CveClasificacion").ToString.ToEntero - CveSubProyectoDT = TmpDT(0)("CveSubProyecto").ToString.ToEntero - CveTipoGastoDT = TmpDT(0)("CveTipoGasto").ToString.ToEntero - End If - - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - Dim ImporteSubCre As Decimal = TxtSubTotal.Text.ToDecimal - Dim ImporteSubCreMN As Decimal = TxtSubTotal.Text.ToDecimal * tipoCambioActual - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteSubCre, ImporteSubCreMN, 6, Referencia, Concepto, IdCtaContable, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, ImporteSubCre), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, importeMN, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - - If importeMovimiento <> 0 Then - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimiento - Pago.CveIE = CveIE - Pago.CveMonedaPago = 1 - Pago.CveCompraAmortizacion = -1 - Pago.CveCreditoDetalle = CveCreditoDetalle - 'Pago.OtroGastoIngreso = OtrosGastosIngresos - - ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - - End If - - 'If TipoCreditoInteres Then - - ' Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento - ' Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador - - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ' ErrorPrepoliza = True - ' End If - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ' ErrorPrepoliza = True - - ' End If - 'End If - End If - importeMovimiento = 0 : importeMN = 0 - If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}" - - If TipoCambioCompra = 1 Or DdlMoneda.SelectedValue.ToEntero = 1 Then - IdCtaContable = CtaProveedor - importeMovimiento = importeMN - Else - IdCtaContable = CtaProveedorComplementaria - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos - - Dim CveConceptoContableComplementaria As Integer = 206 - If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor - - importeMN = importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TipoCambioCompra - importeMovimiento, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TipoCambioCompra - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TipoCambioCompra) Then - ErrorPrepoliza = True End If End If - IdCtaContable = CtaProveedorExtranjera + Next + + Dim CveClasificacionDT As Integer = -1 + Dim CveSubProyectoDT As Integer = -1 + Dim CveTipoGastoDT As Integer = -1 + + If TmpDT.Rows.Count > 0 Then + CveClasificacionDT = TmpDT(0)("CveClasificacion").ToString.ToEntero + CveSubProyectoDT = TmpDT(0)("CveSubProyecto").ToString.ToEntero + CveTipoGastoDT = TmpDT(0)("CveTipoGasto").ToString.ToEntero End If - Case 30 'Bancos - importeMovimiento = importeBanco + importeCajaChica 'Uno de los dos debe ser 0 - If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then - importeMovimiento = importeMovimiento / TCPago + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" + + Dim ImporteSubCre As Decimal = TxtSubTotal.Text.ToDecimal + Dim ImporteSubCreMN As Decimal = TxtSubTotal.Text.ToDecimal * tipoCambioActual + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteSubCre, ImporteSubCreMN, 6, Referencia, Concepto, IdCtaContable, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, ImporteSubCre), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True End If - importeMN = importeMovimiento * TCPago * Multiplicador - If TCPago > 1 AndAlso CveMonedaPago <> 1 Then Concepto += $" TC{TCPago} ${importeMovimiento.FormatoNumero(2)}" - - If TCPago = 1 Or CveMonedaPago = 1 Then - IdCtaContable = IdCuentaBancaria - Else - IdCtaContable = IdCuentaBancariaComplementaria - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos - importeMN = importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TCPago - importeMovimiento, Referencia, 204, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TCPago - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TCPago) Then - ErrorPrepoliza = True - End If - End If - - IdCtaContable = IdCuentaBancaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, importeMN, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True End If If importeMovimiento <> 0 Then @@ -6152,1151 +6051,1283 @@ Partial Class Compras_Compras Pago.CveIE = CveIE Pago.CveMonedaPago = 1 Pago.CveCompraAmortizacion = -1 - 'Pago.CveConceptoPago = CveConceptoPago + Pago.CveCreditoDetalle = CveCreditoDetalle + 'Pago.OtroGastoIngreso = OtrosGastosIngresos ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + End If - Case 14 'IVA X Acreditar - importeMovimiento = CompraActual.IVA - importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - PorcentajeImpuesto = PorcentajeIVA - IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0) + 'If TipoCreditoInteres Then - If chkImportacion.Checked Then - ConceptoContable = 287 - End If - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero + ' Dim importeMovimientoIn As Decimal = ImporteIECredito - importeMovimiento + ' Dim importeMNIn As Decimal = importeMovimientoIn * tipoCambioActual * Multiplicador + + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoIn, importeMNIn, 41, Referencia, Concepto, CtaProveedorAcreedores, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ' ErrorPrepoliza = True + ' End If + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoIn, importeMNIn, 50, Referencia, Concepto, ViewState("IdCtaContDocsXPagar").ToString.ToEntero(), CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=CveClasificacionDT, CveSubProyecto:=CveSubProyectoDT, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoIn), CveTipoGasto:=CveTipoGastoDT, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ' ErrorPrepoliza = True + + ' End If + 'End If + End If + importeMovimiento = 0 : importeMN = 0 + If TipoCambioCompra > 1 AndAlso DdlMoneda.SelectedValue.ToEntero <> 1 Then Concepto += $" TC{TipoCambioCompra} ${importeMovimiento.FormatoNumero(2)}" + + If TipoCambioCompra = 1 Or DdlMoneda.SelectedValue.ToEntero = 1 Then + IdCtaContable = CtaProveedor + importeMovimiento = importeMN + Else + IdCtaContable = CtaProveedorComplementaria + If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos + + Dim CveConceptoContableComplementaria As Integer = 206 + If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor + + importeMN = importeMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TipoCambioCompra - importeMovimiento, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TipoCambioCompra - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TipoCambioCompra) Then + ErrorPrepoliza = True End If End If - 'si aplica NC sobre mov de almacen, el impuesto lo toma de la Factura.para la consideracion de mcia en tránsito - If ChkNCInvNC.Checked And CveMoneda > 1 AndAlso importeMovimiento > 0 Then + IdCtaContable = CtaProveedorExtranjera + End If - Dim diferenciaTransito As Decimal = 0 - For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows - If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + Case 30 'Bancos + importeMovimiento = importeBanco + importeCajaChica 'Uno de los dos debe ser 0 + If CveMonedaPago = 2 AndAlso DdlMoneda.SelectedValue.ToEntero = 1 Then + importeMovimiento = importeMovimiento / TCPago + End If + importeMN = importeMovimiento * TCPago * Multiplicador - 'Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal - 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) - 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) - importeMN = (Gvr.DataKey("IVA").ToDecimal.RoundSQL * Gvr.DataKey("TipoCambio").ToDecimal * Multiplicador).RoundSQL - 'se registra por cada compra relacionada + If TCPago > 1 AndAlso CveMonedaPago <> 1 Then Concepto += $" TC{TCPago} ${importeMovimiento.FormatoNumero(2)}" + + If TCPago = 1 Or CveMonedaPago = 1 Then + IdCtaContable = IdCuentaBancaria + Else + IdCtaContable = IdCuentaBancariaComplementaria + If importeMovimiento <> 0 AndAlso (IdCtaContable > 0) Then 'Cuando tiene complementaria lo dividimos en dos + importeMN = importeMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento * TCPago - importeMovimiento, Referencia, 204, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * TCPago - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=TCPago) Then + ErrorPrepoliza = True + End If + End If + + IdCtaContable = IdCuentaBancaria + End If + + If importeMovimiento <> 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimiento + Pago.CveIE = CveIE + Pago.CveMonedaPago = 1 + Pago.CveCompraAmortizacion = -1 + 'Pago.CveConceptoPago = CveConceptoPago + + ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + End If + + Case 14 'IVA X Acreditar + importeMovimiento = CompraActual.IVA + importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + PorcentajeImpuesto = PorcentajeIVA + IdCtaContable = If(IdCtaIVAXAcreditar > 0, IdCtaIVAXAcreditar, 0) + + If chkImportacion.Checked Then + ConceptoContable = 287 + End If + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero + End If + End If + 'si aplica NC sobre mov de almacen, el impuesto lo toma de la Factura.para la consideracion de mcia en tránsito + + If ChkNCInvNC.Checked And CveMoneda > 1 AndAlso importeMovimiento > 0 Then + + Dim diferenciaTransito As Decimal = 0 + For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows + If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + + 'Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal + 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + importeMN = (Gvr.DataKey("IVA").ToDecimal.RoundSQL * Gvr.DataKey("TipoCambio").ToDecimal * Multiplicador).RoundSQL + 'se registra por cada compra relacionada - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 14, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 14, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + Next + importeMovimiento = 0 + importeMN = 0 + End If + + Case 25 'IEPS X Acreditar + If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then + 'CveSubProyectoInsertar = CveSubProyecto + importeMovimiento = CompraActual.IEPS + importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + End If + End If + End If + + Case 15 'RetIVA X Acreditar Honorarios/Serv. Prof. + If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then + If DdlRetIVAConcepto.Items.Count > 0 AndAlso DdlRetIVAConcepto.SelectedValue.ToEntero() > 0 Then + + Dim Funcionalidad As Integer = 0 + If DdlRetIVAConcepto.SelectedValue.ToEntero = 1 Then + Funcionalidad = 307 + ConceptoContable = 15 + ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 2 Then + Funcionalidad = 309 + ConceptoContable = 183 + ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 3 Then + Funcionalidad = 311 + ConceptoContable = 185 + ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 4 Then + Funcionalidad = 313 + ConceptoContable = 248 + ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 5 Then + Funcionalidad = 578 + ConceptoContable = 285 + ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 6 Then + ConceptoContable = 333 + End If + + importeMovimiento = CompraActual.RetIVA + importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If CtaProveedorRetIVA > 0 Then + IdCtaContable = CtaProveedorRetIVA + ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then + IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero + Else + If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + End If + End If + End If + End If + + End If + End If + + Case 16 'Ret ISR X Acreditar + If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then + If DdlRetISRConcepto.Items.Count > 0 AndAlso DdlRetISRConcepto.SelectedValue.ToEntero > 0 Then + + Dim funcionalidad As Integer = 0 + If DdlRetISRConcepto.SelectedValue.ToEntero = 1 Then + funcionalidad = 315 + ConceptoContable = 16 + ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 2 Then + funcionalidad = 317 + ConceptoContable = 243 + ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 3 Then + funcionalidad = 348 + ConceptoContable = 327 + End If + importeMovimiento = CompraActual.RetISR + importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If CtaProveedorRetISR > 0 Then + IdCtaContable = CtaProveedorRetISR + ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then + IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero + Else + If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero + End If + End If + End If + End If + + + End If + End If + + Case 64 'Ganancia + + 'CveSubProyectoInsertar = CveSubProyecto + If CveSubProyectoInsertar <= 0 Then + ErrorPrepoliza = True + Alert("Concepto ganancia cambiaria sin sub proyecto", TipoMensaje.MsgAdvertencia) + End If + + If TCPago > 0 AndAlso TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then + + If TipoCambioCompra > TCPago Then + ConceptoContable = 64 + TipoMovimiento = True + Else + ConceptoContable = 65 + TipoMovimiento = False + End If + If TCPago <> TipoCambioCompra Then + importeMovimiento = Math.Abs(TCPago - TipoCambioCompra) * importePagoProv + importeMovimiento -= Math.Abs(TCPago - TipoCambioCompra) * importeIVAAcreditable + importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetIVAAcreditable + importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetISRAcreditable + importeMN = importeMovimiento + End If + Else + importeMovimiento = 0 + End If + + Case 6 'Compra + + Dim AgregaMercanciaInventario As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" + + Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" + + Dim Insertado205 As Boolean = False + + If RBLPago.SelectedValue.ToEntero = 4 Then + Exit Select 'Es credito el concepto 6 se agrega en CASE 17 + End If + + + Dim DifSubTotatles As Decimal = 0D + + If CveCompraRefacturacion > 0 Then + DifSubTotatles = Math.Abs(SubTotalRefacturacion - TxtSubTotal2.Text.ToDecimal) + End If + + If DifSubTotatles > 0 Or (Not CveCompraRefacturacion > 0 OrElse (ChkRefacNC.Checked)) Then + 'AF TipoAF 2 Es para las compras + DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 ") + If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then + For Each Row2 As DataRow In DT.Rows + importeMovimiento = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, Row2("ImporteSinImpuestos").ToString.ToDecimal, Row2("Total").ToString.ToDecimal) + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(49, Row2("CveActivoFijo").ToString.ToEntero) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContActivoFijo").ToString.ToEntero + End If + End If + + If importeMovimiento <> 0 Then + 'Conta ContPAQ + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 49))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 + End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Row2("CodAF").ToString, 49, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If End If Next - importeMovimiento = 0 - importeMN = 0 End If - Case 25 'IEPS X Acreditar - If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then - 'CveSubProyectoInsertar = CveSubProyecto - importeMovimiento = CompraActual.IEPS - importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - End If - End If - End If + 'LIMPIA + importeMovimiento = 0 + IdCtaContable = 0 - Case 15 'RetIVA X Acreditar Honorarios/Serv. Prof. - If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then - If DdlRetIVAConcepto.Items.Count > 0 AndAlso DdlRetIVAConcepto.SelectedValue.ToEntero() > 0 Then + 'COSTO ALMACEN + Dim DtAlmacenes = GlobalDTAlmacen(UsuarioActual.CveEmpresa) + If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then + DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"}) + 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN + 'SI LA COMPRA ES DE TIPO GASTO CON ALMACEN DEBE REGISTRAR MOVIMIENTO + Dim AlmacenSoloExistencia As Boolean = False - Dim Funcionalidad As Integer = 0 - If DdlRetIVAConcepto.SelectedValue.ToEntero = 1 Then - Funcionalidad = 307 - ConceptoContable = 15 - ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 2 Then - Funcionalidad = 309 - ConceptoContable = 183 - ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 3 Then - Funcionalidad = 311 - ConceptoContable = 185 - ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 4 Then - Funcionalidad = 313 - ConceptoContable = 248 - ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 5 Then - Funcionalidad = 578 - ConceptoContable = 285 - ElseIf DdlRetIVAConcepto.SelectedValue.ToEntero = 6 Then - ConceptoContable = 333 - End If - - importeMovimiento = CompraActual.RetIVA - importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If CtaProveedorRetIVA > 0 Then - IdCtaContable = CtaProveedorRetIVA - ElseIf UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - End If - End If - - End If - End If - - Case 16 'Ret ISR X Acreditar - If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then - If DdlRetISRConcepto.Items.Count > 0 AndAlso DdlRetISRConcepto.SelectedValue.ToEntero > 0 Then - - Dim funcionalidad As Integer = 0 - If DdlRetISRConcepto.SelectedValue.ToEntero = 1 Then - funcionalidad = 315 - ConceptoContable = 16 - ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 2 Then - funcionalidad = 317 - ConceptoContable = 243 - ElseIf DdlRetISRConcepto.SelectedValue.ToEntero = 3 Then - funcionalidad = 348 - ConceptoContable = 327 - End If - importeMovimiento = CompraActual.RetISR - importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If CtaProveedorRetISR > 0 Then - IdCtaContable = CtaProveedorRetISR - ElseIf UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero > 0 Then - IdCtaContable = UsuarioActual.Empresa.Funcionalidad(funcionalidad).ToEntero - Else - If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - End If - End If - - - End If - End If - - Case 64 'Ganancia - - 'CveSubProyectoInsertar = CveSubProyecto - If CveSubProyectoInsertar <= 0 Then - ErrorPrepoliza = True - Alert("Concepto ganancia cambiaria sin sub proyecto", TipoMensaje.MsgAdvertencia) - End If - - If TCPago > 0 AndAlso TCPago <> 1 AndAlso TxtFechaPago.Text <> TxtFecha.Text Then - - If TipoCambioCompra > TCPago Then - ConceptoContable = 64 - TipoMovimiento = True - Else - ConceptoContable = 65 - TipoMovimiento = False - End If - If TCPago <> TipoCambioCompra Then - importeMovimiento = Math.Abs(TCPago - TipoCambioCompra) * importePagoProv - importeMovimiento -= Math.Abs(TCPago - TipoCambioCompra) * importeIVAAcreditable - importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetIVAAcreditable - importeMovimiento += Math.Abs(TCPago - TipoCambioCompra) * importeRetISRAcreditable - importeMN = importeMovimiento - End If - Else - importeMovimiento = 0 - End If - - Case 6 'Compra - - Dim AgregaMercanciaInventario As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" - - Dim RegistraConcepto225 As Boolean = UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" - - Dim Insertado205 As Boolean = False - - If RBLPago.SelectedValue.ToEntero = 4 Then - Exit Select 'Es credito el concepto 6 se agrega en CASE 17 - End If - - - Dim DifSubTotatles As Decimal = 0D - - If CveCompraRefacturacion > 0 Then - DifSubTotatles = Math.Abs(SubTotalRefacturacion - TxtSubTotal2.Text.ToDecimal) - End If - - If DifSubTotatles > 0 Or (Not CveCompraRefacturacion > 0 OrElse (ChkRefacNC.Checked)) Then - 'AF TipoAF 2 Es para las compras - DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) = 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 ") - If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then - For Each Row2 As DataRow In DT.Rows - importeMovimiento = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, Row2("ImporteSinImpuestos").ToString.ToDecimal, Row2("Total").ToString.ToDecimal) - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(49, Row2("CveActivoFijo").ToString.ToEntero) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContActivoFijo").ToString.ToEntero - End If - End If - - If importeMovimiento <> 0 Then - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 49))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Row2("CodAF").ToString, 49, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveActivoFijo:=Row2("CveActivoFijo").ToString.ToEntero, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If + If DdlTipoCompra.SelectedValue <> "10" Then + For Each Dr As DataRow In DT.Rows + If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then + Dr("CveAlmacen") = 0 + AlmacenSoloExistencia = True End If + Dr.AcceptChanges() Next End If - 'LIMPIA - importeMovimiento = 0 - IdCtaContable = 0 + DT.AcceptChanges() + DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0") + If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then - 'COSTO ALMACEN - Dim DtAlmacenes = GlobalDTAlmacen(UsuarioActual.CveEmpresa) - If UsuarioActual.Empresa.UsaInventarios AndAlso Not UsuarioActual.Empresa.Funcionalidad(126) = "1" Then - DT = TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen"}) - 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN - 'SI LA COMPRA ES DE TIPO GASTO CON ALMACEN DEBE REGISTRAR MOVIMIENTO - Dim AlmacenSoloExistencia As Boolean = False + 'SI ES GASTO CON ALMACEN + If DdlTipoCompra.SelectedValue = "10" Then + For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen", "CveClasificacion", "CveSubProyecto"}).Rows - If DdlTipoCompra.SelectedValue <> "10" Then - For Each Dr As DataRow In DT.Rows - If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then - Dr("CveAlmacen") = 0 - AlmacenSoloExistencia = True - End If - Dr.AcceptChanges() - Next - End If - - DT.AcceptChanges() - DT = DT.FiltraParametros("ISNULL(CveAlmacen,0) > 0") - If DT.Rows.Count > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") Then - - 'SI ES GASTO CON ALMACEN - If DdlTipoCompra.SelectedValue = "10" Then - For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) > 0", "", {"CveAlmacen", "CveClasificacion", "CveSubProyecto"}).Rows - - importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero - End If - End If - End If - - If importeMN <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, - CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - End If - Next - End If - - For Each Row2 As DataRow In DT.Rows - - importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {RowDetalle("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(68, GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToString.ToEntero) Then + If ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero End If End If - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If End If If importeMN <> 0 Then - - 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, + CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If + End If + Next + End If - 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 - If DdlTipoCompra.SelectedValue = "10" Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), Referencia, 95, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then - ErrorPrepoliza = True - End If + For Each Row2 As DataRow In DT.Rows + + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal + TmpDT.SUM("CostoIndirectoAlmacen", $"CveAlmacen = {Row2("CveAlmacen")}").ToString.ToDecimal 'Row2("Total").ToString.ToDecimal + Row2("CostoIndirectoAlmacen").ToString.ToDecimal + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(68, GvInv.HeaderRow.FCDropDownList("ddlAlmacen").SelectedValue.ToString.ToEntero) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If - ' si agrego en almacen, ya no se ocupa algun concepto puente - AgregaMercanciaInventario = False + End If + 'Conta ContPAQ + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 + End If + End If + + If importeMN <> 0 Then + + 'SI ES GASTO CON ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN.RoundSQL(2), Referencia, 68, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=If(DdlTipoCompra.SelectedValue = "10", False, SeContabiliza)) Then + ErrorPrepoliza = True End If - Next + 'SI ES GASTO CON ALMACEN REGISTRA EL CONCEPTO 95 + If DdlTipoCompra.SelectedValue = "10" Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMN.RoundSQL(2), Referencia, 95, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveMovimientoAlmacen:=CveMovimientoInventario, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN.RoundSQL(2), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=False) Then + ErrorPrepoliza = True + End If + End If + ' si agrego en almacen, ya no se ocupa algun concepto puente + AgregaMercanciaInventario = False + End If + + Next + End If + End If + + 'LIMPIA + importeMovimiento = 0 + IdCtaContable = 0 + + 'End If + Dim CostoIndirectoAcum176 As Decimal = 0 + 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ] + If AgregaMercanciaInventario AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") AndAlso CveConceptoContableAlmacen.Contiene(205, 176, 237, 240) Then + + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And (ISNULL(CveTipoPS,0) = 2 Or (ISNULL(CveTipoPS,0) = 1 And ISNULL(AplicaCostoIndirecto,0) = 1))").ToString.ToDecimal + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + Dim ConceptoContabilizacion = 205 + Dim ConceptoContabilizacionME = -1 + Dim IdCtaContableME = -1 + Dim ConceptoContabilizacionMEComp = -1 + Dim IdCtaContableMEComp = -1 + + If OCVinculada Or CveConceptoContableAlmacen.Contiene(237, 240) Then + ConceptoContabilizacion = CveConceptoContableAlmacen + End If + Dim UsaComplementariaFleteImportaciones As Boolean = False + + 'DEBE METER EL CONCEPTO DE COMPRAS SI EL TIPO ES GASTO CON ALMACEN + If DdlTipoCompra.SelectedValue = "10" Then + ConceptoContabilizacion = 6 + End If + + Select Case ConceptoContabilizacion + Case 6 + importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) + importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO + Case 176 + ConceptoContabilizacionME = 228 + ConceptoContabilizacionMEComp = 229 + Case 205 + ConceptoContabilizacionME = 230 + ConceptoContabilizacionMEComp = 231 + importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) + importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO + Case 237 + ConceptoContabilizacionME = 238 + ConceptoContabilizacionMEComp = 239 + importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) + importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO + Case 240 + ConceptoContabilizacionME = 241 + ConceptoContabilizacionMEComp = 242 + importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) + importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO + End Select + + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ConceptoContabilizacion = 6 Then + If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero + End If + Else + If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero + End If + End If + + If ObjConta.GetRetCuenta(ConceptoContabilizacionME, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableME = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero + End If + + If ObjConta.GetRetCuenta(ConceptoContabilizacionMEComp, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContableMEComp = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If End If - 'LIMPIA - importeMovimiento = 0 - IdCtaContable = 0 - 'End If - Dim CostoIndirectoAcum176 As Decimal = 0 - 'INV [MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA) ] - If AgregaMercanciaInventario AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV", "Ant") AndAlso CveConceptoContableAlmacen.Contiene(205, 176, 237, 240) Then + Dim CveMovimientoAlmacen As Integer = -1 - importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And (ISNULL(CveTipoPS,0) = 2 Or (ISNULL(CveTipoPS,0) = 1 And ISNULL(AplicaCostoIndirecto,0) = 1))").ToString.ToDecimal - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - Dim ConceptoContabilizacion = 205 - Dim ConceptoContabilizacionME = -1 - Dim IdCtaContableME = -1 - Dim ConceptoContabilizacionMEComp = -1 - Dim IdCtaContableMEComp = -1 - - If OCVinculada Or CveConceptoContableAlmacen.Contiene(237, 240) Then - ConceptoContabilizacion = CveConceptoContableAlmacen - End If - Dim UsaComplementariaFleteImportaciones As Boolean = False - - 'DEBE METER EL CONCEPTO DE COMPRAS SI EL TIPO ES GASTO CON ALMACEN - If DdlTipoCompra.SelectedValue = "10" Then - ConceptoContabilizacion = 6 - End If - - Select Case ConceptoContabilizacion - Case 6 - importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) - importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO - Case 176 - ConceptoContabilizacionME = 228 - ConceptoContabilizacionMEComp = 229 - Case 205 - ConceptoContabilizacionME = 230 - ConceptoContabilizacionMEComp = 231 - importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) - importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO - Case 237 - ConceptoContabilizacionME = 238 - ConceptoContabilizacionMEComp = 239 - importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) - importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO - Case 240 - ConceptoContabilizacionME = 241 - ConceptoContabilizacionMEComp = 242 - importeMovimiento = TmpDT.SUMD(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")) - importeMN = importeMovimiento * tipoCambioActual * Multiplicador 'TIENE QUE TENER EL IMPORTEMN IGUAL AL IMPORTEMOVIMIENTO PORQUE NO TOMA EN CUENTA SI UN PRODUCTO ES TIPO SERVICIO - End Select - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ConceptoContabilizacion = 6 Then - If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero - End If - Else - If ObjConta.GetRetCuenta(ConceptoContabilizacion, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero - End If - End If - - If ObjConta.GetRetCuenta(ConceptoContabilizacionME, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableME = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero - End If - - If ObjConta.GetRetCuenta(ConceptoContabilizacionMEComp, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContableMEComp = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero - End If - End If - - - Dim CveMovimientoAlmacen As Integer = -1 - - 'If importeMovimiento <> 0 Then - Select Case ConceptoContabilizacion - Case 176 - Dim SumatoriaOCINV = 0.0D, Importe176 = 0.0D, ImporteME176 = 0.0D, ImporteMN176 = 0.0D, Importe228 = 0.0D, ImporteME228 = 0.0D, ImporteMN228 = 0.0D, Importe229 = 0.0D, ImporteME229 = 0.0D, ImporteMN229 = 0.0D, ImporteCI176 = 0.0D - Dim SumatoriaInventario As Decimal = 0 - Dim TCO As Decimal = 1 - For Each Dr As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").Rows - If ObjOC.OrdenesCompraDetalleCostoPP(Dr("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv:{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}" - Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * Dr("Cantidad").ToString.ToDecimal - Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal - Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal - ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal - CveMovimientoAlmacen = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero - Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal - 'RMF. falta verificar el costo indirecto de la OC - If DdlMoneda.SelectedValue.ToEntero <> 1 Then - TCO = TxtTC.Text.ToDecimal - ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal - CostoIndirectoAcum176 += ImporteCI176 - SumatoriaInventario += Importe228 + Importe229 - 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio - SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN228 + ImporteMN229 - ImporteCI176) - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN228, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN229, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - Else + 'If importeMovimiento <> 0 Then + Select Case ConceptoContabilizacion + Case 176 + Dim SumatoriaOCINV = 0.0D, Importe176 = 0.0D, ImporteME176 = 0.0D, ImporteMN176 = 0.0D, Importe228 = 0.0D, ImporteME228 = 0.0D, ImporteMN228 = 0.0D, Importe229 = 0.0D, ImporteME229 = 0.0D, ImporteMN229 = 0.0D, ImporteCI176 = 0.0D + Dim SumatoriaInventario As Decimal = 0 + Dim TCO As Decimal = 1 + For Each Dr As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").Rows + If ObjOC.OrdenesCompraDetalleCostoPP(Dr("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv:{ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}" + Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * Dr("Cantidad").ToString.ToDecimal + Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * Dr("Cantidad").ToString.ToDecimal + Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteME229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME229").ToDecimal * Dr("Cantidad").ToString.ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN229").ToDecimal * Dr("Cantidad").ToString.ToDecimal + ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal + CveMovimientoAlmacen = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero + Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal + 'RMF. falta verificar el costo indirecto de la OC + If DdlMoneda.SelectedValue.ToEntero <> 1 Then + TCO = TxtTC.Text.ToDecimal + ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal + CostoIndirectoAcum176 += ImporteCI176 + SumatoriaInventario += Importe228 + Importe229 + 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio + SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN228 + ImporteMN229 - ImporteCI176) + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe228, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN228, ImporteME:=ImporteME228, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe229, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN229, ImporteME:=ImporteME229, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True Exit For End If Else - CostoIndirectoAcum176 += ImporteCI176 - SumatoriaInventario += Importe176 - 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio - SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN176 - ImporteCI176) - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN176, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If + ErrorPrepoliza = True + Exit For End If Else - Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError) - ErrorPrepoliza = True - Exit For + CostoIndirectoAcum176 += ImporteCI176 + SumatoriaInventario += Importe176 + 'se considera costoindirecto, para que la factura tiene en un concepto tipo servicio + SumatoriaOCINV += (Dr(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total")).ToString.ToDecimal * tipoCambioActual) - (ImporteMN176 - ImporteCI176) + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Importe176, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=ImporteMN176, ImporteME:=ImporteME176, CveOCDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If End If - Next + Else + Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError) + ErrorPrepoliza = True + Exit For + End If + Next - 'obtengo si hay servicios - Dim CostosIndirectosTardados As Decimal = TmpDT.SUMD("Total", "ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 1") - 'consideracion, si la oc, se le agrego un servicio y este no se cargo en la entrada al almacen. - If CostoIndirectoAcum176 = 0 AndAlso CostosIndirectosTardados > 0 Then - CostosIndirectosTardados = CostosIndirectosTardados * TCO + 'obtengo si hay servicios + Dim CostosIndirectosTardados As Decimal = TmpDT.SUMD("Total", "ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 1") + 'consideracion, si la oc, se le agrego un servicio y este no se cargo en la entrada al almacen. + If CostoIndirectoAcum176 = 0 AndAlso CostosIndirectosTardados > 0 Then + CostosIndirectosTardados = CostosIndirectosTardados * TCO + End If + + 'calcula la diferencia entre lo recibido por la OC, considerando costos indirectos y lo que se ingresaria en la compra + SumatoriaOCINV = SumatoriaInventario - (TmpDT.SUMD("Total") * TCO).RoundSQL + CostosIndirectosTardados 'sumatoria de la factura + If SumatoriaOCINV.RoundSQL <> 0 Then + ' se abona el costo, cambiamos su naturaleza + 'SumatoriaOCINV = -SumatoriaOCINV + + Dim CveClasificacionCostoOC = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero + Dim CveSubProyecto69 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero + + If CveSubProyecto69 <= 0 Then + Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia) + ErrorPrepoliza = True + Exit For End If - 'calcula la diferencia entre lo recibido por la OC, considerando costos indirectos y lo que se ingresaria en la compra - SumatoriaOCINV = SumatoriaInventario - (TmpDT.SUMD("Total") * TCO).RoundSQL + CostosIndirectosTardados 'sumatoria de la factura - If SumatoriaOCINV.RoundSQL <> 0 Then - ' se abona el costo, cambiamos su naturaleza - 'SumatoriaOCINV = -SumatoriaOCINV + IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacionCostoOC}").ToString.ToEntero + Dim tTipoMovto As Boolean = True + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then ' empresa llantera + tTipoMovto = False + SumatoriaOCINV = -SumatoriaOCINV + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovto, SumatoriaOCINV, Referencia, 69, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveClasificacion:=CveClasificacionCostoOC, ImporteMX:=SumatoriaOCINV, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69) Then + ErrorPrepoliza = True + Exit For + End If + End If + Case 205, 237, 240 + Insertado205 = True + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" + If DdlMoneda.SelectedValue.ToEntero <> 1 AndAlso UsaComplementariaFleteImportaciones Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN - importeMovimiento, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN - importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + Else + ErrorPrepoliza = True + End If + Else - Dim CveClasificacionCostoOC = TmpDT.FiltroPrimeroValor("CveClasificacion", "ISNULL(TipoAF, 0) <> 2 And ISNULL(CveAlmacen, 0) = 0 And ISNULL(AplicaCostoIndirecto, 0) <> 1 And ISNULL(CveTipoPS, 0) = 2").ToEntero - Dim CveSubProyecto69 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero + If Not CveCompraRefacturacion > 0 Then - If CveSubProyecto69 <= 0 Then + Dim CveSubProyecto240 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero + + If CveSubProyecto240 <= 0 Then Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia) ErrorPrepoliza = True Exit For End If - IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacionCostoOC}").ToString.ToEntero - Dim tTipoMovto As Boolean = True - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then ' empresa llantera - tTipoMovto = False - SumatoriaOCINV = -SumatoriaOCINV - End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovto, SumatoriaOCINV, Referencia, 69, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveClasificacion:=CveClasificacionCostoOC, ImporteMX:=SumatoriaOCINV, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69) Then - ErrorPrepoliza = True - Exit For - End If - End If - Case 205, 237, 240 - Insertado205 = True - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - If DdlMoneda.SelectedValue.ToEntero <> 1 AndAlso UsaComplementariaFleteImportaciones Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContabilizacionME, Concepto, FechaMovimiento, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN - importeMovimiento, Referencia, ConceptoContabilizacionMEComp, Concepto, FechaMovimiento, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN - importeMovimiento, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - Else - ErrorPrepoliza = True - End If - Else - - If Not CveCompraRefacturacion > 0 Then - - Dim CveSubProyecto240 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero - - If CveSubProyecto240 <= 0 Then - Alert("Debe de asignar un sub proyecto o centro de costos", TipoMensaje.MsgAdvertencia) - ErrorPrepoliza = True - Exit For - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto240) Then - ErrorPrepoliza = True - End If - End If - - End If - Case 6 - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "CveSubProyecto"}).Rows - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero - End If - End If - - If importeMN <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, - CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - End If - Next - - End Select - 'End If - - End If - - 'falta el registro de la NC cuando es - Dim RegistroCuentaPuente As Boolean = False - 'NC CON PRODUCTOS - CUENTA PUENTE - - - If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then - RegistraConcepto225 = True - End If - - - If RegistraConcepto225 Then - - importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - 'no es necesario, ya se está interpretandoe l usado como producto - 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'cuando es emp acumuladora - - ' Dim Valor As Decimal = 0 - ' For Each RowAcum As DataRow In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").Rows - ' Dim TotalTamanio = TmpDT.FiltroPrimeroValor("Total", $"CvePS={RowAcum("CvePSCargo")}").ToDecimal() - ' If TotalTamanio > 0 Then - ' Valor += TotalTamanio - ' End If - ' Next - - ' importeMovimiento += Valor - ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador - 'End If - - Dim ConceptoContabilizacionNC = 225 - Dim CveMovimientoDevolucion As Integer = -1 - - 'CUANDO NO SE RECIBE LA MERCANCIA EN COMPRAS, SE REGISTRA EL 225, SI SE ESTA REGISTRANDO LA DEVOLUCION EN ALMACEN, SE REGISTRA EL 68 - If Devolucion IsNot Nothing AndAlso Devolucion.DebeRealizarDevolucion AndAlso Devolucion.CveMovimiento > 0 Then - ConceptoContabilizacionNC = 68 - CveMovimientoDevolucion = Devolucion.CveMovimiento - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContabilizacionNC, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero - End If - End If - - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then - RegistroCuentaPuente = True - Dim ImporteTransito As Decimal = 0 - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If - - 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 - If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then - SeContabiliza = False - IdCtaContable = 0 - End If - - 'se lleva saldo de Mercancía en tránsito - - If ChkNCInvNC.Checked Then - For Each Gvr As GridViewRow In GVNCInv.Rows - If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then - If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then - ErrorMovInv = True - Exit For - End If - - End If - Next - - Dim diferenciaTransito As Decimal = 0 - For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows - If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then - Dim importeMNTemp As Decimal = 0 - If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then - ErrorMovInv = True - Exit For - End If - Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal - 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) - 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) - importeMNTemp = (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * Gvr.DataKey("TipoCambio").ToDecimal).RoundSQL - ImporteTransito += importeMNTemp - 'se registra por cada compra relacionada - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMNTemp, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - End If - Next - - 'la diferencia se va aplicar sobre los - - 'Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL - - If diferenciaTransito <> 0 Then - Dim tCveCon As Integer = 65 - If diferenciaTransito < 0 Then - tCveCon = 64 - End If - diferenciaTransito = Math.Abs(diferenciaTransito) - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto) Then - ErrorPrepoliza = True - End If - End If - - Else - - Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion - - - If TotalRealDevolucion <> 0 Then - - If Math.Abs(DiferenciaDevolucion) > 0 Then - - - Dim CveSubProyecto69 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", "CveSubProyecto > 0 ").ToEntero - Dim CveClasificacion69 As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "CveClasificacion > 0 ").ToEntero - - - Dim IdCtaContable69 As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacion69}").ToString.ToEntero - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, IdCtaContable69, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69, CveClasificacion:=CveClasificacion69) Then - ErrorPrepoliza = True - End If - End If - - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TotalRealDevolucion.RoundSQL(), Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=(TotalRealDevolucion * tipoCambioActual).RoundSQL(), ImporteME:=If(tipoCambioActual = 1, 0, TotalRealDevolucion).RoundSQL(), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - - - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento.RoundSQL, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento * tipoCambioActual * Multiplicador, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, ConceptoContabilizacion, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto240) Then ErrorPrepoliza = True End If End If End If - End If + Case 6 + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - If UsuarioActual.CveEmpresa.Contiene(119) Then - Dim ContienePSNeteoBonif As Boolean = False - For Each Dr As DataRow In TmpDT.Rows - If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.ToEntero = 11 Then 'clasificación de Bonificación, no se incluirá en el neteo - ContienePSNeteoBonif = True - Exit For + For Each RowDetalle As DataRow In TmpDT.FiltraParametros("ISNULL(TipoAF,0) <> 2", "", {"CveClasificacion", "CveSubProyecto"}).Rows + + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, RowDetalle("CveClasificacion").ToString().ToEntero()) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero + End If End If - Next - If ContienePSNeteoBonif Then - importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = 20319 ").ToString.ToDecimal - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - Dim IdCtaContableDescCompra As Integer = UsuarioActual.Empresa.Funcionalidad(405).ToEntero - - - Dim CveSubProyecto259 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero - - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=-importeMN, ImporteME:=If(tipoCambioActual = 1, 0, -importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then + If importeMN <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 6, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, + CveClasificacion:=RowDetalle("CveClasificacion").ToString().ToEntero(), CveSubProyecto:=RowDetalle("CveSubProyecto").ToString().ToEntero(), Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True End If - Else - ErrorPrepoliza = True - End If - - End If - End If - - - End If - - 'ChkNCInvNC - - If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then - 'GASTO - If UsuarioActual.CveEmpresa = 119 Then - DT = TmpDT - Else - DT = TmpDT.FiltraParametros("ISNULL(AplicaCostoIndirecto,0) <> 1") - End If - 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN - If DdlTipoCompra.SelectedValue <> "10" Then - For Each Dr As DataRow In DT.Rows - If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then - Dr("CveAlmacen") = 0 - End If - Dr.AcceptChanges() - Next - End If - - DT.AcceptChanges() - DtAlmacenes.Dispose() - - 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS] - If AgregaMercanciaInventario Then - DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2") - End If - - Dim DTDistinct = DT.Copy - If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then - - For Each drowdis As DataRow In DTDistinct.Rows - If drowdis("CveTipoGasto").ToString = "" Then - drowdis("CveTipoGasto") = 0 - End If - If drowdis("TipoGasto").ToString.Trim = "" Then - drowdis("TipoGasto") = "ND" - End If Next - DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF, 0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) - Else - - For Each drowdis As DataRow In DTDistinct.Rows - If drowdis("CveTipoGasto").ToString = "" Then - drowdis("CveTipoGasto") = 0 - End If - If drowdis("TipoGasto").ToString.Trim = "" Then - drowdis("TipoGasto") = "ND" - - End If - Next - DTDistinct.AcceptChanges() - - DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) - End If - 'RMF, si es concepto relacionado a flete o importacion, no debe de afectar al gasto - If CveFlete > 0 OrElse CveImportacion > 0 OrElse (CveCompraRefacturacion > 0 AndAlso ChkRefacNC.Checked) Then - DTDistinct.Clear() - End If - - Dim tTipoMovimiento As Boolean = TipoMovimiento - If DTDistinct.Rows.Count > 0 Then - For Each Row2 As DataRow In DTDistinct.Rows - - tTipoMovimiento = TipoMovimiento - 'DETERMINA IMPORTE - If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then - importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal - Else - importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal - End If - 'se debe de restar el costo indirecto, si se recibió por OC sobre el importe del gasto, por si ya está incuido - importeMovimiento = importeMovimiento - CostoIndirectoAcum176 - - importeMN = importeMovimiento * tipoCambioActual * Multiplicador '[IPP] EL 6 DEBE SER POSITIVO 27/AGOSTO/2018 - - 'CLASIFICACION - If Row2("CveClasificacion").ToString.ToEntero > 0 AndAlso DdlTipoComprobante.SelectedValue = "Fac" Then - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then - If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero - Else - IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero - End If - End If - End If - - 'AGREGA MOVIMIENTO - If importeMovimiento.RoundSQL <> 0 Then - - Dim tcvecon As Integer = 6 - Dim tidctacon As Integer = 6 - tidctacon = IdCtaContable - If DdlTipoComprobante.SelectedValue = "Ant" Then - tcvecon = 264 - tidctacon = ViewState("CtaProveedorAnticipos").ToString.ToEntero - If DdlMoneda.SelectedValue = "2" Then - tidctacon = ViewState("CtaProveedorAnticiposExtranjera").ToString.ToEntero - End If - - ElseIf DdlTipoComprobante.SelectedValue = "NC" Then - tcvecon = 259 - tidctacon = UsuarioActual.Empresa.Funcionalidad(405).ToEntero - - ElseIf UsuarioActual.CveEmpresa = 119 AndAlso Row2("CveClasificacion").ToString = "20473" Then - 'CODIGO FIJO, SI ES LA CLASIFICACION DE "SEGURO/SERVICIO COSTO", SE ABONARÁ - tTipoMovimiento = True - importeMovimiento = -importeMovimiento - importeMN = -importeMN - End If - - - Dim usacomplementariaProveedor As Boolean = False - usacomplementariaProveedor = If(tipoCambioActual > 1, True, False) - - If usacomplementariaProveedor AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then - 'importeMovimiento - - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - importeMN = tipoCambioActual * importeMovimiento - importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, 266, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=importeMovimiento, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - importeMN = importeMovimiento - End If - - Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - If Not Insertado205 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, tcvecon, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - - End If - - End If - Next - End If - End If - - 'LIMPIA - importeMovimiento = 0 - IdCtaContable = 0 - End If - Case 5 'Proveedores - If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor - Dim UsaComplementaria As Boolean = True - - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then UsaComplementaria = False - If tipoCambioActual <> 1 Then - Select Case ConceptoContable - Case 5 - ConceptoContable = 311 - Case 305 - ConceptoContable = 306 - Case Else End Select + 'End If + End If - If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + 'falta el registro de la NC cuando es + Dim RegistroCuentaPuente As Boolean = False + 'NC CON PRODUCTOS - CUENTA PUENTE - importeMovimiento = importeProv + + If DdlTipoComprobante.SelectedValue = "NC" And DdlTipoCompra.SelectedValue.ToEntero = 9 Then + RegistraConcepto225 = True + End If + + + If RegistraConcepto225 Then + + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(AplicaCostoIndirecto,0) <> 1 And ISNULL(CveTipoPS,0) = 2").ToString.ToDecimal importeMN = importeMovimiento * tipoCambioActual * Multiplicador - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - Dim CveConceptoContableComplementaria As Integer = 201 - If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307 + 'no es necesario, ya se está interpretandoe l usado como producto + 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then 'cuando es emp acumuladora - If tipoCambioActual = 1 Then - IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) - Else - IdCtaContable = CtaProveedorComplementaria - If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then - importeMN = importeMovimiento - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - End If - IdCtaContable = CtaProveedorExtranjera + ' Dim Valor As Decimal = 0 + ' For Each RowAcum As DataRow In GlobalDTAcumTamaños().FiltraParametros("CveEmpresa = 140").Rows + ' Dim TotalTamanio = TmpDT.FiltroPrimeroValor("Total", $"CvePS={RowAcum("CvePSCargo")}").ToDecimal() + ' If TotalTamanio > 0 Then + ' Valor += TotalTamanio + ' End If + ' Next + + ' importeMovimiento += Valor + ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador + 'End If + + Dim ConceptoContabilizacionNC = 225 + Dim CveMovimientoDevolucion As Integer = -1 + + 'CUANDO NO SE RECIBE LA MERCANCIA EN COMPRAS, SE REGISTRA EL 225, SI SE ESTA REGISTRANDO LA DEVOLUCION EN ALMACEN, SE REGISTRA EL 68 + If Devolucion IsNot Nothing AndAlso Devolucion.DebeRealizarDevolucion AndAlso Devolucion.CveMovimiento > 0 Then + ConceptoContabilizacionNC = 68 + CveMovimientoDevolucion = Devolucion.CveMovimiento End If - End If - Case 59 'Documentos - importeMovimiento = importeCreditos - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CveProveedor) Then - If ObjConta.DtResultados.Rows.Count > 0 Then + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContabilizacionNC, UsuarioActual.CveEmpresa) Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero End If End If - End If - Case 37 'Deudores - - - Dim CveConceptoContableDeoudor As Integer = If(RBLTipoDeudor.SelectedValue.ToEntero = 1, 37, 254) - - For Each rw As GridViewRow In GvDeudores.Rows - If rw.FCCheckBox("Chk").Checked Then - - importeMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal - OtrosGastosIngresos = rw.FCTextBox("TxtOtrosGastosIngresos").Text.ToDecimal - - importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL - - Dim OtrosGastosIngresosMN As Decimal = (OtrosGastosIngresos * tipoCambioActual * Multiplicador).RoundSQL - Dim importeMNOtrosIngEgs As Decimal = ((importeMovimiento + OtrosGastosIngresos) * tipoCambioActual * Multiplicador).RoundSQL - - IdCtaContable = CtaProveedorDeudores - Dim tCveProveedor As Integer = rw.DataKey("CveProveedor").ToEntero + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" + If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then + RegistroCuentaPuente = True + Dim ImporteTransito As Decimal = 0 'Conta ContPAQ - If CveConceptoContableDeoudor = 37 Then - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContableDeoudor))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", 68))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 End If - If OtrosGastosIngresos = 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True : Exit For - End If - Else - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(TipoMovimiento, False, True), (importeMovimiento + OtrosGastosIngresos), Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNOtrosIngEgs, ImporteME:=If(tipoCambioActual = 1, 0, (importeMovimiento + OtrosGastosIngresos)), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True : Exit For - End If + 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 + If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then + SeContabiliza = False + IdCtaContable = 0 End If - Dim Pago As New CompraPago With { - .ImportePago = importeMovimiento, - .CveIE = CveIE, - .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero, - .OtroGastoIngreso = -OtrosGastosIngresos 'Se manda en negativo para no afectar en prepoliza, en funcion AplicaPrePolizaPagoCompra se mete en positivo por default - } - AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - End If - Next - importeMovimiento = 0 - OtrosGastosIngresos = 0 + 'se lleva saldo de Mercancía en tránsito - Case 41 'Acreedores - importeMovimiento = importeAcreedores - importeMN = importeMovimiento * tipoCambioActual * Multiplicador + If ChkNCInvNC.Checked Then + For Each Gvr As GridViewRow In GVNCInv.Rows + If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then + ErrorMovInv = True + Exit For + End If - IdCtaContable = CtaProveedorAcreedores - - Case 42 'Acreedores - importeMovimiento = importeAcreedoresTarjeta - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - IdCtaContable = CtaProveedorAcreedores - - Case 18 'NC - Notas de Credito - - importeMovimiento = importeNC - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - IdCtaContable = CtaProveedor - If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then - IdCtaContable = CtaProveedorExtranjera - End If - - If importeMovimiento <> 0 Then - GuardoConcepto18 = True - If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then - - 'PROVISION de NC - IdCtaContable = CtaProveedorExtranjera - Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto) - 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False) - - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza) Then - IdCtaContable = CtaProveedorComplementaria - 'CveCon = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, True) - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMN - importeMovimiento, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then - ErrorPrepoliza = True - Exit Select - End If - Else - ErrorPrepoliza = True - Exit Select - End If - - 'AMORTIZACIÓN EN EL REGISTRO - For Each Gvr As GridViewRow In GvFacturaNC.Rows - If Gvr.FCCheckBox("ChkFacturaNC").Checked Then - Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimientoNC - Pago.CveMonedaPago = CompraActual.CveMoneda - Pago.CveCompraAmortizacion = CompraActual.CveCompra - Pago.Referencia = CompraActual.SerieFolio - Pago.TCPago = CompraActual.TC - Pago.AplicaAcreditable = False - Pago.TipoPago = "NC" - Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC - - Dim CompraPago As New Compra - 'datos de la compra tipodocto:Fac, para sobreescribirlos - CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero - CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero - CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") - CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal - CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate - CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero - CompraPago.Total = Gvr.DataKey("Total").ToDecimal - CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero - CompraPago.CveSubProyecto = CompraActual.CveSubProyecto - - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) - If ErrorPrepoliza Then - Exit For End If + Next + + Dim diferenciaTransito As Decimal = 0 + For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows + If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + Dim importeMNTemp As Decimal = 0 + If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then + ErrorMovInv = True + Exit For + End If + Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal + 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + importeMNTemp = (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * Gvr.DataKey("TipoCambio").ToDecimal).RoundSQL + ImporteTransito += importeMNTemp + 'se registra por cada compra relacionada + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMNTemp, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + Next + + 'la diferencia se va aplicar sobre los + + 'Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL + + If diferenciaTransito <> 0 Then + Dim tCveCon As Integer = 65 + If diferenciaTransito < 0 Then + tCveCon = 64 + End If + diferenciaTransito = Math.Abs(diferenciaTransito) + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto) Then + ErrorPrepoliza = True + End If + End If + + Else + + Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion + + + If TotalRealDevolucion <> 0 Then + + If Math.Abs(DiferenciaDevolucion) > 0 Then + + + Dim CveSubProyecto69 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", "CveSubProyecto > 0 ").ToEntero + Dim CveClasificacion69 As Integer = TmpDT.FiltroPrimeroValor("CveClasificacion", "CveClasificacion > 0 ").ToEntero + + + Dim IdCtaContable69 As Integer = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {CveClasificacion69}").ToString.ToEntero + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, IdCtaContable69, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto69, CveClasificacion:=CveClasificacion69) Then + ErrorPrepoliza = True + End If + End If + + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TotalRealDevolucion.RoundSQL(), Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=(TotalRealDevolucion * tipoCambioActual).RoundSQL(), ImporteME:=If(tipoCambioActual = 1, 0, TotalRealDevolucion).RoundSQL(), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + + + Else + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento.RoundSQL, Referencia, ConceptoContabilizacionNC, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMovimiento * tipoCambioActual * Multiplicador, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + + End If + End If + + If UsuarioActual.CveEmpresa.Contiene(119) Then + Dim ContienePSNeteoBonif As Boolean = False + For Each Dr As DataRow In TmpDT.Rows + If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.ToEntero = 11 Then 'clasificación de Bonificación, no se incluirá en el neteo + ContienePSNeteoBonif = True + Exit For End If Next - If ErrorPrepoliza Then - ErrorMovtosCxP = True - Exit Select - End If + If ContienePSNeteoBonif Then + importeMovimiento = TmpDT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), $"ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 AND CveClasificacion = 20319 ").ToString.ToDecimal + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + Dim IdCtaContableDescCompra As Integer = UsuarioActual.Empresa.Funcionalidad(405).ToEntero - Else - IdCtaContable = CtaProveedor - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then - For Each Gvr As GridViewRow In GvFacturaNC.Rows - If Gvr.FCCheckBox("ChkFacturaNC").Checked Then - 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) - Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal - Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - Else - ErrorPrepoliza = True - End If - 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp) + Dim CveSubProyecto259 As Integer = TmpDT.MAX("CveSubProyecto").ToEntero + + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, -importeMovimiento, Referencia, 259, Concepto, FechaMovimiento, IdCtaContableDescCompra, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=-importeMN, ImporteME:=If(tipoCambioActual = 1, 0, -importeMovimiento), TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto259) Then + ErrorPrepoliza = True End If - Next - End If - End If - End If - - importeMovimiento = 0 - - Case 29 'Funcionarios y Empleados - importeMovimiento = importeFE - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CvePersonal) Then - If ObjConta.DtResultados.Rows.Count > 0 Then - IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContPersonal").ToString.ToEntero - End If - End If - - If importeMovimiento > 0 Then - - Dim Pago As New CompraPago - If DDlCheques.SelectedValue.ToEntero > 0 Then - Pago.ImportePago = importeFE - Pago.CveIE = DDlCheques.SelectedValue.ToEntero - Pago.CvePersonal = CvePersonal - - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - Else - Alert("Debe de seleccionar un cheque.", TipoMensaje.MsgAdvertencia) - ErrorPrepoliza = True - End If - - End If - - Case 21 'Anticipo - - If ArrAnticipos.Count > 0 Then - - Dim PorcentajeImpuestoAnticipo = PorcentajeIVA - - For Each Ant As Compras_Compras.Anticipos In ArrAnticipos - - TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False) - - Dim ConceptoContableAnticipo, ConceptoContableAnticipoComplementaria As Integer - Dim CveCompraNC As Integer = CveCompra - - Select Case Ant.TipoMovto - Case "NC", "DEV" - ConceptoContableAnticipo = 60 - ConceptoContableAnticipoComplementaria = 235 - CveCompraNC = Ant.CveCompra 'cuando es NC, se utiliza la clave de compra de la nota de credito - IdCtaContable = CtaProveedor - Case "Egsc" - ConceptoContableAnticipo = 21 - IdCtaContable = CtaProveedorAnticipos - - Case "DD" - ConceptoContableAnticipo = 37 - IdCtaContable = CtaProveedorDeudores - Case "Ant" - ConceptoContableAnticipo = 265 - ConceptoContableAnticipoComplementaria = 266 - CveCompraNC = Ant.CveCompra - IdCtaContable = CtaProveedorAnticipos - End Select - - importeMovimiento = Ant.Importe - importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision - Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador - - If importeMovimiento <> 0 Then - 'Conta ContPAQ - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 + Else + ErrorPrepoliza = True End If - 'AMORTIZACIÓN NC ESPECIAL COMPLEMENTARIA - If ConceptoContableAnticipo.Contiene(60) And DdlMoneda.SelectedValue.ToEntero <> 1 Then - Dim importeMovimientoNC = Ant.Importe - Dim importeMNNC = 0.0D - Dim TipoCambioNC = Ant.TCCompra + End If + End If - importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador - IdCtaContable = CtaProveedorExtranjera - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then - IdCtaContable = CtaProveedorComplementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then + + End If + + 'ChkNCInvNC + + If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked Then + 'GASTO + If UsuarioActual.CveEmpresa = 119 Then + DT = TmpDT + Else + DT = TmpDT.FiltraParametros("ISNULL(AplicaCostoIndirecto,0) <> 1") + End If + 'RECORREMOS PARA DETECTAR LA MODALIDAD DEL ALMACEN, EN CASO DE SER SOLO EXISTENCIA LIMPIAMOS CVEALMACEN + If DdlTipoCompra.SelectedValue <> "10" Then + For Each Dr As DataRow In DT.Rows + If DtAlmacenes.FiltroPrimeroValor("Modalidad", $"CveAlmacen = {Dr("CveAlmacen").ToString.ToEntero}").ToString = "Solo Existencia" Then + Dr("CveAlmacen") = 0 + End If + Dr.AcceptChanges() + Next + End If + + DT.AcceptChanges() + DtAlmacenes.Dispose() + + 'QUITA 1-[MERCANCIA RECIBIDA POR ADELANTADO (OC) | MERCANCIA PENDIENTE POR RECIBIR (COMPRA)] 2-[NC CON PRODUCTOS] + If AgregaMercanciaInventario Then + DT = DT.FiltraParametros("ISNULL(CveTipoPS,0) <> 2") + End If + + Dim DTDistinct = DT.Copy + If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then + + For Each drowdis As DataRow In DTDistinct.Rows + If drowdis("CveTipoGasto").ToString = "" Then + drowdis("CveTipoGasto") = 0 + End If + If drowdis("TipoGasto").ToString.Trim = "" Then + drowdis("TipoGasto") = "ND" + + End If + Next + + DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF, 0) <> 2", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + Else + + For Each drowdis As DataRow In DTDistinct.Rows + If drowdis("CveTipoGasto").ToString = "" Then + drowdis("CveTipoGasto") = 0 + End If + If drowdis("TipoGasto").ToString.Trim = "" Then + drowdis("TipoGasto") = "ND" + + End If + Next + DTDistinct.AcceptChanges() + + DTDistinct = DTDistinct.FiltraParametros("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1", "", {"CveClasificacion", "Clasificacion", "SubProyecto", "CveSubProyecto", "CveTipoGasto", "TipoGasto"}) + End If + 'RMF, si es concepto relacionado a flete o importacion, no debe de afectar al gasto + If CveFlete > 0 OrElse CveImportacion > 0 OrElse (CveCompraRefacturacion > 0 AndAlso ChkRefacNC.Checked) Then + DTDistinct.Clear() + End If + + Dim tTipoMovimiento As Boolean = TipoMovimiento + If DTDistinct.Rows.Count > 0 Then + For Each Row2 As DataRow In DTDistinct.Rows + + tTipoMovimiento = TipoMovimiento + 'DETERMINA IMPORTE + If UsuarioActual.Empresa.Funcionalidad(126) = "1" Then + importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal + Else + importeMovimiento = DT.SUM(If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 AndAlso ArrAnticipos IsNot Nothing AndAlso ArrAnticipos.Count > 0 AndAlso TxtTotal.Text.ToDecimal = 0, "ImporteSinImpuestos", "Total"), String.Format("ISNULL(TipoAF,0) <> 2 And ISNULL(CveAlmacen,0) = 0 And ISNULL(AplicaCostoIndirecto,0) <> 1 And CveClasificacion = {0} And CveSubProyecto = {1} And ISNULL(CveTipoGasto,0) = {2}", Row2("CveClasificacion").ToString.ToEntero, Row2("CveSubProyecto").ToString.ToEntero, Row2("CveTipoGasto").ToString.ToEntero)).ToString.ToDecimal + End If + 'se debe de restar el costo indirecto, si se recibió por OC sobre el importe del gasto, por si ya está incuido + importeMovimiento = importeMovimiento - CostoIndirectoAcum176 + + importeMN = importeMovimiento * tipoCambioActual * Multiplicador '[IPP] EL 6 DEBE SER POSITIVO 27/AGOSTO/2018 + + 'CLASIFICACION + If Row2("CveClasificacion").ToString.ToEntero > 0 AndAlso DdlTipoComprobante.SelectedValue = "Fac" Then + + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(6, Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero) Then + If ObjConta.DtResultados.Rows.Count > 0 AndAlso ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaGasto").ToString.ToEntero + Else + IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaGasto", String.Format("CveClasificacion = {0}", Row2("CveClasificacion"))).ToString.ToEntero + End If + End If + End If + + 'AGREGA MOVIMIENTO + If importeMovimiento.RoundSQL <> 0 Then + + Dim tcvecon As Integer = 6 + Dim tidctacon As Integer = 6 + tidctacon = IdCtaContable + If DdlTipoComprobante.SelectedValue = "Ant" Then + tcvecon = 264 + tidctacon = ViewState("CtaProveedorAnticipos").ToString.ToEntero + If DdlMoneda.SelectedValue = "2" Then + tidctacon = ViewState("CtaProveedorAnticiposExtranjera").ToString.ToEntero + End If + + ElseIf DdlTipoComprobante.SelectedValue = "NC" Then + tcvecon = 259 + tidctacon = UsuarioActual.Empresa.Funcionalidad(405).ToEntero + + ElseIf UsuarioActual.CveEmpresa = 119 AndAlso Row2("CveClasificacion").ToString = "20473" Then + 'CODIGO FIJO, SI ES LA CLASIFICACION DE "SEGURO/SERVICIO COSTO", SE ABONARÁ + tTipoMovimiento = True + importeMovimiento = -importeMovimiento + importeMN = -importeMN + End If + + + Dim usacomplementariaProveedor As Boolean = False + usacomplementariaProveedor = If(tipoCambioActual > 1, True, False) + + If usacomplementariaProveedor AndAlso DdlTipoComprobante.SelectedValue = "Ant" Then + 'importeMovimiento + + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" + importeMN = tipoCambioActual * importeMovimiento - importeMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, 266, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=importeMovimiento, CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + importeMN = importeMovimiento + End If + + Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" + + If Not Insertado205 Then + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tTipoMovimiento, importeMovimiento, Referencia, tcvecon, Concepto, FechaMovimiento, tidctacon, 0, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, CveClasificacion:=Row2("CveClasificacion").ToString.ToEntero, CveSubProyecto:=Row2("CveSubProyecto").ToString.ToEntero, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), CveTipoGasto:=Row2("CveTipoGasto").ToString.ToEntero, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + + End If + + End If + Next + End If + End If + + 'LIMPIA + importeMovimiento = 0 + IdCtaContable = 0 + End If + Case 5 'Proveedores + If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor + Dim UsaComplementaria As Boolean = True + + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then UsaComplementaria = False + If tipoCambioActual <> 1 Then + Select Case ConceptoContable + Case 5 + ConceptoContable = 311 + Case 305 + ConceptoContable = 306 + Case Else + End Select + End If + + If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + + importeMovimiento = importeProv + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + Dim CveConceptoContableComplementaria As Integer = 201 + If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307 + + If tipoCambioActual = 1 Then + IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) + Else + IdCtaContable = CtaProveedorComplementaria + If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then + importeMN = importeMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + IdCtaContable = CtaProveedorExtranjera + End If + End If + + Case 59 'Documentos + importeMovimiento = importeCreditos + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CveProveedor) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContable").ToString.ToEntero + End If + End If + End If + + Case 37 'Deudores + + + Dim CveConceptoContableDeoudor As Integer = If(RBLTipoDeudor.SelectedValue.ToEntero = 1, 37, 254) + + For Each rw As GridViewRow In GvDeudores.Rows + If rw.FCCheckBox("Chk").Checked Then + + importeMovimiento = rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal + OtrosGastosIngresos = rw.FCTextBox("TxtOtrosGastosIngresos").Text.ToDecimal + + importeMN = (importeMovimiento * tipoCambioActual * Multiplicador).RoundSQL + + Dim OtrosGastosIngresosMN As Decimal = (OtrosGastosIngresos * tipoCambioActual * Multiplicador).RoundSQL + Dim importeMNOtrosIngEgs As Decimal = ((importeMovimiento + OtrosGastosIngresos) * tipoCambioActual * Multiplicador).RoundSQL + + IdCtaContable = CtaProveedorDeudores + Dim tCveProveedor As Integer = rw.DataKey("CveProveedor").ToEntero + + 'Conta ContPAQ + If CveConceptoContableDeoudor = 37 Then + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", CveConceptoContableDeoudor))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 + End If + End If + + If OtrosGastosIngresos = 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True : Exit For + End If + Else + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(TipoMovimiento, False, True), (importeMovimiento + OtrosGastosIngresos), Referencia, CveConceptoContableDeoudor, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=tCveProveedor, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNOtrosIngEgs, ImporteME:=If(tipoCambioActual = 1, 0, (importeMovimiento + OtrosGastosIngresos)), Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True : Exit For + End If + End If + + Dim Pago As New CompraPago With { + .ImportePago = importeMovimiento, + .CveIE = CveIE, + .CveMonedaPago = rw.DataKey("CveMoneda").ToEntero, + .OtroGastoIngreso = -OtrosGastosIngresos 'Se manda en negativo para no afectar en prepoliza, en funcion AplicaPrePolizaPagoCompra se mete en positivo por default + } + AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + End If + Next + importeMovimiento = 0 + OtrosGastosIngresos = 0 + + Case 41 'Acreedores + importeMovimiento = importeAcreedores + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + IdCtaContable = CtaProveedorAcreedores + + Case 42 'Acreedores + importeMovimiento = importeAcreedoresTarjeta + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + IdCtaContable = CtaProveedorAcreedores + + Case 18 'NC - Notas de Credito + + importeMovimiento = importeNC + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" + IdCtaContable = CtaProveedor + If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119) Then + IdCtaContable = CtaProveedorExtranjera + End If + + If importeMovimiento <> 0 Then + GuardoConcepto18 = True + If DdlMoneda.SelectedValue.ToEntero <> 1 And UsuarioActual.CveEmpresa.Contiene(119, 158) Then + + 'PROVISION de NC + IdCtaContable = CtaProveedorExtranjera + Dim ConPreP As ConceptosTipoSaldo = ClsPaginas.ObtenerCveConceptoPrePoliza(15, DdlMoneda.SelectedValue.ToEntero, False, CveTipoConcepto) + 'Dim CveCon As Integer = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, False) + + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimiento, Referencia, ConPreP.CveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza) Then + IdCtaContable = CtaProveedorComplementaria + 'CveCon = ObtConceptoContableProvisionCompra(CveTipoConcepto, DdlTipoComprobante.SelectedValue, DdlMoneda.SelectedValue.ToEntero, True) + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMN - importeMovimiento, Referencia, ConPreP.CveConceptoComplementario, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN - importeMovimiento, ImporteME:=importeMovimiento, Contabilizable:=SeContabiliza, TipoCambio:=tipoCambioActual) Then + ErrorPrepoliza = True + Exit Select + End If + Else + ErrorPrepoliza = True + Exit Select + End If + + 'AMORTIZACIÓN EN EL REGISTRO + For Each Gvr As GridViewRow In GvFacturaNC.Rows + If Gvr.FCCheckBox("ChkFacturaNC").Checked Then + Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal + + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimientoNC + Pago.CveMonedaPago = CompraActual.CveMoneda + Pago.CveCompraAmortizacion = CompraActual.CveCompra + Pago.Referencia = CompraActual.SerieFolio + Pago.TCPago = CompraActual.TC + Pago.AplicaAcreditable = False + Pago.TipoPago = "NC" + Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC + + Dim CompraPago As New Compra + 'datos de la compra tipodocto:Fac, para sobreescribirlos + CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero + CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero + CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") + CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal + CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate + CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero + CompraPago.Total = Gvr.DataKey("Total").ToDecimal + CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero + CompraPago.CveSubProyecto = CompraActual.CveSubProyecto + + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) + If ErrorPrepoliza Then + Exit For + End If + End If + Next + + If ErrorPrepoliza Then + ErrorMovtosCxP = True + Exit Select + End If + + Else + IdCtaContable = CtaProveedor + + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), Contabilizable:=SeContabiliza) Then + For Each Gvr As GridViewRow In GvFacturaNC.Rows + If Gvr.FCCheckBox("ChkFacturaNC").Checked Then + 'Dim CvePrePolizaTemp = ObjConta.AddPrePolizas("Compras/Registrar", If(EsContado And CvePlantillaPrePoliza = 1, 2, CvePlantillaPrePoliza), ImporteCompra, TxtTotal.Text.ToDouble, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, FolioFijo:=FolioFijo, ReglaFolioPoliza:=ObjCompras.ObtenerReglaFolio(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa), CveTipoPoliza:=ObjConta.ObtenerTipoPoliza(DdlTipoTransaccion.SelectedValue, DdlTipoTransaccionCaja.SelectedValue, UsuarioActual.CveEmpresa)) + Dim importeMovimientoNC = Gvr.FCTextBox("TxtImporte").Text.ToDecimal + Dim importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), CveCompraAmortizacion:=CveCompra, Contabilizable:=SeContabiliza) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimientoNC), Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True - Exit For End If Else ErrorPrepoliza = True + End If + 'ObjConta.PrePolizaUnificacion(CvePrePoliza, CvePrePolizaTemp) + End If + Next + End If + End If + End If + + importeMovimiento = 0 + + Case 29 'Funcionarios y Empleados + importeMovimiento = importeFE + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso ObjConta.GetRetCuenta(ConceptoContable, CvePersonal) Then + If ObjConta.DtResultados.Rows.Count > 0 Then + IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCtaContPersonal").ToString.ToEntero + End If + End If + + If importeMovimiento > 0 Then + + Dim Pago As New CompraPago + If DDlCheques.SelectedValue.ToEntero > 0 Then + Pago.ImportePago = importeFE + Pago.CveIE = DDlCheques.SelectedValue.ToEntero + Pago.CvePersonal = CvePersonal + + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + Else + Alert("Debe de seleccionar un cheque.", TipoMensaje.MsgAdvertencia) + ErrorPrepoliza = True + End If + + End If + + Case 21 'Anticipo + + If ArrAnticipos.Count > 0 Then + + Dim PorcentajeImpuestoAnticipo = PorcentajeIVA + + For Each Ant As Compras_Compras.Anticipos In ArrAnticipos + + TipoMovimiento = If(Row("TipoMovto").ToString = "True", True, False) + + Dim ConceptoContableAnticipo, ConceptoContableAnticipoComplementaria As Integer + Dim CveCompraNC As Integer = CveCompra + + Select Case Ant.TipoMovto + Case "NC", "DEV" + ConceptoContableAnticipo = 60 + ConceptoContableAnticipoComplementaria = 235 + CveCompraNC = Ant.CveCompra 'cuando es NC, se utiliza la clave de compra de la nota de credito + IdCtaContable = CtaProveedor + Case "Egsc" + ConceptoContableAnticipo = 21 + IdCtaContable = CtaProveedorAnticipos + + Case "DD" + ConceptoContableAnticipo = 37 + IdCtaContable = CtaProveedorDeudores + Case "Ant" + ConceptoContableAnticipo = 265 + ConceptoContableAnticipoComplementaria = 266 + CveCompraNC = Ant.CveCompra + IdCtaContable = CtaProveedorAnticipos + End Select + + importeMovimiento = Ant.Importe + importeMN = importeMovimiento * tipoCambioActual * Multiplicador + + Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision + Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador + + If importeMovimiento <> 0 Then + 'Conta ContPAQ + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 + End If + + 'AMORTIZACIÓN NC ESPECIAL COMPLEMENTARIA + If ConceptoContableAnticipo.Contiene(60) And DdlMoneda.SelectedValue.ToEntero <> 1 Then + Dim importeMovimientoNC = Ant.Importe + Dim importeMNNC = 0.0D + Dim TipoCambioNC = Ant.TCCompra + + importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador + IdCtaContable = CtaProveedorExtranjera + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 60, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then + IdCtaContable = CtaProveedorComplementaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 235, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True Exit For End If + Else + ErrorPrepoliza = True + Exit For + End If + importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador + IdCtaContable = CtaProveedorExtranjera + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Ant.CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + + Dim CveConceptoContableComplementaria As Integer = 206 + If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor + + IdCtaContable = CtaProveedorComplementaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If + Else + ErrorPrepoliza = True + Exit For + End If + + ' FLUCTUACION CAMBIARIA + If tipoCambioActual <> TipoCambioNC Then + importeMovimiento = (importeMovimientoNC * tipoCambioActual) - (importeMovimientoNC * TipoCambioNC) + + If importeMovimiento > 0 Then + ConceptoContable = 64 + TipoMovimiento = True + ElseIf importeMovimiento < 0 Then + ConceptoContable = 65 + TipoMovimiento = False + End If + + importeMovimiento = importeMovimiento.Abs.RoundSQL() + importeMN = importeMovimiento + If importeMovimiento <> 0 Then + + Dim CveSubProyecto6465 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyecto6465, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=importeMN, CvePrePolizaOriginal:=CvePrePoliza, ImporteME:=0, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If + End If + End If + + ElseIf ConceptoContableAnticipo.Contiene(265) And DdlMoneda.SelectedValue.ToEntero <> 1 Then + Dim importeMovimientoNC = Ant.Importe + Dim importeMNNC = 0.0D + Dim TipoCambioNC = Ant.TCCompra + + importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador + IdCtaContable = CtaProveedorAnticiposExtranjera + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 265, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then + IdCtaContable = CtaProveedorAnticiposComplementaria + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If + Else + ErrorPrepoliza = True + Exit For + End If + + If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador - IdCtaContable = CtaProveedorExtranjera - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Ant.CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then + IdCtaContable = CtaProveedorExtranjera ' CtaProveedorAnticiposExtranjera + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCompraAmortizacion:=CveCompraNC, Contabilizable:=SeContabiliza) Then Dim CveConceptoContableComplementaria As Integer = 206 If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor - IdCtaContable = CtaProveedorComplementaria + IdCtaContable = CtaProveedorExtranjera 'CtaProveedorAnticiposComplementaria If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True Exit For @@ -7306,510 +7337,206 @@ Partial Class Compras_Compras Exit For End If - ' FLUCTUACION CAMBIARIA - If tipoCambioActual <> TipoCambioNC Then - importeMovimiento = (importeMovimientoNC * tipoCambioActual) - (importeMovimientoNC * TipoCambioNC) + If Ant.TipoMovto.Contiene("Ant") Then - If importeMovimiento > 0 Then - ConceptoContable = 64 - TipoMovimiento = True - ElseIf importeMovimiento < 0 Then - ConceptoContable = 65 - TipoMovimiento = False - End If + If importeMovimientoNC <> 0 Then + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimientoNC + Pago.CveIE = Ant.CveIE + Pago.CveMonedaPago = 1 + Pago.OtroGastoIngreso = ImporComisionAnticipo - importeMovimiento = importeMovimiento.Abs.RoundSQL() - importeMN = importeMovimiento - If importeMovimiento <> 0 Then - - Dim CveSubProyecto6465 As Integer = TmpDT.FiltroPrimeroValor("CveSubProyecto", " CveSubProyecto > 0").ToEntero - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Concepto, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyecto6465, CveProveedor:=CveProveedor, CveIE:=CveIE, ImporteMX:=importeMN, CvePrePolizaOriginal:=CvePrePoliza, ImporteME:=0, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - End If - End If - - ElseIf ConceptoContableAnticipo.Contiene(265) And DdlMoneda.SelectedValue.ToEntero <> 1 Then - Dim importeMovimientoNC = Ant.Importe - Dim importeMNNC = 0.0D - Dim TipoCambioNC = Ant.TCCompra - - importeMNNC = importeMovimientoNC * TipoCambioNC * Multiplicador - IdCtaContable = CtaProveedorAnticiposExtranjera - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMovimientoNC, Referencia, 265, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then - IdCtaContable = CtaProveedorAnticiposComplementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importeMNNC - importeMovimientoNC, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=Ant.CveCompra, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=TipoCambioNC, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - Else - ErrorPrepoliza = True - Exit For - End If - - If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then - importeMNNC = importeMovimientoNC * tipoCambioActual * Multiplicador - IdCtaContable = CtaProveedorExtranjera ' CtaProveedorAnticiposExtranjera - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMovimientoNC, Referencia, 272, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, CveCompraAmortizacion:=CveCompraNC, Contabilizable:=SeContabiliza) Then - - Dim CveConceptoContableComplementaria As Integer = 206 - If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 310 'cuando es acreedor - - IdCtaContable = CtaProveedorExtranjera 'CtaProveedorAnticiposComplementaria - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importeMNNC - importeMovimientoNC, Referencia, CveConceptoContableComplementaria, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=importeMNNC - importeMovimientoNC, ImporteME:=importeMovimientoNC, TipoCambio:=tipoCambioActual, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - Else - ErrorPrepoliza = True - Exit For - End If - - If Ant.TipoMovto.Contiene("Ant") Then - - If importeMovimientoNC <> 0 Then - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimientoNC - Pago.CveIE = Ant.CveIE - Pago.CveMonedaPago = 1 - Pago.OtroGastoIngreso = ImporComisionAnticipo - - ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - - End If + ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) End If End If - Else - - Dim usacomplementariaAnticipo As Boolean = False - usacomplementariaAnticipo = If(Ant.TCCompra > 1 And Not UsuarioActual.CveEmpresa.Contiene(13, 83), True, False) - Dim TipoCambioAnt As Decimal = Ant.TCCompra - - Dim ImporteAnt As Decimal = importeMovimiento - Dim ImporteAntMN As Decimal = ImporteAnt * TipoCambioAnt - - If usacomplementariaAnticipo Then - IdCtaContable = CtaProveedorAnticiposComplementaria - ImporteAntMN = TipoCambioAnt * ImporteAnt - ImporteAnt - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteAntMN, ImporteME:=ImporteAnt, TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - ImporteAntMN = ImporteAnt - End If - - If TipoCambioAnt > 1 Then - IdCtaContable = CtaProveedorAnticiposExtranjera - End If - - 'Agregamos el 21/37/60 - - - 'Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision - 'Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador - - If Not usacomplementariaAnticipo Then - ImporteAntMN = TipoCambioAnt * ImporteAnt - End If - - If ImporComisionAnticipo = 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(tipoCambioActual = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - Else - Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If - End If - - - - If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then - - Dim Pago As New CompraPago - Pago.ImportePago = importeMovimiento - Pago.CveIE = Ant.CveIE - Pago.TCPago = Ant.TCCompra - Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1) - Pago.OtroGastoIngreso = ImporComisionAnticipo - - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - - End If - End If - '** PRUEBA CUANDO SE AMORTIZA NC ANTES DE QUE SE REGISTRE NO DEBE TENER CONCEPTO 19 ** JM 01/06/2017 SE HIZO ESTO PARA LA FACTURA HRFA-8012831 DE VIGILANCIA - '[IPP] NC NO DEBE REGISTRAR IMPUESTOS EN AMORTIZACIÓN 27/Agosto/2018 - - 'If Not Ant.TipoMovto.Contiene("NC", "DEV") Then - - ' Dim Pago As New CompraPago - ' Pago.ImportePago = importeMovimiento - ' Pago.CveIE = Ant.CveIE - ' Pago.CveMonedaPago = 1 - - ' ErrorPrepoliza = AplicaPrePolizaPago(CompraActual, Pago, ObjConta) - - 'End If - - End If - - If UsuarioActual.CveEmpresa.Contiene(83) Then - 'Unificacion de PrePolizas - If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then - If Not ObjConta.PrePolizaUnificacion(Ant.CvePrePoliza, CvePrePoliza) Then - ErrorPrepoliza = True - Alert("No se pudo unificar la prepoliza", TipoMensaje.MsgError) - End If - End If - - 'Simplificacion de PrePolizas - If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then - - If Not ObjConta.UpdatePrePolizasDetalleBloquear(Ant.CvePrePoliza, False) Then - ErrorPrepoliza = True - Alert("No se pudo desbloquear los movimientos", TipoMensaje.MsgError) - End If - - If Not ErrorPrepoliza AndAlso Not ObjConta.PrePolizaSimplificacion(Ant.CvePrePoliza, UsuarioActual.CveEmpresa) Then - ErrorPrepoliza = True - Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError) - End If - End If - End If - - Next - importeMovimiento = 0 - - End If - - End Select - - If ErrorPrepoliza Then - Exit For - End If - '5, 305, 306, 311 - If importeMovimiento <> 0 Or (CveConceptoOriginal = 5 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Fac", "Ant")) Or (ConceptoContable.Contiene(18) AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not GuardoConcepto18) Then - 'Conta ContPAQ - - - If IdCtaContable = 0 Then - CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) - idCuentaContabilizacion = 0 - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyectoInsertar, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - Exit For - End If - - End If - - Next - - 'EMPIEZA REFACTURACION - If Not ErrorPrepoliza AndAlso CveCompraRefacturacion > 0 Then - ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza) - If ErrorBitacora Then - Alert("Ocurrió un error al hacer la Refacturación", TipoMensaje.MsgError) - End If - End If - - 'Simplificacion de PrePolizas - If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then - If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then - ErrorPrepolizaDescuadre = True - End If - End If - - If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then - If ObjConta.ValorPolizaDescuadre > 0 Then - GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") - ErrorPrepolizaDescuadre = True - End If - End If - - 'Conta ContPAQ - If ObjContaAC IsNot Nothing AndAlso Not ErrorPrepoliza AndAlso Not ErrorPrepolizaDescuadre AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then - If idCuentaContabilizacion > 0 Then - If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then - ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) - IdPoliza = ObjConta.ContaIdPoliza - Else - ErrorPrepoliza = True - Alert($"Ocurrio un error al contabilizar {ObjConta.AlertaMensaje}", TipoMensaje.MsgAdvertencia) - End If - Else - Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son inválidas:
    {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia) - ErrorPrepoliza = True - End If - End If - End If - - '' A N T I C I P O S - If UsuarioActual.Empresa.UsaAC Then - If ArrAnticipos.Count > 0 Then - - Dim PorcentajePago As Decimal - Dim ConceptoRenglon As String - - - 'si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar - If TxtTotal.Text.ToDouble - ImporteAnticipo > 0 Then - PorcentajePago = (TxtTotal.Text.ToDecimal - ImporteAnticipo) / TxtTotal.Text.ToDecimal - ConceptoRenglon = String.Format("GE Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text) - If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - ErrorACMEnsaje.Append(" - si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar ObjContaAC.AddMovimiento") - ErrorAC = True - End If - End If - - 'una vez amortizado, se generan los movimientos presupuestales - If ImporteAnticipo > 0 Then - PorcentajePago = ImporteAnticipo / TxtTotal.Text.ToDecimal - If ObjCompras.GetPresupuestosCompras(CveCompra) AndAlso ObjCompras.DtResultados.Rows.Count > 0 Then - 'DtAC.Merge(ObjConta.DtResultados) - For Each dr As DataRow In ObjCompras.DtResultados.Rows - Total = dr("TotalPresupuesto").ToString.ToDecimal * PorcentajePago - If Total > 0 Then - - 'EJERCIDO - If True Then - ConceptoRenglon = String.Format("GE {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text) - If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - 'actualizo el idcuenta del presupuesto - If Not ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaDevengado").ToString.ToEntero, True, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - TieneError = True - Exit For - End If - Else - TieneError = True - Exit For - End If - End If - - 'PAGADO - ConceptoRenglon = String.Format("GP {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text) - If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaPagado").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - 'actualizo el idcuenta del presupuesto - If Not ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, True, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - TieneError = True - Exit For - End If Else - TieneError = True - Exit For + + Dim usacomplementariaAnticipo As Boolean = False + usacomplementariaAnticipo = If(Ant.TCCompra > 1 And Not UsuarioActual.CveEmpresa.Contiene(13, 83), True, False) + Dim TipoCambioAnt As Decimal = Ant.TCCompra + + Dim ImporteAnt As Decimal = importeMovimiento + Dim ImporteAntMN As Decimal = ImporteAnt * TipoCambioAnt + + If usacomplementariaAnticipo Then + IdCtaContable = CtaProveedorAnticiposComplementaria + ImporteAntMN = TipoCambioAnt * ImporteAnt - ImporteAnt + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, 266, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorConcepto, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteAntMN, ImporteME:=ImporteAnt, TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If + ImporteAntMN = ImporteAnt + End If + + If TipoCambioAnt > 1 Then + IdCtaContable = CtaProveedorAnticiposExtranjera + End If + + 'Agregamos el 21/37/60 + + + 'Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision + 'Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador + + If Not usacomplementariaAnticipo Then + ImporteAntMN = TipoCambioAnt * ImporteAnt + End If + + If ImporComisionAnticipo = 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(tipoCambioActual = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + Else + Dim ImporteAntMNComision As Decimal = (ImporteAnt + ImporComisionAnticipo) * TipoCambioAnt + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, (ImporteAnt + ImporComisionAnticipo), Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMNComision, ImporteME:=If(tipoCambioActual = 1, 0, (ImporteAnt + ImporComisionAnticipo)), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + + If TxtTotal.Text.ToDouble > 0 AndAlso TieneAnticiposXML = False Then + + Dim Pago As New CompraPago + Pago.ImportePago = importeMovimiento + Pago.CveIE = Ant.CveIE + Pago.TCPago = Ant.TCCompra + Pago.CveMonedaPago = If(Ant.TCCompra > 1, 2, 1) + Pago.OtroGastoIngreso = ImporComisionAnticipo + + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + + End If + End If End If - Next - Else - ErrorACMEnsaje.Append(" - Error al obtener presupuestos ObjCompras.GetPresupuestosCompras") - ErrorAC = True + If UsuarioActual.CveEmpresa.Contiene(83) Then + 'Unificacion de PrePolizas + If UsuarioActual.Empresa.Funcionalidad(219) = "1" Then + If Not ObjConta.PrePolizaUnificacion(Ant.CvePrePoliza, CvePrePoliza) Then + ErrorPrepoliza = True + Alert("No se pudo unificar la prepoliza", TipoMensaje.MsgError) + End If + End If + + 'Simplificacion de PrePolizas + If UsuarioActual.Empresa.Funcionalidad(220) <> "" Then + + If Not ObjConta.UpdatePrePolizasDetalleBloquear(Ant.CvePrePoliza, False) Then + ErrorPrepoliza = True + Alert("No se pudo desbloquear los movimientos", TipoMensaje.MsgError) + End If + + If Not ErrorPrepoliza AndAlso Not ObjConta.PrePolizaSimplificacion(Ant.CvePrePoliza, UsuarioActual.CveEmpresa) Then + ErrorPrepoliza = True + Alert("No se pudo simplificar los movimientos", TipoMensaje.MsgError) + End If + End If + End If + + Next + importeMovimiento = 0 + End If + End Select + + If ErrorPrepoliza Then + Exit For + End If + '5, 305, 306, 311 + If importeMovimiento <> 0 Or (CveConceptoOriginal = 5 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Fac", "Ant")) Or (ConceptoContable.Contiene(18) AndAlso DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") AndAlso Not GuardoConcepto18) Then + 'Conta ContPAQ + + + If IdCtaContable = 0 Then + CuentasContablesInvalidas.Append("
    " & GlobalDTContaConceptosContables(-1).FiltroPrimero(String.Format("CveConceptoContable = {0}", ConceptoContable))("ConceptoContable").ToString) + idCuentaContabilizacion = 0 End If + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=CveSubProyectoInsertar, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + Exit For + End If + + End If + + Next + + 'EMPIEZA REFACTURACION + If Not ErrorPrepoliza AndAlso CveCompraRefacturacion > 0 Then + ErrorBitacora = GuardaRefacturacion(ObjCompras, ObjEventos, CvePrePoliza) + If ErrorBitacora Then + Alert("Ocurrió un error al hacer la Refacturación", TipoMensaje.MsgError) End If End If - '' F U N C I O N A R I O S Y E M P L E A D O S - If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then - TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text - TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text - + 'Simplificacion de PrePolizas + If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.Funcionalidad(220) <> "" Then + If Not ObjConta.PrePolizaSimplificacion(CvePrePoliza, UsuarioActual.CveEmpresa) Then + ErrorPrepolizaDescuadre = True + End If End If - Else 'Empresa Prueba - - If RBLPago.SelectedValue.ToEntero = 2 AndAlso (RBLContado.SelectedValue = "1" Or RBLContado.SelectedValue = "6") Then 'Contado - Bancos y Caja Chica - 'se agrego un movimiento de pago - - If CveIE > 0 Then - If ImporteCompra <> 0 Then - 'inserto los movimientos de la conta para abonar al saldo - Dim Pago As New CompraPago - Pago.ImportePago = ImporteCompra - Pago.CveIE = CveIE - Pago.CveMonedaPago = 1 - ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + ErrorPrepolizaDescuadre = True + End If + End If + 'Conta ContPAQ + If ObjContaAC IsNot Nothing AndAlso Not ErrorPrepoliza AndAlso Not ErrorPrepolizaDescuadre AndAlso UsuarioActual.Empresa.Funcionalidad(200).ToString = "1" Then + If idCuentaContabilizacion > 0 Then + If ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContaAC) Then + ' Alert(alertaContabilizacion, ModExtensiones.TipoMensaje.MsgInformacion) + IdPoliza = ObjConta.ContaIdPoliza + Else + ErrorPrepoliza = True + Alert($"Ocurrio un error al contabilizar {ObjConta.AlertaMensaje}", TipoMensaje.MsgAdvertencia) End If Else - ErrorMovtosIE = True + Alert(String.Format("No se puede contabilizar la Prepoliza debido a que las siguientes cuentas son inválidas:
    {0}", CuentasContablesInvalidas), TipoMensaje.MsgAdvertencia) + ErrorPrepoliza = True End If End If + End If - 'movimiento de compra - '[IPP] PARCHE PROVISIONAL DE CLASIFICACION Y SUBPROYECTO [CveClasificacion:=TmpDT.FiltroPrimeroValor("CveClasificacion").ToString.ToEntero] [CveSubProyecto:=TmpDT.FiltroPrimeroValor("CveSubProyecto").ToString.ToEntero] - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoCompra, TxtSubTotal2.Text.ToDecimal, " ", CveConceptoCompra, " ", TxtFechaPago.Text.ToDate, 0, -1, CveClasificacion:=TmpDT.FiltroPrimeroValor("CveClasificacion").ToString.ToEntero, CveSubProyecto:=TmpDT.FiltroPrimeroValor("CveSubProyecto").ToString.ToEntero, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtSubTotal2.Text.ToDecimal) Then - ErrorMovtosCxP = True - End If - - 'Se agregan las CxP - If CveConceptoAfectacion = 37 Then - For Each rw As GridViewRow In GvDeudores.Rows - If rw.FCCheckBox("Chk").Checked Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoCompra, rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal, " ", CveConceptoAfectacion, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=rw.DataKey("CveIE").ToString.ToEntero, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=rw.FCTextBox("TxtSaldoDeudor").Text.ToDecimal) Then - ErrorMovtosCxP = True - End If - End If - Next - Else - If ImporteCompra > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoCompra, ImporteCompra, " ", CveConceptoAfectacion, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=ImporteCompra) Then - ErrorMovtosCxP = True - End If - End If - - - If CvePlantillaPrePoliza = 1 Or CvePlantillaPrePoliza = 60 Then - - 'Siempre: Se agrega IVA aunque sea cero - ' If TxtIVA.Text.Replace(", ", "").Trim.ToDouble <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimientoImpuestos, TxtIVA.Text.ToDecimal, " ", CveConceptoIVA, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtIVA.Text.ToDecimal) Then - ErrorMovtosIVA = True - End If - 'End If - - 'Se agregan las Ret IVA - If TxtRetIVA.Text.ToDouble <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtRetIVA.Text.ToDecimal, " ", CveConceptoRetIVA, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtRetIVA.Text.ToDecimal) Then - ErrorMovtosRetIVA = True - End If - End If - - 'Se agregan las Ret ISR - If TxtRetISR.Text.ToDouble > 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtRetISR.Text.ToDecimal, " ", CveConceptoRetISR, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtRetISR.Text.ToDecimal) Then - ErrorMovtosRetISR = True - End If - End If - - If TxtIEPS.Text.ToDouble > 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtIEPS.Text.ToDecimal, " ", CveConceptoRetIEPS, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtIEPS.Text.ToDecimal) Then - ErrorMovtosRetISR = True - End If - End If - - If TxtOtrosImpuestos.Text.ToDouble <> 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoImpuestos, TxtOtrosImpuestos.Text.ToDecimal, " ", CveConceptoRetOtrosImpuestos, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=CveIE, CveCreditoDetalle:=CveCreditoDetalle, ImporteMX:=TxtOtrosImpuestos.Text.ToDecimal) Then - ErrorMovtosRetISR = True - End If - End If - - End If - - - '' A N T I C I P O S + '' A N T I C I P O S + If UsuarioActual.Empresa.UsaAC Then If ArrAnticipos.Count > 0 Then - Dim TotalIVA As Double = TxtIVA.Text.ToDouble - - 'Inserto otra poliza del mo - 'Dim CvePrePolizaAnticipo As Integer = ObjConta.AddPrePolizas("Banc", 10, ImporteAnticipo, ImporteAnticipo, DdlMoneda.SelectedValue.ToEntero, TxtFecha.Text.ToDate, "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) - - ' CveConceptoAfectacion = 21 'Cancelacion Anticipo Proveedores Dim PorcentajePago As Decimal - Dim CveConceptoAnt As Integer = 21 - Dim CveCompraNC As Integer - For Each Ant As Compras_Compras.Anticipos In ArrAnticipos - CveCompraNC = CveCompra - - Dim CveConceptoPago As Integer = 17 - If CveTipoConcepto = 2 Then CveConceptoPago = 308 'cuando es acreedor - If CveMoneda > 1 Then - Select Case CveConceptoPago - Case 17 - CveConceptoPago = 312 - Case 308 - CveConceptoPago = 309 - Case Else - End Select - End If - - Select Case Ant.TipoMovto - Case "NC", "DEV" - CveConceptoAnt = 60 - CveCompraNC = Ant.CveCompra ' cuando es NC, se utiliza la clave de compra de la nota de credito - CveConceptoPago = 272 - Case "Egsc" - CveConceptoAnt = 21 - Case "DD" - CveConceptoAnt = 37 - - End Select - - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Ant.Importe, " ", CveConceptoAnt, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=Ant.Importe) Then - ' ImporteAnticipo += Ant.Importe ' RESTO DEL IMPORTE POR SI QUEDA DIFERENCIA DE LA SUMA DE LOS ANTICIPOS Y EL PROVEEDOR TIENE QUE PAGAR - 'movimiento de pago proveedor, --no se regisra porque no se registra el total de la compra como deuda del proveedor, solo lo que queda a deber - 'si es l moviemiento es de amortizacion con descuento, no registra el pago, ya esta descontado - 'If TieneAnticiposXML = False AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimientoCompra, Ant.Importe, " ", CveConceptoPago, " ", TxtFechaPago.Text.ToDate, 0, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=Ant.Importe, CveCompraAmortizacion:=CveCompraNC) Then - ' ErrorMovtosCxP = True - 'End If - - Dim Pago As New CompraPago - Pago.ImportePago = Ant.Importe - Pago.CveIE = Ant.CveIE - Pago.CveMonedaPago = 1 - Pago.CveCompraAmortizacion = CveCompraNC - Pago.CveConceptoPago = CveConceptoPago - Pago.AplicaAcreditable = If(Ant.TipoMovto.Contiene("NC", "DEV"), False, True) 'SI ES NC, no se acredita - - ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - - Else - ErrorMovtosCxP = True - End If - Next - Dim ConceptoRenglon As String 'si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar If TxtTotal.Text.ToDouble - ImporteAnticipo > 0 Then PorcentajePago = (TxtTotal.Text.ToDecimal - ImporteAnticipo) / TxtTotal.Text.ToDecimal - - - If UsuarioActual.Empresa.UsaAC Then - If CtaProveedor > 0 Then - ConceptoRenglon = String.Format("GD Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text) - If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then - ErrorAC = True - ErrorACMEnsaje.Append("- CtaProveedor > 0 ObjContaAC.AddMovimiento") - End If - Else - Alert(" - El proveedor no tiene cuenta contable.", TipoMensaje.MsgAdvertencia) - - ErrorAC = True - End If + ConceptoRenglon = String.Format("GE Fact {0}-{1} {2}", TxtSerie.Text.Trim, TxtFolio.Text.Trim, DdlProveedor.SelectedItem.Text) + If Not ObjContaAC.AddMovimiento(IdPoliza, CtaProveedor, True, TxtTotal.Text.ToDouble - ImporteAnticipo, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then + ErrorACMEnsaje.Append(" - si hay una diferencia entre lo amortizado y el total, se registra la diferencia a proveedores y los ivas por acreditar ObjContaAC.AddMovimiento") + ErrorAC = True End If End If 'una vez amortizado, se generan los movimientos presupuestales - - If UsuarioActual.Empresa.UsaAC AndAlso ImporteAnticipo > 0 Then - - + If ImporteAnticipo > 0 Then PorcentajePago = ImporteAnticipo / TxtTotal.Text.ToDecimal - If ObjCompras.GetPresupuestosCompras(CveCompra) AndAlso ObjCompras.DtResultados.Rows.Count > 0 Then 'DtAC.Merge(ObjConta.DtResultados) - For Each dr As DataRow In ObjCompras.DtResultados.Rows Total = dr("TotalPresupuesto").ToString.ToDecimal * PorcentajePago - If Total > 0 Then 'EJERCIDO If True Then - ConceptoRenglon = String.Format("GE {0} F{1}-{2}", DdlProveedor.SelectedItem.Text, TxtSerie.Text, TxtFolio.Text) If ObjContaAC.AddMovimiento(IdPoliza, dr("IdCuentaEjercido").ToString.ToEntero, False, MultiplicadorNC * Total, "", ConceptoRenglon, 0, TxtFechaPago.Text.ToDate, "") Then 'actualizo el idcuenta del presupuesto @@ -7817,7 +7544,6 @@ Partial Class Compras_Compras TieneError = True Exit For End If - Else TieneError = True Exit For @@ -7841,45 +7567,20 @@ Partial Class Compras_Compras Next Else - ErrorACMEnsaje.Append("- Error al obtener presupuestos 2") + ErrorACMEnsaje.Append(" - Error al obtener presupuestos ObjCompras.GetPresupuestosCompras") ErrorAC = True End If + End If - End If + End If + '' F U N C I O N A R I O S Y E M P L E A D O S + If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then + TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text + TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text - '' F U N C I O N A R I O S Y E M P L E A D O S - If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then - 'Si es con funcionarios empleados Ya existe un registro en Bancos de Ingresos Egresos - TxtDocumentoImporte.Text = TxtDocumentoImporteFE.Text - TxtDocumentoImporteCaja.Text = TxtDocumentoImporteFE.Text - - Dim ImportePagadoFE As Decimal = 0 - Dim ImporteAPagarFE As Decimal = TxtDocumentoImporteFE.Text.ToDecimal - Dim ImportePagar As Decimal = ImporteAPagarFE - - If CvePrePoliza > 0 Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImportePagar, ImportePagar, 29, " ", " ", 0, CveCompra:=CveCompra, CvePersonal:=DdlFuncionarioEmpleado.SelectedValue.ToEntero, CveProveedor:=CveProveedorLocal, CveIE:=CveIE) Then - ErrorMovtosCxP = True - End If - - Dim Pago As New CompraPago - Pago.ImportePago = ImportePagar - Pago.CvePersonal = CvePersonal - Pago.CveIE = CveIE - Pago.CveMonedaPago = 1 - - ErrorMovtosCxP = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) - - Else - ErrorMovtosCxP = True - End If - - - End If - - End If 'Empresa Prueba + End If '************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************ @@ -8040,15 +7741,13 @@ Partial Class Compras_Compras Dim Msg As New StringBuilder Msg.Append("La compra se registró correctamente") - If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + If Not ErrorPrepoliza AndAlso UsuarioActual.Empresa.TipoContabilidad = 1 AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then If ObjConta.ValorPolizaDescuadre > 0 Then GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") ErrorPrepolizaDescuadre = True End If End If - - 'ACTUALIZA CVEFACTURA If Request("CveFactura") IsNot Nothing Then @@ -9443,19 +9142,14 @@ Partial Class Compras_Compras End If If RBLContado.SelectedValue = "2" AndAlso DdlFuncionarioEmpleado.SelectedValue.ToEntero > 0 Then - If EmpresaPrueba Then - If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - CvePlantillaPrePoliza = 60 - Else - CvePlantillaPrePoliza = 1 - End If + + If DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then + CvePlantillaPrePoliza = 60 Else - CvePlantillaPrePoliza = 9 + CvePlantillaPrePoliza = 1 End If + End If - - - Dim CveMovimientoInventario As Integer = CveMovimientoAlmacen @@ -12113,7 +11807,6 @@ Partial Class Compras_Compras RBLContado.Items(4).Enabled = True RBLContado.Items(5).Enabled = True - If UsuarioActual.Empresa.CvePlataforma = 2 Then RBLContado.Items.Clear() RBLContado.Items.Insert(0, New ListItem("Bancos", "1")) @@ -12121,16 +11814,8 @@ Partial Class Compras_Compras RBLContado.Items.Insert(2, New ListItem("Deudores", "4")) RBLContado.SelectedIndex = 0 - - 'RBLContado.Items.Item(2).Enabled = False - 'RBLContado.Items.Item(4).Enabled = False - 'RBLContado.Items.Item(5).Enabled = False End If - 'If EmpresaPrueba Then - ' RBLContado.Items(5).Enabled = False - 'End If - EsContado = True romCreditosTabla.Visible = False Case "3" 'Reembolso/Comprobacion From fc8f04001a3fd1a2e65afdfe397f1fcd9650f1c7 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 May 2023 13:32:39 -0700 Subject: [PATCH 34/37] --mostrar que falta personal, al agregar prepolizadetalle --- App_Code/ClsContabilidad.vb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 522115cf8..f210359db 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -1032,6 +1032,9 @@ Public Class ClsContabilidad If dr("AplicaProveedor").ToString = "True" Then StrMsg = StrMsg + " - Proveedor: " + ClsPaginas.GlobalDTCompProveedores(tCveEmp, CveProveedor:=CveProveedor).FiltroPrimeroValor("NombreComercial", "") End If + If dr("AplicaPersonal").ToString = "True" Then + StrMsg = StrMsg + " - Personal: " + ClsPaginas.GlobalDTRHPersonal(tCveEmp, CvePersonal:=CvePersonal).FiltroPrimeroValor("NombreCompleto", "") + End If End If End If OnError(String.Format("El concepto '{0}' no tiene especificada la cuenta. Favor de especificarla en la asignación de cuentas.", StrMsg), ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) From d51ad4bb8cfca3f95f0e307edca08cd2d6e99e12 Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 6 May 2023 13:33:06 -0700 Subject: [PATCH 35/37] -- cambio a dropdonwlost clientes --- Acumuladores/RepUsados.aspx.cs | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/Acumuladores/RepUsados.aspx.cs b/Acumuladores/RepUsados.aspx.cs index e334dbe24..082d114ee 100644 --- a/Acumuladores/RepUsados.aspx.cs +++ b/Acumuladores/RepUsados.aspx.cs @@ -20,17 +20,8 @@ public partial class Ventas_RepUsados : ClsPaginas } private void CargaCliente() - { - if (UsuarioActual.CveEmpresa == 119) { - DdlClientes.setEsWebService(true); - }else - { - DdlClientes.setEsWebService(false); - DdlClientes.DataSource = get_GlobalDTCliente(UsuarioActual.CveEmpresa, -1); - DdlClientes.DataBind(); - DdlClientes.ddl.Items.Insert(0, new ListItem("Todos", "-1")); - } - + { + DdlClientes.setEsWebService(true); } protected void BtnConsultar_Click(object sender, EventArgs e) From b1bebe6e110f3450e4689787ccd12bc977635bfe Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 9 May 2023 16:22:00 -0700 Subject: [PATCH 36/37] --Asignar lista de precios en ventas --- App_Code/ClsVentas.vb | 3 +- App_Code/Modelos.vb | 5 + Ventas/Ventas.aspx | 32 ++- Ventas/Ventas.aspx.vb | 440 ++++++++++++++++++++++-------------------- 4 files changed, 268 insertions(+), 212 deletions(-) diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index c5f8dd4f9..2819ceb5a 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -1325,7 +1325,7 @@ Public Class ClsVentas CvePresupuestoIngreso As Integer, Optional TiempoEntrega As String = "", Optional CveVentaDetallePadre As Integer = -1, Optional CveContratoDetalle As Integer = -1, Optional PorcentajeIVA As Decimal = 0, Optional IEPS As Double = -1, Optional PorcentajeIEPS As Double = 0, Optional CvePromocionDetalle As Integer = -1, Optional CveMovimientoDetallePedido As Integer = -1, Optional ImporteRetIVA As Double = 0, Optional PorcentajeRetIVA As Double = 0, - Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "") As Boolean + Optional ImporteRetISR As Double = 0, Optional PorcentajeRetISR As Double = 0, Optional CuentaPredial As String = "", Optional CvePrecioLista As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_VentasDetalleAdd") @@ -1355,6 +1355,7 @@ Public Class ClsVentas .Add("@CvePromocionDetalle", SqlDbType.Int).Value = CvePromocionDetalle .Add("@CveMovimientoDetallePedido", SqlDbType.Int).Value = CveMovimientoDetallePedido .Add("@CuentaPredial", SqlDbType.VarChar).Value = CuentaPredial + .Add("@CvePrecioLista", SqlDbType.Int).Value = CvePrecioLista End With Try diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 05806fca4..f9759cb99 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -301,6 +301,11 @@ Namespace Modelos #Region " OBJETOS Ventas" + + Public Class MPrecioSugerido + Public Property CvePrecioLista As Integer + Public Property PrecioSugerido As Decimal + End Class Public Class VentaDescuentos Public Consec As Integer diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index 3b43bc738..10fd4987a 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -1066,12 +1066,21 @@
    - - - - - - +
    +
    + +
    +
    +
    +
    + + + + + + +
    +
    @@ -1207,7 +1216,16 @@ <%--9--%> - +
    +
    + +
    +
    +
    +
    + +
    +
    diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 6fa940342..9b2e0372c 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -2734,6 +2734,9 @@ Partial Class Ventas TmpDT.Columns.Add("TieneProntoPago", GetType(String)) TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal)) TmpDT.Columns.Add("CveMarca", GetType(Integer)) + TmpDT.Columns.Add("CvePrecioLista", GetType(Integer)) + TmpDT.Columns.Add("PrecioLista", GetType(String)) + GvPS.DataSource = ObjVentas.DtResultados GvPS.DataBind() @@ -2758,6 +2761,9 @@ Partial Class Ventas TmpDT.Columns.Add("TieneProntoPago", GetType(String)) TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal)) TmpDT.Columns.Add("CveMarca", GetType(Integer)) + TmpDT.Columns.Add("CvePrecioLista", GetType(Integer)) + TmpDT.Columns.Add("PrecioLista", GetType(String)) + GvPS.DataSource = ObjVentas.DtResultados GvPS.DataBind() @@ -3125,6 +3131,11 @@ Partial Class Ventas If Not ExFolioFactura Then SetPermisos() If CveVenta < 1 Then CargaFolios() + + If CveVenta <= 0 AndAlso UsuarioActual.Empresa.Funcionalidad(360) = "1" Then + CargaListasPrecios() + End If + 'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE 'If UsuarioActual.CveVendedor > 0 Then ' If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) @@ -3475,6 +3486,21 @@ Partial Class Ventas End If End Sub + + Private Sub CargaListasPrecios() + DivPrecioLista.Visible = True + + Using ObjVta As New ClsVentas + If ObjVta.GetPrecioListas(UsuarioActual.CveEmpresa) Then + DdlPrecioLista.DataSource = ObjVta.DtResultados.Copy() + End If + End Using + + DdlPrecioLista.DataBind() + DdlPrecioLista.Items.Insert(0, New ListItem("Seleccione", "-1")) + + UpPS.Update() + End Sub Private Sub BloqueaClasificaciones() If UsuarioActual.Empresa.Funcionalidad(558) = "1" AndAlso DdlTipoComprobante.SelectedValue = "Cot" Then DdlClasificacion.Enabled = False @@ -6076,12 +6102,6 @@ Partial Class Ventas End Sub Private Sub CargaFormaPago(CveMetodoPago As Integer) - 'EN LA VERSION 4.0 NO PERMITE DESBLOEQUEAR RELACION METODO Y FOMA DE PAGO - 'If UsuarioActual.Empresa.Funcionalidad(350) <> "1" Then - ' 'permiso para desbloquear la relación entre Método de pago y forma de pago - ' If UsuarioActual.TienePermisoProceso(282) Then CveMetodoPago = -1 - 'End If - Dim dtt As DataTable = Nothing If CveMetodoPago > 0 Then dtt = GlobalDTVtaFormaPago.FiltraParametros(If(CveMetodoPago = 1, " CveFormaPago <> 20 ", "CveFormaPago = 20")) @@ -6117,22 +6137,13 @@ Partial Class Ventas 'End If End Sub Private Sub CargaUsoCFDI() - If UsuarioActual.Empresa.Funcionalidad(350) <> "1" Then - RegimenFiscalCliente = "-1" - End If - DdlUsoCFDI.Items.Clear() DdlSucursalUsoCFDI.Items.Clear() - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - Dim EsPersonaMoral As Boolean = (TipoPersona = True) + Dim EsPersonaMoral As Boolean = (TipoPersona = True) - DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) - DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) - Else - DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente) - DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente) - End If + DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) + DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) DdlUsoCFDI.DataBind() DdlSucursalUsoCFDI.DataBind() @@ -6463,12 +6474,10 @@ Partial Class Ventas ViewState("CliPais") = ObjCliente.Pais ImprimeNombreSucursal = ObjCliente.ImprimeNombreSucursal - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - RegimenFiscalCliente = ObjCliente.DtResultados(0)("CodigoRegimenFiscal").ToString() - RegimenSociedad = ObjCliente.DtResultados(0)("RegimenSociedad").ToString() - TipoPersona = CBool(ObjCliente.DtResultados(0)("TipoPersona")) - CargaUsoCFDI() - End If + RegimenFiscalCliente = ObjCliente.DtResultados(0)("CodigoRegimenFiscal").ToString() + RegimenSociedad = ObjCliente.DtResultados(0)("RegimenSociedad").ToString() + TipoPersona = CBool(ObjCliente.DtResultados(0)("TipoPersona")) + CargaUsoCFDI() 'ViewState("NumCtaPago") = ObjCliente.NumCtaPago ViewState("ClienteDesglosaIEPS") = ObjCliente.DesglosaIEPS If Not ClienteDesglosaIEPS Then @@ -6527,7 +6536,7 @@ Partial Class Ventas End If DdlUsoCFDI.SelectedValueExist(ObjCliente.CveUsoCFDI) 'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES - If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then + If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then 'S01 Sin efectos fiscales. DdlUsoCFDI.SelectedValueExist("23") DdlUsoCFDI.Enabled = False @@ -7061,7 +7070,7 @@ Partial Class Ventas Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595) 'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO - If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then + If Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then RBLPago.SelectedValue = "2" RBLPago.Items(0).Enabled = False RBLPago_SelectedIndexChanged(Nothing, Nothing) @@ -7459,9 +7468,9 @@ Partial Class Ventas LblEstado.Text = ObjCliente.DtResultados.Rows(0)("Estado").ToString() 'TxtNumCtaPago.Text = ObjCliente.DtResultados.Rows(0)("NumCtaPago").ToString() LblTelefono.Text = ObjCliente.DtResultados.Rows(0)("Telefono").ToString() - If Not UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - LblCP.Text = ObjCliente.DtResultados.Rows(0)("CP").ToString() - End If + 'If Not UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + ' LblCP.Text = ObjCliente.DtResultados.Rows(0)("CP").ToString() + 'End If ViewState("CliLocalidad") = ObjCliente.DtResultados.Rows(0)("Localidad").ToString() ViewState("CliPais") = ObjCliente.DtResultados.Rows(0)("Pais").ToString() ViewState("CliNoExt") = ObjCliente.DtResultados.Rows(0)("NoExt").ToString() @@ -7518,7 +7527,7 @@ Partial Class Ventas DdlFormaPago33.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveFormaPago33").ToString()) DdlUsoCFDI.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveUsoCFDI").ToString()) 'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES - If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then + If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then 'S01 Sin efectos fiscales. DdlUsoCFDI.SelectedValueExist("23") DdlUsoCFDI.Enabled = False @@ -7560,7 +7569,7 @@ Partial Class Ventas DdlFormaPago33.SelectedValueExist(ObjCliente.CveFormaPago33) DdlUsoCFDI.SelectedValueExist(ObjCliente.CveUsoCFDI) 'SI ES RFC GENERICO NO TIENE OBLIGACIONES FISCALES - If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then + If LblRFC.Text.Contiene("XAXX010101000", "XEXX010101000") Then 'S01 Sin efectos fiscales. DdlUsoCFDI.SelectedValueExist("23") DdlUsoCFDI.Enabled = False @@ -8038,6 +8047,10 @@ Partial Class Ventas End If + If UsuarioActual.Empresa.Funcionalidad(360) = "1" AndAlso e.Row.DBCampo("CvePrecioLista").ToEntero() > 0 Then + e.Row.FCLiteral("LtlPrecioLista").Visible = True + End If + 'CANTIDAD FACTURADA Select Case e.Row.DBCampo("TipoDocto") Case "Cot" @@ -8748,7 +8761,7 @@ Partial Class Ventas DtOCTmpDT = TmpDT.Copy TmpDTError = TmpDT.Copy - If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Egs", "Dev") Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Egs", "Dev") Then If RegimenFiscalCliente.Contiene("-1", "") Then Alert("El cliente no tiene asignado un régimen fiscal.", TipoMensaje.MsgAdvertencia) Exit Sub @@ -8759,6 +8772,7 @@ Partial Class Ventas Exit Sub End If End If + If ChkEmitirComercioExterior.Checked AndAlso DdlMoneda.SelectedValue.ToEntero() <> 2 Then Alert("La moneda de la factura debe ser dolares cuando aplica comercio exterior.", TipoMensaje.MsgAdvertencia) Exit Sub @@ -8769,7 +8783,7 @@ Partial Class Ventas Exit Sub End If - If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Egs", "Dev") Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Egs", "Dev") Then If LblRFC.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso RegimenFiscalCliente <> "616" Then Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) @@ -9396,37 +9410,37 @@ Partial Class Ventas End If 'Verifica versión 3.3.() - If (Not UsuarioActual.Empresa.Funcionalidad(350) = "1") AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then - Dim dttsat As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '' OR ISNULL(SATClaveUM,'') = '' ") - If dttsat IsNot Nothing AndAlso dttsat.Rows.Count > 0 Then - Dim str As New StringBuilder - str.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT

    ") - For Each drt As DataRow In dttsat.Rows - str.AppendFormat("{0}
    ", drt("CodigoPS")) - Next - Alert(str.ToString(), TipoMensaje.MsgAdvertencia) - dttsat.Dispose() - str.Clear() - Exit Sub - End If - dttsat.Dispose() + 'If (Not UsuarioActual.Empresa.Funcionalidad(350) = "1") AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("Ped", "PeC") Then + ' Dim dttsat As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '' OR ISNULL(SATClaveUM,'') = '' ") + ' If dttsat IsNot Nothing AndAlso dttsat.Rows.Count > 0 Then + ' Dim str As New StringBuilder + ' str.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT

    ") + ' For Each drt As DataRow In dttsat.Rows + ' str.AppendFormat("{0}
    ", drt("CodigoPS")) + ' Next + ' Alert(str.ToString(), TipoMensaje.MsgAdvertencia) + ' dttsat.Dispose() + ' str.Clear() + ' Exit Sub + ' End If + ' dttsat.Dispose() - If UsuarioActual.CveEmpresa = 72 Then - Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '01010101' ") - If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then - Dim StrNoEncontrados As New StringBuilder - StrNoEncontrados.Append("Los siguientes productos no existen en el catálogo del SAT

    ") - For Each drt As DataRow In DtNoEncontrados.Rows - StrNoEncontrados.AppendFormat("{0}
    ", drt("CodigoPS")) - Next - Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia) - DtNoEncontrados.Dispose() - StrNoEncontrados.Clear() - Exit Sub - End If - DtNoEncontrados.Dispose() - End If - End If + ' If UsuarioActual.CveEmpresa = 72 Then + ' Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '01010101' ") + ' If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then + ' Dim StrNoEncontrados As New StringBuilder + ' StrNoEncontrados.Append("Los siguientes productos no existen en el catálogo del SAT

    ") + ' For Each drt As DataRow In DtNoEncontrados.Rows + ' StrNoEncontrados.AppendFormat("{0}
    ", drt("CodigoPS")) + ' Next + ' Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia) + ' DtNoEncontrados.Dispose() + ' StrNoEncontrados.Clear() + ' Exit Sub + ' End If + ' DtNoEncontrados.Dispose() + ' End If + 'End If 'CREA UNA COPIA DE SEGURIDAD PARA LOS DATOS DEL TMPDT If TmpDTError Is Nothing OrElse TmpDTError.Rows.Count = 0 Then @@ -10643,23 +10657,14 @@ Partial Class Ventas ObjFacturaDevolucion.Fecha = Now + ObjFacturaDevolucion.Version = "4.0" - - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ObjFacturaDevolucion.Version = "4.0" - - If ObjFacturaDevolucion.Cliente Is Nothing Then - ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel - End If - - ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal - ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal - Else - ObjFacturaDevolucion.Version = "3.3" + If ObjFacturaDevolucion.Cliente Is Nothing Then + ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel End If - - + ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal + ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal ObjFacturaDevolucion.CveMetodoPago33 = 1 ObjFacturaDevolucion.MetodoPago33 = "Pago en una sola exhibición" @@ -10942,20 +10947,15 @@ Partial Class Ventas End If ObjFacturaBonificacion.Fecha = Now + ObjFacturaBonificacion.Version = "4.0" - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ObjFacturaBonificacion.Version = "4.0" - - If ObjFacturaBonificacion.Cliente Is Nothing Then - ObjFacturaBonificacion.Cliente = New Modelos.ClienteModel - End If - - ObjFacturaBonificacion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal - ObjFacturaBonificacion.Cliente.RegimenFiscal = ClienteRegimenFiscal - Else - ObjFacturaBonificacion.Version = "3.3" + If ObjFacturaBonificacion.Cliente Is Nothing Then + ObjFacturaBonificacion.Cliente = New Modelos.ClienteModel End If + ObjFacturaBonificacion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal + ObjFacturaBonificacion.Cliente.RegimenFiscal = ClienteRegimenFiscal + ObjFacturaBonificacion.CveMetodoPago33 = 1 ObjFacturaBonificacion.MetodoPago33 = "Pago en una sola exhibición" ObjFacturaBonificacion.ClaveMetodoPagoSAT = "PUE" @@ -11368,18 +11368,14 @@ Partial Class Ventas ObjFactura = New Modelos.Factura End If - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ObjFactura.Version = "4.0" - If ObjFactura.Cliente Is Nothing Then - ObjFactura.Cliente = New Modelos.ClienteModel - End If - - ObjFactura.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal - ObjFactura.Cliente.RegimenFiscal = ClienteRegimenFiscal - Else - ObjFactura.Version = "3.3" + ObjFactura.Version = "4.0" + If ObjFactura.Cliente Is Nothing Then + ObjFactura.Cliente = New Modelos.ClienteModel End If + ObjFactura.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal + ObjFactura.Cliente.RegimenFiscal = ClienteRegimenFiscal + ObjFactura.CveUsuario = UsuarioActual.CveUsuario ObjFactura.CveEmpresa = UsuarioActual.CveEmpresa ObjFactura.TipoCambio = If(DdlMoneda.SelectedValue.ToEntero() = 1, 1, TxtTipoCambio.Text.Trim.ToDecimal) @@ -12154,19 +12150,15 @@ Partial Class Ventas ObjFacturaDevolucion.SerieFolioPadre = HdnFolioFiscalNC.Value.ToString() - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ObjFacturaDevolucion.Version = "4.0" + ObjFacturaDevolucion.Version = "4.0" - If ObjFacturaDevolucion.Cliente Is Nothing Then - ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel - End If - - ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal - ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal - Else - ObjFacturaDevolucion.Version = "3.3" + If ObjFacturaDevolucion.Cliente Is Nothing Then + ObjFacturaDevolucion.Cliente = New Modelos.ClienteModel End If + ObjFacturaDevolucion.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal + ObjFacturaDevolucion.Cliente.RegimenFiscal = ClienteRegimenFiscal + ObjFacturaDevolucion.CveMetodoPago33 = DdlMetodoPago33.SelectedValue.ToEntero() ObjFacturaDevolucion.MetodoPago33 = If(DdlMetodoPago33.SelectedValue.ToEntero() > 0, DdlMetodoPago33.SelectedItem.Text, "") ObjFacturaDevolucion.ClaveMetodoPagoSAT = GlobalDTVtaMetodoPago.FiltroPrimeroValor("ClaveMetodoPagoSAT", $"CveMetodoPago = {DdlMetodoPago33.SelectedValue}") @@ -12412,7 +12404,7 @@ Partial Class Ventas Dim Timbre As New CFDITimbre - Timbre.Comprobante.Version = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", "4.0", "3.3") + Timbre.Comprobante.Version = "4.0" Timbre.Comprobante.TipoComprobante = If(Obj.TipoDocto.Contiene("Ing", "Ant"), "I", If(Obj.TipoDocto.Contiene("Egs", "Dev"), "E", "")) Timbre.Comprobante.Folio = Obj.Folio.ToString() @@ -12441,11 +12433,7 @@ Partial Class Ventas Timbre.Receptor.DomicilioFiscalReceptor = Obj.ClienteSucursal.CP Else Timbre.Receptor.RFC = Obj.Cliente.RFC - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - Timbre.Receptor.Nombre = Obj.Cliente.Nombre - Else - Timbre.Receptor.Nombre = Obj.Cliente.Nombre + " " + Obj.Cliente.RegimenSociedad - End If + Timbre.Receptor.Nombre = Obj.Cliente.Nombre Timbre.Receptor.DomicilioFiscalReceptor = Obj.Cliente.CP End If @@ -13346,11 +13334,9 @@ Partial Class Ventas For Each Row As DataRow In TmpDTDetalle.Rows If Not ObjVentas.AddVentaDetalle(ObjVentas.CveVenta, Row("CvePS").ToString().ToEntero(), Row("Cantidad").ToString().ToDouble, Row("CveUM").ToString().ToEntero(), Row("PU").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)))), 6), - Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), - TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(), - IEPS:=Row("ImporteIEPS").ToString().ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString().ToEntero(), - ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, - PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString()) Then + Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(factura.ConvertirPesos, factura.TipoCambio, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), + CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=Row("CvePromocionDetalle").ToString().ToEntero(), IEPS:=Row("ImporteIEPS").ToString().ToDouble, CveMovimientoDetallePedido:=Row("CveMovimientoDetallePedido").ToString().ToEntero(), ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, + PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then ErrorList.Add("Ocurrió un error al agregar un Producto o Servicio a la Factura.
    Revise su factura y cualquier detalle comuníquese a Soporte Técnico") Exit For Else @@ -17615,7 +17601,13 @@ Partial Class Ventas Dim PrecioSugerido As Decimal = 0 Dim tPrecioSugerido As Decimal = 0 tPrecioSugerido = drPS("Precio").ToString().ToDecimal - PrecioSugerido = CalculaPrecioSugerido(CvePSParametro, drPS("CveClasificacion").ToString().ToEntero()) + Dim ObjPrecioSugerido = CalculaPrecioSugerido(CvePSParametro, drPS("CveClasificacion").ToString().ToEntero()) + + PrecioSugerido = ObjPrecioSugerido.PrecioSugerido + + If ObjPrecioSugerido.CvePrecioLista > 0 AndAlso DivPrecioLista.Visible Then + DdlPrecioLista.SelectedValueExist(ObjPrecioSugerido.CvePrecioLista) + End If If PrecioSugerido <= 0 Then PrecioSugerido = tPrecioSugerido @@ -17655,7 +17647,9 @@ Partial Class Ventas End Sub - Private Function CalculaPrecioSugerido(CvePSParametro As Integer, CveClasificacion As Integer) As Decimal + Private Function CalculaPrecioSugerido(CvePSParametro As Integer, CveClasificacion As Integer, Optional CvePrecioListaSugerido As Integer = -1) As Modelos.MPrecioSugerido + Dim Retorno As New Modelos.MPrecioSugerido + Dim PrecioSugerido As Decimal = 0 If UsuarioActual.CveEmpresa.Contiene(1) Then @@ -17698,6 +17692,10 @@ Partial Class Ventas End If + If DivPrecioLista.Visible AndAlso CvePrecioListaSugerido > 0 Then + CvePrecioListaPS = CvePrecioListaSugerido + End If + If CvePrecioListaPS > 0 Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSPreciosLista(UsuarioActual.CveEmpresa, CvePrecioListaPS, CvePS:=CvePSParametro) Then @@ -17717,7 +17715,8 @@ Partial Class Ventas PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS End If End If - CvePrecioLista = CvePrecioListaPS + Me.CvePrecioLista = CvePrecioListaPS + Retorno.CvePrecioLista = CvePrecioListaPS End If @@ -17729,7 +17728,10 @@ Partial Class Ventas PrecioSugerido = PrecioSugerido * ((PrecioBaseCosto / 100) + 1) End If End If - Return PrecioSugerido + + Retorno.PrecioSugerido = PrecioSugerido + + Return Retorno End Function Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlPS.selectedindexchange DdlPSIndexChange(DdlPS.SelectedValue.ToEntero(), DdlPS) @@ -18816,11 +18818,29 @@ Partial Class Ventas PU = ObjDescuento.PU End If + Dim CvePrecioListaPS As Integer = -1 + Dim PrecioListaPS As String = "" + + 'VALIDA LA ASIGNACION DE LISTA DE PRECIOS + If DivPrecioLista.Visible Then + If DdlPrecioLista.SelectedValue.ToEntero() > 0 AndAlso DdlPrecioLista.SelectedValue.ToEntero() = Me.CvePrecioLista Then + CvePrecioListaPS = Me.CvePrecioLista + PrecioListaPS = DdlPrecioLista.SelectedItem.Text + Else + Alert("La lista de precios del producto no coincide con la seleccionada", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Else + If Me.CvePrecioLista > 0 Then + CvePrecioListaPS = Me.CvePrecioLista + End If + End If + AgregarProductoServicio(Cantidad, DdlUnidadMedida.SelectedValue.ToEntero(), DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero(), DdlClasificacion.SelectedItem.Text, CvePS, "", TxtObsPS.Text.TrimEnd, PU, ObjDescuento.ImporteDescuento, DdlProyecto.SelectedValue.ToEntero(), DdlProyecto.SelectedItem.Text, DdlSubProyecto.SelectedValue.ToEntero(), DdlSubProyecto.SelectedItem.Text, Serie:=If(DIVCod.Visible, TxtCodigoSerie.Text.Trim, ""), TiempoEntrega:=TxtTiempoEntrega.Text, CuentaPredial:=TxtCuentaPredial.Text.Trim, RegeneraIEPS:=ClienteDesglosaIEPS, CvePromocionDetalle:=ObjDescuento.CvePromocionDetalle, - ImporteProntoPago:=ObjDescuento.ImporteProntoPago, ObjDescuento:=ObjDescuento) + ImporteProntoPago:=ObjDescuento.ImporteProntoPago, ObjDescuento:=ObjDescuento, CvePrecioLista:=CvePrecioListaPS, PrecioLista:=PrecioListaPS) CalculaUsados() @@ -19011,7 +19031,7 @@ Partial Class Ventas Optional EntregaDirecta As Integer = 0, Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0, Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0, Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional SeActualiza As Boolean = False, Optional CvePromocionDetalle As Integer = -1, Optional EsCargo As Boolean = False, - Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing) As Boolean + Optional ImporteProntoPago As Decimal = 0, Optional ByRef ObjDescuento As Modelos.VentaDescuentos = Nothing, Optional CvePrecioLista As Integer = -1, Optional PrecioLista As String = "") As Boolean Dim Retorno As Boolean = False Try @@ -19267,6 +19287,9 @@ Partial Class Ventas End If + Row("CvePrecioLista") = CvePrecioLista + Row("PrecioLista") = PrecioLista + If UsuarioActual.CveEmpresa.Contiene(119, 13, 83) Then If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA @@ -19501,6 +19524,9 @@ Partial Class Ventas TmpDT.Columns.Add("CodigoObjetoImpuesto", GetType(String)) TmpDT.Columns.Add("CveMarca", GetType(Integer)) + TmpDT.Columns.Add("CvePrecioLista", GetType(Integer)) + TmpDT.Columns.Add("PrecioLista", GetType(String)) + TmpDT.Columns("EsOutSourcing").DefaultValue = False TmpDT.Columns("EsCargo").DefaultValue = False @@ -22227,7 +22253,7 @@ Partial Class Ventas Row("PU").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("ImporteIVA").ToString().ToDouble, Math.Round((Row("Total").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)) * (1 + Row("PorcentajeIVA").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)))), 6), Row("Obs").ToString(), Row("Descuento").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), Row("TipoDescuento").ToString().ToEntero(), Row("CveSubProyecto").ToString().ToEntero(), Row("CvePresupuestoIngreso").ToString().ToEntero(), PorcentajeIVA:=Row("PorcentajeIVA").ToString().ToDecimal, IEPS:=Row("ImporteIEPS").ToString().ToDouble(If(ChkConvertirDoctoPesos.Checked, TxtTipoCambio.Text.ToDecimal, 1)), PorcentajeIEPS:=Row("PorcentajeIEPS").ToString().ToDouble, TiempoEntrega:=Row("TiempoEntrega").ToString(), CveVentaDetallePadre:=Row("CveVentaDetalle").ToString().ToEntero(), CveContratoDetalle:=Row("CveContratoDetalle").ToString().ToEntero(), CvePromocionDetalle:=If(DtPromociones IsNot Nothing, DtPromociones.FiltroPrimeroValor("CvePromocionDetalle", $"CvePS={Row("CvePS").ToString()}").ToEntero(), -1), - ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString()) Then + ImporteRetIVA:=Row("ImporteRetIVA").ToString().ToDouble, ImporteRetISR:=Row("ImporteRetISR").ToString().ToDouble, PorcentajeRetIVA:=Row("PorcentajeRetIVA").ToString().ToDouble, PorcentajeRetISR:=Row("PorcentajeRetISR").ToString().ToDouble, CuentaPredial:=Row("CuentaPredial").ToString(), CvePrecioLista:=Row("CvePrecioLista").ToString().ToEntero()) Then OcurrioError = True Exit For Else @@ -23410,7 +23436,7 @@ Partial Class Ventas RFVCiudadC.Visible = False RFVLocalidadC.Visible = False RFVSATPais.Visible = False - divRegimenCliente.Visible = UsuarioActual.Empresa.Funcionalidad(350) = "1" + divRegimenCliente.Visible = True RdTipoPersona.SelectedValue = "0" @@ -23440,7 +23466,7 @@ Partial Class Ventas DivCorreoCuentaCliente.Visible = True DivBotonesAgregarCliente.Visible = True DivFormaCliente.Visible = True - divRegimenCliente.Visible = UsuarioActual.Empresa.Funcionalidad(350) = "1" + divRegimenCliente.Visible = True End If End If ObjCliente.Dispose() @@ -23473,17 +23499,13 @@ Partial Class Ventas Else Dim RegimenFiscalCliente As String = "-1" - If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1") AndAlso DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then + If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {DdlRegimenFiscalCliente.SelectedValue.ToEntero()}") End If DdlUsoCFDICliente.Items.Clear() - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1") - DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) - Else - DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente) - End If + Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1") + DdlUsoCFDICliente.DataSource = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente) DdlUsoCFDICliente.DataBind() DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -23505,44 +23527,41 @@ Partial Class Ventas Dim CveRegimenFiscal As Integer = -1 Dim CveUsoCFDI As Integer = 3 - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - CveRegimenFiscal = DdlRegimenFiscalCliente.SelectedValue.ToEntero() - CveUsoCFDI = DdlUsoCFDICliente.SelectedValue.ToEntero() + CveRegimenFiscal = DdlRegimenFiscalCliente.SelectedValue.ToEntero() + CveUsoCFDI = DdlUsoCFDICliente.SelectedValue.ToEntero() - Dim RegimenFiscalCliente As String = "-1" + Dim RegimenFiscalCliente As String = "-1" - If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then - RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}") - End If + If DdlRegimenFiscalCliente.SelectedValue.ToEntero() > 0 Then + RegimenFiscalCliente = GlobalDTRegimenesFiscales().FiltroPrimeroValor("CodigoRegimenFiscal", $"CveRegimenFiscal = {CveRegimenFiscal}") + End If - If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then - Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue <> "11" Then + Alert("El Regimen fiscal del cliente debe ser '616 - Sin obligaciones fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If - If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue <> "23" Then - Alert("El uso cfdi del cliente debe ser 'S01 - Sin efectos fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + If TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue <> "23" Then + Alert("El uso cfdi del cliente debe ser 'S01 - Sin efectos fiscales' cuando se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If - If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then - Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlRegimenFiscalCliente.SelectedValue = "11" Then + Alert("El Regimen fiscal del cliente no puede ser '616 - Sin obligaciones fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If - If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then - Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + If Not TxtRFCCliente.Text.Trim().ToUpper().Contiene("XAXX010101000", "XEXX010101000") AndAlso DdlUsoCFDICliente.SelectedValue = "23" Then + Alert("El uso cfdi del cliente no puede ser 'S01 - Sin efectos fiscales' si no se utiliza el RFC genérico.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If - Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1") - Dim DtUsosCFDI = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente).FiltraParametros($"CveUsoCFDI = {CveUsoCFDI}") - - If DtUsosCFDI.Rows.Count = 0 Then - Alert("El Uso CFDI no corresponde con el tipo de persona (fisca, moral) y el régimen fiscal.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If + Dim EsPersonaMoral As Boolean = (RdTipoPersona.SelectedValue = "1") + Dim DtUsosCFDI = GlobalDTSATUsosCFDI(If(Not EsPersonaMoral, 1, 0), RegimenFiscalReceptor:=RegimenFiscalCliente).FiltraParametros($"CveUsoCFDI = {CveUsoCFDI}") + If DtUsosCFDI.Rows.Count = 0 Then + Alert("El Uso CFDI no corresponde con el tipo de persona (fisca, moral) y el régimen fiscal.", TipoMensaje.MsgAdvertencia) + Exit Sub End If If DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then @@ -25604,7 +25623,8 @@ Partial Class Ventas If CvePS > 0 Then If PrecioUnitario <= 0 Then - PrecioUnitario = CalculaPrecioSugerido(CvePS, CveClasificacion) + Dim ObjPrecioSugerido = CalculaPrecioSugerido(CvePS, CveClasificacion) + PrecioUnitario = ObjPrecioSugerido.PrecioSugerido End If AgregarProductoServicio(Cantidad, CveUM, UM, -1, "", @@ -32988,6 +33008,10 @@ Partial Class Ventas 'REMOVER EVENTO PARA RECARGAR ALMACEN 'spanAlmacen.Attributes.Remove("onclick") + If UsuarioActual.Empresa.Funcionalidad(360) = "1" Then + CargaListasPrecios() + End If + HdnCargarInventario.Value = "False" UpParametros.Update() @@ -34870,19 +34894,15 @@ Partial Class Ventas ObjFacturaProntoPago.Fecha = Now - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ObjFacturaProntoPago.Version = "4.0" + ObjFacturaProntoPago.Version = "4.0" - If ObjFacturaProntoPago.Cliente Is Nothing Then - ObjFacturaProntoPago.Cliente = New Modelos.ClienteModel - End If - - ObjFacturaProntoPago.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal - ObjFacturaProntoPago.Cliente.RegimenFiscal = ClienteRegimenFiscal - Else - ObjFacturaProntoPago.Version = "3.3" + If ObjFacturaProntoPago.Cliente Is Nothing Then + ObjFacturaProntoPago.Cliente = New Modelos.ClienteModel End If + ObjFacturaProntoPago.Cliente.CodigoRegimenFiscal = ClienteCodigoRegimenFiscal + ObjFacturaProntoPago.Cliente.RegimenFiscal = ClienteRegimenFiscal + ObjFacturaProntoPago.CveMetodoPago33 = 1 ObjFacturaProntoPago.MetodoPago33 = "Pago en una sola exhibición" ObjFacturaProntoPago.ClaveMetodoPagoSAT = "PUE" @@ -35286,7 +35306,8 @@ Partial Class Ventas TmpDT.Columns.Add("CveTamaño", GetType(Integer)) TmpDT.Columns.Add("EsCargo", GetType(Boolean)) TmpDT.Columns.Add("CveMarca", GetType(Integer)) - + TmpDT.Columns.Add("CvePrecioLista", GetType(Integer)) + TmpDT.Columns.Add("PrecioLista", GetType(String)) Return TmpDT End Function Private Function InicializaDTVentasNCProntoPago() As DataTable @@ -35585,40 +35606,36 @@ Partial Class Ventas DVRegimenSociedad.Visible = False DivRazonSocial2.Attributes.Add("class", "col-md-12") - If UsuarioActual.Empresa.Funcionalidad(350).Contiene("1", "2") Then + DivRazonSocial2.Attributes.Add("class", "col-md-8") + DVRegimenSociedad.Visible = True - DivRazonSocial2.Attributes.Add("class", "col-md-8") - DVRegimenSociedad.Visible = True + If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then + DdlRegimenFiscalCliente.DataSource = GlobalDTRegimenesFiscales().FiltraParametros("CveRegimenFiscal = 11") + DdlRegimenFiscalCliente.DataBind() + Else + Dim dt As DataTable = GlobalDTRegimenesFiscales(RdTipoPersona.SelectedValue.ToEntero).FiltraParametros("", "CodigoRegimenFiscal") + Dim Val As String = "" - If TxtRFCCliente.Text.ToUpper = "XAXX010101000" Then - DdlRegimenFiscalCliente.DataSource = GlobalDTRegimenesFiscales().FiltraParametros("CveRegimenFiscal = 11") - DdlRegimenFiscalCliente.DataBind() - Else - Dim dt As DataTable = GlobalDTRegimenesFiscales(RdTipoPersona.SelectedValue.ToEntero).FiltraParametros("", "CodigoRegimenFiscal") - Dim Val As String = "" - - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - 'verifico que sino existe el valor. lo limpie - Val = dt.FiltroPrimeroValor("CveRegimenFiscal", "CveRegimenFiscal = " & DdlRegimenFiscalCliente.SelectedValue) - If Val = "" Then 'sino encuentra valor, lo limpia - DdlRegimenFiscalCliente.Items.Clear() - DdlRegimenFiscalCliente.SelectedValue = Nothing - End If + If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then + 'verifico que sino existe el valor. lo limpie + Val = dt.FiltroPrimeroValor("CveRegimenFiscal", "CveRegimenFiscal = " & DdlRegimenFiscalCliente.SelectedValue) + If Val = "" Then 'sino encuentra valor, lo limpia + DdlRegimenFiscalCliente.Items.Clear() + DdlRegimenFiscalCliente.SelectedValue = Nothing End If - - DdlRegimenFiscalCliente.DataSource = dt - DdlRegimenFiscalCliente.DataBind() - DdlRegimenFiscalCliente.SelectedValueExist(Val) - End If - DdlRegimenFiscalCliente.Items.Insert(0, New ListItem("Seleccione", "-1")) - - DdlUsoCFDICliente.Items.Clear() - DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlRegimenFiscalCliente.DataSource = dt + DdlRegimenFiscalCliente.DataBind() + DdlRegimenFiscalCliente.SelectedValueExist(Val) End If + DdlRegimenFiscalCliente.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlUsoCFDICliente.Items.Clear() + DdlUsoCFDICliente.Items.Insert(0, New ListItem("Seleccione", "-1")) + UpAgregarCliente.Update() End Sub @@ -36398,7 +36415,7 @@ Partial Class Ventas PrecioSugerido = ((PorcentajePrecio / 100) + 1) * CostoPS End If End If - CvePrecioLista = CvePrecioListaPS + Me.CvePrecioLista = CvePrecioListaPS End If @@ -36740,5 +36757,20 @@ Partial Class Ventas End If End Sub + + Protected Sub DdlPrecioLista_SelectedIndexChanged(sender As Object, e As EventArgs) + If DivPrecioLista.Visible AndAlso DdlPrecioLista.SelectedValue.ToEntero() > 0 Then + Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero()).FiltroPrimero("") + + Dim ObjPrecioSugerido = CalculaPrecioSugerido(drPS("CvePS").ToString().ToEntero(), drPS("CveClasificacion").ToString().ToEntero(), CvePrecioListaSugerido:=DdlPrecioLista.SelectedValue.ToEntero()) + + If ObjPrecioSugerido.PrecioSugerido > 0 Then + TxtPrecio.Text = ObjPrecioSugerido.PrecioSugerido.ToString("#,###.####") + Else + Alert("No se encontro un precio para este producto en la lista de precios seleccionada") + End If + + End If + End Sub End Class From 1a30e207c056fc79025c3894714aaf6b4a8f4cba Mon Sep 17 00:00:00 2001 From: Oscar Irigoyen Date: Thu, 11 May 2023 09:30:52 -0700 Subject: [PATCH 37/37] Rep situacion Fianciera SAT, Rep estado actividades Consolidado, Balance General Consolidado --- App_Code/ClsBancos.vb | 1 + App_Code/ClsContabilidad.vb | 6 +- App_Code/ClsEncuestas.vb | 1 + Contabilidad2/RepEstadoActividades.aspx | 36 ++++++++---- Contabilidad2/RepEstadoActividades.aspx.vb | 9 ++- Contabilidad2/RepSituacionFinanciera.aspx | 9 +++ Contabilidad2/RepSituacionFinanciera.aspx.vb | 2 +- Nomina/Nomina.aspx.cs | 2 +- RH/Personal.aspx | 2 +- RH/Personal.aspx.vb | 43 ++++++++++++-- RH/Reclutamiento.aspx | 61 +++++++++++++------- Ventas/Ventas.aspx.vb | 2 +- 12 files changed, 129 insertions(+), 45 deletions(-) diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 8b1f062b8..3ea032dad 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -4926,6 +4926,7 @@ Public Class ClsBancos Dim Retorno As Boolean = False DataAdapter("PA_Banc_PagosNoBancarios") + SqlAdapter.SelectCommand.CommandTimeout = 0 With SqlAdapter.SelectCommand.Parameters .Add("@CveCliente", SqlDbType.Int).Value = CveCliente .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 51106972c..85e7c1fb4 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -3627,7 +3627,7 @@ Public Class ClsContabilidad - Public Function GetSituacionFinanciera(FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveSubProyecto As String, TipoMovtos As Integer, Optional SAT As Integer = 0) As Boolean + Public Function GetSituacionFinanciera(FechaI As Date, FechaF As Date, CveEmpresa As Integer, CveSubProyecto As String, TipoMovtos As Integer, Optional SAT As Integer = 0, Optional Opcion As Integer = 1) As Boolean Dim Retorno = False 'SqlAdapter.SelectCommand.t @@ -3641,6 +3641,7 @@ Public Class ClsContabilidad .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@SAT", SqlDbType.Int).Value = SAT + .Add("@Opcion", SqlDbType.Int).Value = Opcion End With SqlAdapter.SelectCommand.CommandTimeout = 0 @@ -3851,7 +3852,7 @@ Public Class ClsContabilidad End Function 'Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean - Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean + Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0, Optional Opcion As Integer = 1) As Boolean Dim Retorno = False DataAdapter("PA_Conta_EstadoActividadesGet") @@ -3864,6 +3865,7 @@ Public Class ClsContabilidad .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@SAT", SqlDbType.Int).Value = SAT + .Add("@Opcion", SqlDbType.Int).Value = Opcion End With SqlAdapter.SelectCommand.CommandTimeout = 0 diff --git a/App_Code/ClsEncuestas.vb b/App_Code/ClsEncuestas.vb index 5aeff458a..fb9c893d5 100644 --- a/App_Code/ClsEncuestas.vb +++ b/App_Code/ClsEncuestas.vb @@ -568,6 +568,7 @@ Public Class ClsEncuestas .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@Fecha", SqlDbType.Date).Value = Now .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveEncuestaAplicada", SqlDbType.Int).Direction = ParameterDirection.Output End With Try diff --git a/Contabilidad2/RepEstadoActividades.aspx b/Contabilidad2/RepEstadoActividades.aspx index 24eae304f..f65afe649 100644 --- a/Contabilidad2/RepEstadoActividades.aspx +++ b/Contabilidad2/RepEstadoActividades.aspx @@ -30,13 +30,14 @@
    - -
    + +
    - -
    + + +
    @@ -53,25 +54,38 @@
    - Proyecto: -
    + Proyecto: +
    + SubProyecto: -
    +
    -
  • Tipo: - + +
    + + Normal + Consolidado + +
    + + + +
    + -
  • - +
    + + +
    diff --git a/Contabilidad2/RepEstadoActividades.aspx.vb b/Contabilidad2/RepEstadoActividades.aspx.vb index 6d7b33fa3..67463cddb 100644 --- a/Contabilidad2/RepEstadoActividades.aspx.vb +++ b/Contabilidad2/RepEstadoActividades.aspx.vb @@ -86,7 +86,8 @@ Partial Class AC_RepEstadoActividades ReporteComplementario = False Else ReporteComplementario = False - liTipoReporte.Visible = False + DivTipo1.Visible = False + DivTipo2.Visible = False LtTitulo.Text = "Estado de Resultados" End If @@ -136,7 +137,7 @@ Partial Class AC_RepEstadoActividades 'Dim ObjConta As New ClsContPAQi(UsuarioActual.Empresa) Dim ObjConta As New ClsContabilidad - If ObjConta.GetEstadoActividades(FechaI.ToDate, FechaF.ToDate, TipoReporte, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa) Then + If ObjConta.GetEstadoActividades(FechaI.ToDate, FechaF.ToDate, TipoReporte, CveProyecto, CveSubProyecto, UsuarioActual.CveEmpresa, Opcion:=DdlOpcion.SelectedValue.ToEntero) Then DtDatos = ObjConta.DtResultados.FiltraParametros("(ImporteActual <> 0 OR ImporteAcumulado <> 0)") Else DtDatos = Nothing @@ -331,6 +332,10 @@ Partial Class AC_RepEstadoActividades params.Add(New ReportParameter("SubProyecto", DdlSubproyecto.SelectedItem.Text)) ImprimirPDF("AC/Reportes/RepEstadoActividades.rdlc", lrds, params, "EstadoActividades", Formato) + + + ' UsuarioActual.Empresa.GrupoEmpresa + End Sub End Class diff --git a/Contabilidad2/RepSituacionFinanciera.aspx b/Contabilidad2/RepSituacionFinanciera.aspx index 525852a24..6233683c5 100644 --- a/Contabilidad2/RepSituacionFinanciera.aspx +++ b/Contabilidad2/RepSituacionFinanciera.aspx @@ -63,6 +63,15 @@
    + + +
    + + Normal + Consolidado + +
    +
    diff --git a/Contabilidad2/RepSituacionFinanciera.aspx.vb b/Contabilidad2/RepSituacionFinanciera.aspx.vb index 477cbc9a4..459796aae 100644 --- a/Contabilidad2/RepSituacionFinanciera.aspx.vb +++ b/Contabilidad2/RepSituacionFinanciera.aspx.vb @@ -195,7 +195,7 @@ Partial Class AC2_SituacionFinanciera Dim CveSubProyecto As String = DdlSubproyecto.SelectedValue.ToString - If ObjConta.GetSituacionFinanciera("01/01/1900".ToDate, FechaF.ToDate, UsuarioActual.CveEmpresa, CveSubProyecto, TipoReporte) Then + If ObjConta.GetSituacionFinanciera("01/01/1900".ToDate, FechaF.ToDate, UsuarioActual.CveEmpresa, CveSubProyecto, TipoReporte, Opcion:=DdlOpcion.SelectedValue.ToEntero) Then DtDatos = ObjConta.DtResultados CargaGrids() diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index ed4d5bb5b..9f2c97e57 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -9293,7 +9293,7 @@ public partial class Nomina_Nomina2 : ClsPaginas DdlCuenta.Items.Clear(); DataTable DTCuentas = get_GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros(" CveTipoCuenta <> 1 AND UsaLayout = 'True' AND LEN(ConvenioPagoElectronico) > 0 "); DTCuentas.CaseSensitive = false; - DdlCuenta.DataSource = DTCuentas.FiltraParametros(" Banco IN('BANCOMER','BANORTE')"); + DdlCuenta.DataSource = DTCuentas.FiltraParametros(" Banco IN('BANCOMER','BANORTE','BBVA Bancomer','BBVA')"); DdlCuenta.DataBind(); DdlCuenta.Items.Insert(0, new ListItem("Seleccione", "-1")); DdlCuenta.SelectedValueExist("-1"); diff --git a/RH/Personal.aspx b/RH/Personal.aspx index e32b4fe3c..9f87b141b 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -570,7 +570,7 @@ -
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    +
    + + " + style="display: inline-block; margin-right: -20px; width: 150px;" /> + " + style="margin-top: -3px; float: inherit;" class="btn btn-circle btn-sm label-info"> +
    @@ -1002,10 +1017,7 @@
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    + @@ -1075,16 +1087,19 @@
    + " + style="display: inline-block; margin-right: -20px; width: 150px;" /> + " + style="margin-top: -3px; float: inherit;" class="btn btn-circle btn-sm label-info"> +
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    + @@ -1156,6 +1171,12 @@
    + + " + style="display: inline-block; margin-right: -20px; width: 150px;" /> + " + style="margin-top: -3px; float: inherit;" class="btn btn-circle btn-sm label-info">
    @@ -1163,10 +1184,7 @@
    -
    - " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> -
    + ').show(); } else { $('#<%= btnNext.ClientID %>').hide(); - } + } - } - } + } + } - - + \ No newline at end of file diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index de144aa72..6e78662b5 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -10068,7 +10068,7 @@ Partial Class Ventas Try If AutoConta Then - If idCuentaContabilizacion > 0 Then + If idCuentaContabilizacion > 0 Or UsuarioActual.CveEmpresa.Contiene(7, 11, 12, 122, 145) Then If ObjConta.ContabilizarPrePoliza(ObjFactura.CvePrePoliza, ObjFactura.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then If ObjContPaq IsNot Nothing Then ObjContPaq.Commit() Else