Cancelacion de movimientos con serie lote, saldo en refacturacion en Ventas.aspx y validar si tiene poliza en IE.aspx
This commit is contained in:
@@ -3684,7 +3684,7 @@ Namespace Modelos
|
||||
Return Retorno
|
||||
End If
|
||||
|
||||
|
||||
Dim CveEstatusRefacturacion As Integer = If(ObjFactura.CveEstatusRefacturacion <= 0, 0, ObjFactura.CveEstatusRefacturacion)
|
||||
Dim CancelacionFecha As Date
|
||||
Dim FolioFiscal As String = ObjFactura.FolioFiscal
|
||||
Dim CancelacionAcuse As String = ""
|
||||
@@ -3877,12 +3877,11 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
|
||||
If Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso ObjFactura.CveEstatusRefacturacion = 0 Then
|
||||
If Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
|
||||
|
||||
'DEVOLUCION DE ALMACEN
|
||||
If Not ErrorCancelar AndAlso TieneAlmacen Then
|
||||
Dim TieneSalida As Boolean = False
|
||||
Dim DtDatos As New DataTable
|
||||
Dim DtExistencias As New DataTable
|
||||
|
||||
'CUANDO SE VAYA A REALIZAR LA DEVOLUCION AQUI DEBE MARCALA PARA NO SOLICITARLA DE NUEVO, SI NO LA SOLICITARA
|
||||
@@ -3894,143 +3893,45 @@ Namespace Modelos
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar AndAlso ObjInventario.EntregaAlmacenGet(CveVenta) Then
|
||||
If ObjInventario.DtResultados IsNot Nothing AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
|
||||
DtDatos = ObjInventario.DtResultados
|
||||
DtDatos.Columns.Add("Consec", GetType(Integer))
|
||||
DtDatos.Columns.Add("CantidadGV", GetType(Double))
|
||||
DtDatos.Columns.Add("CantidadTraspaso", GetType(Double))
|
||||
Dim Index = 1
|
||||
For Each Dr As DataRow In DtDatos.Rows
|
||||
Dr("Consec") = Index
|
||||
Dr("CantidadGV") = Dr("CantidadF")
|
||||
Index += 1
|
||||
Next
|
||||
|
||||
If DtDatos IsNot Nothing AndAlso DtDatos.Rows.Count > 0 AndAlso ObjInventario.DtResultados.Rows(0)("CveVentaPadre").ToString.ToEntero > 0 Then
|
||||
Dim Filtro As String
|
||||
Select Case ObjInventario.DtResultados.Rows(0)("TipoDocto").ToString
|
||||
Case "Ing", "Ped"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case "Dev"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case Else
|
||||
Filtro = "CveConcepto = 9"
|
||||
End Select
|
||||
|
||||
If ObjInventario.GetInv_Mov(ObjInventario.DtResultados.Rows(0)("CveVentaPadre").ToString.ToEntero, UsuarioActual.CveEmpresa) Then
|
||||
DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS Is Not NULL AND {Filtro}")
|
||||
|
||||
If DtExistencias.Rows.Count > 0 Then
|
||||
TieneSalida = True
|
||||
End If
|
||||
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
|
||||
End If
|
||||
End If
|
||||
If Not ErrorCancelar Then
|
||||
Dim Filtro As String
|
||||
Select Case ObjFactura.TipoDocto
|
||||
Case "Ing", "Ped"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case "Dev"
|
||||
Filtro = "CveConcepto = 3"
|
||||
Case Else
|
||||
Filtro = "CveConcepto = 9"
|
||||
End Select
|
||||
|
||||
If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
|
||||
DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS IS NOT NULL AND {Filtro}")
|
||||
TieneSalida = DtExistencias.Rows.Count > 0
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar AndAlso TieneSalida Then
|
||||
|
||||
Dim DtDatosDetalle As New DataTable
|
||||
DtDatosDetalle.Columns.Add("CveVentaDetalle", GetType(Integer))
|
||||
DtDatosDetalle.Columns.Add("Consec", GetType(Integer))
|
||||
DtDatosDetalle.Columns.Add("ConsecId", GetType(Integer))
|
||||
DtDatosDetalle.Columns.Add("CvePS", GetType(Integer))
|
||||
DtDatosDetalle.Columns.Add("PS", GetType(String))
|
||||
DtDatosDetalle.Columns.Add("CveUM", GetType(Integer))
|
||||
DtDatosDetalle.Columns.Add("SerieLote", GetType(String))
|
||||
DtDatosDetalle.Columns.Add("FechaCaducidad", GetType(String))
|
||||
DtDatosDetalle.Columns.Add("FueTraspaso", GetType(Integer))
|
||||
|
||||
Dim DtDatosDetalleLote As New DataTable
|
||||
DtDatosDetalleLote.Columns.Add("CveVentaDetalle", GetType(Integer))
|
||||
DtDatosDetalleLote.Columns.Add("Consec", GetType(Integer))
|
||||
DtDatosDetalleLote.Columns.Add("ConsecId", GetType(Integer))
|
||||
DtDatosDetalleLote.Columns.Add("Cantidad", GetType(Double))
|
||||
DtDatosDetalleLote.Columns.Add("CvePS", GetType(Integer))
|
||||
DtDatosDetalleLote.Columns.Add("PS", GetType(String))
|
||||
DtDatosDetalleLote.Columns.Add("CveUM", GetType(Integer))
|
||||
DtDatosDetalleLote.Columns.Add("Lote", GetType(String))
|
||||
DtDatosDetalleLote.Columns.Add("Batch", GetType(String))
|
||||
DtDatosDetalleLote.Columns.Add("FechaCaducidad", GetType(String))
|
||||
DtDatosDetalleLote.Columns.Add("FueTraspaso", GetType(Integer))
|
||||
|
||||
Dim DtTraspasos As New DataTable
|
||||
DtTraspasos.Columns.Add("CveAlmacen", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("Almacen", GetType(String))
|
||||
DtTraspasos.Columns.Add("CveMovimientoSalida", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
|
||||
|
||||
Dim ConceptoMovimiento = 18 'DEVOLUCION DEL CLIENTE
|
||||
Dim CveMovimiento As Integer = 0
|
||||
Dim Folio As Integer = 0
|
||||
Dim CantidadPendiente As Decimal = 0
|
||||
Dim DtDetalle As New DataTable
|
||||
Dim DtDetalleLote As New DataTable
|
||||
|
||||
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then
|
||||
Dim CveAlmacenDevolucion = ObjFactura.CveAlmacenDevolucion
|
||||
'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
|
||||
|
||||
CveMovimiento = ObjInventario.AddMovimiento(CveAlmacenDevolucion, ConceptoMovimiento, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1)
|
||||
Folio = ObjInventario.Folio
|
||||
|
||||
'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
|
||||
If CveMovimiento > 0 Then
|
||||
|
||||
'ES EL MOVIMIENTO PRINCIPAL
|
||||
CantidadPendiente = 0
|
||||
For Each Dr As DataRow In DtDatos.Rows
|
||||
CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal
|
||||
If CantidadPendiente > 0 Then
|
||||
Dim PU As Decimal = 0
|
||||
|
||||
'SI FUE POR SERIELOTE
|
||||
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
||||
DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
||||
|
||||
If DtDetalle.Rows.Count > 0 Then
|
||||
For Each Dr1 As DataRow In DtDetalle.Rows
|
||||
If DtExistencias IsNot Nothing Then
|
||||
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
ElseIf DtDetalleLote.Rows.Count > 0 Then
|
||||
For Each Dr1 As DataRow In DtDetalleLote.Rows
|
||||
If DtExistencias IsNot Nothing Then
|
||||
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
If DtExistencias IsNot Nothing Then
|
||||
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}").ToString.ToDecimal
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
For Each Dr As DataRow In DtExistencias.Rows
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, SerieLote:=Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
@@ -4121,7 +4022,7 @@ Namespace Modelos
|
||||
End If
|
||||
|
||||
If Not ErrorCancelar Then
|
||||
If Not GeneraMovimientosApartados(ObjInventario, DtTraspasos) Then
|
||||
If Not GeneraMovimientosApartados(ObjInventario) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al guardar los movimientos de control de apartados"
|
||||
End If
|
||||
@@ -4251,8 +4152,6 @@ Namespace Modelos
|
||||
|
||||
End If
|
||||
|
||||
Dim CveEstatusRefacturacion As Integer = If(ObjFactura.CveEstatusRefacturacion <= 0, 0, ObjFactura.CveEstatusRefacturacion)
|
||||
|
||||
'ACTUALIZA ESTATUS
|
||||
If Not ErrorCancelar Then
|
||||
Select Case ObjFactura.TipoDocto
|
||||
@@ -4476,11 +4375,19 @@ Namespace Modelos
|
||||
Return Not ErrorCancelar
|
||||
End Function
|
||||
|
||||
Private Function GeneraMovimientosApartados(ByRef ObjInventario As ClsInventarios, ByRef DtTraspasos As DataTable) As Boolean
|
||||
Private Function GeneraMovimientosApartados(ByRef ObjInventario As ClsInventarios) As Boolean
|
||||
Dim ErrorCancelar As Boolean = False
|
||||
If Not ErrorCancelar Then
|
||||
If ObjInventario.VentasAlmacenApartadosGet(CveVenta) Then
|
||||
|
||||
Dim DtTraspasos As New DataTable
|
||||
DtTraspasos.Columns.Add("CveAlmacen", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("Almacen", GetType(String))
|
||||
DtTraspasos.Columns.Add("CveMovimientoSalida", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
|
||||
|
||||
Dim DtTempApartados = ObjInventario.DtResultados.FiltraParametros("CveTipoAlmacen = 9", "CveAlmacen")
|
||||
Dim CveMovimientoSalidaApartado = -1
|
||||
Dim CveAlmacenApartado = -1
|
||||
@@ -4539,6 +4446,8 @@ Namespace Modelos
|
||||
|
||||
If ErrorCancelar Then Exit For
|
||||
Next
|
||||
|
||||
DtTraspasos.Dispose()
|
||||
End If
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
|
||||
@@ -3837,24 +3837,6 @@ Partial Class Bancos_IE
|
||||
|
||||
Else
|
||||
|
||||
'SE COMENTO PARA PODER DESBLOQUEAR LA PREPOLIZA Y CREAR UNA NUEVA POLIZA
|
||||
''LIMPIA POLIZA PONIENDO IMPORTE EN CEROS
|
||||
'For Each dr As DataRow In dt.Rows
|
||||
' 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
|
||||
' ErrorCancelar = True
|
||||
' MensajeError = "Error al actualizar Movimientos con importe 0"
|
||||
' Exit For
|
||||
' End If
|
||||
'Next
|
||||
|
||||
''AJUSTA POLIZA
|
||||
'If Not ErrorCancelar Then
|
||||
' If Not ObjAC.AjustaPoliza(IDPoliza) Then
|
||||
' ErrorCancelar = True
|
||||
' MensajeError = "Error al ajustar poliza negativa"
|
||||
' End If
|
||||
'End If
|
||||
|
||||
If ObjAC.RemovePoliza(IDPoliza) Then
|
||||
If Not ObjConta.DesvincularPrePolizaContabilizada(IDPoliza, UsuarioActual.CveEmpresa) Then
|
||||
ErrorCancelar = True
|
||||
@@ -3886,7 +3868,9 @@ Partial Class Bancos_IE
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Error al obtener la poliza"
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
Reference in New Issue
Block a user