|
|
|
|
@@ -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:<br/>")
|
|
|
|
|
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}<br/>", 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}<br/>", 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:<br/>")
|
|
|
|
|
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}<br/>", 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}<br/>", 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
|
|
|
|
|
|