diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index 53d9e0acb..674766529 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -2270,6 +2270,10 @@ Partial Class Inventarios_RecepcionAlmacen
Dim ObjContaContPAQ As ClsContPAQi = Nothing
'ENTREGA DIRECTA
+
+ Dim MovtosEntradaExA As New List(Of Integer)
+ Dim FoliosEntradaExA As New List(Of Integer)
+
Dim MovtosSalidaDirecta As New List(Of Integer)
Dim FoliosSalidaDirecta As New List(Of Integer)
@@ -2548,36 +2552,42 @@ Partial Class Inventarios_RecepcionAlmacen
Dim CveVenta As Integer = DrVenta("CveVenta").ToString().ToEntero()
- CveMovtoSalidaDirecta = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 3, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1,
- CveVenta, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, TipoCambio),
- MovimientoFijo:=True, CveMovimientoRelacionado:=CveMovimiento, Remision:=TxtRemision.Text, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RA/G2")
- FolioSalidaDirecta = ObjInventario.Folio
+ Dim ObjFactura As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa)
- If Not CveMovtoSalidaDirecta > 0 Then
- ErrorMovInv = True
- Exit For
- End If
+ Dim DtDetalleMovimiento As DataTable = Dt.FiltraParametros($"CveVenta={ObjFactura.CveVenta}")
- If Not ErrorMovInv AndAlso Dt IsNot Nothing Then
- For Each Dr As DataRow In Dt.FiltraParametros($"CveVenta={CveVenta}").Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovtoSalidaDirecta, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- End If
+ If ObjFactura.TipoDocto = "Ing" Then
+ Dim MovSalida = GenerarMovimientoAlmacenVenta(DdlAlmacen.SelectedValue.ToEntero(), 3, ObjFactura.CveVenta, CveMovimiento, DtDetalleMovimiento, ObjInventario, ObjConta, ObjContaContPAQ, EsContabilizable, "RA/G2")
- If Not ErrorMovInv Then
- If Not GeneraPrePolizaSalidaEntregaDirecta(CveMovtoSalidaDirecta, ObjInventario, ObjConta, ObjContaContPAQ, EsContabilizable) Then
- ErrorMovInv = True
- Exit For
+ ErrorMovInv = MovSalida.CveMovimiento <= 0
+
+ If Not ErrorMovInv Then
+ MovtosSalidaDirecta.Add(MovSalida.CveMovimiento)
+ FoliosSalidaDirecta.Add(MovSalida.Folio)
End If
+
+ ElseIf ObjFactura.TipoDocto = "Rem" Then
+ Dim MovSalidaExA = GenerarMovimientoAlmacenVenta(DdlAlmacen.SelectedValue.ToEntero(), 8, ObjFactura.CveVenta, -1, DtDetalleMovimiento, ObjInventario, ObjConta, ObjContaContPAQ, False, "RA/G2R1")
+
+ ErrorMovInv = MovSalidaExA.CveMovimiento <= 0
+
+ If Not ErrorMovInv Then
+ MovtosSalidaDirecta.Add(MovSalidaExA.CveMovimiento)
+ FoliosSalidaDirecta.Add(MovSalidaExA.Folio)
+
+ Dim MovEntradaExA = GenerarMovimientoAlmacenVenta(ObjFactura.CveAlmacenTraspasoDestino, 9, ObjFactura.CveVenta, MovSalidaExA.CveMovimiento, DtDetalleMovimiento, ObjInventario, ObjConta, ObjContaContPAQ, False, "RA/G2R2")
+
+ ErrorMovInv = MovEntradaExA.CveMovimiento <= 0
+
+ If Not ErrorMovInv Then
+ MovtosEntradaExA.Add(MovEntradaExA.CveMovimiento)
+ FoliosEntradaExA.Add(MovEntradaExA.Folio)
+ End If
+
+ End If
+
End If
- If Not ErrorMovInv Then
- MovtosSalidaDirecta.Add(CveMovtoSalidaDirecta)
- FoliosSalidaDirecta.Add(FolioSalidaDirecta)
- End If
Next
If Not ErrorMovInv Then
@@ -3307,6 +3317,14 @@ Partial Class Inventarios_RecepcionAlmacen
'ENTREGA DIRECTA
If MovtosSalidaDirecta.Count > 0 Then
Msg.AppendFormat("
Movimientos de control:
")
+
+ If MovtosEntradaExA.Count > 0 Then
+ For index = 0 To MovtosEntradaExA.Count - 1
+ link = String.Format("{1}", MovtosEntradaExA(index), FoliosEntradaExA(index))
+ Msg.AppendFormat("
Movimiento de Entrada Folio: {0}", link)
+ Next
+ End If
+
For index = 0 To MovtosSalidaDirecta.Count - 1
link = String.Format("{1}", MovtosSalidaDirecta(index), FoliosSalidaDirecta(index))
Msg.AppendFormat("
Movimiento de Salida Folio: {0}", link)
@@ -3355,6 +3373,45 @@ Partial Class Inventarios_RecepcionAlmacen
If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()
If ObjContaContPAQ IsNot Nothing Then ObjContaContPAQ.Dispose()
End Sub
+
+ Private Function GenerarMovimientoAlmacenVenta(CveAlmacen As Integer, CveConceptoAlmacen As Integer, CveVenta As Integer, CveMovimientoRelacionado As Integer, DtDetalle As DataTable, ObjInventario As ClsInventarios, ObjConta As ClsContabilidad, ObjContaContPAQ As ClsContPAQi, EsContabilizable As Boolean, Modulo As String) As MMovimientoAlmacen
+ Dim ErrorMovInv As Boolean = False
+ Dim Retorno As New MMovimientoAlmacen
+
+ Dim CveMovtoSalidaDirecta As Integer = -1
+ Dim FolioSalidaDirecta As Integer = -1
+
+ CveMovtoSalidaDirecta = ObjInventario.AddMovimiento(CveAlmacen, CveConceptoAlmacen, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1,
+ CveVenta, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, TipoCambio),
+ MovimientoFijo:=True, CveMovimientoRelacionado:=CveMovimientoRelacionado, Remision:=TxtRemision.Text, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:=Modulo)
+ FolioSalidaDirecta = ObjInventario.Folio
+
+ If Not CveMovtoSalidaDirecta > 0 Then
+ ErrorMovInv = True
+ End If
+
+ If Not ErrorMovInv AndAlso DtDetalle IsNot Nothing Then
+ For Each Dr As DataRow In DtDetalle.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovtoSalidaDirecta, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ End If
+
+ If Not ErrorMovInv AndAlso CveConceptoAlmacen = 3 Then
+ If Not GeneraPrePolizaSalidaEntregaDirecta(CveMovtoSalidaDirecta, ObjInventario, ObjConta, ObjContaContPAQ, EsContabilizable) Then
+ ErrorMovInv = True
+ End If
+ End If
+
+ If Not ErrorMovInv Then
+ Retorno.CveMovimiento = CveMovtoSalidaDirecta
+ Retorno.Folio = FolioSalidaDirecta
+ End If
+
+ Return Retorno
+ End Function
Private Sub GuardaImportacionFlete()
Dim CveMovimiento As Integer
Dim InvFolio As String = ""
@@ -4283,3 +4340,9 @@ Partial Class Inventarios_RecepcionAlmacen
End Class
+
+Public Class MMovimientoAlmacen
+ Public Property CveMovimiento As Integer
+ Public Property Folio As Integer
+
+End Class
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index ca3d32827..828e64803 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -9870,16 +9870,23 @@ Partial Class Ventas
ObjClientes.Dispose()
+ BtnEmitirImprimir.Text = "Facturar"
+
'REGISTRAR UNA ENTREGA DIRECTA
If TmpDT.COUNT("EntregaDirecta", "EntregaDirecta = 1") > 0 Then
trPaqueteriaOpciones.Visible = False
trPaqueteriOpcionesLabel.Visible = False
trPaqueteriaDirectaLabel.Visible = True
- End If
- BtnEmitirImprimir.Text = "Facturar"
- DdlTipoComprobante.SelectedValue = "Ing"
- DdlTipoComprobante.Enabled = False
+ DdlTipoComprobante.Items.Clear()
+ DdlTipoComprobante.Items.Insert(0, New ListItem("Ingresos", "Ing"))
+ DdlTipoComprobante.Items.Insert(1, New ListItem("Remisión", "Rem"))
+ DdlTipoComprobante.Enabled = True
+
+ Else
+ DdlTipoComprobante.SelectedValue = "Ing"
+ DdlTipoComprobante.Enabled = False
+ End If
Tab.ActiveTab = TabGenerales
TabGenerales.Enabled = True