Option Explicit On Option Strict On Imports Extensiones Imports Microsoft.Reporting.WebForms Imports System.Data Partial Class Inventarios_RepMaximoMinimo Inherits ClsPaginas #Region " PROPIEDADES " Private Property PS As String Get If ViewState("PS") Is Nothing Then Return "" Else Return ViewState("PS").ToString End If End Get Set(value As String) ViewState("PS") = value End Set End Property Private Property DTOCDetalle As DataTable Get If ViewState("DTOCDetalle") Is Nothing Then Return New DataTable Else Return DirectCast(ViewState("DTOCDetalle"), DataTable) End If End Get Set(value As DataTable) ViewState("DTOCDetalle") = value End Set End Property Private ReadOnly Property PermiteClasificacion2 As Boolean Get Return (UsuarioActual.CveEmpresa.Contiene(72, 80)) End Get End Property #End Region Private Sub Inventarios_RepMaximoMinimo_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() End If End Sub #Region " INICIALIZA VALORES " Private Sub CargaCombos() DdlSubProyecto.DataSource = GlobalDTSubProyectos(UsuarioActual.Empresa.CveEmpresa, Estatus:=1) DdlSubProyecto.DataBind() DdlSubProyecto.Items.Insert(0, New ListItem("Todas", "-1")) DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1) 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) DdlAlmacen.DataBind() DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) DdlAlmacenModal.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1) DdlAlmacenModal.DataBind() DdlAlmacenModal.Items.Insert(0, New ListItem("Seleccione Almacén", "-1")) 'DdlPSModal.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa) 'DdlPSModal.DataBind() 'DdlPSModal.Items.Insert(0, New ListItem("Seleccione", "-1")) UpModalMaximoMinimo.Update() DdlClasificacion2.DataSource = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa) DdlClasificacion2.DataBind() DdlClasificacion2.Items.Insert(0, New ListItem("Todas", "-1")) 'BLOQUEA DDL CLASIFICACION DivClaisficacionLabel.Visible = PermiteClasificacion2 DivClasificacion2.Visible = PermiteClasificacion2 TdModalClasificacion2.Visible = PermiteClasificacion2 End Sub Private Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged 'Dim DtSubptoyecto As DataTable = GlobalDTSubProyectos( UsuarioActual.Empresa.CveEmpresa ).FiltraParametros(String.Format(" CveSubProyecto ={0}", DdlSubProyecto.SelectedValue.ToEntero)) 'GlobalDTSucursales(" CveSucursal = ") DdlAlmacen.Items.Clear() 'If DtSubptoyecto.Rows.Count > 0 Then 'Dim CveSucursal As Integer = DtSubptoyecto(0)("CveSucursal").ToString.ToEntero DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1).FiltraParametros(String.Format("CveSubProyecto={0}", DdlSubProyecto.SelectedValue.ToEntero)) DdlAlmacen.DataBind() DdlAlmacen.Items.Insert(0, New ListItem("Todos", "-1")) 'Else ' DdlAlmacen.DataSource = Nothing ' DdlAlmacen.DataBind() 'End If 'GvDatos.DataSource = Nothing 'GvDatos.DataBind() 'DdlAlmacen.SelectedIndex = 0 OrdenaDatos() UpDatos.Update() UpTitulos.Update() End Sub #End Region #Region " CARGA DATOS " Private Sub BtnFiltrar_Click(sender As Object, e As EventArgs) Handles BtnFiltrar.Click CargaGrid() OrdenaDatos() End Sub Private Sub CargaGrid() Dim ObjMaxMin As New ClsInventarios If ObjMaxMin.RepMaximoMinimo(DdlSubProyecto.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlClasificacion2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjMaxMin.DtResultados Else GvDatos.DataSource = Nothing End If If DdlAlmacen.SelectedValue.ToEntero > 0 Then GvDatos.Columns(9).Visible = True Else GvDatos.Columns(9).Visible = False End If ObjMaxMin.Dispose() GvDatos.DataBind() UpDatos.Update() End Sub Private Sub OrdenaDatos() 'If (GvDatos.Rows.Count > 0) Then ' GvDatos.UseAccessibleHeader = True ' GvDatos.HeaderRow.TableSection = TableRowSection.TableHeader ' RegistraScript("OrdenarGV();", "ScriptOrdenamiento") 'End If End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.FCLiteral("LtCodigo").Text = $"{e.Row.DBCampo("Codigo")}" e.Row.FCLabel("LtDescripcion").Text = $"{e.Row.DBCampo("PS")}" If e.Row.FCLinkButton("LnkPteRecibir").Text = "-" Then e.Row.FCLinkButton("LnkPteRecibir").Visible = False e.Row.FCLabel("LblPteRecibir").Visible = True End If End If End Sub #End Region #Region " PENDIENTE POR RECIBIR " Private Sub GvDetalleOrdenCompra_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDetalleOrdenCompra.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then e.Row.FCLiteral("LtlOc").Text = $"{e.Row.DBCampo("OC")}" End If End Sub Public Sub Click_VerDetalleOC(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) Dim activo As Boolean = False Dim CvePs As Integer = GvRow.DataKey("CvePS").ToString.ToEntero Dim CodigoPS As String = GvRow.DataKey("CodigoPS").ToString Dim Descripcion As String = GvRow.DataKey("PS").ToString PS = Descripcion Dim objInventarios As New ClsInventarios If objInventarios.RepMaximoMinimoDetalleGet(DdlSubProyecto.SelectedValue.ToEntero, CvePs, UsuarioActual.Empresa.CveEmpresa) Then DTOCDetalle = objInventarios.DtResultados GvDetalleOrdenCompra.DataSource = objInventarios.DtResultados End If OrdenaDatos() objInventarios.Dispose() GvDetalleOrdenCompra.DataBind() LtlTitulo.Text = String.Format("{0}", CodigoPS) RegistraScript("$('#ModalDetalleOrdenCompra').modal({ backdrop: 'static', keyboard: false})", "ModalDetalle") UpModaletalle.Update() End Sub #End Region #Region " MODAL " Private Sub LnkDefinir_Click(sender As Object, e As EventArgs) Handles LnkDefinir.Click HFDefinir.Value = "I" DdlAlmacenModal.SelectedIndex = 0 DdlPSModal.SelectedValue = "-1" DdlPSModal.SelectedText = "Seleccione" TxtMaximo.Text = "" TxtMinimo.Text = "" DdlAlmacenModal.Enabled = True DdlPSModal.Enabled = True LbAgregarMaximoMinimo.Text = "Agregar" UpModalMaximoMinimo.Update() RegistraScript(String.Format("$('#{0}').modal();", "ModalMaximoMinimo")) End Sub Private Sub LbAgregarMaximoMinimo_Click(sender As Object, e As EventArgs) Handles LbAgregarMaximoMinimo.Click If DdlPSModal.SelectedValue.ToEntero > 0 Then Using ObjInventario As New ClsInventarios If HFDefinir.Value = "I" Then If ObjInventario.AddAlmacenMaximoMinimo(DdlAlmacenModal.SelectedValue.ToEntero, DdlPSModal.SelectedValue.ToEntero, TxtMaximo.Text.ToDecimal, TxtMinimo.Text.ToDecimal, UsuarioActual.CveUsuario) Then Alert("El Máximo/Mínimo se agregó correctamente.", TipoMensaje.MsgInformacion) End If ElseIf HFDefinir.Value = "U" Then If ObjInventario.UpdateAlmacenMaximoMinimo(DdlAlmacenModal.SelectedValue.ToEntero, DdlPSModal.SelectedValue.ToEntero, TxtMaximo.Text.ToDecimal, TxtMinimo.Text.ToDecimal, UsuarioActual.CveUsuario) Then Alert("El Máximo/Mínimo se actualizó correctamente.", TipoMensaje.MsgInformacion) End If End If End Using CargaGrid() RegistraScript(String.Format("$('#{0}').modal('hide');", "ModalMaximoMinimo")) Else Alert("Seleccione un producto o servicio", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub UpdateMaximoMinimo(sender As Object, e As EventArgs) Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow) HFDefinir.Value = "U" Dim CveAlmacen As Integer = GvRow.DataKey("CveAlmacen").ToString.ToEntero Dim CvePS As Integer = GvRow.DataKey("CvePS").ToString.ToEntero Dim strPS As String = GvRow.DataKey("PS").ToString() Dim strAlmacen As String = GvRow.DataKey("Almacen").ToString() Dim Maximo As String = GvRow.DataKey("Maximo").ToString Dim Minimo As String = GvRow.DataKey("Minimo").ToString DdlAlmacenModal.Enabled = False DdlPSModal.Enabled = False DdlAlmacenModal.SelectedValue = "-1" DdlAlmacenModal.SelectedValueExist(CveAlmacen.ToString()) If (DdlAlmacenModal.SelectedValue = "-1") Then DdlAlmacenModal.Items.Add(New ListItem(strAlmacen, CveAlmacen.ToString())) End If DdlAlmacenModal.SelectedValueExist(CveAlmacen.ToString()) DdlPSModal.SelectedText = strPS DdlPSModal.SelectedValue = CvePS.ToString TxtMaximo.Text = Maximo TxtMinimo.Text = Minimo LbAgregarMaximoMinimo.Text = "Actualizar" UpModalMaximoMinimo.Update() RegistraScript(String.Format("$('#{0}').modal();", "ModalMaximoMinimo")) End Sub #End Region #Region "I M P R I M I R " Protected Sub LnkExportar_Click(sender As Object, e As EventArgs) Handles LnkExportar.Click GvDatos.ExportToExcel("RepFacturas_" & NowADS().ToShortDateString()) End Sub Private Sub GenerarPDF() Dim ObjDatos As New ClsInventarios If ObjDatos.RepMaximoMinimo(DdlSubProyecto.SelectedValue.ToEntero, DdlAlmacen.SelectedValue.ToEntero, DdlClasificacion2.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then If ObjDatos.DtResultados.Rows.Count > 0 Then Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = ObjDatos.DtResultados Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("SubProyecto", DdlSubProyecto.SelectedItem.Text)) params.Add(New ReportParameter("Almacen", DdlAlmacen.SelectedItem.Text)) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepMaximosMinimos.rdlc", dt, params, "ReporteMaxMin") Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If End Sub Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click GenerarPDF() End Sub Protected Sub LnkImprimirDetalle_Click(sender As Object, e As EventArgs) If DTOCDetalle.Rows.Count > 0 Then Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png") Dim logouri As String = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) Dim dt As DataTable = DTOCDetalle Dim params As New List(Of ReportParameter) params.Add(New ReportParameter("SubProyecto", DdlSubProyecto.SelectedItem.Text)) params.Add(New ReportParameter("Almacen", DdlAlmacen.SelectedItem.Text)) params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToShortDateString)) params.Add(New ReportParameter("PS", PS)) params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", ""))) ImprimirPDF("Empresas/Grales/Formatos/RepMaximosMinimosDetalle.rdlc", dt, params, "ReporteMaxMinDetalle") Else Alert("No hay datos consultados", TipoMensaje.MsgAdvertencia) End If OrdenaDatos() End Sub #End Region #Region " PERSONALIZAR COLUMNAS " Private Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click If ChkClasificacion2.Checked Then GvDatos.Columns(1).Visible = True Else GvDatos.Columns(1).Visible = False End If If ChkMarca.Checked Then GvDatos.Columns(3).Visible = True Else GvDatos.Columns(3).Visible = False End If RegistraScript("$('#DivPersonalizar').modal('hide')") CargaGrid() End Sub #End Region Protected Sub LnkUpFile_Click(sender As Object, e As EventArgs) Dim Filesgral As List(Of Archivo) = TxtArchivoMaxMin.getfiles().Archivos Dim continuar As Boolean = Filesgral.Count > 0 Dim stringError As String = "" Dim fileItem As Archivo = If(continuar, Filesgral(0), Nothing) If continuar Then Dim FileExtension As String = fileItem.Extension.ToUpper() If FileExtension = "XLS" Or FileExtension = "XLSX" Or FileExtension = "CSV" Then Else continuar = False stringError = "No se inserto un archivo de tipo Excel" End If End If Dim DTEXcel As DataTable = New DataTable() If continuar Then DTEXcel = Extensiones.ModExtensiones.ReadExcelFile(fileItem.FileUrl, True) DTEXcel.Columns.Add(New DataColumn("CvePS", GetType(Integer))) DTEXcel.Columns.Add(New DataColumn("CveAlmacen", GetType(Integer))) Dim dtAlmacen As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=-1) For Each drow As DataRow In DTEXcel.Rows Dim Drps As DataTable = GlobalDTPS(UsuarioActual.CveEmpresa, -1, "-1", -1, -1, drow("Codigo").ToString()) Dim dralmacen As DataRow = dtAlmacen.FiltroPrimero(String.Format("Almacen='{0}'", drow("Almacen"))) If Drps.Rows.Count > 0 Then drow("CvePS") = Drps.Rows(0)("CvePS") End If If Not IsNothing(dralmacen) Then drow("CveAlmacen") = dralmacen("CveAlmacen") End If DTEXcel.AcceptChanges() Next continuar = True End If If continuar Then Using ObjMaxMin As New ClsInventarios ObjMaxMin.IniciaTransacSQL() Dim DtResultados As New DataTable If ObjMaxMin.RepMaximoMinimo(-1, -1, -1, UsuarioActual.CveEmpresa) Then DtResultados = ObjMaxMin.DtResultados End If For Each drow As DataRow In DTEXcel.Select("CvePS>0 AND CveAlmacen >0") If continuar Then If IsNothing(DtResultados.FiltroPrimero(String.Format("CveAlmacen={0} AND CvePS={1}", drow("CveAlmacen").ToString().ToEntero(), drow("CvePS").ToString().ToEntero()))) Then continuar = ObjMaxMin.AddAlmacenMaximoMinimo(drow("CveAlmacen").ToString().ToEntero(), drow("CvePS").ToString().ToEntero(), drow("Maximo").ToString().ToDecimal(), drow("Minimo").ToString().ToDecimal(), UsuarioActual.CveUsuario) Else continuar = ObjMaxMin.UpdateAlmacenMaximoMinimo(drow("CveAlmacen").ToString().ToEntero(), drow("CvePS").ToString().ToEntero(), drow("Maximo").ToString().ToDecimal(), drow("Minimo").ToString().ToDecimal(), UsuarioActual.CveUsuario) End If End If Next If continuar Then ObjMaxMin.Commit() Else ObjMaxMin.RollBack() End If End Using End If If continuar Then CargaGrid() Alert("los cambios se han guardado satisfactoriamente") RegistraScript("$('#DmodalCargarMaximosMinimos').modal('hide');") End If End Sub Protected Sub LnkCargarMaximosMinimos_Click(sender As Object, e As EventArgs) TxtArchivoMaxMin.Text = "" RegistraScript("$('#DmodalCargarMaximosMinimos').modal();") Upcargamasiva.Update() End Sub Protected Sub LnkDescargarFormato_Click(sender As Object, e As EventArgs) Using ObjMaxMin As New ClsInventarios If ObjMaxMin.RepMaximoMinimo(-1, -1, -1, UsuarioActual.CveEmpresa) Then ObjMaxMin.DtResultados.FiltraParametros("", "", New String() {"Codigo", "Almacen", "Maximo", "Minimo"}).ExportToExcel(String.Format("MaximosyMinimos{0:dd-MM-yyyy}", NowADS())) End If End Using End Sub End Class