This commit is contained in:
Raul Pimienta
2019-09-03 18:08:08 -07:00
2 changed files with 39 additions and 146 deletions

View File

@@ -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

View File

@@ -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