Movimientos de garantia en cancelacion de factura y servicio a domicilio
This commit is contained in:
@@ -3826,46 +3826,9 @@ Namespace Modelos
|
|||||||
OcurrioError = True
|
OcurrioError = True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' COMIENZA: GARANTIAS
|
' GENERA EL MOVIMIENTO DE GARANTIA SI TIENE
|
||||||
Dim CveAlmacenGarantia As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={factura.CveSubProyecto}").ToEntero()
|
If Not GenerarMovimientoGarantia(14, "Entrada Garantía", Now, factura, ObjAcum, ObjInventario, ObjConta) Then
|
||||||
Dim DtGarantias As DataTable = Nothing
|
OcurrioError = True
|
||||||
|
|
||||||
If ObjAcum.GetGarantiasDetalle(factura.CveVenta) Then
|
|
||||||
DtGarantias = ObjAcum.DtResultados.Copy()
|
|
||||||
End If
|
|
||||||
|
|
||||||
If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 AndAlso CveAlmacenGarantia > 0 Then
|
|
||||||
Dim TotalGarantia As Decimal = 0
|
|
||||||
Dim CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 2, 1, factura.Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta, -1, -1, Observaciones:="", Guia:="", Modulo:="Modelos/SDGA")
|
|
||||||
Dim FolioGarantia = ObjInventario.Folio
|
|
||||||
|
|
||||||
For Each RowGarantia As DataRow In DtGarantias.Rows
|
|
||||||
Dim CvePS = RowGarantia("CvePS").ToString().ToEntero()
|
|
||||||
Dim CveTamaño As Integer = RowGarantia("CveTamaño").ToString().ToEntero()
|
|
||||||
Dim CveUM As Integer = RowGarantia("CveUnidadMedida").ToString().ToEntero()
|
|
||||||
Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble()
|
|
||||||
Dim Serie As String = RowGarantia("Comprobante").ToString
|
|
||||||
|
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, Serie:=Serie, CveVentaDetalle:=RowGarantia("CveVentaDetalle").ToString.ToEntero) Then
|
|
||||||
OcurrioError = True
|
|
||||||
Exit For
|
|
||||||
End If
|
|
||||||
TotalGarantia += (RowGarantia("Cantidad").ToString().ToDecimal() * PU)
|
|
||||||
Next
|
|
||||||
|
|
||||||
Dim CvePrePolizaTraspaso As Integer = ObjConta.AddPrePolizas("EA/Gar", 53, 0, 0, 1, factura.Fecha, "Entrada Garantía", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
||||||
If CvePrePolizaTraspaso > 0 Then
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, False, TotalGarantia, "MOVIMIENTO DE GARANTIA", 68, "MOVIMIENTO DE GARANTIA", factura.Fecha, -1, -1, CveMovimientoAlmacen:=CveMovimientoGarantia, Contabilizable:=True, ImporteMX:=TotalGarantia) Then
|
|
||||||
OcurrioError = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Not OcurrioError AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, True, TotalGarantia, "MOVIMIENTO DE GARANTIA", 331, "MOVIMIENTO DE GARANTIA", factura.Fecha, -1, -1, CveMovimientoAlmacen:=CveMovimientoGarantia, Contabilizable:=True, ImporteMX:=TotalGarantia) Then
|
|
||||||
OcurrioError = True
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
OcurrioError = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
@@ -3902,6 +3865,75 @@ Namespace Modelos
|
|||||||
|
|
||||||
Return OcurrioError
|
Return OcurrioError
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Private Function GenerarMovimientoGarantia(CveConceptoMovimiento As Integer, ConceptoPoliza As String, FechaMovimiento As DateTime, factura As Factura, ByRef ObjAcum As ClsAcumuladores, ByRef ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, Optional Modulo As String = "Modelos/SDGA") As Boolean
|
||||||
|
Dim OcurrioError As Boolean = False
|
||||||
|
Try
|
||||||
|
Dim CveAlmacenGarantia As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={factura.CveSubProyecto}").ToEntero()
|
||||||
|
Dim DtGarantias As DataTable = Nothing
|
||||||
|
|
||||||
|
If ObjAcum.GetGarantiasDetalle(factura.CveVenta) Then
|
||||||
|
DtGarantias = ObjAcum.DtResultados.Copy()
|
||||||
|
Else
|
||||||
|
OcurrioError = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
'SI TIENE UNA GARANTIA, GENERAR EL MOVIMIENTO DE ALMACEN
|
||||||
|
If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 AndAlso CveAlmacenGarantia > 0 Then
|
||||||
|
Dim TotalGarantia As Decimal = 0
|
||||||
|
Dim CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, CveConceptoMovimiento, 1, FechaMovimiento, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta, -1, -1, Observaciones:="", Guia:="", Modulo:=Modulo)
|
||||||
|
Dim FolioGarantia = ObjInventario.Folio
|
||||||
|
|
||||||
|
For Each RowGarantia As DataRow In DtGarantias.Rows
|
||||||
|
Dim CvePS = RowGarantia("CvePS").ToString().ToEntero()
|
||||||
|
Dim CveTamaño As Integer = RowGarantia("CveTamaño").ToString().ToEntero()
|
||||||
|
Dim CveUM As Integer = RowGarantia("CveUnidadMedida").ToString().ToEntero()
|
||||||
|
Dim PU As Decimal = RowGarantia("Importe").ToString().ToDecimal() ' / RowGarantia("Cantidad").ToString().ToDouble()
|
||||||
|
Dim Serie As String = RowGarantia("Comprobante").ToString
|
||||||
|
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, Serie:=Serie, CveVentaDetalle:=RowGarantia("CveVentaDetalle").ToString.ToEntero) Then
|
||||||
|
OcurrioError = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
If Not OcurrioError Then
|
||||||
|
If ObjInventario.GetMovimientosDetalle(CveMovimientoGarantia, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
|
||||||
|
TotalGarantia = ObjInventario.DtResultados.SUMD("Total").RoundSQL
|
||||||
|
Else
|
||||||
|
OcurrioError = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not OcurrioError Then
|
||||||
|
Dim CvePrePolizaGarantia As Integer = ObjConta.AddPrePolizas("EA/Gar", 53, 0, 0, 1, FechaMovimiento, ConceptoPoliza, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||||
|
If CvePrePolizaGarantia > 0 Then
|
||||||
|
Dim TipoMovto As Boolean = False
|
||||||
|
If CveConceptoMovimiento = 15 Then
|
||||||
|
TipoMovto = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaGarantia, TipoMovto, TotalGarantia, "MOVIMIENTO DE GARANTIA", 68, "MOVIMIENTO DE GARANTIA", factura.Fecha, -1, -1, CveMovimientoAlmacen:=CveMovimientoGarantia, Contabilizable:=True, ImporteMX:=TotalGarantia) Then
|
||||||
|
OcurrioError = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not OcurrioError AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaGarantia, Not TipoMovto, TotalGarantia, "MOVIMIENTO DE GARANTIA", 331, "MOVIMIENTO DE GARANTIA", factura.Fecha, -1, -1, CveMovimientoAlmacen:=CveMovimientoGarantia, Contabilizable:=True, ImporteMX:=TotalGarantia) Then
|
||||||
|
OcurrioError = True
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
OcurrioError = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
OcurrioError = True
|
||||||
|
OnError("Ocurrió un error al generar el movimiento de garantía", ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return Not OcurrioError
|
||||||
|
End Function
|
||||||
Private Function CuadrarFacturaMovimientos(MovDetalle As DataTable) As DataTable
|
Private Function CuadrarFacturaMovimientos(MovDetalle As DataTable) As DataTable
|
||||||
Dim MovDTCuadrados As New DataTable
|
Dim MovDTCuadrados As New DataTable
|
||||||
MovDTCuadrados = MovDetalle.Clone
|
MovDTCuadrados = MovDetalle.Clone
|
||||||
@@ -5540,6 +5572,21 @@ Namespace Modelos
|
|||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'CANCELAR MOVIMIENTOS DE GARANTIA SI TIENE
|
||||||
|
If Not ErrorCancelar AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
|
||||||
|
If Not GenerarMovimientoGarantia(15, "Salida Garantía", Now, ObjRemision, ObjAcum, ObjInventario, ObjConta) Then
|
||||||
|
ErrorCancelar = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
'CANCELA LOS FOLIOS DE GARANTIA
|
||||||
|
If Not ErrorCancelar Then
|
||||||
|
If Not ObjAcum.UpdateGarantiaCancelacion(ObjRemision.CveVenta) Then
|
||||||
|
ErrorCancelar = True
|
||||||
|
MensajeError = "Ocurrió un error al actualizar la garantía"
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
If DtDevRemision IsNot Nothing Then
|
If DtDevRemision IsNot Nothing Then
|
||||||
DtDevRemision.Dispose()
|
DtDevRemision.Dispose()
|
||||||
End If
|
End If
|
||||||
@@ -5629,6 +5676,13 @@ Namespace Modelos
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'CANCELAR MOVIMIENTOS DE GARANTIA SI TIENE
|
||||||
|
If Not ErrorCancelar AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
|
||||||
|
If Not GenerarMovimientoGarantia(15, "Salida Garantía", Now, ObjFactura, ObjAcum, ObjInventario, ObjConta) Then
|
||||||
|
ErrorCancelar = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'VERIFICAR MOVIMIENTOS DE APARTADOS
|
'VERIFICAR MOVIMIENTOS DE APARTADOS
|
||||||
|
|||||||
Reference in New Issue
Block a user