Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -670,16 +670,11 @@ Partial Class OP_OP
|
||||
Dim CveMP As Integer = GvMPAgregados.DataKeys(row.RowIndex)("CvePSMateriaPrima").ToString().ToEntero()
|
||||
Dim CveUMMP As Integer = GvMPAgregados.DataKeys(row.RowIndex)("CveUMMateriaPrima").ToString().ToEntero()
|
||||
Dim CantidadSolicitada As Decimal = DtMP.Rows(row.RowIndex)("Cantidad").ToString().ToDecimal()
|
||||
|
||||
|
||||
|
||||
|
||||
Dim Existencia As Decimal = ObjInventario.GetExistenciasPS(
|
||||
CvePS:=CveMP,
|
||||
CveUnidadMedida:=CveUMMP,
|
||||
CveEmpresa:=UsuarioActual.CveEmpresa,
|
||||
CveAlmacen:=DdlAlmacenOrigenMP.SelectedValue.ToEntero()
|
||||
)
|
||||
CveAlmacen:=DdlAlmacenOrigenMP.SelectedValue.ToEntero())
|
||||
|
||||
If Existencia < CantidadSolicitada Then
|
||||
Dim NombreProducto As String = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveMP).FiltroPrimeroValor("Producto", "")
|
||||
@@ -705,16 +700,16 @@ Partial Class OP_OP
|
||||
Dim TieneError As Boolean = False
|
||||
|
||||
Dim FolioSolicitud As Integer = ObjInventario.AddTrasladoSolicitud(
|
||||
TxtObservacionesMP.Text.Trim(),
|
||||
DdlAlmacenOrigenMP.SelectedValue.ToEntero(),
|
||||
DdlAlmacenDestinoMP.SelectedValue.ToEntero(),
|
||||
Estatus,
|
||||
-1,
|
||||
NowADS,
|
||||
CveUsuario:=UsuarioActual.CveUsuario,
|
||||
CveEmpresa:=UsuarioActual.CveEmpresa,
|
||||
EstatusAlmacen:=EstatusAlmacen
|
||||
)
|
||||
TxtObservacionesMP.Text.Trim(),
|
||||
DdlAlmacenOrigenMP.SelectedValue.ToEntero(),
|
||||
DdlAlmacenDestinoMP.SelectedValue.ToEntero(),
|
||||
Estatus,
|
||||
-1,
|
||||
NowADS,
|
||||
CveUsuario:=UsuarioActual.CveUsuario,
|
||||
CveEmpresa:=UsuarioActual.CveEmpresa,
|
||||
EstatusAlmacen:=EstatusAlmacen
|
||||
)
|
||||
|
||||
If FolioSolicitud > 0 Then
|
||||
CveTraspasoSolicitud = ObjInventario.CveTraspasoSolicitud
|
||||
@@ -743,7 +738,6 @@ Partial Class OP_OP
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
If Not TieneError Then
|
||||
ObjInventario.Commit()
|
||||
Alert($"Solicitud de Traspaso guardada. Folio: <b>{FolioSolicitud}</b>", TipoMensaje.MsgInformacion)
|
||||
@@ -775,8 +769,6 @@ Partial Class OP_OP
|
||||
|
||||
Try
|
||||
|
||||
|
||||
|
||||
If Me.CveOP = -1 Then ' Modo CREACIÓN
|
||||
|
||||
Dim xmlProductos As String = DataTableToXML(DtPS)
|
||||
@@ -925,18 +917,14 @@ Partial Class OP_OP
|
||||
' 1. Cargar almacén de salida (Tipo 28)
|
||||
DdlAlmacenOrigenSalidaMP.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 28")
|
||||
DdlAlmacenOrigenSalidaMP.DataBind()
|
||||
|
||||
|
||||
' 2. Cargar almacén de producto terminado
|
||||
DdlAlmacenTerminado.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1")
|
||||
DdlAlmacenTerminado.DataBind()
|
||||
DdlAlmacenTerminado.Items.Insert(0, New ListItem("Seleccionar almacén", "-1"))
|
||||
|
||||
' Almacén de Devoluciones (Tipo 1)
|
||||
DdlAlmacenDevolucion.DataSource = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltraParametros("CveTipoAlmacen = 1")
|
||||
DdlAlmacenDevolucion.DataBind()
|
||||
DdlAlmacenDevolucion.Items.Insert(0, New ListItem("Seleccionar almacén", "-1"))
|
||||
|
||||
' 3. Cargar GridViews
|
||||
GvProductoTerminado.DataSource = DtPS.FiltraParametros("Tipo = 'Producto'")
|
||||
GvProductoTerminado.DataBind()
|
||||
@@ -1010,8 +998,12 @@ Partial Class OP_OP
|
||||
ObjInventario.IniciaTransacSQL()
|
||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||
Dim ObjOP As New ClsOP(ObjInventario.IniciaTransacSQL())
|
||||
Try
|
||||
Dim TotalMPProducto As Decimal = 0
|
||||
Dim TotalMOProducto As Decimal = 0
|
||||
Dim TotalCIProducto As Decimal = 0
|
||||
|
||||
Try
|
||||
'Salida de MP
|
||||
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")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
Dim DtMPAlmacen As DataTable = Nothing
|
||||
@@ -1034,18 +1026,13 @@ Partial Class OP_OP
|
||||
End If
|
||||
DtMPAlmacen = ObjInventario.DtResultados.Copy()
|
||||
|
||||
' 5. Calcular TotalCostoMP (ya está actualizado)
|
||||
' 5. Calcular TotalCostoMP
|
||||
TotalCostoMP = ObjInventario.DtResultados.SUMD("Total")
|
||||
|
||||
Dim CostosPorProducto As New Dictionary(Of Integer, Decimal)
|
||||
|
||||
' 1. Recorrer cada Producto Terminado en la OP
|
||||
For Each rowProducto As DataRow In DtPS.Select("Tipo = 'Producto'")
|
||||
Dim CvePSProducto As Integer = rowProducto("Clave").ToString.ToEntero()
|
||||
Dim CantidadProducto As Decimal = rowProducto("Cantidad").ToString.ToDecimal()
|
||||
Dim TotalMPProducto As Decimal = 0
|
||||
Dim TotalMOProducto As Decimal = 0
|
||||
Dim TotalCIProducto As Decimal = 0
|
||||
|
||||
' 2. Calcular Costo de Materias Primas por Producto
|
||||
For Each rowMP As DataRow In DtMP.Select($"Clave = {CvePSProducto}")
|
||||
@@ -1064,10 +1051,13 @@ Partial Class OP_OP
|
||||
For Each rowCI As DataRow In DtCI.Select($"Clave = {CvePSProducto}")
|
||||
TotalCIProducto += rowCI("Total").ToString.ToDecimal()
|
||||
Next
|
||||
' 5. Determinar las devoluciones del Producto
|
||||
Dim TotalDevPT As Decimal = GvMPUtilizada.Rows.Cast(Of GridViewRow)().Where($"datakey.cvepspt = {CvePSProducto}").Sum(Function(row) DirectCast(row.FindControl("TxtDevolucionMP"), TextBox).Text.ToDecimal())
|
||||
|
||||
' 5. Sumar Total por Producto (MP + MO + CI)
|
||||
Dim TotalProducto As Decimal = TotalMPProducto + TotalMOProducto + TotalCIProducto
|
||||
CostosPorProducto.Add(CvePSProducto, TotalProducto)
|
||||
' 6. Sumar Total por Producto (MP + MO + CI)
|
||||
Dim TotalProducto As Decimal = TotalMPProducto + TotalMOProducto + TotalCIProducto - TotalDevPT
|
||||
|
||||
rowProducto("Costo") = TotalProducto
|
||||
Next
|
||||
|
||||
' 2. PROCESAR DEVOLUCIONES SI EXISTEN
|
||||
@@ -1082,7 +1072,6 @@ Partial Class OP_OP
|
||||
|
||||
CveMovimientoDev = ObjInventario.AddMovimiento(DdlAlmacenDevolucion.SelectedValue.ToEntero(), TipoMovimientoDev, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=$"Devolución OP #{LblFolio.Text}", Modulo:="OP/Devoluciones", CveMovimientoRelacionado:=CveMovimientoSalida)
|
||||
|
||||
|
||||
If CveMovimientoDev > 0 Then
|
||||
For Each row As GridViewRow In GvMPUtilizada.Rows
|
||||
Dim Devolucion As Decimal = row.FCTextBox("TxtDevolucionMP").Text.ToDecimal()
|
||||
@@ -1108,9 +1097,9 @@ Partial Class OP_OP
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'ENTRADA DE PRODUCTO TERMINADO
|
||||
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
|
||||
@@ -1121,7 +1110,7 @@ Partial Class OP_OP
|
||||
Dim PU_PT As Decimal = If(CantidadPT > 0, CostoPTAjustado / CantidadPT, 0)
|
||||
|
||||
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
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, rowPT("Cantidad").ToString.ToDecimal(), rowPT("CveUM").ToString.ToEntero(), rowPT("Clave").ToString.ToEntero(), rowPT("Costo").ToString.ToDecimal()) Then
|
||||
ErrorMovInv = True : TextoError = "x" : Exit For
|
||||
End If
|
||||
Next
|
||||
@@ -1130,22 +1119,29 @@ Partial Class OP_OP
|
||||
|
||||
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
|
||||
If CvePrePoliza > 0 Then
|
||||
'salida MP
|
||||
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
|
||||
' entrada PT
|
||||
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, CostoPTAjustado, CostoPTAjustado, 68, "Producción PT OP #" & LblFolio.Text, "Producción PT OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoEntrada) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
'dev MP
|
||||
If Not ErrorMovInv AndAlso CostoDevoluciones <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, CostoDevoluciones, CostoDevoluciones, 95, "", $"OP #{LblFolio.Text}", CveMovimientoAlmacen:=CveMovimientoDev) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
'costo indirecto
|
||||
If Not ErrorMovInv AndAlso TotalCIProducto <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalCIProducto, TotalCIProducto, 95, "Producción PT OP #" & LblFolio.Text, "Producción PT OP #" & LblFolio.Text) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
'mano de obra
|
||||
If Not ErrorMovInv AndAlso TotalCIProducto <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, TotalMOProducto, TotalCIProducto, 95, "Producción PT OP #" & LblFolio.Text, "Producción PT OP #" & LblFolio.Text) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, CostoPTAjustado, CostoPTAjustado, 68, "Producción PT OP #" & LblFolio.Text, "Producción PT OP #" & LblFolio.Text, CveMovimientoAlmacen:=CveMovimientoEntrada) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, CostoDevoluciones, CostoDevoluciones, 95, "", $"OP #{LblFolio.Text}", CveMovimientoAlmacen:=CveMovimientoDev)
|
||||
|
||||
|
||||
|
||||
|
||||
'If Not ErrorMovInv Then
|
||||
'If Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then
|
||||
'ErrorMovInv = True : TextoError = "Error en validación de póliza"
|
||||
|
||||
@@ -103,7 +103,7 @@ Partial Class Ventas_RepVentasResumen
|
||||
VxC = Nothing
|
||||
End If
|
||||
|
||||
If ObjMovtos.GetRepRecuperacion(TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, "-1", CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then
|
||||
If ObjMovtos.GetRepRecuperacion(TxtFechaI.Text.ToDate, TxtFechaF.Text.ToDate, MinFecha, MaxFecha, -1, DdlSubProyecto.SelectedValue.ToEntero, -1, -1, -1, "-1", UsuarioActual.CveEmpresa, 5, -1, "-1", CveUsuarioConsulta:=UsuarioActual.CveUsuario) Then
|
||||
Datos = ObjVentas.DtResultados
|
||||
GvPxC.DataSource = Datos
|
||||
Else
|
||||
|
||||
Reference in New Issue
Block a user