This commit is contained in:
Oscar Irigoyen
2023-06-30 09:05:28 -07:00
3 changed files with 337 additions and 319 deletions

View File

@@ -153,9 +153,9 @@
<asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional"> <asp:UpdatePanel ID="UPDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate> <ContentTemplate>
<asp:GridView ID="GvESC" runat="server" DataKeyNames="CveIE, Saldo, CveMoneda, CveConceptoContable, CveProveedor, CvePersonal,CveSubProyecto" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros de Egresos sin Comprobar de Proveedores" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" Style="text-align: center;" GridLines="None"> <asp:GridView ID="GvESC" runat="server" DataKeyNames="CveIE, Saldo, CveMoneda, CveConceptoContable, CveProveedor, CvePersonal,CveSubProyecto,Folio" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros de Egresos sin Comprobar de Proveedores" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" GridLines="None">
<Columns> <Columns>
<asp:TemplateField ItemStyle-Width="10%"> <asp:TemplateField ItemStyle-Width="5%">
<ItemTemplate> <ItemTemplate>
<asp:CheckBox ID="chk" Checked="false" Visible="false" runat="server" /> <asp:CheckBox ID="chk" Checked="false" Visible="false" runat="server" />
<asp:Literal ID="LtlTip" runat="server" Text='<%# Eval("ConceptoTexto") %>' ></asp:Literal> <asp:Literal ID="LtlTip" runat="server" Text='<%# Eval("ConceptoTexto") %>' ></asp:Literal>
@@ -167,31 +167,27 @@
<asp:Literal Text='<%# Eval("Moneda")%>' ID="LtMoneda" runat="server" Visible="false" /> <asp:Literal Text='<%# Eval("Moneda")%>' ID="LtMoneda" runat="server" Visible="false" />
</ItemTemplate> </ItemTemplate>
<ControlStyle CssClass="Texto" /> <ControlStyle CssClass="Texto" />
<ItemStyle HorizontalAlign="Left" Width="250px" />
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Fecha"> <asp:TemplateField HeaderText="Fecha">
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LitFechaDocumento" runat="server" Text='<%# Bind("FechaDocumento", "{0:d}") %>'></asp:Literal> <asp:Literal ID="LitFechaDocumento" runat="server" Text='<%# Bind("FechaDocumento", "{0:d}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="25px" />
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Importe"> <asp:TemplateField HeaderText="Importe">
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LitImporte" runat="server" Text='<%# Bind("Importe", "{0:N2}") %>'></asp:Literal> <asp:Literal ID="LitImporte" runat="server" Text='<%# Bind("Importe", "{0:N2}") %>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="25px" HorizontalAlign="Right" /> <ItemStyle HorizontalAlign="Right" />
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Transacción"> <asp:TemplateField HeaderText="Tipo Transacción">
<ItemTemplate> <ItemTemplate>
<asp:Literal ID="LitTipoTransaccion" runat="server" Text='<%# Bind("TipoTransaccion")%>'></asp:Literal> <asp:Literal ID="LitTipoTransaccion" runat="server" Text='<%# Bind("TipoTransaccion")%>'></asp:Literal>
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="125px" />
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Folio"> <asp:TemplateField HeaderText="Folio">
<ItemTemplate> <ItemTemplate>
<asp:HyperLink ID="HLFolio" runat="server" Target="_blank" Text='<%# Bind("Folio")%>' CssClass="Texto"></asp:HyperLink> <asp:HyperLink ID="HLFolio" runat="server" Target="_blank" Text='<%# Bind("Folio")%>' CssClass="Texto"></asp:HyperLink>
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="75px" />
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Saldo" ItemStyle-CssClass="fixMargin"> <asp:TemplateField HeaderText="Saldo" ItemStyle-CssClass="fixMargin">
<ItemTemplate> <ItemTemplate>
@@ -199,7 +195,7 @@
<asp:Literal runat="server" Text="&nbsp;&nbsp;"></asp:Literal> <asp:Literal runat="server" Text="&nbsp;&nbsp;"></asp:Literal>
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="65px" Font-Bold="True" HorizontalAlign="Right" /> <ItemStyle Font-Bold="True" HorizontalAlign="Right" />
</asp:TemplateField> </asp:TemplateField>
</Columns> </Columns>

View File

