From 9e8b2c8eb07c17660df980c901423ea598116386 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 11 Oct 2022 00:41:58 -0700 Subject: [PATCH] Correcion de ajuste de inventario --- Inventarios/EntradasSalidas.aspx.vb | 101 +++++++++++++++++----------- 1 file changed, 63 insertions(+), 38 deletions(-) diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index 52ee88524..26a9a7903 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -4260,8 +4260,13 @@ Partial Class Inventarios_EntradasSalidas Dim ObjInventario As New ClsInventarios Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) - Dim CveMovimientoEntrada As Integer - Dim CveMovimientoSalida As Integer + + Dim CveMovimientoEntrada As Integer = -1 + Dim FolioEntrada As Integer = -1 + + Dim CveMovimientoSalida As Integer = -1 + Dim FolioSalida As Integer = -1 + Dim ErrorMovInv As Boolean = False Dim Mensaje As String = "" Dim ValorEntrada As Decimal = 0 @@ -4289,17 +4294,18 @@ Partial Class Inventarios_EntradasSalidas 'MOVIMIENTO DE ENTRADA If DtMovimientosEntradaInvFisico.Rows.Count > 0 Then - Dim FolioEntrada As Integer = ObjInventario.GetFolioSiguiente(32, UsuarioActual.CveEmpresa) + 'FolioEntrada = ObjInventario.GetFolioSiguiente(32, UsuarioActual.CveEmpresa) CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 32, 1, Fecha, FolioEntrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ1") + FolioEntrada = ObjInventario.Folio Else CveMovimientoEntrada = -1 End If 'MOVIMIENTO DE SALIDA If DtMovimientosSalidaInvFisico.Rows.Count > 0 Then - Dim FolioSalida As Integer = ObjInventario.GetFolioSiguiente(34, UsuarioActual.CveEmpresa) + 'FolioSalida = ObjInventario.GetFolioSiguiente(34, UsuarioActual.CveEmpresa) CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacen, 34, 1, Fecha, FolioSalida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveMovimientoRelacionado:=CveMovimientoEntrada, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ2") - + FolioSalida = ObjInventario.Folio End If 'Registro PrePoliza @@ -4446,7 +4452,7 @@ Partial Class Inventarios_EntradasSalidas End If Dim RetornoVirtual As MMovimientoVirtual = Nothing - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then + If Not ErrorMovInv AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then If CveMovimientoSalida > 0 Then RetornoVirtual = GenerarMovimientoVirtual(CveMovimientoSalida, ObjInventario) If RetornoVirtual IsNot Nothing Then ErrorMovInv = RetornoVirtual.TieneError @@ -4461,9 +4467,17 @@ Partial Class Inventarios_EntradasSalidas ObjInventario.Commit() ' aplica los movimientos insertados Dim Msg As New StringBuilder - Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", ObjInventario.Folio) - If CveMovimientoEntrada > 0 Then Msg.AppendFormat("

