Files
SIG/Inventarios/RepMaximoMinimo.aspx.vb
JORGE LUIS CAUDILLO ESPARZA 5d1513ddee
2020-09-02 19:20:37 -07:00

438 lines
18 KiB
VB.net

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(-1, -1, UsuarioActual.Empresa.CveEmpresa, 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(-1, -1, UsuarioActual.Empresa.CveEmpresa, 1).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 = $"<a class=""Texto"" target='_blank' href=""/Ventas/ProductosServicios.aspx?CvePS={e.Row.DataKey("CvePS")}"">{e.Row.DBCampo("Codigo")}</a>"
e.Row.FCLabel("LtDescripcion").Text = $"<a class=""Texto"" target='_blank' href=""/Ventas/ProductosServicios.aspx?CvePS={e.Row.DataKey("CvePS")}"">{e.Row.DBCampo("PS")}</a>"
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 = $"<a class=""Texto"" target='_blank' href=""/OC/OC.aspx?OC={e.Row.DataKey("CveOrdenCompra")}"">{e.Row.DBCampo("OC")}</a>"
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.ToDouble, TxtMinimo.Text.ToDouble, 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.ToDouble, TxtMinimo.Text.ToDouble, 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_" & Now.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(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = 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", Now.ToDateTime.ToShortDateString))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
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(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = 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", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("PS", PS))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
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.Extencion.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().ToDouble(), drow("Minimo").ToString().ToDouble(), UsuarioActual.CveUsuario)
Else
continuar = ObjMaxMin.UpdateAlmacenMaximoMinimo(drow("CveAlmacen").ToString().ToEntero(), drow("CvePS").ToString().ToEntero(), drow("Maximo").ToString().ToDouble(), drow("Minimo").ToString().ToDouble(), 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}", DateTime.Now))
End If
End Using
End Sub
End Class