@@ -202,58 +202,66 @@ Partial Class Bancos_RepEgresosSinComprobante
Dim CvePrePoliza As Integer = 0 Dim CvePrePoliza As Integer = 0
Dim MsgError As String = "" Dim MsgError As String = ""
Try Try
Dim Contador As Integer = 0
For Each gr As GridViewRow In GvESC.Rows For Each gr As GridViewRow In GvESC.Rows
If gr.FCCheckBox("Chk").Checked Then If gr.FCCheckBox("Chk").Checked Then
Dim IdCtaContable As Integer = 0 Contador += 1
Dim TipoMovtoOtIngresos As Boolean = False
Dim TipoMovtoConcepto As Boolean = True
Dim CveConceptoContable As Integer
Select Case gr.DataKey("CveConceptoContable").ToEntero
Case 10
CveConceptoContable = 21
Case 28
CveConceptoContable = 29
TipoMovtoOtIngresos = False
TipoMovtoConcepto = True
Case 37
CveConceptoContable = 43
Case 42
CveConceptoContable = 41
Case 43
CveConceptoContable = 37
End Select
If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, gr.DataKey("CveProveedor").ToEntero, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
If ObjProveedor.DtResultados.Rows.Count > 0 Then
IdCtaContable = ObjProveedor.IdCtaContProveedores
End If
End If
CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Saldo").ToDecimal, gr.DataKey("CveMoneda").ToEntero, Now,
"Saldo de ExC por Sistema", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, "", CveConceptoContable, "Saldo de ExC por Sistema", Now, IdCtaContable, -1,
gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero,
ImporteMX:=gr.DataKey("Saldo").ToDecimal, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, "", 78, "Saldo de ExC por Sistema", Now, UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, gr.DataKey("CveIE").ToEntero,
ImporteMX:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=gr.DataKey("CveSubProyecto").ToEntero, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError)
End If
End If
End If End If
Next Next
If Contador > 0 Then
CvePrePoliza = ObjConta.AddPrePolizas("Bancos/RepEgresosSinComprobante", 6, 0, 0, 1, Now,
"Saldo de Egresos por comprobar", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
For Each gr As GridViewRow In GvESC.Rows
If gr.FCCheckBox("Chk").Checked Then
Dim IdCtaContable As Integer = 0
Dim TipoMovtoOtIngresos As Boolean = False
Dim TipoMovtoConcepto As Boolean = True
Dim CveConceptoContable As Integer
Select Case gr.DataKey("CveConceptoContable").ToEntero
Case 10
CveConceptoContable = 21
Case 28
CveConceptoContable = 29
TipoMovtoOtIngresos = False
TipoMovtoConcepto = True
Case 37
CveConceptoContable = 43
Case 42
CveConceptoContable = 41
Case 43
CveConceptoContable = 37
Case 48
CveConceptoContable = 56
End Select
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoConcepto, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Folio"), CveConceptoContable, "Saldo de ExC por Sistema", Now, IdCtaContable, -1,
gr.DataKey("CveIE").ToEntero, CveProveedor:=gr.DataKey("CveProveedor").ToEntero, CvePersonal:=gr.DataKey("CvePersonal").ToEntero,
ImporteMX:=gr.DataKey("Saldo").ToDecimal, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtIngresos, gr.DataKey("Saldo").ToDecimal, gr.DataKey("Folio"), 211, "Saldo de ExC por Sistema", Now, UsuarioActual.Empresa.IdCuentaOtrosIngresos, -1, gr.DataKey("CveIE").ToEntero,
ImporteMX:=gr.DataKey("Saldo").ToDecimal, CveSubProyecto:=gr.DataKey("CveSubProyecto").ToEntero, Contabilizable:=EsContabilizable) Then
MsgError = "Ocurrio un error al saldar el movimiento"
Exit For
End If
If UsuarioActual.Empresa.Funcionalidad(200) = "1" Then
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa) Then
Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico", TipoMensaje.MsgError)
End If
End If
End If
Next
Else
Alert("No se especificaron")
End If
Catch ex As Exception Catch ex As Exception
MsgError = "Ocurrió un error al generar la prepoliza" MsgError = "Ocurrió un error al generar la prepoliza"
OnError(MsgError, ex) OnError(MsgError, ex)
@@ -261,16 +269,18 @@ Partial Class Bancos_RepEgresosSinComprobante
If MsgError = "" Then If MsgError = "" Then
LnkSaldar.Visible = False
LnkHabilitarSaldar.Visible = True
ObjConta.Commit() ObjConta.Commit()
CargaDatos() CargaDatos()
Alert("Los movimientos se saldaron correctamente.") Alert(String.Format("Los movimientos se saldaron correctamente <br/> <a href='/Contabilidad/RegPrePolizas.aspx?CvePrePoliza={0}' class='Texto'>Ver Póliza</a>", CvePrePoliza), TipoMensaje.MsgInformacion)
Else Else
ObjConta.RollBack() ObjConta.RollBack()
Alert(MsgError, TipoMensaje.MsgError) Alert(MsgError, TipoMensaje.MsgError)
End If End If
LnkSaldar.Visible = False
LnkHabilitarSaldar.Visible = True
ObjConta.Dispose() ObjConta.Dispose()
ObjProveedor.Dispose() ObjProveedor.Dispose()

