From 1613876298c1216b6343a5456af1d1e4e5ae8264 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 6 Apr 2020 23:17:42 -0700 Subject: [PATCH] - cambio PU a decimal --- Inventarios/ResguardoMaterial.aspx.vb | 2262 ++++++++++++------------- 1 file changed, 1131 insertions(+), 1131 deletions(-) diff --git a/Inventarios/ResguardoMaterial.aspx.vb b/Inventarios/ResguardoMaterial.aspx.vb index 6edc201b6..723cf5821 100644 --- a/Inventarios/ResguardoMaterial.aspx.vb +++ b/Inventarios/ResguardoMaterial.aspx.vb @@ -1,946 +1,946 @@ -Option Explicit On -Option Strict On - -Imports System.Data -Imports Extensiones -Imports Microsoft.Reporting.WebForms -Partial Class Inventarios_ResguardoMaterial +Option Explicit On +Option Strict On + +Imports System.Data +Imports Extensiones +Imports Microsoft.Reporting.WebForms +Partial Class Inventarios_ResguardoMaterial Inherits ClsPaginas -#Region "Propiedades" - Public Property DtMovimientos() As DataTable - Get - Return CType(ViewState("DtMovimientos"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtMovimientos") = value - End Set - End Property - Public Property DtMovimientosLiberacion() As DataTable - Get - Return CType(ViewState("DtMovimientosLiberacion"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtMovimientosLiberacion") = value - End Set - End Property - - - Public Property CveAlmacenLiberación() As Integer - Get - Return ViewState("CveAlmacenLiberación").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveAlmacenLiberación") = value - End Set - End Property - Public Property CvePersonalLiberacion() As Integer - Get - Return ViewState("CvePersonalLiberacion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CvePersonalLiberacion") = value - End Set - End Property - Public Property CveClienteLiberacion() As Integer - Get - Return ViewState("CveClienteLiberacion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveClienteLiberacion") = value - End Set - End Property - Public Property CveProveedorLiberacion() As Integer - Get - Return ViewState("CveProveedorLiberacion").ToString.ToEntero - End Get - Set(value As Integer) - ViewState("CveProveedorLiberacion") = value - End Set - End Property - Public Property FechaLiberacion As String - Get - Return ViewState("FechaLiberacion").ToString - End Get - Set(value As String) - ViewState("FechaLiberacion") = value - End Set - End Property - - - Public Property EsSurtidoUniforme As Boolean - Get - If ViewState("EsSurtidoUniforme") Is Nothing Then - Return False - - Else - Return Boolean.Parse(ViewState("EsSurtidoUniforme").ToString) - End If - - End Get - Set(value As Boolean) - ViewState("EsSurtidoUniforme") = value - End Set - End Property - - - Private Property DtSeccionAlmacen As DataTable - Get - Return CType(ViewState("DtSeccionAlmacen"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtSeccionAlmacen") = value - End Set - End Property - Private Property IndexSeccionAlmacen As Integer - Get - Return CType(ViewState("IndexSeccionAlmacen"), Integer) - End Get - Set(value As Integer) - ViewState("IndexSeccionAlmacen") = value - End Set - End Property - Private Property CantidadTotal As Decimal - Get - Return CType(ViewState("CantidadTotal"), Decimal) - End Get - Set(value As Decimal) - ViewState("CantidadTotal") = value - End Set - End Property - Private Property CvePS As Integer - Get - Return CType(ViewState("CvePS"), Integer) - End Get - Set(value As Integer) - ViewState("CvePS") = value - End Set - End Property - Private Property TipoSeccionAlmacen As Integer - Get - Return CType(ViewState("TipoSeccionAlmacen"), Integer) - End Get - Set(value As Integer) - ViewState("TipoSeccionAlmacen") = value - End Set +#Region "Propiedades" + Public Property DtMovimientos() As DataTable + Get + Return CType(ViewState("DtMovimientos"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtMovimientos") = value + End Set + End Property + Public Property DtMovimientosLiberacion() As DataTable + Get + Return CType(ViewState("DtMovimientosLiberacion"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtMovimientosLiberacion") = value + End Set + End Property + + + Public Property CveAlmacenLiberación() As Integer + Get + Return ViewState("CveAlmacenLiberación").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveAlmacenLiberación") = value + End Set + End Property + Public Property CvePersonalLiberacion() As Integer + Get + Return ViewState("CvePersonalLiberacion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CvePersonalLiberacion") = value + End Set + End Property + Public Property CveClienteLiberacion() As Integer + Get + Return ViewState("CveClienteLiberacion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveClienteLiberacion") = value + End Set + End Property + Public Property CveProveedorLiberacion() As Integer + Get + Return ViewState("CveProveedorLiberacion").ToString.ToEntero + End Get + Set(value As Integer) + ViewState("CveProveedorLiberacion") = value + End Set + End Property + Public Property FechaLiberacion As String + Get + Return ViewState("FechaLiberacion").ToString + End Get + Set(value As String) + ViewState("FechaLiberacion") = value + End Set + End Property + + + Public Property EsSurtidoUniforme As Boolean + Get + If ViewState("EsSurtidoUniforme") Is Nothing Then + Return False + + Else + Return Boolean.Parse(ViewState("EsSurtidoUniforme").ToString) + End If + + End Get + Set(value As Boolean) + ViewState("EsSurtidoUniforme") = value + End Set + End Property + + + Private Property DtSeccionAlmacen As DataTable + Get + Return CType(ViewState("DtSeccionAlmacen"), DataTable) + End Get + Set(value As DataTable) + ViewState("DtSeccionAlmacen") = value + End Set + End Property + Private Property IndexSeccionAlmacen As Integer + Get + Return CType(ViewState("IndexSeccionAlmacen"), Integer) + End Get + Set(value As Integer) + ViewState("IndexSeccionAlmacen") = value + End Set + End Property + Private Property CantidadTotal As Decimal + Get + Return CType(ViewState("CantidadTotal"), Decimal) + End Get + Set(value As Decimal) + ViewState("CantidadTotal") = value + End Set + End Property + Private Property CvePS As Integer + Get + Return CType(ViewState("CvePS"), Integer) + End Get + Set(value As Integer) + ViewState("CvePS") = value + End Set + End Property + Private Property TipoSeccionAlmacen As Integer + Get + Return CType(ViewState("TipoSeccionAlmacen"), Integer) + End Get + Set(value As Integer) + ViewState("TipoSeccionAlmacen") = value + End Set End Property -#End Region +#End Region - Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load - If Not IsPostBack Then - - - If Not Request.QueryString("EsSurtidoUniforme") Is Nothing Then - EsSurtidoUniforme = If(Request.QueryString("EsSurtidoUniforme").ToString = "1", True, False) - End If - - - InicializaValores() - - If Not Request.QueryString("CvePersonal") Is Nothing Then - Try - Dim CvePersonal As Integer = Request.QueryString("CvePersonal").ToString.ToEntero - OcultarControles(CvePersonal) - Catch ex As Exception - End Try - - End If - - - - - End If - End Sub - - Private Sub OcultarControles(CvePersonal As Integer) - - DdlPersonal.ddl.SelectedValueExist(CvePersonal) - DdlPersonal.Enabled = False - DVTipo.Visible = False + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load + If Not IsPostBack Then + + + If Not Request.QueryString("EsSurtidoUniforme") Is Nothing Then + EsSurtidoUniforme = If(Request.QueryString("EsSurtidoUniforme").ToString = "1", True, False) + End If + + + InicializaValores() + + If Not Request.QueryString("CvePersonal") Is Nothing Then + Try + Dim CvePersonal As Integer = Request.QueryString("CvePersonal").ToString.ToEntero + OcultarControles(CvePersonal) + Catch ex As Exception + End Try + + End If + + + + + End If End Sub -#Region " INICIALIZA VALORES " - Private Sub InicializaValores() - CreaDT() - CargaCombos() - TxtFecha.Text = Now.ToShortDateString - TxtFechaLiberacion.Text = Now.ToShortDateString - GvM.Columns(6).Visible = UsuarioActual.Empresa.Funcionalidad(563) = "1" - GvMLiberacion.Columns(7).Visible = UsuarioActual.Empresa.Funcionalidad(563) = "1" - - GvM.DataBind() - - CantidadTotal = 0 - IndexSeccionAlmacen = 0 - CvePS = 0 - CreaDtSeccionAlmacen() - CargaDdlAlmacen() - TipoSeccionAlmacen = 0 - - End Sub - - Protected Sub CreaDT() - Dim dt As New DataTable - - Dim column As DataColumn = New DataColumn("No") - column.DataType = Type.GetType("System.Int32") - With column - .AutoIncrement = True - .AutoIncrementSeed = 1 - .AutoIncrementStep = 1 - End With - dt.Columns.Add(column) - dt.Columns.Add("CveMovimiento", Type.GetType("System.Int32")) - dt.Columns.Add("CveMovimientoDetalle", Type.GetType("System.Int32")) - dt.Columns.Add("Cantidad", Type.GetType("System.Double")) - dt.Columns.Add("CveUM", Type.GetType("System.Int32")) - dt.Columns.Add("UnidadMedida") - dt.Columns.Add("CvePS", Type.GetType("System.Int32")) - dt.Columns.Add("PS") - dt.Columns.Add("Estatus") - dt.Columns.Add("Codigo") - dt.Columns.Add("SerieLote") - dt.Columns.Add("Observaciones") - dt.Columns.Add("CvePersonal", Type.GetType("System.Int32")) - dt.Columns.Add("Checado", Type.GetType("System.Boolean")) - - DtMovimientos = dt - - CargaGvM() - - End Sub - Private Sub CargaCombos() - - DdlPersonal.setEsWebService(True) - DdlPersonal.Attributes.Add("data-metodo", "getpersonal") - DdlPersonal.SelectedValue = "-1" - DdlPersonal.SelectedText = "Seleccione" - - DdlPersonalLiberacion.setEsWebService(True) - DdlPersonalLiberacion.Attributes.Add("data-metodo", "getpersonal") - DdlPersonalLiberacion.SelectedValue = "-1" - DdlPersonalLiberacion.SelectedText = "Seleccione" - - DdlCliente.setEsWebService(True) - DdlCliente.Attributes.Add("data-metodo", "getcliente") - DdlCliente.SelectedValue = "-1" - DdlCliente.SelectedText = "Seleccione" - - DdlClienteLiberacion.setEsWebService(True) - DdlClienteLiberacion.Attributes.Add("data-metodo", "getcliente") - DdlClienteLiberacion.SelectedValue = "-1" - DdlClienteLiberacion.SelectedText = "Seleccione" - - DdlProveedor.setEsWebService(True) - DdlProveedor.Attributes.Add("data-metodo", "getproveedores") - DdlProveedor.SelectedValue = "-1" - DdlProveedor.SelectedText = "Seleccione" - - DdlProveedorLiberacion.setEsWebService(True) - DdlProveedorLiberacion.Attributes.Add("data-metodo", "getproveedores") - DdlProveedorLiberacion.SelectedValue = "-1" - DdlProveedorLiberacion.SelectedText = "Seleccione" - - If isWhitFamily() Then - DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") - Else - DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") - End If - DdlClasificacion.DataBind() - - - - If EsSurtidoUniforme Then - 'RESGUARDO - DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (19)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) - DdlAlmacen.DataBind() - DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) - 'Almacen Destino - DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 20) - DdlAlmacenDestino.DataBind() - DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) - - 'LIBERACION - DdlAlmacenLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 20) - DdlAlmacenLiberacion.DataBind() - DdlAlmacenLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - ''Almacen Destino - Else - 'RESGUARDO - DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) '.FiltraParametros("CveTipoAlmacen IN (1,2)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) - DdlAlmacen.DataBind() - DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) - 'Almacen Destino - DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 8) - DdlAlmacenDestino.DataBind() - DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) - - - 'LIBERACION - DdlAlmacenLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 8) - DdlAlmacenLiberacion.DataBind() - DdlAlmacenLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - End If - - - ''Almacen Destino - DdlAlmacenDestinoLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) '.FiltraParametros("CveTipoAlmacen IN (1,2)") - DdlAlmacenDestinoLiberacion.DataBind() - DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - - CargaPS() - End Sub - Private Sub CargaPS() - DdlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") - - If DdlProducto2.UsaWebService Then - DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios") - DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString) - End If - If Not DdlProducto2.UsaWebService AndAlso CType(DdlProducto2.DataSource, DataTable) Is Nothing Then - DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) - DdlProducto2.DataBind() - End If - - VerificaProducto() - End Sub - Private Function isWhitFamily() As Boolean - Return (UsuarioActual.CveEmpresa = 66) - End Function -#End Region + Private Sub OcultarControles(CvePersonal As Integer) - - -#Region " RESGUARDO " - - -#Region " FUNCIONALIDAD 105 - CLASIFICACION PS" - Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged - CargaProductosPorClasificacion() - End Sub - Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProducto2.selectedindexchange - VerificaProducto() - End Sub - Private Sub CargaProductosPorClasificacion() - If UsuarioActual.Empresa.Funcionalidad(105) = "" Then - 'Dim filtro As String = "" - 'If Not (DdlClasificacion.SelectedValue = "-1") Then - - ' If isWhitFamily() Then - ' 'filtro = String.Format("CveSubFamilia={0}", DdlClasificacion.SelectedValue) - ' Else - ' filtro = String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue) - ' End If - 'End If - DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") - DdlProducto2.DataBind() - DdlProducto2.ddl.Items.Insert(0, New ListItem("----", "-1")) - Else - 'If isWhitFamily() Then - ' 'DdlProducto2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.SelectedValue) - 'Else - DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) - 'End If - End If - End Sub - Private Sub VerificaProducto() - If DdlProducto2.SelectedValue.ToEntero > 0 Then - If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltraParametros("Inv_CveMetodoInventario = 5", "PS").Rows.Count > 0 Then - ThSerieLote.Visible = True - TrSerieLote.Visible = True - TxtnSerieLote.Visible = True - GvM.Columns(4).Visible = True - Else - TxtnSerieLote.Visible = False - End If - End If - - 'If (1.Contiene("3", "7", "8", "11")) Then - ' Dim objinv As New ClsInventarios - ' If objinv.GetExistenciasPS(DdlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm")) Then - ' DdlUnidad.DataSource = objinv.DtResultados.FiltraParametros("", "UnidadMedida", {"CveUnidadMedida", "UnidadMedida"}) - ' If objinv.DtResultados.Rows.Count = 0 Then - ' Alert("No hay existencias de este producto", TipoMensaje.MsgAdvertencia) - ' End If - ' End If - ' objinv.Dispose() - 'Else - ' DdlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero, -1) - 'End If - - DdlUnidad.Items.Clear() - DdlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) - DdlUnidad.DataBind() - UPDatos.Update() - + DdlPersonal.ddl.SelectedValueExist(CvePersonal) + DdlPersonal.Enabled = False + DVTipo.Visible = False End Sub -#End Region - - -#Region " EISTENCIAS " - Private Function GetExistencias(CvePS As Integer, CveUnidadMedida As Integer, CveEmpresa As Integer, CveAlmacen As Integer, Optional SerieLote As String = "-1") As Double - Dim Inv As New ClsInventarios - Dim Existencia As Double = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, CveEmpresa, CveAlmacen, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=SerieLote) - Inv.Dispose() - Return Existencia - End Function -#End Region - - -#Region " AGREGAR " - Protected Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click - AgregaProducto() - LimpiarAgregar() - End Sub - Protected Sub AgregaProducto() - Dim PSSelected As Integer = DdlProducto2.SelectedValue.ToEntero - If DdlAlmacen.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un almacen", TipoMensaje.MsgInformacion) : Exit Sub - If PSSelected > 0 Then - If TxtnSerieLote.Visible Then - If TxtnSerieLote.Text = "" Then - Alert("Serie-Lote es necesario", TipoMensaje.MsgAdvertencia) - Return - End If - End If - Dim Valido As Boolean = True - Dim cantidadd As Double = txtCantidad.Text.ToDouble - Dim Existencia As Double = GetExistencias(PSSelected, DdlUnidad.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, If(TxtnSerieLote.Visible, TxtnSerieLote.Text, "-1").ToString) - If Existencia - txtCantidad.Text.ToDouble < 0 Then - If Existencia <= 0 Then - Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) - Else - Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia) - If Not UsuarioActual.TienePermisoProceso(114) Then - cantidadd = Existencia - End If - End If - Valido = False - 'Valido = If(UsuarioActual.TienePermisoProceso(114), True, False) - End If - If Valido Then - Dim CveClasificacion As Integer - Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("", "PS") - If dr IsNot Nothing Then CveClasificacion = dr("CveClasificacion").ToString.ToEntero - - Dim registro As DataRow = DtMovimientos.NewRow - registro.Item("Cantidad") = cantidadd - registro.Item("CveUM") = DdlUnidad.SelectedValue.ToEntero - registro.Item("UnidadMedida") = DdlUnidad.SelectedItem.Text - registro.Item("CvePS") = PSSelected - registro.Item("PS") = DdlProducto2.SelectedText - registro.Item("Estatus") = "" - registro.Item("SerieLote") = TxtnSerieLote.Text - registro.Item("Observaciones") = TxtObservacionesdetalle.Text - DtMovimientos.Rows.Add(registro) - CargaGvM() - - txtCantidad.Text = "" - txtCantidad.Focus() - - End If - End If - End Sub - Private Sub LimpiarAgregar() - DdlClasificacion.SelectedValue = "-1" - txtCantidad.Text = "" - TxtObservacionesdetalle.Text = "" - End Sub -#End Region - - -#Region " GvM " - Private Sub CargaGvM() - - ThSerieLote.Visible = False - TrSerieLote.Visible = False - TxtnSerieLote.Visible = False - GvM.Columns(4).Visible = False - For Each Dr As DataRow In DtMovimientos.Rows - If Dr("SerieLote").ToString <> "" Then - ThSerieLote.Visible = True - TrSerieLote.Visible = True - GvM.Columns(4).Visible = True - Exit For - End If - Next - - GvM.DataSource = DtMovimientos - GvM.DataBind() - End Sub - - Private Sub GvM_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvM.RowDeleting - Dim DbRow As DataRow = Nothing - DbRow = DtMovimientos.Rows(e.RowIndex) - DtMovimientos.Rows.Remove(DbRow) - - GvM.EditIndex = -1 - CargaGvM() - End Sub - - Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - If DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {e.Row.RowIndex}").SUMD("CantidadSeccionAlmacen") > 0 Then - e.Row.FCLinkButton("lnkRemove").Visible = False - e.Row.FCLinkButton("lnkRemove").ToolTip = "Cuenta con sección almacen" - End If - End If - End Sub -#End Region - - -#Region " NUEVO " - Protected Sub BtnNuevo_Click(sender As Object, e As EventArgs) - LimpiarMovimiento() - End Sub - Private Sub LimpiarMovimiento() - DtMovimientos.Clear() - CargaGvM() - - BtnGuardarResguardo.Visible = True - - DdlAlmacen.SelectedValueExist("-1") - DdlAlmacenDestino.SelectedValueExist("-1") - DtSeccionAlmacen.Rows.Clear() - - TxtObservaciones.Text = "" +#Region " INICIALIZA VALORES " + Private Sub InicializaValores() + CreaDT() + CargaCombos() TxtFecha.Text = Now.ToShortDateString - DdlPersonal.SelectedValue = "-1" - DdlPersonal.SelectedText = "Seleccione" - LimpiarAgregar() - UPDatos.Update() - UpGenerales.Update() - End Sub -#End Region + TxtFechaLiberacion.Text = Now.ToShortDateString + GvM.Columns(6).Visible = UsuarioActual.Empresa.Funcionalidad(563) = "1" + GvMLiberacion.Columns(7).Visible = UsuarioActual.Empresa.Funcionalidad(563) = "1" + GvM.DataBind() -#End Region + CantidadTotal = 0 + IndexSeccionAlmacen = 0 + CvePS = 0 + CreaDtSeccionAlmacen() + CargaDdlAlmacen() + TipoSeccionAlmacen = 0 - -#Region " LIBERACION " - - -#Region " GV DATOS LIBERACION " - Protected Sub GvMLiberacion_RowDataBound(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - e.Row.FCLabel("LblCantidad").Text = e.Row.FCLabel("LblCantidad").Text.FormatoNumero(2) - End If - End Sub - - Protected Sub GvMLiberacion_RowCreated(sender As Object, e As GridViewRowEventArgs) - If e.Row.RowType = DataControlRowType.DataRow Then - Dim Index = e.Row.RowIndex - e.Row.FCTextBox("TxtCantidad").Attributes.Add("onKeyUp", String.Format("ValidarCantidad({0});", Index)) - End If - End Sub -#End Region - - -#Region " CARGA RESGUARDOS PARA LIBERACION " - - Protected Sub BtnVerificarExistencias_Click(sender As Object, e As EventArgs) - If Not DdlProveedorLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 3 Then - Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not DdlPersonalLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 1 Then - Alert("Tiene que seleccionar un personal.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not DdlClienteLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 2 Then - Alert("Tiene que seleccionar un cliente.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - CargaResguardos() - End Sub - - Private Sub CargaResguardos() - Dim ObjInventario As New ClsInventarios() - Dim Existencias As Double = 0 - - If ObjInventario.GetMovimientosDetallePorPersonal(DdlPersonalLiberacion.SelectedValue.ToEntero, DdlAlmacenLiberacion.SelectedValue.ToEntero, DdlClienteLiberacion.SelectedValue.ToEntero, DdlProveedorLiberacion.SelectedValue.ToEntero) Then - DtMovimientosLiberacion = ObjInventario.DtResultados - - DtMovimientosLiberacion.Columns("No").AutoIncrement = True - DtMovimientosLiberacion.Columns("No").AutoIncrementSeed = DtMovimientosLiberacion.Rows.Count + 1 - DtMovimientosLiberacion.Columns("No").AutoIncrementStep = 1 - - Dim keys(1) As DataColumn - keys(0) = DtMovimientosLiberacion.Columns("No") - DtMovimientosLiberacion.PrimaryKey = keys - - CargaGvMLiberacion() - If DdlPersonalLiberacion.SelectedValue.ToEntero <> -1 Then - LblTipo.InnerText = "Personal/Responsable:" - LbTipoLiberacion.Text = DdlPersonalLiberacion.SelectedText - End If - If DdlProveedorLiberacion.SelectedValue.ToEntero <> -1 Then - LblTipo.InnerText = "Proveedor:" - LbTipoLiberacion.Text = DdlProveedorLiberacion.SelectedText - End If - If DdlClienteLiberacion.SelectedValue.ToEntero <> -1 Then - LblTipo.InnerText = "Cliente:" - LbTipoLiberacion.Text = DdlClienteLiberacion.SelectedText - End If - CvePersonalLiberacion = DdlPersonalLiberacion.SelectedValue.ToEntero - CveClienteLiberacion = DdlClienteLiberacion.SelectedValue.ToEntero - CveProveedorLiberacion = DdlProveedorLiberacion.SelectedValue.ToEntero - LbAlmacenLiberacion.Text = DdlAlmacenLiberacion.SelectedItem.Text - CveAlmacenLiberación = DdlAlmacenLiberacion.SelectedValue.ToEntero - LbFechaLiberacion.Text = TxtFechaLiberacion.Text - FechaLiberacion = TxtFechaLiberacion.Text - BtnGuardarLiberacion.Visible = True - - DtSeccionAlmacen.Rows.Clear() - - UpGeneralesLibreacion.Update() - Else - Alert("Ocurrió un error al cargar los resguardos del personal. Por favor vuelva a intentar.", TipoMensaje.MsgError) - End If - ObjInventario.Dispose() - - End Sub - - Private Sub CargaGvMLiberacion() - GvM.Columns(5).Visible = False - For Each Dr As DataRow In DtMovimientosLiberacion.Rows - If Dr("SerieLote").ToString <> "" Then - GvM.Columns(5).Visible = True - Exit For - End If - Next - - GvMLiberacion.DataSource = DtMovimientosLiberacion - GvMLiberacion.DataBind() - UpGridLiberacion.Update() End Sub -#End Region + Protected Sub CreaDT() + Dim dt As New DataTable + + Dim column As DataColumn = New DataColumn("No") + column.DataType = Type.GetType("System.Int32") + With column + .AutoIncrement = True + .AutoIncrementSeed = 1 + .AutoIncrementStep = 1 + End With + dt.Columns.Add(column) + dt.Columns.Add("CveMovimiento", Type.GetType("System.Int32")) + dt.Columns.Add("CveMovimientoDetalle", Type.GetType("System.Int32")) + dt.Columns.Add("Cantidad", Type.GetType("System.Double")) + dt.Columns.Add("CveUM", Type.GetType("System.Int32")) + dt.Columns.Add("UnidadMedida") + dt.Columns.Add("CvePS", Type.GetType("System.Int32")) + dt.Columns.Add("PS") + dt.Columns.Add("Estatus") + dt.Columns.Add("Codigo") + dt.Columns.Add("SerieLote") + dt.Columns.Add("Observaciones") + dt.Columns.Add("CvePersonal", Type.GetType("System.Int32")) + dt.Columns.Add("Checado", Type.GetType("System.Boolean")) + + DtMovimientos = dt + + CargaGvM() -#Region " LIMPIAR LIBERACION " - Private Sub LimpiarLiberacion() - LbTipoLiberacion.Text = "" - LblTipo.InnerText = "" - CvePersonalLiberacion = -1 - CveClienteLiberacion = -1 - CveProveedorLiberacion = -1 - LbAlmacenLiberacion.Text = "" - CveAlmacenLiberación = -1 - LbFechaLiberacion.Text = "" - FechaLiberacion = "" - BtnGuardarLiberacion.Visible = False - DtSeccionAlmacen.Rows.Clear() - - DdlAlmacenDestinoLiberacion.SelectedValue = "-1" - TxtObservacionesLiberacion.Text = "" - - DtMovimientosLiberacion.Clear() - CargaGvMLiberacion() - - UpGeneralesLibreacion.Update() End Sub -#End Region + Private Sub CargaCombos() + DdlPersonal.setEsWebService(True) + DdlPersonal.Attributes.Add("data-metodo", "getpersonal") + DdlPersonal.SelectedValue = "-1" + DdlPersonal.SelectedText = "Seleccione" -#End Region + DdlPersonalLiberacion.setEsWebService(True) + DdlPersonalLiberacion.Attributes.Add("data-metodo", "getpersonal") + DdlPersonalLiberacion.SelectedValue = "-1" + DdlPersonalLiberacion.SelectedText = "Seleccione" + + DdlCliente.setEsWebService(True) + DdlCliente.Attributes.Add("data-metodo", "getcliente") + DdlCliente.SelectedValue = "-1" + DdlCliente.SelectedText = "Seleccione" + + DdlClienteLiberacion.setEsWebService(True) + DdlClienteLiberacion.Attributes.Add("data-metodo", "getcliente") + DdlClienteLiberacion.SelectedValue = "-1" + DdlClienteLiberacion.SelectedText = "Seleccione" + + DdlProveedor.setEsWebService(True) + DdlProveedor.Attributes.Add("data-metodo", "getproveedores") + DdlProveedor.SelectedValue = "-1" + DdlProveedor.SelectedText = "Seleccione" + + DdlProveedorLiberacion.setEsWebService(True) + DdlProveedorLiberacion.Attributes.Add("data-metodo", "getproveedores") + DdlProveedorLiberacion.SelectedValue = "-1" + DdlProveedorLiberacion.SelectedText = "Seleccione" + + If isWhitFamily() Then + DdlClasificacion.DataSource = GlobalDTSubFamilias(UsuarioActual.CveEmpresa).FiltraParametros("", Orderby:="Clasificacion") + Else + DdlClasificacion.DataSource = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltraParametros(" Codigo = '' OR Codigo IS NULL ", Orderby:="Clasificacion") + End If + DdlClasificacion.DataBind() -#Region " GUARDAR " - Protected Sub BtnGuardarResguardo_Click(sender As Object, e As EventArgs) Handles BtnGuardarResguardo.Click - - If Not GvM.Rows.Count > 0 Then - Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not DdlProveedor.SelectedValue.ToEntero > 0 And DivProveedor.Visible Then - Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'VALIDA LA EXISTENCIA DEL ALMACEN - Dim ObjInventario As New ClsInventarios - Dim ErrorExistencia = False - Dim TextoExistencia As StringBuilder = New StringBuilder - Dim Existencia As Double - TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") - For Each dr As DataRow In DtMovimientos.Rows - Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString)) - Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}") - - If Existencia < 0 Then - ErrorExistencia = True - dr("Cantidad") = Existencia - TextoExistencia.AppendFormat("- #{0} {1}
", dr("No").ToString, dr("PS").ToString) - End If - Next - ObjInventario.Dispose() - - If ErrorExistencia Then - Alert(TextoExistencia.ToString, TipoMensaje.MsgError) - End If - - Dim TotalCantidad As Double = DtMovimientos.SUMD("Cantidad") - If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then - If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then - Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - - Guardar(23) - - End Sub - Protected Sub BtnGuardarLiberacion_Click(sender As Object, e As EventArgs) - - If Not DdlProveedorLiberacion.SelectedValue.ToEntero > 0 And DivProveedorLiberacion2.Visible Then - Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If Not GvMLiberacion.Rows.Count > 0 Then - Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim TieneError = True - Dim TotalCantidad As Decimal = 0 - For Each Gvr As GridViewRow In GvMLiberacion.Rows - If Gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then - TieneError = False - Exit For - Else - TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToDecimal - End If - Next - - If TieneError Then - Alert("Se debe seleccionar por lo menos una cantidad de los resguardos para generar la liberación. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then - If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 2").SUMD("CantidadSeccionAlmacen") Then - Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - End If - - Guardar(24) - - - End Sub - - Private Sub Guardar(Concepto As Integer) - Dim ObjInventario As New ClsInventarios - Dim ObjEventos As New ClsOIEventos(ObjInventario.IniciaTransacSQL()) 'Inicia la transacción - Dim TieneError = False - Dim MensajeError As String = "" - Dim ImporteConcepto = 0.0 - - Dim CveMovimientoSalida = 0 - Dim FolioSalida = 0 - Dim CveMovimientoEntrada = 0 - Dim FolioEntrada = 0 - - 'Para Campos Nuevos AF y OC - Dim SubProyecto = -1 - Dim ActivoFijo = -1 - - Dim CveProveedor = -1 - Dim CveCliente = -1 - Dim CvePersonal = -1 - - If RbTipoCliente.Checked Then CveCliente = DdlCliente.SelectedValue.ToEntero - If RbTipoProveedor.Checked Then CveProveedor = DdlProveedor.SelectedValue.ToEntero - If RbTipoPersonal.Checked Then CvePersonal = DdlPersonal.SelectedValue.ToEntero - - Dim Fecha = If(Concepto = 23, TxtFecha.Text.ToDate, FechaLiberacion.ToDate) - - Select Case (Concepto) - Case 23 ' Resguardo - - 'SALIDA ORIGEN - CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 24, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservaciones.Text, CvePersonal:=CvePersonal, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, CveCliente:=CveCliente, CveProveedor:=CveProveedor) - FolioSalida = ObjInventario.Folio - - If CveMovimientoSalida <= 0 Then - TieneError = True - MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar." - Exit Select - End If - - Dim Cont As Integer = 0 - For Each Dr As DataRow In DtMovimientos.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then - MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar." - TieneError = True - Exit For - Else - If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then - For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows - If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then - TieneError = True - MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." - Exit For - End If - Next - End If - End If - Cont += 1 - Next - - Cont = 0 - If Not TieneError Then - CveMovimientoEntrada = ObjInventario.AddMovimiento(DdlAlmacenDestino.SelectedValue.ToEntero, 2, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservaciones.Text, CvePersonal:=CvePersonal, CveMovimientoRelacionado:=CveMovimientoSalida, CveCliente:=CveCliente, CveProveedor:=CveProveedor) - FolioEntrada = ObjInventario.Folio - - If CveMovimientoEntrada <= 0 Then - MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar." - TieneError = True - Else - If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then - For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then - TieneError = True - MensajeError = "Ocurrió un error al guardar los movimientos de entrada" - Exit For - Else - If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then - For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows - If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then - TieneError = True - MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." - Exit For - End If - Next - End If - End If - Cont += 1 - Next - End If - End If - End If - - Case 24 'LIBERACION - - - 'SALIDA ORIGEN - RESGUARDO - CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenLiberación, 3, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservacionesLiberacion.Text, CvePersonal:=CvePersonalLiberacion, CveAlmacenDestino:=DdlAlmacenDestinoLiberacion.SelectedValue.ToEntero, CveProveedor:=CveProveedorLiberacion, CveCliente:=CveClienteLiberacion, MovimientoFijo:=True) - FolioSalida = ObjInventario.Folio - - If CveMovimientoSalida <= 0 Then - TieneError = True - MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar." - Exit Select - End If - - Dim Cont As Integer = 0 - For Each Gvr As GridViewRow In GvMLiberacion.Rows - If Gvr.FCTextBox("TxtCantidad").Text.ToDouble > 0 Then - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Gvr.FCTextBox("TxtCantidad").Text.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("PU").ToString.ToDouble, -1, -1, Gvr.DataKey("SerieLote").ToString, Gvr.DataKey("Observaciones").ToString) Then - MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar." - TieneError = True - Exit For - Else - If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then - For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 2").Rows - If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then - TieneError = True - MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." - Exit For - End If - Next - End If - End If - End If - Cont += 1 - Next - - - If Not TieneError Then - CveMovimientoEntrada = ObjInventario.AddMovimiento(DdlAlmacenDestinoLiberacion.SelectedValue.ToEntero, 23, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservacionesLiberacion.Text, CvePersonal:=CvePersonalLiberacion, CveMovimientoRelacionado:=CveMovimientoSalida, CveProveedor:=CveProveedorLiberacion, CveCliente:=CveClienteLiberacion, MovimientoFijo:=True) - FolioEntrada = ObjInventario.Folio - - If CveMovimientoEntrada <= 0 Then - MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar." - TieneError = True - Else - If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then - Cont = 0 - For Each Dr As DataRow In ObjInventario.DtResultados.Rows - If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then - TieneError = True - MensajeError = "Ocurrió un error al guardar los movimientos de entrada" - Exit For - Else - If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then - For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 2").Rows - If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then - TieneError = True - MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." - Exit For - End If - Next - End If - End If - Cont += 1 - Next - End If - End If - End If - - End Select - + If EsSurtidoUniforme Then + 'RESGUARDO + DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (19)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) + DdlAlmacen.DataBind() + DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'Almacen Destino + DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 20) + DdlAlmacenDestino.DataBind() + DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) + + 'LIBERACION + DdlAlmacenLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 20) + DdlAlmacenLiberacion.DataBind() + DdlAlmacenLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + ''Almacen Destino + Else + 'RESGUARDO + DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) '.FiltraParametros("CveTipoAlmacen IN (1,2)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) + DdlAlmacen.DataBind() + DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + 'Almacen Destino + DdlAlmacenDestino.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 8) + DdlAlmacenDestino.DataBind() + DdlAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) + + + 'LIBERACION + DdlAlmacenLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 8) + DdlAlmacenLiberacion.DataBind() + DdlAlmacenLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + + + ''Almacen Destino + DdlAlmacenDestinoLiberacion.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1) '.FiltraParametros("CveTipoAlmacen IN (1,2)") + DdlAlmacenDestinoLiberacion.DataBind() + DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) + + CargaPS() + End Sub + Private Sub CargaPS() + DdlProducto2.setEsWebService(UsuarioActual.Empresa.Funcionalidad(105) = "1") + + If DdlProducto2.UsaWebService Then + DdlProducto2.ddlWS.Attributes.Add("data-pagina", "Inventarios") + DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue.ToString) + End If + If Not DdlProducto2.UsaWebService AndAlso CType(DdlProducto2.DataSource, DataTable) Is Nothing Then + DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) + DdlProducto2.DataBind() + End If + + VerificaProducto() + End Sub + Private Function isWhitFamily() As Boolean + Return (UsuarioActual.CveEmpresa = 66) + End Function +#End Region + + + +#Region " RESGUARDO " + + +#Region " FUNCIONALIDAD 105 - CLASIFICACION PS" + Protected Sub DdlClasificacion_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles DdlClasificacion.SelectedIndexChanged + CargaProductosPorClasificacion() + End Sub + Protected Sub DdlProducto_ValueChanged(sender As Object, e As EventArgs) Handles DdlProducto2.selectedindexchange + VerificaProducto() + End Sub + Private Sub CargaProductosPorClasificacion() + If UsuarioActual.Empresa.Funcionalidad(105) = "" Then + 'Dim filtro As String = "" + 'If Not (DdlClasificacion.SelectedValue = "-1") Then + + ' If isWhitFamily() Then + ' 'filtro = String.Format("CveSubFamilia={0}", DdlClasificacion.SelectedValue) + ' Else + ' filtro = String.Format("CveClasificacion={0}", DdlClasificacion.SelectedValue) + ' End If + 'End If + DdlProducto2.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=DdlClasificacion.SelectedValue.ToEntero).FiltraParametros("", "PSCodigo") + DdlProducto2.DataBind() + DdlProducto2.ddl.Items.Insert(0, New ListItem("----", "-1")) + Else + 'If isWhitFamily() Then + ' 'DdlProducto2.ddlWS.Attributes.Add("data-idSubFamilia", DdlClasificacion.SelectedValue) + 'Else + DdlProducto2.ddlWS.Attributes.Add("data-cveclasificacion", DdlClasificacion.SelectedValue) + 'End If + End If + End Sub + Private Sub VerificaProducto() + If DdlProducto2.SelectedValue.ToEntero > 0 Then + If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltraParametros("Inv_CveMetodoInventario = 5", "PS").Rows.Count > 0 Then + ThSerieLote.Visible = True + TrSerieLote.Visible = True + TxtnSerieLote.Visible = True + GvM.Columns(4).Visible = True + Else + TxtnSerieLote.Visible = False + End If + End If + + 'If (1.Contiene("3", "7", "8", "11")) Then + ' Dim objinv As New ClsInventarios + ' If objinv.GetExistenciasPS(DdlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm")) Then + ' DdlUnidad.DataSource = objinv.DtResultados.FiltraParametros("", "UnidadMedida", {"CveUnidadMedida", "UnidadMedida"}) + ' If objinv.DtResultados.Rows.Count = 0 Then + ' Alert("No hay existencias de este producto", TipoMensaje.MsgAdvertencia) + ' End If + ' End If + ' objinv.Dispose() + 'Else + ' DdlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero, -1) + 'End If + + DdlUnidad.Items.Clear() + DdlUnidad.DataSource = GlobalDTProductosServiciosEquivalencias(DdlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveEmpresa) + DdlUnidad.DataBind() + UPDatos.Update() + + End Sub + +#End Region + + +#Region " EISTENCIAS " + Private Function GetExistencias(CvePS As Integer, CveUnidadMedida As Integer, CveEmpresa As Integer, CveAlmacen As Integer, Optional SerieLote As String = "-1") As Double + Dim Inv As New ClsInventarios + Dim Existencia As Double = Inv.GetExistenciasPS(CvePS, CveUnidadMedida, CveEmpresa, CveAlmacen, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=SerieLote) + Inv.Dispose() + Return Existencia + End Function +#End Region + + +#Region " AGREGAR " + Protected Sub btnAgregar_Click(sender As Object, e As EventArgs) Handles LbAgregar.Click + AgregaProducto() + LimpiarAgregar() + End Sub + Protected Sub AgregaProducto() + Dim PSSelected As Integer = DdlProducto2.SelectedValue.ToEntero + If DdlAlmacen.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un almacen", TipoMensaje.MsgInformacion) : Exit Sub + If PSSelected > 0 Then + If TxtnSerieLote.Visible Then + If TxtnSerieLote.Text = "" Then + Alert("Serie-Lote es necesario", TipoMensaje.MsgAdvertencia) + Return + End If + End If + Dim Valido As Boolean = True + Dim cantidadd As Double = txtCantidad.Text.ToDouble + Dim Existencia As Double = GetExistencias(PSSelected, DdlUnidad.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, If(TxtnSerieLote.Visible, TxtnSerieLote.Text, "-1").ToString) + If Existencia - txtCantidad.Text.ToDouble < 0 Then + If Existencia <= 0 Then + Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) + Else + Alert(String.Format("Solo hay en existencia: {0}", Existencia), TipoMensaje.MsgAdvertencia) + If Not UsuarioActual.TienePermisoProceso(114) Then + cantidadd = Existencia + End If + End If + Valido = False + 'Valido = If(UsuarioActual.TienePermisoProceso(114), True, False) + End If + If Valido Then + Dim CveClasificacion As Integer + Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=PSSelected).FiltroPrimero("", "PS") + If dr IsNot Nothing Then CveClasificacion = dr("CveClasificacion").ToString.ToEntero + + Dim registro As DataRow = DtMovimientos.NewRow + registro.Item("Cantidad") = cantidadd + registro.Item("CveUM") = DdlUnidad.SelectedValue.ToEntero + registro.Item("UnidadMedida") = DdlUnidad.SelectedItem.Text + registro.Item("CvePS") = PSSelected + registro.Item("PS") = DdlProducto2.SelectedText + registro.Item("Estatus") = "" + registro.Item("SerieLote") = TxtnSerieLote.Text + registro.Item("Observaciones") = TxtObservacionesdetalle.Text + DtMovimientos.Rows.Add(registro) + CargaGvM() + + txtCantidad.Text = "" + txtCantidad.Focus() + + End If + End If + End Sub + Private Sub LimpiarAgregar() + DdlClasificacion.SelectedValue = "-1" + txtCantidad.Text = "" + TxtObservacionesdetalle.Text = "" + End Sub +#End Region + + +#Region " GvM " + Private Sub CargaGvM() + + ThSerieLote.Visible = False + TrSerieLote.Visible = False + TxtnSerieLote.Visible = False + GvM.Columns(4).Visible = False + For Each Dr As DataRow In DtMovimientos.Rows + If Dr("SerieLote").ToString <> "" Then + ThSerieLote.Visible = True + TrSerieLote.Visible = True + GvM.Columns(4).Visible = True + Exit For + End If + Next + + GvM.DataSource = DtMovimientos + GvM.DataBind() + End Sub + + Private Sub GvM_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles GvM.RowDeleting + Dim DbRow As DataRow = Nothing + DbRow = DtMovimientos.Rows(e.RowIndex) + DtMovimientos.Rows.Remove(DbRow) + + GvM.EditIndex = -1 + CargaGvM() + End Sub + + Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + If DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {e.Row.RowIndex}").SUMD("CantidadSeccionAlmacen") > 0 Then + e.Row.FCLinkButton("lnkRemove").Visible = False + e.Row.FCLinkButton("lnkRemove").ToolTip = "Cuenta con sección almacen" + End If + End If + End Sub +#End Region + + +#Region " NUEVO " + Protected Sub BtnNuevo_Click(sender As Object, e As EventArgs) + LimpiarMovimiento() + End Sub + Private Sub LimpiarMovimiento() + DtMovimientos.Clear() + CargaGvM() + + BtnGuardarResguardo.Visible = True + + DdlAlmacen.SelectedValueExist("-1") + DdlAlmacenDestino.SelectedValueExist("-1") + DtSeccionAlmacen.Rows.Clear() + + TxtObservaciones.Text = "" + TxtFecha.Text = Now.ToShortDateString + DdlPersonal.SelectedValue = "-1" + DdlPersonal.SelectedText = "Seleccione" + LimpiarAgregar() + UPDatos.Update() + UpGenerales.Update() + End Sub +#End Region + + +#End Region + + +#Region " LIBERACION " + + +#Region " GV DATOS LIBERACION " + Protected Sub GvMLiberacion_RowDataBound(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + e.Row.FCLabel("LblCantidad").Text = e.Row.FCLabel("LblCantidad").Text.FormatoNumero(2) + End If + End Sub + + Protected Sub GvMLiberacion_RowCreated(sender As Object, e As GridViewRowEventArgs) + If e.Row.RowType = DataControlRowType.DataRow Then + Dim Index = e.Row.RowIndex + e.Row.FCTextBox("TxtCantidad").Attributes.Add("onKeyUp", String.Format("ValidarCantidad({0});", Index)) + End If + End Sub +#End Region + + +#Region " CARGA RESGUARDOS PARA LIBERACION " + + Protected Sub BtnVerificarExistencias_Click(sender As Object, e As EventArgs) + If Not DdlProveedorLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 3 Then + Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not DdlPersonalLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 1 Then + Alert("Tiene que seleccionar un personal.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not DdlClienteLiberacion.SelectedValue.ToEntero > 0 AndAlso DdlTipo.SelectedValue.ToEntero = 2 Then + Alert("Tiene que seleccionar un cliente.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + CargaResguardos() + End Sub + + Private Sub CargaResguardos() + Dim ObjInventario As New ClsInventarios() + Dim Existencias As Double = 0 + + If ObjInventario.GetMovimientosDetallePorPersonal(DdlPersonalLiberacion.SelectedValue.ToEntero, DdlAlmacenLiberacion.SelectedValue.ToEntero, DdlClienteLiberacion.SelectedValue.ToEntero, DdlProveedorLiberacion.SelectedValue.ToEntero) Then + DtMovimientosLiberacion = ObjInventario.DtResultados + + DtMovimientosLiberacion.Columns("No").AutoIncrement = True + DtMovimientosLiberacion.Columns("No").AutoIncrementSeed = DtMovimientosLiberacion.Rows.Count + 1 + DtMovimientosLiberacion.Columns("No").AutoIncrementStep = 1 + + Dim keys(1) As DataColumn + keys(0) = DtMovimientosLiberacion.Columns("No") + DtMovimientosLiberacion.PrimaryKey = keys + + CargaGvMLiberacion() + If DdlPersonalLiberacion.SelectedValue.ToEntero <> -1 Then + LblTipo.InnerText = "Personal/Responsable:" + LbTipoLiberacion.Text = DdlPersonalLiberacion.SelectedText + End If + If DdlProveedorLiberacion.SelectedValue.ToEntero <> -1 Then + LblTipo.InnerText = "Proveedor:" + LbTipoLiberacion.Text = DdlProveedorLiberacion.SelectedText + End If + If DdlClienteLiberacion.SelectedValue.ToEntero <> -1 Then + LblTipo.InnerText = "Cliente:" + LbTipoLiberacion.Text = DdlClienteLiberacion.SelectedText + End If + CvePersonalLiberacion = DdlPersonalLiberacion.SelectedValue.ToEntero + CveClienteLiberacion = DdlClienteLiberacion.SelectedValue.ToEntero + CveProveedorLiberacion = DdlProveedorLiberacion.SelectedValue.ToEntero + LbAlmacenLiberacion.Text = DdlAlmacenLiberacion.SelectedItem.Text + CveAlmacenLiberación = DdlAlmacenLiberacion.SelectedValue.ToEntero + LbFechaLiberacion.Text = TxtFechaLiberacion.Text + FechaLiberacion = TxtFechaLiberacion.Text + BtnGuardarLiberacion.Visible = True + + DtSeccionAlmacen.Rows.Clear() + + UpGeneralesLibreacion.Update() + Else + Alert("Ocurrió un error al cargar los resguardos del personal. Por favor vuelva a intentar.", TipoMensaje.MsgError) + End If + ObjInventario.Dispose() + + End Sub + + Private Sub CargaGvMLiberacion() + GvM.Columns(5).Visible = False + For Each Dr As DataRow In DtMovimientosLiberacion.Rows + If Dr("SerieLote").ToString <> "" Then + GvM.Columns(5).Visible = True + Exit For + End If + Next + + GvMLiberacion.DataSource = DtMovimientosLiberacion + GvMLiberacion.DataBind() + UpGridLiberacion.Update() + End Sub + +#End Region + +#Region " LIMPIAR LIBERACION " + Private Sub LimpiarLiberacion() + LbTipoLiberacion.Text = "" + LblTipo.InnerText = "" + CvePersonalLiberacion = -1 + CveClienteLiberacion = -1 + CveProveedorLiberacion = -1 + LbAlmacenLiberacion.Text = "" + CveAlmacenLiberación = -1 + LbFechaLiberacion.Text = "" + FechaLiberacion = "" + BtnGuardarLiberacion.Visible = False + DtSeccionAlmacen.Rows.Clear() + + DdlAlmacenDestinoLiberacion.SelectedValue = "-1" + TxtObservacionesLiberacion.Text = "" + + DtMovimientosLiberacion.Clear() + CargaGvMLiberacion() + + UpGeneralesLibreacion.Update() + End Sub +#End Region + + +#End Region + + + +#Region " GUARDAR " + Protected Sub BtnGuardarResguardo_Click(sender As Object, e As EventArgs) Handles BtnGuardarResguardo.Click + + If Not GvM.Rows.Count > 0 Then + Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not DdlProveedor.SelectedValue.ToEntero > 0 And DivProveedor.Visible Then + Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'VALIDA LA EXISTENCIA DEL ALMACEN + Dim ObjInventario As New ClsInventarios + Dim ErrorExistencia = False + Dim TextoExistencia As StringBuilder = New StringBuilder + Dim Existencia As Double + TextoExistencia.Append("Los siguiente productos se ajustaron por falta de exitencia:
") + For Each dr As DataRow In DtMovimientos.Rows + Existencia = ObjInventario.GetExistenciasPS(dr("CvePS").ToString.ToEntero, dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59"), SerieLote:=If(dr("SerieLote").ToString = "", "-1", dr("SerieLote").ToString)) + Existencia -= DtMovimientos.SUM("Cantidad", $"CvePS = {dr("CvePS").ToString.ToEntero} AND CveUM = {dr("CveUM").ToString.ToEntero} {If(dr("SerieLote").ToString <> "-1", $" AND SerieLote = '{dr("SerieLote").ToString}'", "")}") + + If Existencia < 0 Then + ErrorExistencia = True + dr("Cantidad") = Existencia + TextoExistencia.AppendFormat("- #{0} {1}
", dr("No").ToString, dr("PS").ToString) + End If + Next + ObjInventario.Dispose() + + If ErrorExistencia Then + Alert(TextoExistencia.ToString, TipoMensaje.MsgError) + End If + + Dim TotalCantidad As Double = DtMovimientos.SUMD("Cantidad") + If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then + If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 1").SUMD("CantidadSeccionAlmacen") Then + Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + Guardar(23) + + End Sub + Protected Sub BtnGuardarLiberacion_Click(sender As Object, e As EventArgs) + + If Not DdlProveedorLiberacion.SelectedValue.ToEntero > 0 And DivProveedorLiberacion2.Visible Then + Alert("Tiene que seleccionar un proveedor.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If Not GvMLiberacion.Rows.Count > 0 Then + Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim TieneError = True + Dim TotalCantidad As Decimal = 0 + For Each Gvr As GridViewRow In GvMLiberacion.Rows + If Gvr.FCTextBox("TxtCantidad").Text.ToDecimal > 0 Then + TieneError = False + Exit For + Else + TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToDecimal + End If + Next + + If TieneError Then + Alert("Se debe seleccionar por lo menos una cantidad de los resguardos para generar la liberación. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + If UsuarioActual.Empresa.Funcionalidad(563) = "1" Then + If TotalCantidad <> DtSeccionAlmacen.FiltraParametros("TipoSeccionAlmacen = 2").SUMD("CantidadSeccionAlmacen") Then + Alert("La seccion de almacen no ha sido agregada completamente.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + End If + + Guardar(24) + + + End Sub + + Private Sub Guardar(Concepto As Integer) + Dim ObjInventario As New ClsInventarios + Dim ObjEventos As New ClsOIEventos(ObjInventario.IniciaTransacSQL()) 'Inicia la transacción + Dim TieneError = False + Dim MensajeError As String = "" + Dim ImporteConcepto = 0.0 + + Dim CveMovimientoSalida = 0 + Dim FolioSalida = 0 + Dim CveMovimientoEntrada = 0 + Dim FolioEntrada = 0 + + 'Para Campos Nuevos AF y OC + Dim SubProyecto = -1 + Dim ActivoFijo = -1 + + Dim CveProveedor = -1 + Dim CveCliente = -1 + Dim CvePersonal = -1 + + If RbTipoCliente.Checked Then CveCliente = DdlCliente.SelectedValue.ToEntero + If RbTipoProveedor.Checked Then CveProveedor = DdlProveedor.SelectedValue.ToEntero + If RbTipoPersonal.Checked Then CvePersonal = DdlPersonal.SelectedValue.ToEntero + + Dim Fecha = If(Concepto = 23, TxtFecha.Text.ToDate, FechaLiberacion.ToDate) + + Select Case (Concepto) + Case 23 ' Resguardo + + 'SALIDA ORIGEN + CveMovimientoSalida = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 24, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservaciones.Text, CvePersonal:=CvePersonal, CveAlmacenDestino:=DdlAlmacenDestino.SelectedValue.ToEntero, CveCliente:=CveCliente, CveProveedor:=CveProveedor) + FolioSalida = ObjInventario.Folio + + If CveMovimientoSalida <= 0 Then + TieneError = True + MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar." + Exit Select + End If + + Dim Cont As Integer = 0 + For Each Dr As DataRow In DtMovimientos.Rows + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then + MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar." + TieneError = True + Exit For + Else + If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then + For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows + If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then + TieneError = True + MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." + Exit For + End If + Next + End If + End If + Cont += 1 + Next + + Cont = 0 + If Not TieneError Then + CveMovimientoEntrada = ObjInventario.AddMovimiento(DdlAlmacenDestino.SelectedValue.ToEntero, 2, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservaciones.Text, CvePersonal:=CvePersonal, CveMovimientoRelacionado:=CveMovimientoSalida, CveCliente:=CveCliente, CveProveedor:=CveProveedor) + FolioEntrada = ObjInventario.Folio + + If CveMovimientoEntrada <= 0 Then + MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar." + TieneError = True + Else + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + For Each Dr As DataRow In ObjInventario.DtResultados.Rows + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then + TieneError = True + MensajeError = "Ocurrió un error al guardar los movimientos de entrada" + Exit For + Else + If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then + For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 1").Rows + If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then + TieneError = True + MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." + Exit For + End If + Next + End If + End If + Cont += 1 + Next + End If + End If + End If + + Case 24 'LIBERACION + + + 'SALIDA ORIGEN - RESGUARDO + CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenLiberación, 3, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservacionesLiberacion.Text, CvePersonal:=CvePersonalLiberacion, CveAlmacenDestino:=DdlAlmacenDestinoLiberacion.SelectedValue.ToEntero, CveProveedor:=CveProveedorLiberacion, CveCliente:=CveClienteLiberacion, MovimientoFijo:=True) + FolioSalida = ObjInventario.Folio + + If CveMovimientoSalida <= 0 Then + TieneError = True + MensajeError = "Ocurrió un error al guardar el movimiento de salida. Por favor vuelva a intentar." + Exit Select + End If + + Dim Cont As Integer = 0 + For Each Gvr As GridViewRow In GvMLiberacion.Rows + If Gvr.FCTextBox("TxtCantidad").Text.ToDouble > 0 Then + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Gvr.FCTextBox("TxtCantidad").Text.ToDouble, Gvr.DataKey("CveUM").ToString.ToEntero, Gvr.DataKey("CvePS").ToString.ToEntero, Gvr.DataKey("PU").ToString.ToDecimal, -1, -1, Gvr.DataKey("SerieLote").ToString, Gvr.DataKey("Observaciones").ToString) Then + MensajeError = "Ocurrió un error al guardar los detalles del movimiento de salida. Por favor vuelva a intentar." + TieneError = True + Exit For + Else + If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then + For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 2").Rows + If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenOrigen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then + TieneError = True + MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." + Exit For + End If + Next + End If + End If + End If + Cont += 1 + Next + + + If Not TieneError Then + CveMovimientoEntrada = ObjInventario.AddMovimiento(DdlAlmacenDestinoLiberacion.SelectedValue.ToEntero, 23, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, SubProyecto, ActivoFijo, Observaciones:=TxtObservacionesLiberacion.Text, CvePersonal:=CvePersonalLiberacion, CveMovimientoRelacionado:=CveMovimientoSalida, CveProveedor:=CveProveedorLiberacion, CveCliente:=CveClienteLiberacion, MovimientoFijo:=True) + FolioEntrada = ObjInventario.Folio + + If CveMovimientoEntrada <= 0 Then + MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar." + TieneError = True + Else + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + Cont = 0 + For Each Dr As DataRow In ObjInventario.DtResultados.Rows + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, Dr("Observaciones").ToString) Then + TieneError = True + MensajeError = "Ocurrió un error al guardar los movimientos de entrada" + Exit For + Else + If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then + For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont} AND TipoSeccionAlmacen = 2").Rows + If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacenDestino").ToString.ToEntero, Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then + TieneError = True + MensajeError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar." + Exit For + End If + Next + End If + End If + Cont += 1 + Next + End If + End If + End If + + End Select + If Not TieneError Then TieneError = Not AgregarAgenda(ObjEventos, FolioEntrada, FolioSalida) - End If - - If Not TieneError Then - Dim Msg As New StringBuilder - If Concepto = 23 Then - Msg.AppendFormat("
Resguardo con Folio: {1}", CveMovimientoSalida, FolioSalida) - Msg.AppendFormat("
Imprimir Resguardo ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) - - Msg.AppendFormat("


El Movimiento de control se registro con el Folio: {1}", CveMovimientoEntrada, FolioEntrada) - Else - Msg.AppendFormat("
Liberación de Resguardo con Folio: {1}", CveMovimientoEntrada, FolioEntrada) - Msg.AppendFormat("
Imprimir liberación de Resguardo ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) - - Msg.AppendFormat("


El Movimiento de control se registro con el Folio: {1}", CveMovimientoSalida, FolioSalida) - End If - - - Alert(Msg.ToString, TipoMensaje.MsgInformacion) - - 'Limpia Valores cuando inserta de campos especiales - If UsuarioActual.CveEmpresa = 66 Then - DdlSubProyecto.SelectedValueExist("-1") - End If - - ObjInventario.Commit() - - If Concepto = 23 Then - LimpiarMovimiento() - Else - LimpiarLiberacion() - End If - - UPDatos.Update() - Else - Alert(MensajeError, TipoMensaje.MsgError) - ObjInventario.RollBack() - End If - - ObjInventario.Dispose() - ObjEventos.Dispose() + End If + + If Not TieneError Then + Dim Msg As New StringBuilder + If Concepto = 23 Then + Msg.AppendFormat("
Resguardo con Folio: {1}", CveMovimientoSalida, FolioSalida) + Msg.AppendFormat("
Imprimir Resguardo ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoSalida))) + + Msg.AppendFormat("


El Movimiento de control se registro con el Folio: {1}", CveMovimientoEntrada, FolioEntrada) + Else + Msg.AppendFormat("
Liberación de Resguardo con Folio: {1}", CveMovimientoEntrada, FolioEntrada) + Msg.AppendFormat("
Imprimir liberación de Resguardo ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada))) + + Msg.AppendFormat("


El Movimiento de control se registro con el Folio: {1}", CveMovimientoSalida, FolioSalida) + End If + + + Alert(Msg.ToString, TipoMensaje.MsgInformacion) + + 'Limpia Valores cuando inserta de campos especiales + If UsuarioActual.CveEmpresa = 66 Then + DdlSubProyecto.SelectedValueExist("-1") + End If + + ObjInventario.Commit() + + If Concepto = 23 Then + LimpiarMovimiento() + Else + LimpiarLiberacion() + End If + + UPDatos.Update() + Else + Alert(MensajeError, TipoMensaje.MsgError) + ObjInventario.RollBack() + End If + + ObjInventario.Dispose() + ObjEventos.Dispose() End Sub Private Function AgregarAgenda(ByRef ObjEventos As ClsOIEventos, FolioEntrada As Integer, FolioSalida As Integer) As Boolean Dim TieneError As Boolean = False @@ -961,232 +961,232 @@ Partial Class Inventarios_ResguardoMaterial End Function -#End Region +#End Region -#Region "TIPOS" +#Region "TIPOS" - Protected Sub RbTipo_CheckedChanged(sender As Object, e As EventArgs) - DivCliente.Visible = False - DivPersonal.Visible = False - DivProveedor.Visible = False + Protected Sub RbTipo_CheckedChanged(sender As Object, e As EventArgs) + DivCliente.Visible = False + DivPersonal.Visible = False + DivProveedor.Visible = False If RbTipoCliente.Checked Then - DivCliente.Visible = True - 'DdlPersonal.Attributes.Add("data-metodo", "getcliente") + DivCliente.Visible = True + 'DdlPersonal.Attributes.Add("data-metodo", "getcliente") End If If RbTipoPersonal.Checked Then - DivPersonal.Visible = True - 'DdlPersonal.Attributes.Add("data-metodo", "getpersonal") + DivPersonal.Visible = True + 'DdlPersonal.Attributes.Add("data-metodo", "getpersonal") End If If RbTipoProveedor.Checked Then - DivProveedor.Visible = True - 'DdlPersonal.Attributes.Add("data-metodo", "getproveedores") + DivProveedor.Visible = True + 'DdlPersonal.Attributes.Add("data-metodo", "getproveedores") End If - UpGenerales.Update() - End Sub - - Protected Sub DdlTipo_SelectedIndexChanged(sender As Object, e As EventArgs) - 'DdlPersonalLiberacion.ddl.SelectedIndex = 0 - 'DdlProveedorLiberacion.SelectedValue = "-1" - 'DdlProveedorLiberacion.SelectedText = "Seleccione" - 'DdlClienteLiberacion.SelectedValue = "0" - DivPersonalLiberacion.Visible = False - DivPersonalLiberacion2.Visible = False - DivClienteLiberacion.Visible = False - DivClienteLiberacion2.Visible = False - DivProveedorLiberacion.Visible = False - DivProveedorLiberacion2.Visible = False - If DdlTipo.SelectedValue.ToEntero = 1 Then - DivPersonalLiberacion.Visible = True - DivPersonalLiberacion2.Visible = True - End If - If DdlTipo.SelectedValue.ToEntero = 2 Then - DivClienteLiberacion.Visible = True - DivClienteLiberacion2.Visible = True - End If - If DdlTipo.SelectedValue.ToEntero = 3 Then - DivProveedorLiberacion.Visible = True - DivProveedorLiberacion2.Visible = True - End If - UpFiltraLiberacion.Update() + UpGenerales.Update() End Sub -#End Region + Protected Sub DdlTipo_SelectedIndexChanged(sender As Object, e As EventArgs) + 'DdlPersonalLiberacion.ddl.SelectedIndex = 0 + 'DdlProveedorLiberacion.SelectedValue = "-1" + 'DdlProveedorLiberacion.SelectedText = "Seleccione" + 'DdlClienteLiberacion.SelectedValue = "0" + DivPersonalLiberacion.Visible = False + DivPersonalLiberacion2.Visible = False + DivClienteLiberacion.Visible = False + DivClienteLiberacion2.Visible = False + DivProveedorLiberacion.Visible = False + DivProveedorLiberacion2.Visible = False + If DdlTipo.SelectedValue.ToEntero = 1 Then + DivPersonalLiberacion.Visible = True + DivPersonalLiberacion2.Visible = True + End If + If DdlTipo.SelectedValue.ToEntero = 2 Then + DivClienteLiberacion.Visible = True + DivClienteLiberacion2.Visible = True + End If + If DdlTipo.SelectedValue.ToEntero = 3 Then + DivProveedorLiberacion.Visible = True + DivProveedorLiberacion2.Visible = True + End If + UpFiltraLiberacion.Update() + End Sub -#Region "SECCION ALMACEN" - Private Sub CreaDtSeccionAlmacen() - DtSeccionAlmacen = New DataTable - DtSeccionAlmacen.Columns.Add("CantidadSeccionAlmacen", GetType(Decimal)) - DtSeccionAlmacen.Columns.Add("IndexSeccionAlmacen", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenOrigen", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenDestino", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("CvePS", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("SeccionAlmacenOrigen", GetType(String)) - DtSeccionAlmacen.Columns.Add("SeccionAlmacenDestino", GetType(String)) - DtSeccionAlmacen.Columns.Add("Consec", GetType(Integer)) - DtSeccionAlmacen.Columns.Add("TipoSeccionAlmacen", GetType(Integer)) - End Sub - Private Sub CargaDdlAlmacen() - DdlSeccionAlmacenOrigen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) - DdlSeccionAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlSeccionAlmacenOrigen.DataBind() - - DdlSeccionAlmacenDestino.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) - DdlSeccionAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlSeccionAlmacenDestino.DataBind() - End Sub - Protected Sub LnkSeccionAlmacen_Click(sender As Object, e As EventArgs) - Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - - If Not DdlAlmacen.SelectedValue.ToEntero > 0 Then - Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen origen.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - 'If Not DdlAlmacenDestino.SelectedValue.ToEntero > 0 AndAlso Not ChkTransitorio.Checked Then - ' Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen destino.", TipoMensaje.MsgAdvertencia) - ' Exit Sub - 'End If - - GvSeccion.Columns(2).Visible = True - DivSeccionAlmacenDestino.Visible = True - - DivSeccionAlmacenOrigen.Visible = True - GvSeccion.Columns(1).Visible = True - - CantidadTotal = gvRow.DataKey("Cantidad").ToDecimal - IndexSeccionAlmacen = gvRow.RowIndex - CvePS = gvRow.DataKey("CvePS").ToEntero - TipoSeccionAlmacen = 1 - CargaSeccionAlmacen() - RegistraScript("$('#DModalSeccionAlmacen').modal()") - End Sub - - Protected Sub LnkSeccionAlmacenDestino_Click(sender As Object, e As EventArgs) - Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - - If Not DdlAlmacenLiberacion.SelectedValue.ToEntero > 0 Then - Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen destino.", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - DivSeccionAlmacenOrigen.Visible = True - DivSeccionAlmacenDestino.Visible = True - GvSeccion.Columns(1).Visible = True - GvSeccion.Columns(2).Visible = True - - CantidadTotal = gvRow.FCTextBox("TxtCantidad").Text.ToDecimal - IndexSeccionAlmacen = gvRow.RowIndex - CvePS = gvRow.DataKey("CvePS").ToEntero - TipoSeccionAlmacen = 2 - CargaSeccionAlmacen() - RegistraScript("$('#DModalSeccionAlmacen').modal()") - - End Sub - - Private Sub CargaSeccionAlmacen() - Dim CantidadTotalSeccion As Decimal = DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {IndexSeccionAlmacen} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}").SUMD("CantidadSeccionAlmacen") - GvSeccion.DataSource = DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {IndexSeccionAlmacen} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}") - GvSeccion.DataBind() - - TxtCantidadSeccion.Text = "" - DdlSeccionAlmacenOrigen.SelectedIndex = 0 - DdlSeccionAlmacenDestino.SelectedIndex = 0 - Dim CantidadRestante As Decimal = CantidadTotal - CantidadTotalSeccion - If CantidadRestante = 0 Then - RVTxtCantidad.MaximumValue = "1" - TxtCantidadSeccion.Enabled = False - Else - RVTxtCantidad.MaximumValue = CantidadRestante.ToString - TxtCantidadSeccion.Enabled = True - End If - - If TipoSeccionAlmacen = 1 Then - If CantidadTotalSeccion > 0 Then - GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").Visible = False - GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").ToolTip = "Cuenta con sección almacen" - Else - GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").Visible = True - GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").ToolTip = "" - End If - If DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen") > 0 Then - DdlAlmacen.Enabled = False - DdlAlmacen.ToolTip = "Cuenta con sección almacen" - Else - DdlAlmacen.Enabled = True - DdlAlmacen.ToolTip = "" - End If +#End Region + +#Region "SECCION ALMACEN" + Private Sub CreaDtSeccionAlmacen() + DtSeccionAlmacen = New DataTable + DtSeccionAlmacen.Columns.Add("CantidadSeccionAlmacen", GetType(Decimal)) + DtSeccionAlmacen.Columns.Add("IndexSeccionAlmacen", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenOrigen", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("CveSeccionAlmacenDestino", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("CvePS", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("SeccionAlmacenOrigen", GetType(String)) + DtSeccionAlmacen.Columns.Add("SeccionAlmacenDestino", GetType(String)) + DtSeccionAlmacen.Columns.Add("Consec", GetType(Integer)) + DtSeccionAlmacen.Columns.Add("TipoSeccionAlmacen", GetType(Integer)) + End Sub + Private Sub CargaDdlAlmacen() + DdlSeccionAlmacenOrigen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) + DdlSeccionAlmacenOrigen.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlSeccionAlmacenOrigen.DataBind() + + DdlSeccionAlmacenDestino.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa) + DdlSeccionAlmacenDestino.Items.Insert(0, New ListItem("Seleccione", "-1")) + DdlSeccionAlmacenDestino.DataBind() + End Sub + Protected Sub LnkSeccionAlmacen_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + + If Not DdlAlmacen.SelectedValue.ToEntero > 0 Then + Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen origen.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + 'If Not DdlAlmacenDestino.SelectedValue.ToEntero > 0 AndAlso Not ChkTransitorio.Checked Then + ' Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen destino.", TipoMensaje.MsgAdvertencia) + ' Exit Sub + 'End If + + GvSeccion.Columns(2).Visible = True + DivSeccionAlmacenDestino.Visible = True + + DivSeccionAlmacenOrigen.Visible = True + GvSeccion.Columns(1).Visible = True + + CantidadTotal = gvRow.DataKey("Cantidad").ToDecimal + IndexSeccionAlmacen = gvRow.RowIndex + CvePS = gvRow.DataKey("CvePS").ToEntero + TipoSeccionAlmacen = 1 + CargaSeccionAlmacen() + RegistraScript("$('#DModalSeccionAlmacen').modal()") + End Sub + + Protected Sub LnkSeccionAlmacenDestino_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + + If Not DdlAlmacenLiberacion.SelectedValue.ToEntero > 0 Then + Alert("Tiene que tener seleccionado un almacen para registrar seccion almacen destino.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + DivSeccionAlmacenOrigen.Visible = True + DivSeccionAlmacenDestino.Visible = True + GvSeccion.Columns(1).Visible = True + GvSeccion.Columns(2).Visible = True + + CantidadTotal = gvRow.FCTextBox("TxtCantidad").Text.ToDecimal + IndexSeccionAlmacen = gvRow.RowIndex + CvePS = gvRow.DataKey("CvePS").ToEntero + TipoSeccionAlmacen = 2 + CargaSeccionAlmacen() + RegistraScript("$('#DModalSeccionAlmacen').modal()") + + End Sub + + Private Sub CargaSeccionAlmacen() + Dim CantidadTotalSeccion As Decimal = DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {IndexSeccionAlmacen} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}").SUMD("CantidadSeccionAlmacen") + GvSeccion.DataSource = DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {IndexSeccionAlmacen} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}") + GvSeccion.DataBind() + + TxtCantidadSeccion.Text = "" + DdlSeccionAlmacenOrigen.SelectedIndex = 0 + DdlSeccionAlmacenDestino.SelectedIndex = 0 + Dim CantidadRestante As Decimal = CantidadTotal - CantidadTotalSeccion + If CantidadRestante = 0 Then + RVTxtCantidad.MaximumValue = "1" + TxtCantidadSeccion.Enabled = False + Else + RVTxtCantidad.MaximumValue = CantidadRestante.ToString + TxtCantidadSeccion.Enabled = True + End If + + If TipoSeccionAlmacen = 1 Then + If CantidadTotalSeccion > 0 Then + GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").Visible = False + GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").ToolTip = "Cuenta con sección almacen" + Else + GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").Visible = True + GvM.Rows(IndexSeccionAlmacen).FCLinkButton("lnkRemove").ToolTip = "" + End If + If DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen") > 0 Then + DdlAlmacen.Enabled = False + DdlAlmacen.ToolTip = "Cuenta con sección almacen" + Else + DdlAlmacen.Enabled = True + DdlAlmacen.ToolTip = "" + End If UpGenerales.Update() - ElseIf TipoSeccionAlmacen = 2 Then - If CantidadTotalSeccion > 0 Then - GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").Enabled = False - GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").ToolTip = "Cuenta con sección almacen" - Else - GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").Enabled = True - GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").ToolTip = "" - End If - If DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen") > 0 Then - DdlAlmacenLiberacion.Enabled = False - DdlAlmacenLiberacion.ToolTip = "Cuenta con sección almacen" - Else - DdlAlmacenLiberacion.Enabled = True - DdlAlmacenLiberacion.ToolTip = "" - End If - UpGridLiberacion.Update() - UpFiltraLiberacion.Update() - End If - - UpModalSeccionAlmacen.Update() - End Sub - - Protected Sub LnkAddSeccionAlmacen_Click(sender As Object, e As EventArgs) - - Dim ObjInv As New ClsInventarios - Dim CantidadDisponible As Decimal = 0 - If ObjInv.GetMovimientosDetalleSeccionesAlmacen(DdlSeccionAlmacenOrigen.SelectedValue.ToEntero, If(TipoSeccionAlmacen = 1, DdlAlmacen.SelectedValue.ToEntero, DdlAlmacenLiberacion.SelectedValue.ToEntero), - CvePS, UsuarioActual.CveEmpresa) Then - If ObjInv.DtResultados.Rows.Count > 0 Then - CantidadDisponible = ObjInv.DtResultados.Rows(0)("CantidadRestante").ToString.ToDecimal - End If - End If - ObjInv.Dispose() - - CantidadDisponible -= DtSeccionAlmacen.FiltraParametros($"CvePS = {CvePS} AND CveSeccionAlmacenOrigen = {DdlSeccionAlmacenOrigen.SelectedValue} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}").SUMD("CantidadSeccionAlmacen") - - If TxtCantidadSeccion.Text.ToDecimal > CantidadDisponible Then - Alert($"No tiene cantidad de producto suficiente en esta seccion de almacen, su cantidad restante es: {CantidadDisponible}", TipoMensaje.MsgAdvertencia) - Exit Sub - End If - - Dim Row As DataRow = Nothing - DtSeccionAlmacen.AcceptChanges() - Row = DtSeccionAlmacen.NewRow - Row("CantidadSeccionAlmacen") = TxtCantidadSeccion.Text.ToDecimal - Row("IndexSeccionAlmacen") = IndexSeccionAlmacen - Row("CveSeccionAlmacenOrigen") = DdlSeccionAlmacenOrigen.SelectedValue.ToEntero - Row("SeccionAlmacenOrigen") = DdlSeccionAlmacenOrigen.SelectedItem.Text - Row("CveSeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedValue.ToEntero - Row("SeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedItem.Text - Row("CvePS") = CvePS - Row("Consec") = DtSeccionAlmacen.Rows.Count + 1 - Row("TipoSeccionAlmacen") = TipoSeccionAlmacen - DtSeccionAlmacen.Rows.Add(Row) - DtSeccionAlmacen.AcceptChanges() - CargaSeccionAlmacen() - End Sub - - Protected Sub LnkEliminarSeccion_Click(sender As Object, e As EventArgs) - Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) - Dim Index As Integer = 0 - For Each Dr As DataRow In DtSeccionAlmacen.Rows - If Dr("Consec").ToString.ToEntero = gvRow.DataKey("Consec").ToEntero() Then - Exit For - End If - Index += 1 - Next - DtSeccionAlmacen.Rows.RemoveAt(Index) - DtSeccionAlmacen.AcceptChanges() - CargaSeccionAlmacen() + ElseIf TipoSeccionAlmacen = 2 Then + If CantidadTotalSeccion > 0 Then + GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").Enabled = False + GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").ToolTip = "Cuenta con sección almacen" + Else + GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").Enabled = True + GvMLiberacion.Rows(IndexSeccionAlmacen).FCTextBox("TxtCantidad").ToolTip = "" + End If + If DtSeccionAlmacen.SUMD("CantidadSeccionAlmacen") > 0 Then + DdlAlmacenLiberacion.Enabled = False + DdlAlmacenLiberacion.ToolTip = "Cuenta con sección almacen" + Else + DdlAlmacenLiberacion.Enabled = True + DdlAlmacenLiberacion.ToolTip = "" + End If + UpGridLiberacion.Update() + UpFiltraLiberacion.Update() + End If + + UpModalSeccionAlmacen.Update() + End Sub + + Protected Sub LnkAddSeccionAlmacen_Click(sender As Object, e As EventArgs) + + Dim ObjInv As New ClsInventarios + Dim CantidadDisponible As Decimal = 0 + If ObjInv.GetMovimientosDetalleSeccionesAlmacen(DdlSeccionAlmacenOrigen.SelectedValue.ToEntero, If(TipoSeccionAlmacen = 1, DdlAlmacen.SelectedValue.ToEntero, DdlAlmacenLiberacion.SelectedValue.ToEntero), + CvePS, UsuarioActual.CveEmpresa) Then + If ObjInv.DtResultados.Rows.Count > 0 Then + CantidadDisponible = ObjInv.DtResultados.Rows(0)("CantidadRestante").ToString.ToDecimal + End If + End If + ObjInv.Dispose() + + CantidadDisponible -= DtSeccionAlmacen.FiltraParametros($"CvePS = {CvePS} AND CveSeccionAlmacenOrigen = {DdlSeccionAlmacenOrigen.SelectedValue} AND TipoSeccionAlmacen = {TipoSeccionAlmacen}").SUMD("CantidadSeccionAlmacen") + + If TxtCantidadSeccion.Text.ToDecimal > CantidadDisponible Then + Alert($"No tiene cantidad de producto suficiente en esta seccion de almacen, su cantidad restante es: {CantidadDisponible}", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + + Dim Row As DataRow = Nothing + DtSeccionAlmacen.AcceptChanges() + Row = DtSeccionAlmacen.NewRow + Row("CantidadSeccionAlmacen") = TxtCantidadSeccion.Text.ToDecimal + Row("IndexSeccionAlmacen") = IndexSeccionAlmacen + Row("CveSeccionAlmacenOrigen") = DdlSeccionAlmacenOrigen.SelectedValue.ToEntero + Row("SeccionAlmacenOrigen") = DdlSeccionAlmacenOrigen.SelectedItem.Text + Row("CveSeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedValue.ToEntero + Row("SeccionAlmacenDestino") = DdlSeccionAlmacenDestino.SelectedItem.Text + Row("CvePS") = CvePS + Row("Consec") = DtSeccionAlmacen.Rows.Count + 1 + Row("TipoSeccionAlmacen") = TipoSeccionAlmacen + DtSeccionAlmacen.Rows.Add(Row) + DtSeccionAlmacen.AcceptChanges() + CargaSeccionAlmacen() + End Sub + + Protected Sub LnkEliminarSeccion_Click(sender As Object, e As EventArgs) + Dim gvRow As GridViewRow = DirectCast((DirectCast(sender, LinkButton)).NamingContainer, GridViewRow) + Dim Index As Integer = 0 + For Each Dr As DataRow In DtSeccionAlmacen.Rows + If Dr("Consec").ToString.ToEntero = gvRow.DataKey("Consec").ToEntero() Then + Exit For + End If + Index += 1 + Next + DtSeccionAlmacen.Rows.RemoveAt(Index) + DtSeccionAlmacen.AcceptChanges() + CargaSeccionAlmacen() End Sub 'Protected Sub LnkVerSecciones_Click(sender As Object, e As EventArgs) @@ -1210,7 +1210,7 @@ Partial Class Inventarios_ResguardoMaterial ' RegistraScript("$('#ModalVerSeccionesAlmacen').modal()") 'End Sub -#End Region +#End Region Private Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click Imprime("Excel") @@ -1228,4 +1228,4 @@ Partial Class Inventarios_ResguardoMaterial End If End Sub -End Class +End Class