diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index 74be2b92d..b8248e915 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -1240,7 +1240,14 @@ Public Class ClsInventarios
Return Retorno
End Function
-
+ '''
+ ''' Obtiene los valores para asignar a los movimientos virtuales
+ '''
+ ''' Debe ser un movimiento de Salida o Entrada de almacen (2,3,18)
+ '''
+ '''
+ ''' Cuando sea cancelacion/devolucion hay que mandar este dato que seria la salida de almacen
+ '''
Public Function GetMovimientosDetalleVirtual(CveMovimiento As Integer, CveEmpresa As Integer, Optional CveCompra As Integer = -1, Optional CveMovimientoRelacionado As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_MovimientosDetalleVirtualGet")
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index c0867da74..2cf57f886 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -4537,6 +4537,13 @@ Namespace Modelos
End If
End If
+
+ 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
+ If Not GeneraMovimientosVirtuales(CveVenta, CveMovimientoDevolucion, RowMovimiento("CveMovimiento").ToString().ToEntero(), ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
+
'AGREGA BITACORA A VENTA
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then
Dim MensajeBitacora = "Devuelta"
@@ -4580,12 +4587,6 @@ Namespace Modelos
Next
End If
- 'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
- If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
- End If
-
'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then
@@ -4809,41 +4810,36 @@ Namespace Modelos
Return Retorno
End Function
- Private Function GeneraMovimientosVirtuales(CveVenta As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
+ Private Function GeneraMovimientosVirtuales(CveVenta As Integer, CveMovimiento As Integer, CveMovimientoRelacionado As Integer, ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False
Try
If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
- Dim CveMovimientoSalida As Integer = -1
- Dim CveAlmacenVirutal As Integer = -1
+ Dim CveMovimientoVirtual As Integer = -1
+ Dim ValidaVirtual = True
+ Dim DtPSVirtual As New DataTable("DtTamanios")
- Dim DtMovtosDev As DataTable = Nothing
-
- If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 24 AND CveConcepto = 3 AND CveVenta > 0")
- CveMovimientoSalida = RowMovimiento("CveMovimiento").ToString().ToEntero()
- CveAlmacenVirutal = RowMovimiento("CveAlmacen").ToString().ToEntero()
- Else
- ErrorCancelar = True
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoRelacionado) Then
+ DtPSVirtual = ObjInventario.DtResultados
End If
- If CveMovimientoSalida > 0 Then
- 'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- DtMovtosDev = ObjInventario.DtResultados.Copy()
- Else
- ErrorCancelar = True
- End If
+ Dim CveConceptoMovimientoVirtual As Integer = 36
+ Dim CveAlmacenVirtual As Integer = -1
+ Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
- If DtMovtosDev IsNot Nothing AndAlso DtMovtosDev.Rows.Count > 0 Then
- Dim CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenVirutal, 18, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, CveMovimientoRelacionado:=CveMovimientoSalida)
+ CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
- For Each RowUsado As DataRow In DtMovtosDev.Rows
+ If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
+ CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1,
+ Observaciones:="", Guia:="", CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="Modelos/CancelarVirtual")
+
+ If CveMovimientoVirtual > 0 Then
+ For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
ErrorCancelar = True
Exit For
End If
@@ -4851,7 +4847,14 @@ Namespace Modelos
Else
ErrorCancelar = True
End If
+ Else
+ If ValidaVirtual Then
+ ErrorCancelar = True
+ End If
+ End If
+ If DtPSVirtual.Rows.Count = 0 AndAlso ValidaVirtual = True Then
+ ErrorCancelar = True
End If
End If
Catch ex As Exception
@@ -4861,6 +4864,7 @@ Namespace Modelos
Return Not ErrorCancelar
End Function
+
Private Function GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimiento As Integer, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, ByRef DtDevRem As DataTable, ByRef ListaRemisionesCancelar As List(Of Integer)) As Boolean
Dim ErrorCancelar As Boolean = False
diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb
index 30413d05c..b838c9e68 100644
--- a/Inventarios/RecepcionEntrega.aspx.vb
+++ b/Inventarios/RecepcionEntrega.aspx.vb
@@ -2355,37 +2355,35 @@ Partial Class Inventarios_RecepcionEntrega
' COMIENZA: VIRTUAL
If Not ErrorMovInv AndAlso TipoDocto.Contiene("Ing", "Dev") AndAlso UsuarioActual.Empresa.Funcionalidad(573) = "1" AndAlso CveMovimiento > 0 Then
Dim DtPSVirtual As New DataTable("DtTamanios")
-
- If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
- DtPSVirtual = ObjInventario.DtResultados
- End If
-
- '
- 'DtPSVirtual.Columns.Add(New DataColumn("CvePS", GetType(Integer)))
- 'DtPSVirtual.Columns.Add(New DataColumn("Cantidad", GetType(Decimal)))
- 'DtPSVirtual.Columns.Add(New DataColumn("PU", GetType(Decimal)))
- 'DtPSVirtual.Columns.Add(New DataColumn("CveUM", GetType(Integer)))
-
- 'Dim DtTamanios As DataTable = Nothing
-
- 'If ObjAcumuladores.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
- ' DtTamanios = ObjAcumuladores.DtResultados.Copy()
- 'End If
-
Dim CveConceptoMovimientoVirtual As Integer = -1
Dim CveAlmacenVirtual As Integer = -1
Dim CveMovimientoRelacionadoVirtual As Integer = CveMovimiento
Dim ValidaVirtual As Boolean = False
- CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
If TipoMovimiento = 1 Then
CveConceptoMovimientoVirtual = 37
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ DtPSVirtual = ObjInventario.DtResultados
+ End If
+
ElseIf TipoMovimiento = 2 Then
ValidaVirtual = True
CveConceptoMovimientoVirtual = 36
+
+ If ObjInventario.GetInv_Mov(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
+ Dim RowMovimiento As DataRow = ObjInventario.DtResultados.FiltroPrimero("CvePS IS NULL AND CveTipoAlmacen = 1 AND CveConcepto IN(3,40) AND CveVenta > 0")
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=RowMovimiento("CveMovimiento").ToString().ToEntero()) Then
+ DtPSVirtual = ObjInventario.DtResultados
+ End If
+ Else
+ ErrorMovInv = True
+ End If
End If
+ CveAlmacenVirtual = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 AndAlso CveAlmacenVirtual > 0 AndAlso CveConceptoMovimientoVirtual > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, CveConceptoMovimientoVirtual, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveMovimientoRelacionado:=CveMovimientoRelacionadoVirtual, Modulo:="RE/G6")
@@ -2395,7 +2393,7 @@ Partial Class Inventarios_RecepcionEntrega
For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Double = RowUsado("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowUsado("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowUsado("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1) Then
diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb
index 0a27020c6..0a6073f34 100644
--- a/Inventarios/TraspasoAlmacen.aspx.vb
+++ b/Inventarios/TraspasoAlmacen.aspx.vb
@@ -665,105 +665,8 @@ Partial Class Inventarios_TraspasoAlmacen
End If
End If
- 'VALIDA ALMACEN DISTINTA SUCURSAL DEBE SER TRANSITORIO
- If Not UsuarioActual.CveEmpresa.Contiene(7, 140) Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
- If Not ChkTransitorio.Checked Then
- Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
- Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
-
- If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero <> 21 Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
- If CveSucursalOrigen <> CveSucursalDestino Then
- Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia)
- RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
- ChkTransitorio.Checked = True
- If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);", "MuestraDivTransitorio")
- Exit Sub
- End If
- End If
- End If
- End If
-
- 'VALIDA QUE TENGA MOVTOS
- If Not GvDatos.Rows.Count > 0 Then
- Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia)
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Exit Sub
- End If
-
- 'VALIDA ESTATUS EXISTENCIA
- For Each dr As DataRow In DtMovimientos.Rows
- If dr("EstatusExistencia").ToString = "-1" Then
- Alert("Tiene que rectificar los movimientos con error.", TipoMensaje.MsgError)
- If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);")
- Exit Sub
- End If
- Next
-
- Dim ObjInventario As New ClsInventarios
-
- 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN
- Dim ErrorExistencia = False
- Dim TextoExistencia As StringBuilder = New StringBuilder
- Dim Existencia As Double
- TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
")
- If Not CargadoDeMov Then
-
- For Each dr As DataRow In DtMovimientos.Rows
- Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString), PendientePorSurtir:=1)
- Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}")
- 'DtMovimientos.SUM("Cantidad", String.Format("CvePS = {0}", dr("CvePS").ToString.ToEntero))
-
- If Existencia < 0 Then
- ErrorExistencia = True
- dr("EstatusExistencia") = "-1"
- dr("Cantidad") = Existencia
- 'If Existencia <= 0 Then
- TextoExistencia.AppendFormat("- #{0} {1}
", dr("No").ToString, dr("PS").ToString)
- 'Else
- 'Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgError)
- 'End If
- End If
- Next
- Else
- For Each gvr As GridViewRow In GvDatos.Rows
- Existencia = ObjInventario.GetExistenciasPS(gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(gvr.DataKey("SerieLote").ToString = "", "-1", gvr.DataKey("SerieLote").ToString), PendientePorSurtir:=1)
- Existencia -= gvr.FCTextBox("TxtCantidad2").Text.ToEntero
- If Existencia < 0 Then
- ErrorExistencia = True
-
- gvr.FCTextBox("TxtCantidad2").Text = (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero).ToString
- TextoExistencia.AppendFormat("- #{0} {1}
", gvr.DataKey("No").ToString, gvr.DataKey("PS").ToString)
- End If
- Next
- End If
-
- If ErrorExistencia Then
- Alert(TextoExistencia.ToString, TipoMensaje.MsgError)
- RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
- ObjInventario.Dispose()
- Exit Sub
- End If
-
- Dim TotalCantidad As Decimal = DtMovimientos.SUMD("Cantidad")
- If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then
- If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then
- Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia)
- Exit Sub
- End If
- End If
-
-
- Dim TipoAlmacenOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}").ToEntero
- Dim TipoAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero
-
- ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
- 'If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
- ' ObjInventario.Dispose()
- ' 'es consumo interno
- ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
- 'End If
-
'Inicia la transacción
+ Dim ObjInventario As New ClsInventarios
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim CveMovimientoSalida = 0
Dim CveMovimientoEntrada = 0
@@ -781,188 +684,298 @@ Partial Class Inventarios_TraspasoAlmacen
Dim TextoError = ""
Dim TipoMovimientoSalida As Integer = 26 'If(ChkTransitorio.Checked, 26, If(TipoAlmacenOrigen = 24, 26, 26))
- 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN
- CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
+ Dim ErrorExistencia = False
+ Dim TextoExistencia As StringBuilder = New StringBuilder
+
+ Try
+ 'VALIDA ALMACEN DISTINTA SUCURSAL DEBE SER TRANSITORIO
+ If Not UsuarioActual.CveEmpresa.Contiene(7, 140) Then '[IPP] EMPRESA VIGILANCIA NO OCUPA TRANSITORIOS - TIENEN MIL SUCURSALES Xd
+ If Not ChkTransitorio.Checked Then
+ Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
+ Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
+
+ If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero <> 21 Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
+ If CveSucursalOrigen <> CveSucursalDestino Then
+ Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia)
+ RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
+ ChkTransitorio.Checked = True
+ If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);", "MuestraDivTransitorio")
+ Exit Sub
+ End If
+ End If
+ End If
+ End If
+
+ 'VALIDA QUE TENGA MOVTOS
+ If Not GvDatos.Rows.Count > 0 Then
+ Alert("No hay movimientos para el traspaso", TipoMensaje.MsgAdvertencia)
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Exit Sub
+ End If
+
+ 'VALIDA ESTATUS EXISTENCIA
+ For Each dr As DataRow In DtMovimientos.Rows
+ If dr("EstatusExistencia").ToString = "-1" Then
+ Alert("Tiene que rectificar los movimientos con error.", TipoMensaje.MsgError)
+ If ChkTransitorio.Checked Then RegistraScript("$('#DivTransitorio').show(200);")
+ Exit Sub
+ End If
+ Next
+
+
+
+ 'VALIDA LA EXISTENCIA DEL ALMACEN DE ORIGEN
+
+ Dim Existencia As Double
+ TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
")
+ If Not CargadoDeMov Then
+
+ For Each dr As DataRow In DtMovimientos.Rows
+ Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString), PendientePorSurtir:=1)
+ Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}")
+ 'DtMovimientos.SUM("Cantidad", String.Format("CvePS = {0}", dr("CvePS").ToString.ToEntero))
+
+ If Existencia < 0 Then
+ ErrorExistencia = True
+ dr("EstatusExistencia") = "-1"
+ dr("Cantidad") = Existencia
+ 'If Existencia <= 0 Then
+ TextoExistencia.AppendFormat("- #{0} {1}
", dr("No").ToString, dr("PS").ToString)
+ 'Else
+ 'Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgError)
+ 'End If
+ End If
+ Next
+ Else
+ For Each gvr As GridViewRow In GvDatos.Rows
+ Existencia = ObjInventario.GetExistenciasPS(gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(gvr.DataKey("SerieLote").ToString = "", "-1", gvr.DataKey("SerieLote").ToString), PendientePorSurtir:=1)
+ Existencia -= gvr.FCTextBox("TxtCantidad2").Text.ToEntero
+ If Existencia < 0 Then
+ ErrorExistencia = True
+
+ gvr.FCTextBox("TxtCantidad2").Text = (Existencia + gvr.FCTextBox("TxtCantidad2").Text.ToEntero).ToString
+ TextoExistencia.AppendFormat("- #{0} {1}
", gvr.DataKey("No").ToString, gvr.DataKey("PS").ToString)
+ End If
+ Next
+ End If
+
+ If ErrorExistencia Then
+ Alert(TextoExistencia.ToString, TipoMensaje.MsgError)
+ RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
+ ObjInventario.Dispose()
+ Exit Sub
+ End If
+
+ Dim TotalCantidad As Decimal = DtMovimientos.SUMD("Cantidad")
+ If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then
+ If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then
+ Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+ End If
+
+
+ Dim TipoAlmacenOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}").ToEntero
+ Dim TipoAlmacenDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero
+
+ ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
+ 'If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
+ ' ObjInventario.Dispose()
+ ' 'es consumo interno
+ ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
+ 'End If
+
+
+
+ 'AGREGAMOS LA SALIDA DEL ALMACEN ORIGEN
+ CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigen.SelectedValue.ToEntero, TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, GastoIndirecto:=If(ChkTransitorio.Checked And TxtGastoIndirecto.Text.ToDouble > 0, TxtGastoIndirecto.Text, "-1").ToDouble,
CveChofer:=If(ChkTransitorio.Checked, DdlChofer.SelectedValue.ToEntero, -1), Placa:=If(ChkTransitorio.Checked, TxtPlaca.Text.Trim, "-1"), FechaEntrega:=If(ChkTransitorio.Checked, TxtFechaEntrega.Text.Trim.ToDateTime.ToString("dd/MM/yyyy"), "-1"), EspecifUnidad:=If(ChkTransitorio.Checked, TxtEspecifUnidad.Text.Trim, "-1"),
ResponsableCarga:=If(ChkTransitorio.Checked, TxtResponsableCarga.Text.Trim, "-1"), ResponsableRecibio:=If(ChkTransitorio.Checked, TxtResponsableRecibio.Text.Trim, "-1"), Identificacion:=If(ChkTransitorio.Checked, TxtIdentificacion.Text.Trim, "-1"), Domicilio:=If(ChkTransitorio.Checked, TxtDomicilio.Text.Trim, "-1"),
Telefono:=If(ChkTransitorio.Checked, TxtTelefono.Text.Trim, "-1"), Ciudad:=If(ChkTransitorio.Checked, TxtCiudad.Text.Trim, "-1"), Licencia:=If(ChkTransitorio.Checked, TxtLicencia.Text.Trim, "-1"), Modulo:="TA/G2")
- FolioSalida = ObjInventario.Folio
- Folio = ObjInventario.Folio
- If CveMovimientoSalida <= 0 Then
- TextoError = "Ocurrió un error al generar el movimiento de salida"
- ErrorMovInv = True
- Else
- Dim Cont As Integer = 0
- For Each Dr As DataRow In DtMovimientos.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de salida"
- Exit For
- Else
- If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
- For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
- If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- End If
- End If
- Cont += 1
- Next
- End If
-
-
- 'VIRTUAL SALIDA
- If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
-
- Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenOrigen.SelectedValue}").ToEntero()
-
- Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
-
- CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtual, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/V", CveMovimientoRelacionado:=CveMovimientoSalida)
- FolioVirtualSalida = ObjInventario.Folio
- Dim dtvirtual As DataTable = Nothing
-
- If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
- For Each RowVirtual As DataRow In dtvirtual.Rows
- Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
- Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
- Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualSalida, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- Else
+ FolioSalida = ObjInventario.Folio
+ Folio = ObjInventario.Folio
+ If CveMovimientoSalida <= 0 Then
+ TextoError = "Ocurrió un error al generar el movimiento de salida"
ErrorMovInv = True
+ Else
+ Dim Cont As Integer = 0
+ For Each Dr As DataRow In DtMovimientos.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de salida"
+ Exit For
+ Else
+ If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
+ For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
+ If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
+ End If
+ Cont += 1
+ Next
End If
- End If
- 'AGREGAMOS LA ENTRADA
- If Not ChkTransitorio.Checked Then 'SI NO ES TRANSITORIO SE HACE LA RECEPCION DE INMEDIATO
- If Not ErrorMovInv Then
- Dim TipoMovimientoEntrada = 27
- AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
- CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
+
+ 'VIRTUAL SALIDA
+ If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+
+ Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenOrigen.SelectedValue}").ToEntero()
+
+ Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, 24).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoVirtualSalida = ObjInventario.AddMovimiento(CveAlmacenVirtual, 37, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/V", CveMovimientoRelacionado:=CveMovimientoSalida)
+ FolioVirtualSalida = ObjInventario.Folio
+ Dim dtvirtual As DataTable = Nothing
+
+ If ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
+ For Each RowVirtual As DataRow In dtvirtual.Rows
+ Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
+ Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualSalida, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ dtvirtual.Dispose()
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+
+ 'AGREGAMOS LA ENTRADA
+ If Not ChkTransitorio.Checked Then 'SI NO ES TRANSITORIO SE HACE LA RECEPCION DE INMEDIATO
+ If Not ErrorMovInv Then
+ Dim TipoMovimientoEntrada = 27
+ AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
+ CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G3")
- FolioEntrada = ObjInventario.Folio
- If CveMovimientoEntrada <= 0 Then
- TextoError = "Ocurrió un error al generar el movimiento de entrada"
- ErrorMovInv = True
- Else
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- Dim Cont As Integer = 0
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de entrada"
- Exit For
- Else
- If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
- For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
- If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- End If
- End If
- Cont += 1
- Next
- End If
- End If
- 'VIRTUAL ENTRADA
- If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
- Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero()
-
- Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero()
-
- CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S3")
- FolioVirtualEntrada = ObjInventario.Folio
- Dim dtvirtual As DataTable = Nothing
-
- If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
- For Each RowVirtual As DataRow In dtvirtual.Rows
- Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
- Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
- Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
- ErrorMovInv = True
- Exit For
- End If
- Next
- Else
+ FolioEntrada = ObjInventario.Folio
+ If CveMovimientoEntrada <= 0 Then
+ TextoError = "Ocurrió un error al generar el movimiento de entrada"
ErrorMovInv = True
+ Else
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ Dim Cont As Integer = 0
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, Observaciones:=Dr("Observaciones").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de entrada"
+ Exit For
+ Else
+ If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
+ For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows
+ If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
+ End If
+ Cont += 1
+ Next
+ End If
+ End If
+ 'VIRTUAL ENTRADA
+ If UsuarioActual.Empresa.Funcionalidad(573) = "1" Then
+ Dim CveSubProyecto As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen= {DdlAlmacenDestino.SelectedValue}").ToEntero()
+
+ Dim CveAlmacenVirtual As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $" CveTipoAlmacen =24 AND CveSubProyecto={CveSubProyecto}").ToEntero()
+
+ CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S3")
+ FolioVirtualEntrada = ObjInventario.Folio
+ Dim dtvirtual As DataTable = Nothing
+
+ If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
+ For Each RowVirtual As DataRow In dtvirtual.Rows
+ Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
+ Dim CantidadUsado As Double = RowVirtual("Cantidad").ToString().ToDouble()
+ Dim PU As Decimal = RowVirtual("PUOriginal").ToString().ToDecimal()
+ Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ ErrorMovInv = True
+ Exit For
+ End If
+ Next
+ dtvirtual.Dispose()
+ Else
+ ErrorMovInv = True
+ End If
+ End If
+ Dim Concepto As String = TxtObservaciones.Text
+ If Concepto = "" Then Concepto = "Traspaso"
+ 'AGREGAMOS PREPOLIZAS TRASPASO DIRECTO:
+ If Not ErrorMovInv Then
+ Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+
+ Dim resultado As DataTable = ObjInventario.DtResultados
+ Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
+ Dim IdCtaContableSalida As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue.ToEntero)).ToEntero
+ Dim IdCtaContableEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenDestino.SelectedValue.ToEntero)).ToEntero
+ Dim Contabilizable As Boolean = True
+
+ If IdCtaContableSalida = IdCtaContableEntrada Then Contabilizable = False
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ ErrorMovInv = True
+ End If
+
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableEntrada, -1, CveMovimientoAlmacen:=CveMovimientoEntrada, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ ErrorMovInv = True
+ End If
+ End If
End If
End If
- Dim Concepto As String = TxtObservaciones.Text
- If Concepto = "" Then Concepto = "Traspaso"
- 'AGREGAMOS PREPOLIZAS TRASPASO DIRECTO:
+ Else
If Not ErrorMovInv Then
+ Dim Concepto As String = TxtObservaciones.Text
+ If Concepto = "" Then Concepto = "Traspaso"
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim resultado As DataTable = ObjInventario.DtResultados
Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
- Dim IdCtaContableSalida As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenOrigen.SelectedValue.ToEntero)).ToEntero
- Dim IdCtaContableEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenDestino.SelectedValue.ToEntero)).ToEntero
- Dim Contabilizable As Boolean = True
+ Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorio.SelectedValue.ToEntero)).ToEntero
- If IdCtaContableSalida = IdCtaContableEntrada Then Contabilizable = False
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableSalida, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
ErrorMovInv = True
End If
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContableEntrada, -1, CveMovimientoAlmacen:=CveMovimientoEntrada, Contabilizable:=Contabilizable, ImporteMX:=importe) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
ErrorMovInv = True
End If
End If
End If
End If
- Else
- If Not ErrorMovInv Then
- Dim Concepto As String = TxtObservaciones.Text
- If Concepto = "" Then Concepto = "Traspaso"
- Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/TraspasoAlmacen", 53, 0, 0, 1, Fecha, Concepto, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
-
- Dim resultado As DataTable = ObjInventario.DtResultados
- Dim importe As Decimal = resultado.SUMD("Total").RoundSQL
- Dim IdCtaContable As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", String.Format("CveAlmacen = {0}", DdlAlmacenTransitorio.SelectedValue.ToEntero)).ToEntero
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, importe, TxtObservaciones.Text, 68, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
- ErrorMovInv = True
- End If
-
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, importe, TxtObservaciones.Text, 289, TxtObservaciones.Text, Fecha, IdCtaContable, -1, CveMovimientoAlmacen:=CveMovimientoSalida, ImporteMX:=importe, Contabilizable:=False) Then
- ErrorMovInv = True
- End If
- End If
- End If
- End If
- ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
- ''CONSUMO INTERNO
- 'If Not ErrorMovInv Then
- ' If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
- ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
- ' End If
- 'End If
+ ''[IPP-1Noviembre2018] SE COMENTA PORQUE NO TIENE NI PIES NI CABEZA. LE FALTA DESARROLLO
+ ''CONSUMO INTERNO
+ 'If Not ErrorMovInv Then
+ ' If (TipoAlmacenOrigen = 14 Or TipoAlmacenDestino = 14) And TipoAlmacenOrigen <> TipoAlmacenDestino Then
+ ' ConsumoInterno(TipoAlmacenOrigen, TipoAlmacenDestino)
+ ' End If
+ 'End If
+
+ Catch ex As Exception
+ ErrorMovInv = True
+ OnError("Ocurrió un error al realizar el traspaso", ex)
+ End Try
If Not ErrorMovInv Then
DtTraslado = DtMovimientos.Copy
@@ -1614,7 +1627,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim dtvirtual As DataTable = Nothing
If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoEntrada, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoSalida) Then
- dtvirtual = ObjInventario.DtResultados
+ dtvirtual = ObjInventario.DtResultados.Copy()
For Each RowVirtual As DataRow In dtvirtual.Rows
Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
@@ -1627,6 +1640,7 @@ Partial Class Inventarios_TraspasoAlmacen
Exit For
End If
Next
+ dtvirtual.Dispose()
Else
TextoError = "No se pudo registrar el movimiento virtual"
ErrorMovInv = True
@@ -1737,7 +1751,7 @@ Partial Class Inventarios_TraspasoAlmacen
'REGISTRA LA SALIDA Y ENTRADA (TRASPASO)
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate
-
+ Dim CveMovimientoReferencia As Integer = -1
'AGREGAMOS LA ENTRADA
CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1")
@@ -1751,6 +1765,7 @@ Partial Class Inventarios_TraspasoAlmacen
Dim CveMovimientoDetalleEntrada As Integer = 0
Dim Cont As Integer = 0
For Each gvr As GridViewRow In GvDatosRecepcion.Rows
+ CveMovimientoReferencia = gvr.DataKey("CveMovimiento").ToEntero()
Dim dataRowAux As DataRow = Dtt.FiltroPrimero(String.Format(" CveMovimientoDetalle = '{0}'", If(gvr.DataKey("CveMovimientoDetalle").ToString = "", "0", gvr.DataKey("CveMovimientoDetalle").ToString)))
Dim cantidadDisponibleValidacion As Decimal = 0
@@ -1825,16 +1840,16 @@ Partial Class Inventarios_TraspasoAlmacen
If CveAlmacenVirtual > 0 Then
- CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 2, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="TA/S2")
+ CveMovimientoVirtualEntrada = ObjInventario.AddMovimiento(CveAlmacenVirtual, 36, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/S2")
FolioVirtualEntrada = ObjInventario.Folio
Dim dtvirtual As DataTable = Nothing
- If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- dtvirtual = ObjInventario.DtResultados
+ If CveMovimientoVirtualEntrada > 0 AndAlso ObjInventario.GetMovimientosDetalleVirtual(CveMovimientoSalida, UsuarioActual.CveEmpresa, CveMovimientoRelacionado:=CveMovimientoReferencia) Then
+ dtvirtual = ObjInventario.DtResultados.Copy()
For Each RowVirtual As DataRow In dtvirtual.Rows
Dim CvePS = RowVirtual("CvePS").ToString().ToEntero()
Dim CantidadUsado As Decimal = RowVirtual("Cantidad").ToString().ToDecimal()
- Dim PU As Decimal = RowVirtual("PU").ToString().ToDecimal()
+ Dim PU As Decimal = RowVirtual("PUOriginal").ToString().ToDecimal()
Dim CveUM As Integer = RowVirtual("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtualEntrada, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
@@ -1842,6 +1857,7 @@ Partial Class Inventarios_TraspasoAlmacen
Exit For
End If
Next
+ dtvirtual.Dispose()
Else
TextoError = "No se pudo registrar el movimiento virtual"
ErrorMovInv = True