View File

@@ -6613,117 +6613,114 @@ Partial Class Compras_Compras
Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}"
If Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 2, UsuarioActual.CveUsuario) Then
ErrorMovInv = True
End If
If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then If importeMovimiento > 0 Or TxtTotal.Text.ToDecimal = 0 Then
RegistroCuentaPuente = True RegistroCuentaPuente = True
Dim ImporteTransito As Decimal = 0 Dim ImporteTransito As Decimal = 0
'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68 'SI ES GASTO DE ALMACEN NO DEBE CONTABILIZAR CONCEPTO 68
If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then If DdlTipoCompra.SelectedValue = "10" AndAlso ConceptoContabilizacionNC = 68 Then
SeContabiliza = False SeContabiliza = False
IdCtaContable = 0 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 End If
Else 'se lleva saldo de Mercancía en tránsito
Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion If ChkNCInvNC.Checked Then
If TotalRealDevolucion <> 0 Then For Each Gvr As GridViewRow In GVNCInv.Rows
If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then
If Math.Abs(DiferenciaDevolucion) > 0 Then If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then
Dim tMovto As Boolean = False ErrorMovInv = True
If UsuarioActual.CveEmpresa = 119 Then Exit For
tMovto = True End If
Else
DiferenciaDevolucion = -DiferenciaDevolucion
End If End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) Then 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 ErrorPrepoliza = True
End If End If
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 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, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, Contabilizable:=SeContabiliza) Then Dim DiferenciaDevolucion As Decimal = importeMovimiento - TotalRealDevolucion
If TotalRealDevolucion <> 0 Then
If Math.Abs(DiferenciaDevolucion) > 0 Then
Dim tMovto As Boolean = False
If UsuarioActual.CveEmpresa = 119 Then
tMovto = True
Else
DiferenciaDevolucion = -DiferenciaDevolucion
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tMovto, DiferenciaDevolucion.RoundSQL(), Referencia, 69, Concepto, FechaMovimiento, -1, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=DiferenciaDevolucion, ImporteME:=If(tipoCambioActual = 1, 0, DiferenciaDevolucion), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=tCveClasif) 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, CveClasificacion:=tCveClasif, CveSubProyecto:=tCveSubProyecto, 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.Contiene("11") Then 'clasificación de Bonificación, no se incluirá en el neteo
ContienePSNeteoBonif = True
Exit For
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
ErrorPrepoliza = True
End If
Else
ErrorPrepoliza = True ErrorPrepoliza = True
End If End If
End If End If
End If End If
End If End If
If UsuarioActual.CveEmpresa.Contiene(119) Then 'ChkNCInvNC
Dim ContienePSNeteoBonif As Boolean = False
For Each Dr As DataRow In TmpDT.Rows
If Dr("CveClasificacion").ToString.ToEntero.Contiene(20319) Or DdlTipoCompra.SelectedValue.Contiene("11") Then 'clasificación de Bonificación, no se incluirá en el neteo
ContienePSNeteoBonif = True
Exit For
End If
Next
If ContienePSNeteoBonif Then If Not RegistroCuentaPuente AndAlso Not ChkNCInvNC.Checked 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
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 'GASTO
If UsuarioActual.CveEmpresa = 119 Then If UsuarioActual.CveEmpresa = 119 Then
DT = TmpDT DT = TmpDT
@@ -13692,74 +13689,11 @@ Partial Class Compras_Compras
End If End If
End If End If
ObjComprasComprobacion.Dispose() ObjComprasComprobacion.Dispose()
Dim cvemovimientoentrada As Integer = -1
Dim ObjCompras As New ClsCompras
Dim ObjContabilidad As New ClsContabilidad(ObjCompras.IniciaTransacSQL())
'DEVOLUCIÓN AUTOMATICA Dim ObjInventario As New ClsInventarios(ObjCompras.IniciaTransacSQL())
If CheckDevAuto.Checked Then
Dim ErrorMovInv As Boolean = False
Dim folio As Integer
Dim fecha As Date = TxtFechaCancelacion.Text.ToDate
Dim importeconcepto As Decimal
Dim ObjInventario As New ClsInventarios
Dim ObjCompra As New ClsCompras
Dim tbmovs As DataTable = Nothing
Dim TmpDT As DataTable = Nothing
Dim TipoCambioGuardar As Decimal = 1
Dim tcvealmacen As Integer = 0
If ObjCompra.GetCompraDetalle(CveCompra, UsuarioActual.CveEmpresa) Then
If ObjCompra.DtResultados.Rows.Count > 0 Then
TmpDT = ObjCompra.DtResultados
End If
End If
If ObjInventario.GetInv_ComprasMov(CveCompra, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then
tbmovs = ObjInventario.DtResultados
End If
End If
If DdlMoneda.SelectedValue.ToEntero > 1 Then
TipoCambioGuardar = If(DivTC.Visible, TxtTC.Text.ToDecimal, LblTC.Text.Substring(3).ToDecimal)
End If
TipoCambio = If(DivTC.Visible, TipoCambioGuardar, TipoCambio)
For Each dtMovs As DataRow In TmpDT.Rows
If TmpDT.Rows.Count > 0 Then
tcvealmacen = dtMovs("AlmacenRegistrado").ToString.ToEntero
Exit For
End If
Next
folio = ObjInventario.GetFolioSiguiente(13, UsuarioActual.CveEmpresa)
cvemovimientoentrada = ObjInventario.AddMovimiento(tcvealmacen, 13, 1, fecha, folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Devolucion Automatica")
If cvemovimientoentrada <= 0 Then
ErrorMovInv = True
Else
For Each dr As DataRow In tbmovs.Rows
If dr("cvealmacen").ToString.ToEntero = tcvealmacen And dr("CveCompraDetalle").ToString.ToEntero <> -1 And dr("origen").ToString.ToEntero <> -1 And dr("Total").ToString.ToDecimal <> 0 Then
'hay que restarle descuento
importeconcepto = dr("Total").ToString.ToDecimal
If Not ObjInventario.AddMovimientoDetalle(cvemovimientoentrada, dr("cantidad").ToString.ToDouble, dr("cveum").ToString.ToEntero, dr("cveps").ToString.ToEntero, importeconcepto, -1, CveCompraDetalle:=dr("CveCompraDetalle").ToString.ToEntero, Serie:=dr("Serie").ToString) Then
ErrorMovInv = True
Exit Sub
End If
End If
Next
End If
If ErrorMovInv = True Then
ObjInventario.RollBack()
End If
ObjInventario.Dispose()
ObjCompra.Dispose()
End If
Dim ObjAC As ClsContPAQi = Nothing Dim ObjAC As ClsContPAQi = Nothing
If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1") AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then If (UsuarioActual.Empresa.UsaAC Or UsuarioActual.Empresa.Funcionalidad(200).ToString = "1") AndAlso UsuarioActual.Empresa.TipoContabilidad = 2 Then
@@ -13767,21 +13701,128 @@ Partial Class Compras_Compras
ObjAC.IniciaTransacSQL() ObjAC.IniciaTransacSQL()
End If End If
Dim ObjCompras As New ClsCompras
Dim ObjContabilidad As New ClsContabilidad(ObjCompras.IniciaTransacSQL())
Dim ErrorCancelar = False Dim ErrorCancelar = False
Dim IdPolizaNueva = -1 Dim IdPolizaNueva = -1
Dim FolioPolizaNueva = -1 Dim FolioPolizaNueva = -1
Dim CvePrePolizaNueva = -1 Dim CvePrePolizaNueva = -1
Dim dt As DataTable
Try
'DEVOLUCIÓN AUTOMATICA
If CheckDevAuto.Checked Then
Dim fecha As Date = TxtFechaCancelacion.Text.ToDateTime().AddHours(23).AddMinutes(59)
Dim importeconcepto As Decimal
Dim tbmovs As DataTable = Nothing
Dim TmpDT As DataTable = Nothing
Dim TipoCambioGuardar As Decimal = 1
' MES ANTERIOR, MOVIMIENTOS CONTRARIOS (NEGATIVOS) If ObjCompras.GetCompraDetalle(CveCompra, UsuarioActual.CveEmpresa) Then
If True Then If ObjCompras.DtResultados.Rows.Count > 0 Then
TmpDT = ObjCompras.DtResultados.Copy()
End If
End If
If ObjInventario.GetInv_ComprasMov(CveCompra, UsuarioActual.CveEmpresa) Then
If ObjInventario.DtResultados.Rows.Count > 0 Then
tbmovs = ObjInventario.DtResultados
End If
End If
If DdlMoneda.SelectedValue.ToEntero > 1 Then
TipoCambioGuardar = If(DivTC.Visible, TxtTC.Text.ToDecimal, LblTC.Text.Substring(3).ToDecimal)
End If
TipoCambio = If(DivTC.Visible, TipoCambioGuardar, TipoCambio)
'For Each dtMovs As DataRow In TmpDT.Rows
' If TmpDT.Rows.Count > 0 Then
' tcvealmacen = dtMovs("AlmacenRegistrado").ToString.ToEntero
' Exit For
' End If
'Next
Dim DtMovimientos = tbmovs.FiltraParametros("Origen = 1", DistinctColumns:={"CveMovimiento", "CveConcepto", "CveAlmacen", "Origen"})
For Each RowMovto As DataRow In DtMovimientos.Rows
Dim CveMovimientoEntrada As Integer = -1
Dim Folio As Integer
Dim CveAlmacen As Integer = RowMovto("CveAlmacen").ToString().ToEntero()
Dim CveConceptoDevolucion As Integer = -1
Dim CveConcetoEntrada = RowMovto("CveConcepto").ToString().ToEntero()
Dim CveMovimientoReferencia As Integer = RowMovto("CveMovimiento").ToString().ToEntero()
Select Case CveConcetoEntrada
Case 2
CveConceptoDevolucion = 13
End Select
Folio = ObjInventario.GetFolioSiguiente(CveConceptoDevolucion, UsuarioActual.CveEmpresa)
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoDevolucion, 1, fecha, Folio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompra, -1, -1, -1, TipoCambio:=If(DdlMoneda.SelectedValue.ToEntero = 1, -1, TipoCambioGuardar), Modulo:="Devolucion Automatica")
If CveMovimientoEntrada <= 0 Then
ErrorCancelar = True
Exit For
Else
For Each dr As DataRow In tbmovs.Rows
If dr("CveAlmacen").ToString.ToEntero = CveAlmacen And dr("CveCompraDetalle").ToString.ToEntero <> -1 And dr("origen").ToString.ToEntero <> -1 And dr("Total").ToString.ToDecimal <> 0 Then
'hay que restarle descuento
importeconcepto = dr("Total").ToString.ToDecimal
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, dr("Cantidad").ToString.ToDouble, dr("CveUM").ToString.ToEntero, dr("CvePS").ToString.ToEntero, importeconcepto, -1, CveCompraDetalle:=dr("CveCompraDetalle").ToString.ToEntero, Serie:=dr("Serie").ToString) Then
ErrorCancelar = True
Exit For
End If
End If
Next
End If
If CvePrePoliza > 0 Then
Dim Total68 As Decimal = 0
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
Total68 = ObjInventario.DtResultados.SUMD("Total").RoundSQL(2) * -1
End If
If ObjContabilidad.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then
Dim DtPrePolizaAlmacen = ObjContabilidad.DtResultados.FiltraParametros($"CveMovimientoAlmacen = {CveMovimientoReferencia}")
CvePrePolizaNueva = ObjContabilidad.AddPrePolizas("Compras/Cancelar", DtPrePolizaAlmacen.Rows(0)("CvePlantillaPoliza").ToString.ToEntero, DtPrePolizaAlmacen.Rows(0)("Cargos").ToString.ToDouble * -1, DtPrePolizaAlmacen.Rows(0)("Abonos").ToString.ToDouble * -1, DtPrePolizaAlmacen.Rows(0)("CveMoneda").ToString.ToEntero, TxtFechaCancelacion.Text.ToDate, String.Format("Cancelación: {0}", DtPrePolizaAlmacen.Rows(0)("Concepto").ToString), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePolizaNueva > 0 Then
For Each dr As DataRow In DtPrePolizaAlmacen.Rows
If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), Total68, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
CveMovimientoEntrada,
dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero,
ImporteMX:=Total68, ImporteME:=Total68,
CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero,
PorcentajeImpuesto:=dr("PorcentajeImpuesto").ToString.ToDecimal,
CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero) Then
ErrorCancelar = True
Exit For
End If
Next
Else
ErrorCancelar = True
End If
Else
ErrorCancelar = True
End If
End If
Next
End If
Dim dt As DataTable
' MOVIMIENTOS CONTRARIOS (NEGATIVOS)
'CREA POLIZA NEGATIVA 'CREA POLIZA NEGATIVA
If IdPoliza > 0 AndAlso ObjAC IsNot Nothing AndAlso UsuarioActual.Empresa.UsaAC Then If Not ErrorCancelar AndAlso IdPoliza > 0 AndAlso ObjAC IsNot Nothing AndAlso UsuarioActual.Empresa.UsaAC Then
If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then
dt = ObjAC.DtResultados dt = ObjAC.DtResultados
@@ -13809,47 +13850,21 @@ Partial Class Compras_Compras
End If End If
'CREA PRE-POLIZA NEGATIVA 'CREA PRE-POLIZA NEGATIVA
If DdlTipoComprobante.SelectedValue.Contiene("NC") Then If Not ErrorCancelar Then
If ObjCompras.GetCancelarNC(CveCompra, UsuarioActual.CveEmpresa) Then If DdlTipoComprobante.SelectedValue.Contiene("NC") Then
dt = ObjCompras.DtResultados If ObjCompras.GetCancelarNC(CveCompra, UsuarioActual.CveEmpresa) Then
dt = ObjCompras.DtResultados
CvePrePolizaNueva = ObjContabilidad.AddPrePolizas("Compras/Cancelar", dt.Rows(0)("CvePlantillaPoliza").ToString.ToEntero, dt.Rows(0)("Cargos").ToString.ToDouble * -1, dt.Rows(0)("Abonos").ToString.ToDouble * -1, dt.Rows(0)("CveMoneda").ToString.ToEntero, TxtFechaCancelacion.Text.ToDate, String.Format("Cancelación: {0}", dt.Rows(0)("Concepto").ToString), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePolizaNueva > 0 Then
For Each dr As DataRow In dt.Rows
If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero,
ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero,
PorcentajeImpuesto:=dr("PorcentajeImpuesto").ToString.ToDecimal, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero,
CveCompraAmortizacion:=dr("CveCompraAmortizacion").ToString.ToEntero) Then
ErrorCancelar = True
Exit For
End If
Next
Else
ErrorCancelar = True
End If
Else
ErrorCancelar = True
End If
Else
If CvePrePoliza > 0 Then
If ObjContabilidad.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then
dt = ObjContabilidad.DtResultados
CvePrePolizaNueva = ObjContabilidad.AddPrePolizas("Compras/Cancelar", dt.Rows(0)("CvePlantillaPoliza").ToString.ToEntero, dt.Rows(0)("Cargos").ToString.ToDouble * -1, dt.Rows(0)("Abonos").ToString.ToDouble * -1, dt.Rows(0)("CveMoneda").ToString.ToEntero, TxtFechaCancelacion.Text.ToDate, String.Format("Cancelación: {0}", dt.Rows(0)("Concepto").ToString), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) CvePrePolizaNueva = ObjContabilidad.AddPrePolizas("Compras/Cancelar", dt.Rows(0)("CvePlantillaPoliza").ToString.ToEntero, dt.Rows(0)("Cargos").ToString.ToDouble * -1, dt.Rows(0)("Abonos").ToString.ToDouble * -1, dt.Rows(0)("CveMoneda").ToString.ToEntero, TxtFechaCancelacion.Text.ToDate, String.Format("Cancelación: {0}", dt.Rows(0)("Concepto").ToString), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If CvePrePolizaNueva > 0 Then If CvePrePolizaNueva > 0 Then
For Each dr As DataRow In dt.Rows For Each dr As DataRow In dt.Rows
If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero, If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero, dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero, dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
If(cvemovimientoentrada > 0, cvemovimientoentrada, dr("CveMovimientoAlmacen").ToString.ToEntero), dr("CveMovimientoAlmacen").ToString.ToEntero, dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero,
dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero, ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero,
ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1, PorcentajeImpuesto:=dr("PorcentajeImpuesto").ToString.ToDecimal, CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero,
CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero, CveCompraAmortizacion:=dr("CveCompraAmortizacion").ToString.ToEntero) Then
PorcentajeImpuesto:=dr("PorcentajeImpuesto").ToString.ToDecimal,
CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero) Then
ErrorCancelar = True ErrorCancelar = True
Exit For Exit For
End If End If
@@ -13860,64 +13875,53 @@ Partial Class Compras_Compras
Else Else
ErrorCancelar = True ErrorCancelar = True
End If End If
End If Else
End If If CvePrePoliza > 0 Then
If ObjContabilidad.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then
dt = ObjContabilidad.DtResultados.FiltraParametros("ISNULL(CveMovimientoAlmacen,0) <=0")
'MES ACTUAL CvePrePolizaNueva = ObjContabilidad.AddPrePolizas("Compras/Cancelar", dt.Rows(0)("CvePlantillaPoliza").ToString.ToEntero, dt.Rows(0)("Cargos").ToString.ToDouble * -1, dt.Rows(0)("Abonos").ToString.ToDouble * -1, dt.Rows(0)("CveMoneda").ToString.ToEntero, TxtFechaCancelacion.Text.ToDate, String.Format("Cancelación: {0}", dt.Rows(0)("Concepto").ToString), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
Else If CvePrePolizaNueva > 0 Then
For Each dr As DataRow In dt.Rows
'LIMPIA POLIZA PONIENDO IMPORTE EN CEROS If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePolizaNueva, CBool(dr("TipoMovto").ToString), dr("Importe").ToString.ToDecimal * -1, dr("Referencia").ToString, dr("CveConceptoContable").ToString.ToEntero,
If IdPoliza > 0 AndAlso ObjAC IsNot Nothing Then dr("Concepto").ToString, TxtFechaCancelacion.Text.ToDate, dr("IdCtaContable").ToString.ToEntero, dr("IdSegmentoNegocio").ToString.ToEntero, dr("CveIE").ToString.ToEntero,
If ObjAC.GetPoliza(IdPoliza, -1, -1, -1, -1) AndAlso ObjAC.DtResultados.Rows.Count > 0 Then dr("CveVenta").ToString.ToEntero, dr("CveCompra").ToString.ToEntero, dr("CveSubProyecto").ToString.ToEntero, dr("CveCliente").ToString.ToEntero, dr("CveProveedor").ToString.ToEntero, dr("CvePersonal").ToString.ToEntero,
dt = ObjAC.DtResultados dr("CveMovimientoAlmacen").ToString.ToEntero,
dr("CveActivoFijo").ToString.ToEntero, -1, -1, dr("CveCreditoDetalle").ToString.ToEntero,
For Each dr As DataRow In dt.Rows ImporteMX:=dr("Importe").ToString.ToDecimal * -1, ImporteME:=dr("Importe").ToString.ToDecimal * -1,
If Not ObjAC.UpdateMovimiento(dr("Id").ToString.ToEntero, dr("IdCuenta").ToString.ToEntero, dr("TipoMovto").ToString = "1", 0, dr("Referencia").ToString, dr("Concepto").ToString, dr("IdSegNeg").ToString.ToEntero, dr("Fecha").ToString.ToDate) Then CveTipoGasto:=dr("CveTipoGasto").ToString.ToEntero, CveClasificacion:=dr("CveClasificacion").ToString.ToEntero,
ErrorCancelar = True : Exit For PorcentajeImpuesto:=dr("PorcentajeImpuesto").ToString.ToDecimal,
End If CveOCDetalle:=dr("CveOCDetalle").ToString.ToEntero) Then
Next ErrorCancelar = True
Exit For
'AJUSTA POLIZA End If
If Not ErrorCancelar Then Next
If Not ObjAC.AjustaPoliza(IdPoliza) Then Else
ErrorCancelar = True
End If
Else
ErrorCancelar = True ErrorCancelar = True
End If End If
End If End If
End If
End If
Else If Not ErrorCancelar Then
If Not ObjCompras.CancelarCompraOC(CveCompra, UsuarioActual.CveEmpresa) Then
ErrorCancelar = True ErrorCancelar = True
End If End If
End If End If
'LIMPIA PRE-POLIZA PONIENDO IMPORTE EN CEROS 'CANCELA COMPRA
If CvePrePoliza > 0 Then If Not ErrorCancelar Then
If ObjContabilidad.GetPrePolizasDetalle(CvePrePoliza, UsuarioActual.CveEmpresa) Then If Not ObjCompras.UpdateEstatusCompra(CveCompra, -2) Then
dt = ObjContabilidad.DtResultados
For Each dr As DataRow In dt.Rows
If Not ObjContabilidad.UpdatePrePolizasDetalle(dr("CvePrePolizaDetalle").ToString.ToEntero, dr("Concepto").ToString, dr("CveSubProyecto").ToString.ToEntero, dr("IdCtaContable").ToString.ToEntero, CBool(dr("TipoMovto").ToString), 0, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
ErrorCancelar = True : Exit For
End If
Next
Else
ErrorCancelar = True ErrorCancelar = True
End If End If
End If End If
Catch ex As Exception
End If OnError("Ocurrió un error al cancelar la compra", ex)
ErrorCancelar = True
If Not ErrorCancelar Then End Try
If Not ObjCompras.CancelarCompraOC(CveCompra, UsuarioActual.CveEmpresa) Then
ErrorCancelar = True
End If
End If
'CANCELA COMPRA
If Not ErrorCancelar Then
If Not ObjCompras.UpdateEstatusCompra(CveCompra, -2) Then
ErrorCancelar = True
End If
End If
If Not ErrorCancelar Then If Not ErrorCancelar Then
If ObjAC IsNot Nothing Then If ObjAC IsNot Nothing Then
@@ -20451,6 +20455,7 @@ Partial Class Compras_Compras
nRowAgrupado("PS") = psPSCodigo nRowAgrupado("PS") = psPSCodigo
nRowAgrupado("CveClasificacion") = psCveClasificacion nRowAgrupado("CveClasificacion") = psCveClasificacion
nRowAgrupado("Clasificacion") = psClasificacion nRowAgrupado("Clasificacion") = psClasificacion
nRowAgrupado("CveTipoPS") = rowPS("CveTipoPS").ToString
nRowAgrupado("IVAPorcentaje") = drIva("IVAPorcentaje") nRowAgrupado("IVAPorcentaje") = drIva("IVAPorcentaje")
nRowAgrupado("RetIVAPorcentaje") = drIva("RetIVAPorcentaje") nRowAgrupado("RetIVAPorcentaje") = drIva("RetIVAPorcentaje")
@@ -20514,6 +20519,7 @@ Partial Class Compras_Compras
dRow91_5("PS") = psPSCodigo dRow91_5("PS") = psPSCodigo
dRow91_5("CveClasificacion") = psCveClasificacion dRow91_5("CveClasificacion") = psCveClasificacion
dRow91_5("Clasificacion") = psClasificacion dRow91_5("Clasificacion") = psClasificacion
dRow91_5("CveTipoPS") = rowPS("CveTipoPS").ToString
dRow91_5("Consec") = Consec + 1 dRow91_5("Consec") = Consec + 1
dRow91_5("PU") = dRow91_5("PU").ToString.ToDecimal * Mul91_5 dRow91_5("PU") = dRow91_5("PU").ToString.ToDecimal * Mul91_5
@@ -20535,6 +20541,12 @@ Partial Class Compras_Compras
Consec = Consec + 2 Consec = Consec + 2
Next Next
DTProtateo.AcceptChanges() DTProtateo.AcceptChanges()
'recorrer
If CveCompra > 0 Then
For Each dbrow As DataRow In TmpDT.Rows
ClavesBorradas.Add(dbrow("CveCompraDetalle").ToString.ToEntero)
Next
End If
TmpDT = DTProtateo TmpDT = DTProtateo
BtnProrateoDeducible.Visible = False BtnProrateoDeducible.Visible = False