Movimiento de salida en cancelacion de devoluciones
This commit is contained in:
@@ -580,6 +580,14 @@ Namespace Modelos
|
||||
Me.DtRemisionesDocumentosRelacionados = ObjVentas.DtResultados.Copy()
|
||||
End If
|
||||
|
||||
'CARGA LOS IMPUESTOS LOCALES
|
||||
If ObjVentas.GetVentaImpuestosLocales(CveVenta) Then
|
||||
If ObjVentas.DtResultados.Rows.Count > 0 Then
|
||||
DtImpuestosLocales = ObjVentas.DtResultados.Copy()
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
ObjVentas.Dispose()
|
||||
|
||||
If Me.RealizarDevolucionAlmacen Then
|
||||
@@ -1618,8 +1626,8 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
'Impuestos Locales
|
||||
If DtImpuestosLocales IsNot Nothing Then
|
||||
For Each gvr As DataRow In DtImpuestosLocales.Rows
|
||||
If factura.DtImpuestosLocales IsNot Nothing Then
|
||||
For Each gvr As DataRow In factura.DtImpuestosLocales.Rows
|
||||
If Not ObjVentas.AddVentaImpuestoLocales(factura.CveVenta, gvr("CveImpuestoLocal").ToString.ToEntero(), gvr("Importe").ToString().ToDouble()) Then
|
||||
ErrorList.Add("Ocurrió un error al Guardar Impuestos Locales")
|
||||
End If
|
||||
@@ -1627,8 +1635,8 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
|
||||
If DtFirmas IsNot Nothing AndAlso DtFirmas.Rows.Count > 0 Then
|
||||
For Each Row As DataRow In DtFirmas.Rows
|
||||
If factura.DtFirmas IsNot Nothing AndAlso factura.DtFirmas.Rows.Count > 0 Then
|
||||
For Each Row As DataRow In factura.DtFirmas.Rows
|
||||
If Not ObjVentas.AddVentasFirmas(factura.CveVenta, Row("Titulo").ToString, Row("Nombre").ToString, Row("Puesto").ToString, Row("Lado").ToString.ToEntero) Then
|
||||
ErrorList.Add("Ocurrio un error al Guardar Firmas")
|
||||
End If
|
||||
@@ -4828,8 +4836,10 @@ Namespace Modelos
|
||||
If Not ErrorCancelar Then
|
||||
Dim Filtro As String = ""
|
||||
Select Case ObjFactura.TipoDocto
|
||||
Case "Ing", "Ped", "Dev"
|
||||
Case "Ing", "Ped"
|
||||
Filtro = "CveConcepto IN (3, 40)"
|
||||
Case "Dev"
|
||||
Filtro = "CveConcepto = 18"
|
||||
Case Else
|
||||
Filtro = "CveConcepto = 9"
|
||||
End Select
|
||||
@@ -4860,19 +4870,22 @@ Namespace Modelos
|
||||
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then
|
||||
'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES
|
||||
For Each RowMovimiento As DataRow In DtSalidas.Rows
|
||||
Dim CveConceptoDevolucion As Integer = -1
|
||||
Dim CveAlmacenDevolucion As Integer = -1
|
||||
Dim CveConceptoMovimiento As Integer = -1
|
||||
Dim CveAlmacenMovimiento As Integer = -1
|
||||
|
||||
Dim CveMovimientoDevolucion As Integer = 0
|
||||
Dim Folio As Integer = 0
|
||||
|
||||
Select Case RowMovimiento("CveConcepto").ToString().ToEntero()
|
||||
Case 3
|
||||
CveConceptoDevolucion = 18 'DEVOLUCION DEL CLIENTE
|
||||
CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
|
||||
CveConceptoMovimiento = 18 'DEVOLUCION DEL CLIENTE
|
||||
CveAlmacenMovimiento = RowMovimiento("CveAlmacen").ToString().ToEntero()
|
||||
Case 40
|
||||
CveConceptoDevolucion = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
|
||||
CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
|
||||
CveConceptoMovimiento = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
|
||||
CveAlmacenMovimiento = RowMovimiento("CveAlmacen").ToString().ToEntero()
|
||||
Case 18
|
||||
CveConceptoMovimiento = 3 'DEVOLUCIÓN DEL CLIENTE DIRECTA
|
||||
CveAlmacenMovimiento = RowMovimiento("CveAlmacen").ToString().ToEntero()
|
||||
''SI TIENE REMISIONES RELACIONADAS
|
||||
'If DtRemisionesFacturadas.Rows.Count > 0 Then
|
||||
' Dim RowRemision As DataRow = DtExistencias.FiltroPrimero($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}")
|
||||
@@ -4896,12 +4909,20 @@ Namespace Modelos
|
||||
'SI TIENE SALDO PENDIENTE POR DEVOLVER GENERA UN MOVIMIENTO DE DEVOLUCION
|
||||
If ObjFactura.SaldoAlmacen <> 0 Then
|
||||
'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
|
||||
CveMovimientoDevolucion = ObjInventario.AddMovimiento(CveAlmacenDevolucion, CveConceptoDevolucion, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1, Modulo:="Mod/CV1")
|
||||
CveMovimientoDevolucion = ObjInventario.AddMovimiento(CveAlmacenMovimiento, CveConceptoMovimiento, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1, Modulo:="Mod/CV1")
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
If CveMovimientoDevolucion > 0 Then
|
||||
For Each Dr As DataRow In DtExistencias.FiltraParametros($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}").Rows
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoDevolucion, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero) Then
|
||||
|
||||
Dim FechaCaducidad As Date = MinFecha
|
||||
If Not String.IsNullOrEmpty(Dr("FechaCaducidad").ToString()) Then
|
||||
If IsDate(Dr("FechaCaducidad")) Then
|
||||
FechaCaducidad = Dr("FechaCaducidad").ToString().ToDate()
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoDevolucion, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, FechaCaducidad:=FechaCaducidad) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
@@ -4920,12 +4941,17 @@ Namespace Modelos
|
||||
DtCostos = ObjInventario.DtResultados
|
||||
|
||||
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
|
||||
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {CveAlmacenMovimiento}").ToEntero
|
||||
'Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {CveAlmacenDevolucion}").ToEntero
|
||||
Dim IdCtaContable As Integer = 0
|
||||
Dim CveCuenta As Integer = 0
|
||||
If tmpCostos.Rows.Count > 0 Then
|
||||
|
||||
Dim Multiplicador As Decimal = -1D
|
||||
If ObjFactura.TipoDocto = "Dev" Then
|
||||
Multiplicador = 1D
|
||||
End If
|
||||
|
||||
If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
Dim Fecha As Date = Now
|
||||
Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
|
||||
@@ -4950,7 +4976,7 @@ Namespace Modelos
|
||||
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, -1 * ValorInventario, SerieFolio, 69, SerieFolio, Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, False, Multiplicador * ValorInventario, SerieFolio, 69, SerieFolio, Fecha, IdCtaContable, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=Multiplicador * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
End If
|
||||
@@ -4958,7 +4984,7 @@ Namespace Modelos
|
||||
cont += 1
|
||||
Next
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, -1 * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=-1 * TotalCosto) Then
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaDev, True, Multiplicador * TotalCosto, SerieFolio, 68, SerieFolio, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVenta, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimientoDevolucion, CveSubProyecto:=ObjFactura.CveSubProyecto, ImporteMX:=Multiplicador * TotalCosto) Then
|
||||
ErrorCancelar = True
|
||||
End If
|
||||
|
||||
@@ -4995,7 +5021,7 @@ Namespace Modelos
|
||||
|
||||
'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
|
||||
'SI ES DEVOLUCION DEL CLIENTE DEBE REGRESAR A ENTREGA POR ADELANTADO
|
||||
If Not ErrorCancelar AndAlso CveConceptoDevolucion = 18 AndAlso RevivirRemisiones Then
|
||||
If Not ErrorCancelar AndAlso CveConceptoMovimiento = 18 AndAlso RevivirRemisiones Then
|
||||
If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimientoDevolucion, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al generar los movimientos de devolución a remisión"
|
||||
|
||||
Reference in New Issue
Block a user