From c9bba0989ff8157ea8b2269f3ccce4704ab37d8f Mon Sep 17 00:00:00 2001 From: RPimienta Date: Sun, 26 Jan 2025 20:28:33 -0600 Subject: [PATCH] Se agrego el catalogo de configuracion de productos --- App_Code/ClsOP.vb | 384 ++++++++++++++++++ App_Code/ClsPaginas.vb | 4 + OP/CatConfiguracionProducto.aspx | 256 ++++++++++++ OP/CatConfiguracionProducto.aspx.vb | 602 ++++++++++++++++++++++++++++ 4 files changed, 1246 insertions(+) create mode 100644 App_Code/ClsOP.vb create mode 100644 OP/CatConfiguracionProducto.aspx create mode 100644 OP/CatConfiguracionProducto.aspx.vb diff --git a/App_Code/ClsOP.vb b/App_Code/ClsOP.vb new file mode 100644 index 000000000..87bcf4845 --- /dev/null +++ b/App_Code/ClsOP.vb @@ -0,0 +1,384 @@ +Imports Extensiones +Imports System.Data +Imports System.Data.SqlClient +Imports Microsoft.VisualBasic + +Public Class ClsOP + Implements IDisposable + +#Region "Campos" + 'SQL + Private SqlConexion As SqlConnection + Private SqlAdapter As SqlDataAdapter + Private SqlCommand As SqlCommand + Private SqlTransacc As SqlTransaction + Private Data As DataTable + Protected DTSet As DataSet + + Private disposedValue As Boolean = False ' Para detectar llamadas redundantes + 'REGISTRAR CONEXIÓN + Private CveConexion As Integer = 0 + Private EsTransaccionCompartida As Boolean = False + + Public ReadOnly Property DtResultados() As DataTable + Get + DtResultados = Data + End Get + End Property + Public ReadOnly Property DTSetResultados() As DataSet + Get + Return DTSet + End Get + End Property +#End Region + + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) + + If TransaccionCompartida Is Nothing Then + SqlConexion = New SqlConnection + SqlConexion.ConnectionString = ClsPaginas.UsuarioActualRutaDB + Try + SqlConexion.Open() + Catch ex As Exception + OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex) + End Try + Else + SqlConexion = TransaccionCompartida.Connection + SqlTransacc = TransaccionCompartida + EsTransaccionCompartida = True + End If + + SqlAdapter = New SqlDataAdapter("", SqlConexion) + ConexionAdd() + End Sub + Private Sub DataAdapter(StrSQL As String, Optional TipoComando As CommandType = CommandType.StoredProcedure) + With SqlAdapter.SelectCommand + .Parameters.Clear() + .CommandText = StrSQL + .CommandType = TipoComando + End With + If Not SqlTransacc Is Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc + Data = New DataTable + End Sub +#Region "Conexiones" + + Private Sub ConexionAdd() + If Not EsTransaccionCompartida AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then + Try + DataAdapter("PA_Sis_RegistrarConexion") + With SqlAdapter.SelectCommand.Parameters + .Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name + .Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString) + .Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output + End With + SqlAdapter.Fill(Data) + CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero + Catch ex As Exception + OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + End If + End Sub + + Private Sub ConexionClose() + If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then + + DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text) + + Try + SqlAdapter.Fill(Data) + + Catch ex As Exception + OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + CveConexion = 0 + End If + + End Sub +#End Region + Public Function IniciaTransacSQL() As SqlTransaction + If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction() + Return SqlTransacc + End Function + Public Sub RollBack() + SqlTransacc.Rollback() + End Sub + Public Sub Commit() + SqlTransacc.Commit() + End Sub + +#Region "CONFIGURACION PRODUCTOS" + + + Public Function GetProductosOP(CveOP As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_ProductosGET") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveOP", SqlDbType.Int).Value = CveOP + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los productos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function GetCIReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_CostoIndirectoRecetaGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener la receta de ci del producto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddCI(Cantidad As Decimal, CvePS As Integer, CvePSMateriaPrima As Integer, CveUM As Integer, CveUMMateriaPrima As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_CIAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@Cantidad", SqlDbType.SmallMoney).Value = Cantidad + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CvePSMateriaPrima", SqlDbType.Int).Value = CvePSMateriaPrima + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveUMMateriaPrima", SqlDbType.Int).Value = CveUMMateriaPrima + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el costo indirecto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function RemoveCI(CveOPPS As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_CIRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveOPPS", SqlDbType.Int).Value = CveOPPS + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar el costo indirecto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function GetMOReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_ManodeObraRecetaGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener la receta de mo del producto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddMO(Cantidad As Decimal, CvePS As Integer, CvePuesto As Integer, CveUM As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MOAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@Cantidad", SqlDbType.SmallMoney).Value = Cantidad + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CvePuesto", SqlDbType.Int).Value = CvePuesto + .Add("@CveUM", SqlDbType.Int).Value = CveUM + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar la mano de obra.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function RemoveMO(CveOPManoObra As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MORemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveOPManoObra", SqlDbType.Int).Value = CveOPManoObra + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar la mano de obra.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function GetMPReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MateriaPrimaRecetaGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener la receta de mp del producto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddMP(Cantidad As Decimal, CvePS As Integer, CvePSMateriaPrima As Integer, CveUM As Integer, CveUMMateriaPrima As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MPAdd") + With SqlAdapter.SelectCommand.Parameters + .Add("@Cantidad", SqlDbType.SmallMoney).Value = Cantidad + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CvePSMateriaPrima", SqlDbType.Int).Value = CvePSMateriaPrima + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveUMMateriaPrima", SqlDbType.Int).Value = CveUMMateriaPrima + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar la materia prima.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function RemoveMP(CveOPPS As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MPRemove") + With SqlAdapter.SelectCommand.Parameters + .Add("@CveOPPS", SqlDbType.Int).Value = CveOPPS + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al eliminar la materia prima.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + + Return Retorno + End Function + + Public Function GetConfiguracionProducto(CvePS As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_ConfiguracionProductoGet") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los productos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddUpManodeObraReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer, xmlpuestos As String) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_ManodeObraRecetaUp") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@xmlpuestos", SqlDbType.Xml).Value = xmlpuestos + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar la mano de obra.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddUpMateriaPrimaReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer, xmlproductos As String) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_MateriaPrimaRecetaUp") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@xmlproductos", SqlDbType.Xml).Value = xmlproductos + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar la materia prima.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + Public Function AddUpCostoIndirectoReceta(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer, xmlproductos As String) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_OP_CostoIndirectoRecetaUp") + With SqlAdapter.SelectCommand.Parameters + .Add("@CvePS", SqlDbType.Int).Value = CvePS + .Add("@CveUM", SqlDbType.Int).Value = CveUM + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@xmlproductos", SqlDbType.Xml).Value = xmlproductos + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al agregar el costo indirecto.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + + +#End Region + +#Region "IDisposable Support" + ' IDisposable + Protected Overridable Sub Dispose(disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If + End If + Me.disposedValue = True + End Sub + Public Sub Dispose() Implements IDisposable.Dispose + ConexionClose() + Dispose(True) + GC.SuppressFinalize(Me) + End Sub +#End Region + +End Class diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 7b817d862..15b28aa7f 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -11094,6 +11094,10 @@ Public Class ClsPaginas PaginaDict.Add("/Transportes/CatRutas.aspx".ToUpper(), 604) PaginaDict.Add("/Transportes/RepViajesCalendario.aspx".ToUpper(), 605) #End Region + +#Region "Ordenes de Produccion" + PaginaDict.Add("/OP/CatConfiguracionProducto.aspx".ToUpper(), 790) +#End Region 'Antes de aquí. Application("GlobalSIGAppPaginas") = PaginaDict diff --git a/OP/CatConfiguracionProducto.aspx b/OP/CatConfiguracionProducto.aspx new file mode 100644 index 000000000..360b2c6f8 --- /dev/null +++ b/OP/CatConfiguracionProducto.aspx @@ -0,0 +1,256 @@ +<%@ Page Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CatConfiguracionProducto.aspx.vb" Inherits="OP_CatConfiguracionProducto" %> + + + + + + + Configuración de productos + + + + + + +
  • + +
  • +
    +
    +
    + + + + + + +
    + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
    + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + + + + + + +
    + + diff --git a/OP/CatConfiguracionProducto.aspx.vb b/OP/CatConfiguracionProducto.aspx.vb new file mode 100644 index 000000000..01c47c04f --- /dev/null +++ b/OP/CatConfiguracionProducto.aspx.vb @@ -0,0 +1,602 @@ +Imports System.Data +Imports Extensiones + +Partial Class OP_CatConfiguracionProducto + Inherits ClsPaginas + +#Region "PROPIEDADES" + + Private Property CvePS As Integer + Get + If Not ViewState("CvePS") Is Nothing Then + Return ViewState("CvePS").ToString.ToEntero + Else + Return -1 + End If + End Get + Set(value As Integer) + ViewState("CvePS") = value + End Set + End Property + + Private Property CveUM As Integer + Get + If Not ViewState("CveUM") Is Nothing Then + Return ViewState("CveUM").ToString.ToEntero + Else + Return -1 + End If + End Get + Set(value As Integer) + ViewState("CveUM") = value + End Set + End Property + + Private Property DtMP As DataTable + Get + Return CType(ViewState("DtMP"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtMP") = value + End Set + End Property + + Private Property DtMO As DataTable + Get + Return CType(ViewState("DtMO"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtMO") = value + End Set + End Property + + Private Property DtCI As DataTable + Get + Return CType(ViewState("DtCI"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtCI") = value + End Set + End Property + + Private Property DtEliminados As DataTable + Get + Return CType(ViewState("DtEliminados"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtEliminados") = value + End Set + End Property + +#End Region + + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not Page.IsPostBack Then + CreaDtEliminados() + CargarListadoPrincipal() + CargarCombos() + End If + End Sub + +#Region "CARGAS" + + Private Sub CargarListadoPrincipal() + Using clsOp As New ClsOP() + If clsOp.GetConfiguracionProducto(-1, UsuarioActual.CveEmpresa) Then + GvProductos.DataSource = clsOp.DtResultados + GvProductos.DataBind() + End If + clsOp.Dispose() + UpDatos.Update() + End Using + End Sub + + Private Sub CreaDtEliminados() + DtEliminados = New DataTable + DtEliminados.Columns.Add("Cve", GetType(Integer)) + End Sub + + Private Sub CargarCombos() + + DdlPuesto.DataSource = GlobalDTRHPuestos(UsuarioActual.CveEmpresa) + DdlPuesto.DataBind() + DdlPuesto.Items.Insert(0, New ListItem("Seleccione", "-1")) + + DdlProductoConfigurar.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlProductoConfigurar.SelectedText = "Seleccione" + DdlProductoConfigurar.SelectedValue = "-1" + Else + DdlProductoConfigurar.ddl.Items.Clear() + DdlProductoConfigurar.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProductoConfigurar.ddl.DataBind() + DdlProductoConfigurar.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + + DdlMateriaPrima.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlMateriaPrima.SelectedText = "Seleccione" + DdlMateriaPrima.SelectedValue = "-1" + Else + DdlMateriaPrima.ddl.Items.Clear() + DdlMateriaPrima.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlMateriaPrima.ddl.DataBind() + DdlMateriaPrima.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + + DdlProducto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then + DdlProducto.SelectedText = "Seleccione" + DdlProducto.SelectedValue = "-1" + Else + DdlProducto.ddl.Items.Clear() + DdlProducto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProducto.ddl.DataBind() + DdlProducto.ddl.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + + UpMateriaPrima.Update() + UpManoObra.Update() + UpCostoIndirecto.Update() + End Sub + + Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlMateriaPrima.selectedindexchange + DdlPSChange() + End Sub + + Private Sub DdlPSChange() + If DdlMateriaPrima.SelectedValue.ToEntero > 0 Then + Dim PS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=DdlMateriaPrima.SelectedValue.ToEntero).FiltroPrimero("") + + If PS IsNot Nothing Then + DdlUM.Items.Clear() + DdlUM.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) + DdlUM.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlUM.DataBind() + DdlUM.SelectedValueExist(PS("CveUnidadMedida").ToString) + End If + Else + DdlUM.Items.Clear() + DdlUM.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlUM.SelectedValue = "-1" + End If + UpMateriaPrima.Update() + End Sub + + Protected Sub DdlPSConfigurar_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlProductoConfigurar.selectedindexchange + DdlPSConfigurarChange() + End Sub + + Private Sub DdlPSConfigurarChange() + If DdlProductoConfigurar.SelectedValue.ToEntero > 0 Then + Dim PS As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=DdlProductoConfigurar.SelectedValue.ToEntero).FiltroPrimero("") + + If PS IsNot Nothing Then + DdlUMConfigurar.Items.Clear() + DdlUMConfigurar.DataSource = GlobalDTUnidadesMedida(UsuarioActual.CveEmpresa) + DdlUMConfigurar.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlUMConfigurar.DataBind() + DdlUMConfigurar.SelectedValueExist(PS("CveUnidadMedida").ToString) + End If + Else + DdlUMConfigurar.Items.Clear() + DdlUMConfigurar.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlUMConfigurar.SelectedValue = "-1" + End If + UpMateriaPrima.Update() + End Sub + +#End Region + +#Region "MATERIA PRIMA" + + Protected Sub BtnMateriaPrima_Click(ByVal sender As Object, ByVal e As EventArgs) + + DdlProductoConfigurar.SelectedText = "Seleccione" + DdlProductoConfigurar.SelectedValue = "-1" + + DdlMateriaPrima.SelectedText = "Seleccione" + DdlMateriaPrima.SelectedValue = "-1" + + DdlUMConfigurar.SelectedValueExist("-1") + DdlUM.SelectedValueExist("-1") + + TxtCantidadMateriaPrima.Text = String.Empty + + DtEliminados.Rows.Clear() + + DivProductoConfigurar.Visible = False + DivUMConfigurar.Visible = False + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + CvePS = GvRow.DataKey("CvePS").ToEntero() + CveUM = GvRow.DataKey("CveUM").ToEntero() + Using clsOp As New ClsOP() + If clsOp.GetMPReceta(CvePS, CveUM, UsuarioActual.CveEmpresa) Then + DtMP = clsOp.DtResultados.FiltraParametros("ISNULL(CveOPPS,0) > 0").Copy() + GvMateriaPrima.DataSource = DtMP + GvMateriaPrima.DataBind() + End If + clsOp.Dispose() + UpMateriaPrima.Update() + End Using + RegistraScript(String.Format("$('#{0}').modal('show');", "divAddMateriaPrima")) + End Sub + + Protected Sub BtnEliminarMateriaPrima_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim CveOPPS = GvRow.DataKey("CveOPPS").ToEntero + Dim Index = GvRow.RowIndex + DtMP.Rows.RemoveAt(Index) + + If CveOPPS > 0 Then + Dim dr As DataRow = DtEliminados.NewRow + dr("Cve") = CveOPPS + DtEliminados.Rows.Add(dr) + End If + + GvMateriaPrima.DataSource = DtMP + GvMateriaPrima.DataBind() + + UpMateriaPrima.Update() + End Sub + + Protected Sub BtnAgregarMateriaPrima_Click(ByVal sender As Object, ByVal e As EventArgs) + + If Not DdlMateriaPrima.SelectedValue.ToEntero() > 0 Then + Alert("Es necesario seleccionar una materia prima.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not DdlUM.SelectedValue.ToEntero() > 0 Then + Alert("Es necesario seleccionar una unidad de medida.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If String.IsNullOrEmpty(TxtCantidadMateriaPrima.Text) Or Not TxtCantidadMateriaPrima.Text.ToDecimal() > 0 Then + Alert("Es necesario ingresar una cantidad mayor a 0.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim dr As DataRow = DtMP.NewRow + dr("CveOPPS") = -1 + dr("CvePSMateriaPrima") = DdlMateriaPrima.SelectedValue.ToEntero() + dr("CveUMMateriaPrima") = DdlUM.SelectedValue.ToEntero() + dr("productoMateriaPrima") = DdlMateriaPrima.SelectedText + dr("UnidadMedidaMateriaPrima") = DdlUM.SelectedItem.Text + dr("Cantidad") = TxtCantidadMateriaPrima.Text.ToDecimal() + dr("CvePS") = CvePS + dr("CveUM") = CveUM + + DtMP.Rows.Add(dr) + + GvMateriaPrima.DataSource = DtMP + GvMateriaPrima.DataBind() + + DdlProductoConfigurar.SelectedText = "Seleccione" + DdlProductoConfigurar.SelectedValue = "-1" + + DdlMateriaPrima.SelectedText = "Seleccione" + DdlMateriaPrima.SelectedValue = "-1" + + DdlUMConfigurar.SelectedValueExist("-1") + DdlUM.SelectedValueExist("-1") + + TxtCantidadMateriaPrima.Text = String.Empty + + UpMateriaPrima.Update() + + End Sub + + Protected Sub BtnAgregarProducto_Click(ByVal sender As Object, ByVal e As EventArgs) + + DdlProductoConfigurar.SelectedText = "Seleccione" + DdlProductoConfigurar.SelectedValue = "-1" + + DdlMateriaPrima.SelectedText = "Seleccione" + DdlMateriaPrima.SelectedValue = "-1" + + DdlUMConfigurar.SelectedValueExist("-1") + DdlUM.SelectedValueExist("-1") + + TxtCantidadMateriaPrima.Text = String.Empty + + DtEliminados.Rows.Clear() + + CvePS = -1 + CveUM = -1 + + Using clsOp As New ClsOP() + If clsOp.GetMPReceta(CvePS, CveUM, UsuarioActual.CveEmpresa) Then + DtMP = clsOp.DtResultados.FiltraParametros("ISNULL(CveOPPS,0) = 0").Copy() + DtMP.Rows.Clear() + GvMateriaPrima.DataSource = DtMP + GvMateriaPrima.DataBind() + End If + clsOp.Dispose() + End Using + + DivProductoConfigurar.Visible = True + DivUMConfigurar.Visible = True + RegistraScript(String.Format("$('#{0}').modal('show');", "divAddMateriaPrima")) + UpMateriaPrima.Update() + End Sub + +#End Region + +#Region "MANO OBRA" + + Protected Sub BtnManoObra_Click(ByVal sender As Object, ByVal e As EventArgs) + + DdlPuesto.SelectedValueExist("-1") + + TxtHoras.Text = String.Empty + + DtEliminados.Rows.Clear() + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + CvePS = GvRow.DataKey("CvePS").ToEntero + CveUM = GvRow.DataKey("CveUM").ToEntero + Using clsOp As New ClsOP() + If clsOp.GetMOReceta(CvePS, CveUM, UsuarioActual.CveEmpresa) Then + DtMO = clsOp.DtResultados.FiltraParametros("ISNULL(CveOPManoObra,0) > 0").Copy() + GvManoObra.DataSource = DtMO + GvManoObra.DataBind() + End If + clsOp.Dispose() + UpManoObra.Update() + End Using + RegistraScript(String.Format("$('#{0}').modal('show');", "divAddManoObra")) + End Sub + + Protected Sub BtnEliminarManoObra_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim CveOPManoObra = GvRow.DataKey("CveOPManoObra").ToEntero + Dim Index = GvRow.RowIndex + DtMO.Rows.RemoveAt(Index) + + If CveOPManoObra > 0 Then + Dim dr As DataRow = DtEliminados.NewRow + dr("Cve") = CveOPManoObra + DtEliminados.Rows.Add(dr) + End If + + GvManoObra.DataSource = DtMO + GvManoObra.DataBind() + + UpManoObra.Update() + End Sub + + Protected Sub BtnAgregarManoObra_Click(ByVal sender As Object, ByVal e As EventArgs) + If Not DdlPuesto.SelectedValue.ToEntero() > 0 Then + Alert("Es necesario seleccionar un puesto.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If String.IsNullOrEmpty(TxtHoras.Text) Or Not TxtHoras.Text.ToDecimal() > 0 Then + Alert("Es necesario ingresar una cantidad mayor a 0.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim dr As DataRow = DtMO.NewRow + dr("CveOPManoObra") = -1 + dr("CvePuesto") = DdlPuesto.SelectedValue.ToEntero() + dr("Puesto") = DdlPuesto.SelectedItem.Text + dr("Cantidad") = TxtHoras.Text.ToDecimal() + dr("CvePS") = CvePS + dr("CveUM") = CveUM + + DtMO.Rows.Add(dr) + + GvManoObra.DataSource = DtMO + GvManoObra.DataBind() + + DdlPuesto.SelectedValueExist("-1") + + TxtHoras.Text = String.Empty + + UpManoObra.Update() + End Sub + +#End Region + +#Region "COSTO INDIRECTO" + + Protected Sub BtnCostoIndirecto_Click(ByVal sender As Object, ByVal e As EventArgs) + + DdlProducto.SelectedText = "Seleccione" + DdlProducto.SelectedValue = "-1" + + TxtCosto.Text = String.Empty + + DtEliminados.Rows.Clear() + + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + CvePS = GvRow.DataKey("CvePS").ToEntero + CveUM = GvRow.DataKey("CveUM").ToEntero + Using clsOp As New ClsOP() + If clsOp.GetCIReceta(CvePS, CveUM, UsuarioActual.CveEmpresa) Then + DtCI = clsOp.DtResultados.FiltraParametros("ISNULL(CveOPPS,0) > 0").Copy() + GvCostoIndirecto.DataSource = DtCI + GvCostoIndirecto.DataBind() + End If + clsOp.Dispose() + UpCostoIndirecto.Update() + End Using + RegistraScript(String.Format("$('#{0}').modal('show');", "divAddCostoIndirecto")) + End Sub + + Protected Sub BtnEliminarCostoIndirecto_Click(ByVal sender As Object, ByVal e As EventArgs) + Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) + Dim CveOPPS = GvRow.DataKey("CveOPPS").ToEntero + Dim Index = GvRow.RowIndex + DtCI.Rows.RemoveAt(Index) + + If CveOPPS > 0 Then + Dim dr As DataRow = DtEliminados.NewRow + dr("Cve") = CveOPPS + DtEliminados.Rows.Add(dr) + End If + + GvCostoIndirecto.DataSource = DtCI + GvCostoIndirecto.DataBind() + + UpCostoIndirecto.Update() + End Sub + + Protected Sub BtnAgregarCostoIndirecto_Click(ByVal sender As Object, ByVal e As EventArgs) + If Not DdlProducto.SelectedValue.ToEntero() > 0 Then + Alert("Es necesario seleccionar un producto.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If String.IsNullOrEmpty(TxtCosto.Text) Or Not TxtCosto.Text.ToDecimal() > 0 Then + Alert("Es necesario ingresar un costo mayor a 0.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim dr As DataRow = DtCI.NewRow + dr("CveOPPS") = -1 + dr("CvePSMateriaPrima") = DdlProducto.SelectedValue.ToEntero() + dr("productoMateriaPrima") = DdlProducto.SelectedText + dr("Cantidad") = TxtCosto.Text.ToDecimal() + dr("CvePS") = CvePS + dr("CveUM") = CveUM + + DtCI.Rows.Add(dr) + + GvCostoIndirecto.DataSource = DtCI + GvCostoIndirecto.DataBind() + + DdlProducto.SelectedText = "Seleccione" + DdlProducto.SelectedValue = "-1" + + TxtCosto.Text = String.Empty + + UpCostoIndirecto.Update() + End Sub + +#End Region + +#Region "GUARDADOS" + + Protected Sub BtnGuardarMP_Click(sender As Object, e As EventArgs) + + If Not DtMP.Rows.Count > 0 Then + Alert("Es necesario que agregue al menos una materia prima.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim GuardadoCorrecto As Boolean = True + Dim clsOp As New ClsOP() + clsOp.IniciaTransacSQL() + + If DivProductoConfigurar.Visible Then + + For Each Dr As DataRow In DtMP.Rows + If Not Dr("CveOPPS").ToString().ToEntero() > 0 Then + If Not clsOp.AddMP(Dr("Cantidad").ToString().ToDecimal(), DdlProductoConfigurar.SelectedValue.ToEntero(), Dr("CvePSMateriaPrima").ToString().ToEntero(), DdlUM.SelectedValue.ToEntero(), Dr("CveUMMateriaPrima").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + End If + Next + + Else + For Each Dr As DataRow In DtMP.Rows + If Not Dr("CveOPPS").ToString().ToEntero() > 0 Then + If Not clsOp.AddMP(Dr("Cantidad").ToString().ToDecimal(), Dr("CvePS").ToString().ToEntero(), Dr("CvePSMateriaPrima").ToString().ToEntero(), Dr("CveUM").ToString().ToEntero(), Dr("CveUMMateriaPrima").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + End If + Next + + For Each Dr As DataRow In DtEliminados.Rows + If Not clsOp.RemoveMP(Dr("Cve").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + Next + End If + + If GuardadoCorrecto Then + clsOp.Commit() + Alert("Materia Prima Guardada Correctamente", TipoMensaje.MsgInformacion) + CargarListadoPrincipal() + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddMateriaPrima"), "jsHideModalMP") + Else + clsOp.RollBack() + Alert("Ocurrió un error al guardar la Materia Prima", TipoMensaje.MsgError) + End If + + End Sub + + Protected Sub BtnGuardarMO_Click(sender As Object, e As EventArgs) + + Dim GuardadoCorrecto As Boolean = True + + Dim clsOp As New ClsOP() + clsOp.IniciaTransacSQL() + + For Each Dr As DataRow In DtMO.Rows + If Not Dr("CveOPManoObra").ToString().ToEntero() > 0 Then + If Not clsOp.AddMO(Dr("Cantidad").ToString().ToDecimal(), Dr("CvePS").ToString().ToEntero(), Dr("CvePuesto").ToString().ToEntero(), Dr("CveUM").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + End If + Next + + For Each Dr As DataRow In DtEliminados.Rows + If Not clsOp.RemoveMO(Dr("Cve").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + Next + + If GuardadoCorrecto Then + clsOp.Commit() + Alert("Mano de Obra Guardada Correctamente", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddManoObra"), "jsHideModalMO") + Else + clsOp.RollBack() + Alert("Ocurrió un error al guardar la Mano de Obra", TipoMensaje.MsgError) + End If + + End Sub + + Protected Sub BtnGuardarCI_Click(sender As Object, e As EventArgs) + + Dim GuardadoCorrecto As Boolean = True + + Dim clsOp As New ClsOP() + clsOp.IniciaTransacSQL() + + For Each Dr As DataRow In DtCI.Rows + If Not Dr("CveOPPS").ToString().ToEntero() > 0 Then + If Not clsOp.AddCI(Dr("Cantidad").ToString().ToDecimal(), Dr("CvePS").ToString().ToEntero(), Dr("CvePSMateriaPrima").ToString().ToEntero(), Dr("CveUM").ToString().ToEntero(), Dr("CveUMMateriaPrima").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + End If + Next + + For Each Dr As DataRow In DtEliminados.Rows + If Not clsOp.RemoveCI(Dr("Cve").ToString().ToEntero()) Then + GuardadoCorrecto = False + End If + Next + + If GuardadoCorrecto Then + clsOp.Commit() + Alert("Costo Indirecto Guardado Correctamente", TipoMensaje.MsgInformacion) + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddCostoIndirecto"), "jsHideModalCI") + Else + clsOp.RollBack() + Alert("Ocurrió un error al guardar el Costo Indirecto", TipoMensaje.MsgError) + End If + + End Sub + +#End Region + +End Class