From 3b8bf96871c179a85548d79d3e9fff6813afe86b Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 2 Apr 2025 17:37:19 -0700 Subject: [PATCH] -- --- OP/OP.aspx.vb | 167 ++++++++++++++++---------------------------------- 1 file changed, 53 insertions(+), 114 deletions(-) diff --git a/OP/OP.aspx.vb b/OP/OP.aspx.vb index 4e48eecba..3053d6962 100644 --- a/OP/OP.aspx.vb +++ b/OP/OP.aspx.vb @@ -822,7 +822,7 @@ Partial Class OP_OP UpModalFinalizar.Update() End Sub - Protected Sub BtnGuardarFinalizarOP_Click(sender As Object, e As EventArgs) Handles BtnGuardarFinalizarOP.Click + Protected Sub BtnGuardarFinalizarOP_Click(sender As Object, e As EventArgs) If DdlAlmacenOrigenSalidaMP.SelectedValue = "-1" OrElse DdlAlmacenTerminado.SelectedValue = "-1" Then Alert("Selecciona ambos almacenes.", TipoMensaje.MsgAdvertencia) Exit Sub @@ -840,9 +840,8 @@ Partial Class OP_OP 'Dim FolioVirtualEntrada As Integer = 0 'Dim FolioVirtualSalida As Integer = 0 Dim FolioEntrada As Integer = 0 - Dim Fecha As DateTime = Txtfecha.Text.ToDate + Dim Fecha As DateTime = NowADS() Dim ErrorMovInv As Boolean = False - Dim ErrorAC As Boolean = False Dim TextoError As String = "" Dim TipoMovimientoSalida As Integer = 8 Dim CveConceptoEntrada As Integer = 9 @@ -852,132 +851,72 @@ Partial Class OP_OP ObjInventario.IniciaTransacSQL() Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) + Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL()) Try - CveMovimientoSalida = ObjInventario.AddMovimiento( - CveAlmacen:=DdlAlmacenOrigenSalidaMP.SelectedValue.ToEntero(), - CveConcepto:=TipoMovimientoSalida, - CveMoneda:=1, - FechaMovto:=Fecha, - tFolio:=-1, - CveUsuario:=UsuarioActual.CveUsuario, - CveEmpresa:=UsuarioActual.CveEmpresa, - CveCompra:=-1, - CveVenta:=-1, - CveSubProyecto:=-1, - CveActivoFijo:=-1, - Observaciones:="Finalización OP #" & LblFolio.Text, - CveAlmacenDestino:=DdlAlmacenTerminado.SelectedValue.ToEntero(), - Modulo:="OP/FinalizarOPSalida" - ) + CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacenOrigenSalidaMP.SelectedValue.ToEntero(), TipoMovimientoSalida, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Finalización OP #" & LblFolio.Text, Modulo:="OP/FinalizarOPSalida") + If CveMovimientoSalida > 0 Then + For Each rowMP As DataRow In DtMP.Select("Tipo = 'MP'") - For Each rowMP As DataRow In DtMP.Select("Tipo = 'MP'") - If Not ObjInventario.AddMovimientoDetalle( - CveMovimientoSalida, - rowMP("Cantidad").ToString.ToDecimal(), - rowMP("CveUMMateriaPrima").ToString.ToEntero(), - rowMP("CvePSMateriaPrima").ToString.ToEntero(), - 1 - ) Then - Throw New Exception("Error al agregar detalle de MP") + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, rowMP("Cantidad").ToString.ToDecimal(), rowMP("CveUMMateriaPrima").ToString.ToEntero(), rowMP("CvePSMateriaPrima").ToString.ToEntero(), 1) Then + ErrorMovInv = True : TextoError = "x" : Exit For + End If + Next + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + TotalCostoMP = ObjInventario.DtResultados.SUMD("Total") End If - TotalCostoMP += rowMP("Cantidad").ToString.ToDecimal() - Next - - CveMovimientoEntrada = ObjInventario.AddMovimiento( - CveAlmacen:=DdlAlmacenTerminado.SelectedValue.ToEntero(), - CveConcepto:=CveConceptoEntrada, - CveMoneda:=1, - FechaMovto:=Fecha, - tFolio:=-1, - CveUsuario:=UsuarioActual.CveUsuario, - CveEmpresa:=UsuarioActual.CveEmpresa, - CveCompra:=-1, CveVenta:=-1, CveSubProyecto:=-1, CveActivoFijo:=-1, - Observaciones:="Finalización OP #" & LblFolio.Text, - Modulo:="OP/FinalizarOPEntrada", - CveMovimientoRelacionado:=CveMovimientoSalida - ) - - - Dim CantidadPT As Decimal = DtPS.AsEnumerable().Sum(Function(row) Convert.ToDecimal(row("Cantidad"))) - Dim PU_PT As Decimal = If(CantidadPT > 0, TotalCostoMP / CantidadPT, 1) - - - For Each rowPT As DataRow In DtPS.Select("Tipo = 'Producto'") - If Not ObjInventario.AddMovimientoDetalle( - CveMovimientoEntrada, - rowPT("Cantidad").ToString.ToDecimal(), - rowPT("CveUM").ToString.ToEntero(), - rowPT("Clave").ToString.ToEntero(), - PU_PT - ) Then - Throw New Exception("Error al agregar detalle de PT") + If Not ErrorMovInv Then + CveMovimientoEntrada = ObjInventario.AddMovimiento(DdlAlmacenTerminado.SelectedValue.ToEntero(), CveConceptoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:="Finalización OP #" & LblFolio.Text, Modulo:="OP/FinalizarOPEntrada", CveMovimientoRelacionado:=CveMovimientoSalida) End If - Next + + If CveMovimientoEntrada > 0 AndAlso Not ErrorMovInv Then + Dim CantidadPT As Decimal = DtPS.AsEnumerable().Sum(Function(row) Convert.ToDecimal(row("Cantidad"))) + Dim PU_PT As Decimal = If(CantidadPT > 0, TotalCostoMP / CantidadPT, 1) + + For Each rowPT As DataRow In DtPS.Select("Tipo = 'Producto'") + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, rowPT("Cantidad").ToString.ToDecimal(), rowPT("CveUM").ToString.ToEntero(), rowPT("Clave").ToString.ToEntero(), PU_PT) Then + ErrorMovInv = True : TextoError = "x" : Exit For + End If + Next + + If Not ErrorMovInv Then + + Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/OPFinalizada", 53, 0, 0, 1, Fecha, "Producción OP #" & LblFolio.Text, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) + + If CvePrePoliza > 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, TotalCostoMP, TotalCostoMP, 68, "Consumo MP OP #" & LblFolio.Text, "Consumo MP OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoSalida) Then + ErrorMovInv = True + End If + + If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCostoMP, TotalCostoMP, 68, "Producción PT OP #" & LblFolio.Text, "Producción PT OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoEntrada) Then + ErrorMovInv = True + End If + + If Not ErrorMovInv Then + + If Not ObjOP.UpdateEstatusOP(CveOP, 3, UsuarioActual.CveEmpresa) Then + ErrorMovInv = True : TextoError = "Error al actualizar estatus de la OP" + End If + End If - Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas( - Modulo:="Inventario/OPFinalizada", - CvePlantillaPoliza:=53, - Cargos:=0, - Abonos:=0, - CveMoneda:=1, - Fecha:=Fecha, - Concepto:="Producción OP #" & LblFolio.Text, - CveUsuario:=UsuarioActual.CveUsuario, - CveEmpresa:=UsuarioActual.CveEmpresa - ) - - - If Not ObjConta.AddPrePolizasDetalle( - CvePrePoliza, - False, - TotalCostoMP, - TotalCostoMP, - 68, - "Consumo MP OP #" & LblFolio.Text, - "Consumo MP OP #" & LblFolio.Text, - CveMovimientoAlmacen:=CveMovimientoSalida - ) Then ErrorMovInv = True - - - If Not ObjConta.AddPrePolizasDetalle( - CvePrePoliza, - True, - TotalCostoMP, - TotalCostoMP, - 68, - "Producción PT OP #" & LblFolio.Text, - "Producción PT OP #" & LblFolio.Text, - CveMovimientoAlmacen:=CveMovimientoEntrada - ) Then ErrorMovInv = True - - - If Not ErrorMovInv Then - Dim ObjOP As New ClsOP() - If Not ObjOP.UpdateEstatusOP(CveOP, 3, UsuarioActual.CveEmpresa) Then - ErrorMovInv = True - TextoError = "Error al actualizar estatus de la OP" + 'If Not ErrorMovInv Then + ' If Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then + ' ErrorMovInv = True : TextoError = "Error en validación de póliza" + ' ElseIf ObjConta.ValorPolizaDescuadre > 0 Then + ' ErrorMovInv = True : TextoError = "Descuadre en póliza contable" + ' End If + 'End If + End If End If End If - If Not ErrorMovInv Then - If Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then - ErrorMovInv = True - TextoError = "Error en validación de póliza" - ElseIf ObjConta.ValorPolizaDescuadre > 0 Then - ErrorMovInv = True - TextoError = "Descuadre en póliza contable" - End If - End If - - If Not ErrorMovInv Then ObjInventario.Commit() - Alert($"OP finalizada. Folio Contable: {ObjConta.ContaFolio}", TipoMensaje.MsgInformacion) + Alert($"Orden de producción finalizada. +
{ObjInventario.Folio} ", TipoMensaje.MsgInformacion) Else ObjInventario.RollBack() Alert($"Error contable: {TextoError}", TipoMensaje.MsgError)