Movimientos de garantia en cancelacion de factura y servicio a domicilio
This commit is contained in:
@@ -3826,46 +3826,9 @@ Namespace Modelos
|
||||
OcurrioError = True
|
||||
End If
|
||||
|
||||
' COMIENZA: GARANTIAS
|
||||
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()
|
||||
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
|
||||
|
||||
' GENERA EL MOVIMIENTO DE GARANTIA SI TIENE
|
||||
If Not GenerarMovimientoGarantia(14, "Entrada Garantía", Now, factura, ObjAcum, ObjInventario, ObjConta) Then
|
||||
OcurrioError = True
|
||||
End If
|
||||
|
||||
Else
|
||||
@@ -3902,6 +3865,75 @@ Namespace Modelos
|
||||
|
||||
Return OcurrioError
|
||||
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
|
||||
Dim MovDTCuadrados As New DataTable
|
||||
MovDTCuadrados = MovDetalle.Clone
|
||||
@@ -5540,6 +5572,21 @@ Namespace Modelos
|
||||
|
||||
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
|
||||
DtDevRemision.Dispose()
|
||||
End If
|
||||
@@ -5629,6 +5676,13 @@ 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, ObjFactura, ObjAcum, ObjInventario, ObjConta) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'VERIFICAR MOVIMIENTOS DE APARTADOS
|
||||
|
||||
Reference in New Issue
Block a user