Imprimir Movimiento Entrada ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) - If CveMovimientoSalida > 0 Then Msg.AppendFormat("

Imprimir Movimiento Salida ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) + Msg.AppendFormat("
El Movimiento se registro correctamente.") + + If CveMovimientoEntrada > 0 Then + Msg.AppendFormat("

Movimiento de entrada: {0}", FolioEntrada, CveMovimientoEntrada) + Msg.AppendFormat("
Imprimir Movimiento Entrada ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) + End If + + If CveMovimientoSalida > 0 Then + Msg.AppendFormat("

Movimiento de salida: {0}", FolioSalida, CveMovimientoSalida) + Msg.AppendFormat("
Imprimir Movimiento Salida ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) + End If Alert(Msg.ToString, TipoMensaje.MsgInformacion) RegistraScript("playsonidito('beep-07.wav')") @@ -4524,9 +4538,11 @@ Partial Class Inventarios_EntradasSalidas If DtMovimientosCambioVigencias.Rows.Count > 0 Then FolioSalida = ObjInventario.GetFolioSiguiente(47, UsuarioActual.CveEmpresa) CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacen, 47, 1, Fecha, FolioSalida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObsCambioVigencia.Text.Trim, Modulo:="ES/CV1") + FolioSalida = ObjInventario.Folio FolioEntrada = ObjInventario.GetFolioSiguiente(48, UsuarioActual.CveEmpresa) CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 48, 1, Fecha, FolioEntrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObsCambioVigencia.Text.Trim, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="ES/CV2") + FolioEntrada = ObjInventario.Folio End If @@ -4540,40 +4556,42 @@ Partial Class Inventarios_EntradasSalidas End If 'VALIDA EXISTENCIAS SALIDA E INSERTA DETALLES - For Each Dr As DataRow In DtMovimientosCambioVigencias.Rows - If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1) >= Dr("Cantidad").ToString.ToDouble Then - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, - Dr("PU").ToString.ToDecimal, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, - Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then - Mensaje = "Ocurrió un error al guardar los movimientos de salida" - ErrorMovInv = True - Exit For - Else - 'OBTIENE EL COSTO DE LA SALIDA - If Not ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa, CveMovimientoDetalle:=ObjInventario.CveMovimientoDetalle) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + If Not ErrorMovInv Then + For Each Dr As DataRow In DtMovimientosCambioVigencias.Rows + If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1) >= Dr("Cantidad").ToString.ToDouble Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, + Dr("PU").ToString.ToDecimal, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, + Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then Mensaje = "Ocurrió un error al guardar los movimientos de salida" ErrorMovInv = True Exit For Else - Dim PUEntrada As Decimal = ObjInventario.DtResultados.Rows(0)("PU").ToString().ToDecimal() - ImporteConcepto += PUEntrada * Dr("Cantidad").ToString.ToDecimal() - - 'INSERTA EL MOVIMIENTO DE ENTRADA - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUMVigencia").ToString.ToEntero, Dr("CvePSVigencia").ToString.ToEntero, PUEntrada, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, - Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then - Mensaje = "Ocurrió un error al guardar los movimientos de entrada" + 'OBTIENE EL COSTO DE LA SALIDA + If Not ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa, CveMovimientoDetalle:=ObjInventario.CveMovimientoDetalle) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + Mensaje = "Ocurrió un error al guardar los movimientos de salida" ErrorMovInv = True Exit For + Else + Dim PUEntrada As Decimal = ObjInventario.DtResultados.Rows(0)("PU").ToString().ToDecimal() + ImporteConcepto += PUEntrada * Dr("Cantidad").ToString.ToDecimal() + + 'INSERTA EL MOVIMIENTO DE ENTRADA + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUMVigencia").ToString.ToEntero, Dr("CvePSVigencia").ToString.ToEntero, PUEntrada, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, + Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then + Mensaje = "Ocurrió un error al guardar los movimientos de entrada" + ErrorMovInv = True + Exit For + End If End If End If + Else + Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS")) + RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") + ErrorMovInv = True + Exit For End If - Else - Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS")) - RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") - ErrorMovInv = True - Exit For - End If - Next + Next + End If 'CONTABILIZAR MOVIMIENTOS If Not ErrorMovInv Then @@ -4587,10 +4605,17 @@ Partial Class Inventarios_EntradasSalidas ObjInventario.Commit() ' aplica los movimientos insertados Dim Msg As New StringBuilder - Msg.AppendFormat("
El Movimiento de entrada se registró con el Folio: {1}", CveMovimientoEntrada, FolioEntrada) - If CveMovimientoEntrada > 0 Then Msg.AppendFormat("
Imprimir Movimiento Entrada ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) - Msg.AppendFormat("

El Movimiento de salida se registró con el Folio: {1}", CveMovimientoSalida, FolioSalida) - If CveMovimientoSalida > 0 Then Msg.AppendFormat("
Imprimir Movimiento Salida ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) + + If CveMovimientoEntrada > 0 Then + Msg.AppendFormat("
El Movimiento de entrada se registró con el Folio: {1}", CveMovimientoEntrada, FolioEntrada) + Msg.AppendFormat("
Imprimir Movimiento Entrada ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) + End If + + If CveMovimientoSalida > 0 Then + Msg.AppendFormat("

El Movimiento de salida se registró con el Folio: {1}", CveMovimientoSalida, FolioSalida) + Msg.AppendFormat("
Imprimir Movimiento Salida ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) + End If + Alert(Msg.ToString, TipoMensaje.MsgInformacion) RegistraScript("playsonidito('beep-07.wav');$('#DivModalCambiarVigencias').modal('hide');")