Traspaso de almacen general a almacen exa automaticamente

This commit is contained in:
2022-10-21 09:56:35 -07:00
parent bad06bab65
commit 0dbb312d5a

View File

@@ -14866,7 +14866,7 @@ Partial Class Ventas
Next Next
End If End If
If factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then If UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Ing", "Dev") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
Dim Filtro As String = "" Dim Filtro As String = ""
Select Case factura.TipoDocto Select Case factura.TipoDocto
@@ -15051,6 +15051,73 @@ Partial Class Ventas
End If End If
If UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso factura.TipoDocto.Contiene("Rem") AndAlso DivAlmacen.Visible AndAlso GvInv.Rows.Cast(Of GridViewRow)().Count(Function(gvr) gvr.FCCheckBox("cbInv").Checked) > 0 Then
Dim DebeGenerarMovimiento As Boolean = TmpDTDetalle.COUNT("CvePS", "CveTipoPS = 2") > 0
If DebeGenerarMovimiento Then
Dim CveAlmacenSalida As Integer = ddlAlmacen.SelectedValue.ToEntero()
Dim CveAlmacenExA As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=10).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={DdlSubProyecto.SelectedValue}").ToEntero()
Dim CveRemision As Integer = factura.CveVenta
Dim CveMoneda As Integer = DdlMoneda.SelectedValue.ToEntero()
Dim DtProductos As DataTable = TmpDTDetalle.FiltraParametros("CveTipoPS = 2")
Dim MovDetalle As DataTable = New DataTable()
MovDetalle.Columns.Add(New DataColumn("Cantidad", GetType(Integer)))
MovDetalle.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
MovDetalle.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
MovDetalle.Columns.Add(New DataColumn("PU", GetType(Decimal)))
MovDetalle.Columns.Add(New DataColumn("Serie", GetType(String)))
MovDetalle.Columns.Add(New DataColumn("Lote", GetType(String)))
MovDetalle.Columns.Add(New DataColumn("FechaCaducidad", GetType(DateTime)))
MovDetalle.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer)))
For Each RowPS As DataRow In DtProductos.Rows
Dim RowInv = MovDetalle.NewRow
RowInv("Cantidad") = RowPS("Cantidad").ToString().ToDecimal()
RowInv("CveUM") = RowPS("CveUM").ToString().ToEntero()
RowInv("CvePS") = RowPS("CvePS").ToString().ToEntero()
RowInv("PU") = 0
RowInv("Serie") = ""
RowInv("Lote") = ""
RowInv("FechaCaducidad") = MinFecha
RowInv("CveVentaDetalle") = RowPS("CveVentaDetalle").ToString().ToEntero()
MovDetalle.Rows.Add(RowInv)
Next
'Le damos salida de apartado por traspaso
Dim CveMovimientoSalidaPorTraspaso = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 8, CveMoneda, CveRemision, AplicaMovimientoDetalleEntrada:=False, ObjConta:=ObjConta, CveAlmacenDestino:=CveAlmacenExA)
If Not CveMovimientoSalidaPorTraspaso > 0 Then
OcurrioError = True
End If
'Le damos entrada al general por traspaso
If Not OcurrioError Then
Dim GeneroMovimientoAlmacen = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenExA, 9, CveMoneda, CveRemision, CveMovimientoRelacionado:=CveMovimientoSalidaPorTraspaso, AplicaMovimientoDetalleEntrada:=False, ObjConta:=ObjConta) > 0
If Not GeneroMovimientoAlmacen Then
OcurrioError = True
End If
End If
'VERIFICA QUE SE REALIZO EL MOVIMIENTO DE ALMACEN
If Not OcurrioError AndAlso DebeGenerarMovimiento Then
If Not (ObjInventario.GetInv_Mov(factura.CveVenta, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0) Then
OcurrioError = True
ErrorList.Add("Ocurrió un error al verificar inventario.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
End If
End If
End If
End If
End If End If
Catch ex As Exception Catch ex As Exception
@@ -19980,7 +20047,8 @@ Partial Class Ventas
Return Not OcurrioError Return Not OcurrioError
End Function End Function
Private Function GenerarMovimientoAlmacen(ByRef ObjInventario As ClsInventarios, DtMovDetalle As DataTable, CveAlmacen As Integer, ConceptoEntrada As Integer, CveMoneda As Integer, CveVenta As Integer, Optional MovimientoPrePoliza As Boolean = True, Private Function GenerarMovimientoAlmacen(ByRef ObjInventario As ClsInventarios, DtMovDetalle As DataTable, CveAlmacen As Integer, ConceptoEntrada As Integer, CveMoneda As Integer, CveVenta As Integer, Optional MovimientoPrePoliza As Boolean = True,
Optional ByRef ObjConta As ClsContabilidad = Nothing, Optional CveMovimientoRelacionado As Integer = -1, Optional AplicaMovimientoDetalleEntrada As Boolean = False, Optional ObjContPaq As ClsContPAQi = Nothing) As Integer Optional ByRef ObjConta As ClsContabilidad = Nothing, Optional CveMovimientoRelacionado As Integer = -1, Optional AplicaMovimientoDetalleEntrada As Boolean = False, Optional ObjContPaq As ClsContPAQi = Nothing,
Optional CveAlmacenDestino As Integer = -1) As Integer
Dim OcurrioError As Boolean = False Dim OcurrioError As Boolean = False
Dim ContadorMovtosDetalles = 0 Dim ContadorMovtosDetalles = 0
@@ -19993,7 +20061,7 @@ Partial Class Ventas
'Creamos el movimiento 'Creamos el movimiento
Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, ConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Dim CveMovimientoInventario As Integer = ObjInventario.AddMovimiento(CveAlmacen, ConceptoEntrada, CveMoneda, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
CveMovimientoRelacionado:=CveMovimientoRelacionado, Modulo:="Vta/E4") CveMovimientoRelacionado:=CveMovimientoRelacionado, CveAlmacenDestino:=CveAlmacenDestino, Modulo:="Vta/E4")
If CveMovimientoInventario > 0 Then If CveMovimientoInventario > 0 Then
@@ -30827,25 +30895,6 @@ Partial Class Ventas
Exit Sub Exit Sub
End If End If
'VERIFICA QUE LAS FACTURAS TENGAN EL MISMO ESTATUS EN ALMACEN (NO MEZCLAR REMISIONES 'SURTIDAS' CON 'NO SURTIDAS')
'If dtSeleccionadas.COUNT("Surtido", "Surtido = 'Si'") > 0 AndAlso dtSeleccionadas.COUNT("Surtido", "Surtido = 'No'") > 0 Then
' Dim SbRem As New StringBuilder
' SbRem.Append("Solo debe seleccionar remisiones con el mismo estatus de almacen. Por favor verifique y vuelva a intentar.</br>")
' SbRem.Append("<b>Remisiones Surtidas:</b></br>")
' For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'Si'", DistinctColumns:={"Folio"}).Rows
' SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
' Next
' SbRem.Append("<b>Remisiones No Surtidas:</b></br>")
' For Each RowSurtida As DataRow In dtSeleccionadas.FiltraParametros("Surtido = 'No'", DistinctColumns:={"Folio"}).Rows
' SbRem.AppendFormat("{0}</br>", RowSurtida("Folio"))
' Next
' Alert(SbRem.ToString(), TipoMensaje.MsgAdvertencia)
' Exit Sub
'End If
DdlMoneda.SelectedValue = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $"Abreviatura = '{dtSeleccionadas.FiltroPrimeroValor("Abreviatura")}'") DdlMoneda.SelectedValue = GlobalDTMonedas.FiltroPrimeroValor("CveMoneda", $"Abreviatura = '{dtSeleccionadas.FiltroPrimeroValor("Abreviatura")}'")
DdlMoneda.Enabled = False DdlMoneda.Enabled = False
CambiaMoneda() CambiaMoneda()
@@ -31066,6 +31115,11 @@ Partial Class Ventas
BtnEmitirImprimir.Visible = False BtnEmitirImprimir.Visible = False
End If End If
'SI HAY REMISIONES SURTIDAS, NO GENERAR EL MOVIMIENTO AUTOMATICO
If UsuarioActual.Empresa.Funcionalidad(567) = "1" AndAlso dtSeleccionadas.COUNT("Surtido", "Surtido = 'Si'") > 0 Then
DivAlmacen.Visible = False
End If
End If End If
TxtFechaPago.Text = If(EsDiasCreditoFijo, Now.AddDays(DiasCredito).ToShortDateString, TxtFechaPago.Text) TxtFechaPago.Text = If(EsDiasCreditoFijo, Now.AddDays(DiasCredito).ToShortDateString, TxtFechaPago.Text)
@@ -31076,8 +31130,9 @@ Partial Class Ventas
UpParametros.Update() UpParametros.Update()
UPEstimaciones.Update() UPEstimaciones.Update()
UPCondicionesPago.Update() UPCondicionesPago.Update()
HuboCambioRemi = Not HuboCambioRemi UpINV.Update()
HuboCambioRemi = Not HuboCambioRemi
RegistraScript("$('#DivRemisiones').modal('hide');", "DivRemisionesHide") RegistraScript("$('#DivRemisiones').modal('hide');", "DivRemisionesHide")
End Sub End Sub