Cancelación de movimientos sin costo
This commit is contained in:
@@ -4571,7 +4571,7 @@ Namespace Modelos
|
||||
|
||||
Next
|
||||
|
||||
'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN GENERAL
|
||||
'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN ORGINAL (GENERAL,SIN COSTO)
|
||||
If Not ErrorCancelar AndAlso ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Then
|
||||
|
||||
'VERIFICA LOS MOVIMIENTOS DE DEVOLUCION YA GENERADOS QUE TENGAN EXISTENCIA EN (ENTREGA POR ADELANTADO)
|
||||
@@ -4584,21 +4584,24 @@ Namespace Modelos
|
||||
End If
|
||||
End If
|
||||
|
||||
'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
|
||||
'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN ORGINAL (GENERAL,SIN COSTO)
|
||||
If Not ErrorCancelar AndAlso DtDevoluciones IsNot Nothing Then
|
||||
For Each CveRemision As Integer In ListaRemisionesCancelar
|
||||
Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
|
||||
|
||||
Dim RowDevolucion As DataRow = DtDevRemision.FiltraParametros("", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows(0)
|
||||
Dim DtDevMovs = DtDevRemision.FiltraParametros("", DistinctColumns:={"CveMovimiento", "CveRemision", "CveAlmacen", "CveAlmacenDestino"})
|
||||
|
||||
CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
|
||||
CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
|
||||
For Each RowDevolucion As DataRow In DtDevMovs.Rows
|
||||
CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
|
||||
CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
|
||||
|
||||
If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision.FiltraParametros($"CveMovimiento={RowDevolucion("CveMovimiento")}"), ObjVentas, ObjInventario) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
ErrorCancelar = True
|
||||
@@ -5028,7 +5031,7 @@ Namespace Modelos
|
||||
|
||||
'SALIDA DE (ENTREGA POR ADELANTADO)
|
||||
If Not ErrorCancelar Then
|
||||
For Each DrRem As DataRow In DtMovDetalle.FiltraParametros($"CveRemision = {CveRemision}").Rows
|
||||
For Each DrRem As DataRow In DtMovDetalle.Rows
|
||||
Dim CveVentaDetalleRem = DrRem("CveVentaDetalleRemision").ToString.ToEntero
|
||||
Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal
|
||||
|
||||
@@ -5037,7 +5040,7 @@ Namespace Modelos
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, CveAF:=DrRem("CveActivoFijo").ToString.ToEntero, Serie:=DrRem("Serie").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=DrRem("Lote").ToString) Then
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, CveAF:=DrRem("CveActivoFijo").ToString.ToEntero, Serie:=DrRem("Serie").ToString, Lote:=DrRem("Lote").ToString, CveVentaDetalle:=CveVentaDetalleRem, CveMovimientoDetalleEntrada:=DrRem("CveMovimientoDetalle").ToString().ToEntero()) Then
|
||||
ErrorCancelar = True
|
||||
Exit For
|
||||
End If
|
||||
|
||||
@@ -509,7 +509,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
TipoEntrega = 1
|
||||
BtnGuardar.Visible = True
|
||||
|
||||
Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2)"
|
||||
Dim StrAlmacenes As String = "CveTipoAlmacen IN (1,2,26)"
|
||||
|
||||
If UsuarioActual.CveSubProyecto = 8804 Then
|
||||
StrAlmacenes = "CveTipoAlmacen IN (1,2,12)"
|
||||
@@ -1663,7 +1663,16 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
DtTraspasos.Columns.Add("CveTipoAlmacen", GetType(Integer))
|
||||
DtTraspasos.Columns.Add("CveConceptoMovimientoSalida", GetType(Integer))
|
||||
|
||||
Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
|
||||
Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
|
||||
|
||||
|
||||
Dim DtDevSinCosto As New DataTable
|
||||
DtDevSinCosto.Columns.Add("CveAlmacen", GetType(Integer))
|
||||
DtDevSinCosto.Columns.Add("Almacen", GetType(String))
|
||||
DtDevSinCosto.Columns.Add("CveMovimientoEntrada", GetType(Integer))
|
||||
DtDevSinCosto.Columns.Add("FolioEntrada", GetType(Integer))
|
||||
DtDevSinCosto.Columns.Add("CveTipoAlmacen", GetType(Integer))
|
||||
DtDevSinCosto.Columns.Add("CveConceptoMovimientoSalida", GetType(Integer))
|
||||
|
||||
Try
|
||||
'VALIDA EXISTENCIA 2
|
||||
@@ -2189,11 +2198,70 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
' TERMINA: GARANTIAS
|
||||
|
||||
'DEVOLUCION DE SIN COSTO
|
||||
Dim CantidadEntradaSinCosto As Decimal = 0
|
||||
|
||||
If Not ErrorMovInv AndAlso TipoMovimiento = 2 AndAlso UsuarioActual.Empresa.Funcionalidad(587) = "1" Then
|
||||
For Each Dr1 As DataRow In DtExistencias.FiltraParametros("CveTipoAlmacenDevolucion = 26").Rows
|
||||
Dim CveMovimientoSalidaSinCosto = Dr1("CveMovimiento").ToString.ToEntero
|
||||
|
||||
'Dim CveAlmacenSinCosto As Integer = Dr1("CveAlmacenDevolucion").ToString().ToEntero()
|
||||
|
||||
'Dim AlmacenSinCosto As String = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=26).FiltroPrimeroValor("Almacen", $"CveAlmacen={CveAlmacenSinCosto}").ToString()
|
||||
|
||||
Dim CveMovimientoDevolucionSinCosto = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero(), 41, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida,
|
||||
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||
Dim FolioDevSinCosto = ObjInventario.Folio
|
||||
|
||||
If Not CveMovimientoDevolucionSinCosto > 0 Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaSinCosto, UsuarioActual.CveEmpresa) Then
|
||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||
|
||||
CantidadEntradaSinCosto += Dr("Cantidad").ToString.ToDecimal()
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoDevolucionSinCosto, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
If ErrorMovInv Then Exit For
|
||||
|
||||
Dim DrMovto = DtDevSinCosto.NewRow
|
||||
DrMovto("Almacen") = DdlAlmacen.SelectedItem.Text
|
||||
DrMovto("CveAlmacen") = DdlAlmacen.SelectedValue.ToEntero()
|
||||
DrMovto("CveMovimientoEntrada") = CveMovimientoDevolucionSinCosto
|
||||
DrMovto("FolioEntrada") = FolioDevSinCosto
|
||||
DrMovto("CveTipoAlmacen") = 10
|
||||
DrMovto("CveConceptoMovimientoSalida") = 41
|
||||
DtDevSinCosto.Rows.Add(DrMovto)
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, CveMovimientoDevolucionSinCosto, TextoError)
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
' TERMINA: GARANTIAS
|
||||
|
||||
Dim CantidadPendientePorSalir As Decimal = DtDatos.SUM("CantidadGV").ToDecimal() - CantidadSalidaSinCosto
|
||||
|
||||
Dim CantidadPendientePorSalir As Decimal = DtDatos.SUM("CantidadGV").ToDecimal()
|
||||
|
||||
If TipoMovimiento = 1 Then
|
||||
CantidadPendientePorSalir = CantidadPendientePorSalir - CantidadSalidaSinCosto
|
||||
ElseIf TipoMovimiento = 2 Then
|
||||
CantidadPendientePorSalir = CantidadPendientePorSalir - CantidadEntradaSinCosto
|
||||
End If
|
||||
|
||||
If Not ErrorMovInv AndAlso CantidadPendientePorSalir > 0 Then
|
||||
Dim ConceptoMovimiento = 3
|
||||
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
|
||||
@@ -2261,7 +2329,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
CantidadPendiente = 0
|
||||
Dim Cont As Integer = 0
|
||||
For Each Dr As DataRow In DtDatos.Rows
|
||||
CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal
|
||||
CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal - CantidadEntradaSinCosto
|
||||
If CantidadPendiente > 0 Then
|
||||
Dim PU As Decimal = 0
|
||||
|
||||
@@ -2271,7 +2339,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If DtDetalle.Rows.Count > 0 Then
|
||||
For Each Dr1 As DataRow In DtDetalle.Rows
|
||||
If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
|
||||
PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND Serie = '{Dr1("Serie").ToString}'").ToString.ToDecimal
|
||||
PU = DtExistencias.FiltroPrimeroValor("PU", $"CveTipoAlmacenDevolucion <> 26 AND CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND Serie = '{Dr1("Serie").ToString}'").ToString.ToDecimal
|
||||
End If
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||
@@ -2626,6 +2694,13 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Next
|
||||
End If
|
||||
|
||||
If DtDevSinCosto.Rows.Count > 0 Then
|
||||
Msg.AppendFormat("<br/><br/> Movimientos de Control (Sin Costo):")
|
||||
For Each Dr As DataRow In DtDevSinCosto.Rows
|
||||
Msg.AppendFormat("<br/>Almacén {0} | Devolución directa de almacen: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
|
||||
Next
|
||||
End If
|
||||
|
||||
If CveMovimientoGarantia > 0 Then
|
||||
Msg.AppendFormat("<br/>Movimiento de Entrada (garantías): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoGarantia, FolioGarantia)
|
||||
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
|
||||
|
||||
@@ -16086,6 +16086,8 @@ Partial Class Ventas
|
||||
Dim DtMovimientosDetalles As DataTable
|
||||
DtRemConceptosSurtidos = Nothing
|
||||
|
||||
Dim TieneMovimientosSinCosto As Boolean = False
|
||||
|
||||
'Obtenemos los movimientos detalle
|
||||
If ObjInventario.GetInv_Mov(CveRemision, UsuarioActual.CveEmpresa) Then
|
||||
|
||||
@@ -16116,6 +16118,9 @@ Partial Class Ventas
|
||||
'VALIDAR SI TIENE PRODUCTOS POR TRASPASAR
|
||||
If DtMovimientos.Rows.Count > 0 Then
|
||||
Dim GeneroMovimientoAlmacen As Boolean = False
|
||||
|
||||
TieneMovimientosSinCosto = DtMovimientosDetalles.COUNT("CveTipoAlmacen", "CveTipoAlmacen=26") > 0
|
||||
|
||||
For Each dr As DataRow In DtMovimientos.Rows
|
||||
'Obtenemos los Movimientos de salida
|
||||
If ObjInventario.GetMovimientos(dr("CveMovimiento").ToString().ToEntero(), ConceptoMovimiento, -1, UsuarioActual.CveEmpresa) Then
|
||||
@@ -16132,9 +16137,14 @@ Partial Class Ventas
|
||||
|
||||
Dim MovDetalle As New DataTable
|
||||
Dim AplicaMovimientoDetalleEntrada As Boolean = False
|
||||
|
||||
If RemisionesLista.Count > 0 Then
|
||||
AplicaMovimientoDetalleEntrada = True
|
||||
MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
|
||||
If TieneMovimientosSinCosto Then
|
||||
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
|
||||
Else
|
||||
MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND (TieneSalidaxFactura IS NULL OR SaldoAlmacen > 0)"))
|
||||
End If
|
||||
Else
|
||||
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
|
||||
End If
|
||||
@@ -16209,7 +16219,10 @@ Partial Class Ventas
|
||||
|
||||
MovDetalle.Dispose()
|
||||
|
||||
OcurrioError = Not GeneroMovimientoAlmacen
|
||||
'VERIFICA QUE SE HAYA GENERADO MOVIMIENTO DE ALMACEN
|
||||
If Not OcurrioError Then
|
||||
OcurrioError = Not GeneroMovimientoAlmacen
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user