--
This commit is contained in:
167
OP/OP.aspx.vb
167
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.
|
||||
<br/><a class='Texto' href='/Inventarios/EntradasSalidas.aspx?CveMovimiento= {CveMovimientoEntrada}'>{ObjInventario.Folio}</a> ", TipoMensaje.MsgInformacion)
|
||||
Else
|
||||
ObjInventario.RollBack()
|
||||
Alert($"Error contable: {TextoError}", TipoMensaje.MsgError)
|
||||
|
||||
Reference in New Issue
Block a user