From 415c7de32b01169afd8aaad0c5d54ce9fff4f132 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Sat, 5 Feb 2022 12:02:52 -0700 Subject: [PATCH] Limpieza al surtir remision desde liga --- Inventarios/RecepcionUsados.aspx.vb | 210 ++++++++++++++++++---------- 1 file changed, 139 insertions(+), 71 deletions(-) diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index 9dfc42521..668f6b8b2 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -240,6 +240,15 @@ Partial Class Inventarios_RecepcionUsados ViewState("CveRemisionRecibida") = value End Set End Property + + Private Property CargoRemisionDesdeURL As Boolean + Get + Return CBool(IfNull(ViewState("CargoRemisionDesdeURL"), False, CBool(ViewState("CargoRemisionDesdeURL")))) + End Get + Set(value As Boolean) + ViewState("CargoRemisionDesdeURL") = value + End Set + End Property Private Property EsDistribuidor As Boolean Get Return CBool(IfNull(ViewState("EsDistribuidor"), False, CBool(ViewState("EsDistribuidor")))) @@ -348,6 +357,7 @@ Partial Class Inventarios_RecepcionUsados Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then + CargoRemisionDesdeURL = False CargaInicial() CargaRemisionFromURL() GeneraRNCFromURL() @@ -431,6 +441,7 @@ Partial Class Inventarios_RecepcionUsados Dim CveRemision As Integer = IfNull(Request("CveRemision"), "-1").ToString().ToEntero() If CveRemision > 0 Then + Me.CargoRemisionDesdeURL = True Me.CveRemisionRecibida = CveRemision RecibirRemision() End If @@ -591,14 +602,7 @@ Partial Class Inventarios_RecepcionUsados DdlMoneda.DataSource = GlobalDTMonedas DdlMoneda.DataBind() - Dim dtt As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1).FiltraParametros("CveTipoAlmacen IN (22)") 'GlobalDTAlmacen(UsuarioActual.CveEmpresa) - - 'Llenar el dropdownlist de almacén - DdlAlmacen.DataSource = dtt - - 'DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) - 'DdlAlmacen.SelectedValue = "-1" - DdlAlmacen.DataBind() + CargaAlmacen() If IsNothing(Request("CveMovimiento")) Then DdlAlmacen.SelectedValueExist(UsuarioActual.CveAlmacen) @@ -607,6 +611,33 @@ Partial Class Inventarios_RecepcionUsados CargaPS() End Sub + + Private Sub CargaAlmacen(Optional CveSubProyecto As Integer = -1, Optional TipoAlmacen As Integer = 22) + DdlAlmacen.Items.Clear() + 'Llenar el dropdownlist de almacén + Dim dt As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=TipoAlmacen) + + If CveSubProyecto > 0 Then + dt = dt.FiltraParametros($"CveSubProyecto = {CveSubProyecto}") + End If + + DdlAlmacen.DataSource = dt + DdlAlmacen.DataBind() + + If Not DdlAlmacen.Items.Contains(New ListItem("Seleccione", "-1")) Then + DdlAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + + If CveSubProyecto > 0 Then + Dim CveAlmacen As Integer = dt.FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {CveSubProyecto}").ToEntero() + If CveAlmacen > 0 Then + DdlAlmacen.SelectedValueExist(CveAlmacen) + End If + End If + + dt.Dispose() + + End Sub Private Sub CargaPS() Dim ObjAcum As New ClsAcumuladores Dim lista As New List(Of String) @@ -723,6 +754,8 @@ Partial Class Inventarios_RecepcionUsados ObjFactura = Nothing End If + DivRemisionRecibida.Visible = False + If ObjRemisionNC IsNot Nothing Then ObjRemisionNC.Dispose() ObjRemisionNC = Nothing @@ -753,9 +786,7 @@ Partial Class Inventarios_RecepcionUsados DivRegistro.Visible = False DivTipoCambio.Visible = False - If Not DdlAlmacen.Items.Contains(New ListItem("Seleccione", "-1")) Then - DdlAlmacen.Items.Add(New ListItem("Seleccione", "-1")) - End If + CargaAlmacen() DdlAlmacen.SelectedValue = "-1" If Not EsConsumoInterno Then @@ -785,6 +816,7 @@ Partial Class Inventarios_RecepcionUsados 'CargaInicial() + UpGenerales.Update() UpRegistroTipoCambio.Update() UPDatos.Update() End Sub @@ -1162,7 +1194,7 @@ Partial Class Inventarios_RecepcionUsados Guardar(True) End Sub - Protected Sub Guardar(Optional GenerarRNC As Boolean = False) + Protected Sub Guardar(Optional GenerarRNC As Boolean = False, Optional RecargarPagina As Boolean = False) If GvM.Rows.Count > 0 Then Dim Msg As New StringBuilder() Dim Resp As Modelos.Factura.MMensajeFactura = Nothing @@ -1350,7 +1382,13 @@ Partial Class Inventarios_RecepcionUsados ObjVentas.Dispose() If Not ErrorMovInv Then - Alert(Msg.ToString, TipoMensaje.MsgInformacion) + Dim Liga As String = "" + + If RecargarPagina Then + Liga = "document.location.href=""/Inventarios/RecepcionUsados.aspx"";" + End If + + Alert(Msg.ToString, TipoMensaje.MsgInformacion, JSBtnAceptar:=Liga, ShowCloseButton:=False) End If Else @@ -2206,19 +2244,6 @@ Partial Class Inventarios_RecepcionUsados Private Sub RecibirRemision() DtMovimientos.Rows.Clear() - Dim DtUsados As DataTable = Nothing - Dim CveCliente As Integer = -1 - - Dim ObjVentas As New ClsVentas - If ObjVentas.GetVenta(CveRemisionRecibida, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then - EsDistribuidor = CBool(ObjVentas.DtResultados.Rows(0)("EsDistribuidor").ToString()) - CveCliente = ObjVentas.DtResultados.Rows(0)("CveCliente").ToString().ToEntero() - - DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveCliente = {0}", CveCliente)) - DdlClientes.DataBind() - DdlClientes.SelectedValueExist(CveCliente) - End If - If Me.ObjFactura IsNot Nothing Then Me.ObjFactura.Dispose() Me.ObjFactura = Nothing @@ -2226,54 +2251,95 @@ Partial Class Inventarios_RecepcionUsados Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas) - TxtRemisionRecibida.Text = Me.ObjFactura.SerieFolio - DivRemisionRecibida.Visible = True + If Me.ObjFactura IsNot Nothing Then - 'SI ES DISTRIBUIDOR VAMOS A GENERAR LA REMISION DE NOTA DE CREDITO - If EsDistribuidor Then - DivCliente.Visible = True - DdlClientes.SelectedValueExist(CveCliente) - DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty) + TxtRemisionRecibida.Text = Me.ObjFactura.SerieFolio + DivRemisionRecibida.Visible = True - If Me.ObjRemisionNC IsNot Nothing Then - Me.ObjRemisionNC.Dispose() - Me.ObjRemisionNC = Nothing + Dim DtUsados As DataTable = Nothing + Dim CveCliente As Integer = -1 + + Dim ObjVentas As New ClsVentas + If ObjVentas.GetVenta(CveRemisionRecibida, UsuarioActual.CveEmpresa) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + EsDistribuidor = CBool(ObjVentas.DtResultados.Rows(0)("EsDistribuidor").ToString()) + CveCliente = ObjVentas.DtResultados.Rows(0)("CveCliente").ToString().ToEntero() End If - If Me.ObjFactura IsNot Nothing Then - 'CreaRemisionNC(ObjFactura.CveCliente, ObjFactura.CveSubProyecto, ObjFactura.CveMoneda) - DivTotal.Visible = True + If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then + DtUsados = ObjVentas.DtResultados.Copy() + End If + + Dim RecepcionValida As Boolean = True + + If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then + If ObjVentas.DtResultados.Rows.Count = 0 Then + RecepcionValida = False + End If + End If + ObjVentas.Dispose() + + If Not RecepcionValida Then + Dim Liga As String = "" + If CargoRemisionDesdeURL Then + Liga = "document.location.href=""/Inventarios/RecepcionUsados.aspx"";" + End If + + Alert("La recepción del usado ya se realizó", TipoMensaje.MsgAdvertencia, JSBtnAceptar:=Liga, ShowCloseButton:=False) + Exit Sub + End If + + If ObjFactura.CveSubProyecto > 0 Then + CargaAlmacen(CveSubProyecto:=ObjFactura.CveSubProyecto) + End If + + If CveCliente > 0 Then + DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveCliente = {0}", CveCliente)) + DdlClientes.DataBind() + DdlClientes.SelectedValueExist(CveCliente) + End If + + 'SI ES DISTRIBUIDOR VAMOS A GENERAR LA REMISION DE NOTA DE CREDITO + If EsDistribuidor Then + DivCliente.Visible = True + DdlClientes.SelectedValueExist(CveCliente) + DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty) + + If Me.ObjRemisionNC IsNot Nothing Then + Me.ObjRemisionNC.Dispose() + Me.ObjRemisionNC = Nothing + End If + + If Me.ObjFactura IsNot Nothing Then + 'CreaRemisionNC(ObjFactura.CveCliente, ObjFactura.CveSubProyecto, ObjFactura.CveMoneda) + DivTotal.Visible = True + End If + Else + 'DivCliente.Visible = False + 'DivFactura.Visible = False + End If + + If DtUsados IsNot Nothing Then + + 'DivRecepcionApartado.Visible = True + + For Each RowUsado As DataRow In DtUsados.Rows + Dim CvePS = RowUsado("CvePS").ToString().ToEntero() + + Dim RowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).Rows(0) + Dim CveTamaño As Integer = RowPS("CveTamaño").ToString().ToEntero() + + Dim PS As String = RowPS("PS").ToString() + Dim CveUM As Integer = RowPS("CveUnidadMedida").ToString().ToEntero() + Dim UM As String = RowPS("UnidadMedida").ToString() + Dim Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero() + Dim PU As Double = RowUsado("PU").ToString().ToDouble() + + AddNew(CvePS, PS, CveUM, UM, Cantidad, PU, "", "-1", "-1", "-1", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño) + + Next End If Else - 'DivCliente.Visible = False - 'DivFactura.Visible = False - End If - - If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then - DtUsados = ObjVentas.DtResultados.Copy() - End If - - ObjVentas.Dispose() - - If DtUsados IsNot Nothing Then - - 'DivRecepcionApartado.Visible = True - - For Each RowUsado As DataRow In DtUsados.Rows - Dim CvePS = RowUsado("CvePS").ToString().ToEntero() - - Dim RowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).Rows(0) - Dim CveTamaño As Integer = RowPS("CveTamaño").ToString().ToEntero() - - Dim PS As String = RowPS("PS").ToString() - Dim CveUM As Integer = RowPS("CveUnidadMedida").ToString().ToEntero() - Dim UM As String = RowPS("UnidadMedida").ToString() - Dim Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero() - Dim PU As Double = RowUsado("PU").ToString().ToDouble() - - AddNew(CvePS, PS, CveUM, UM, Cantidad, PU, "", "-1", "-1", "-1", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño) - - Next + Alert("No se pudo recibir la remisión", TipoMensaje.MsgAdvertencia) End If UpGenerales.Update() @@ -2801,8 +2867,9 @@ Partial Class Inventarios_RecepcionUsados If DdlClientes.SelectedValue <> "-1" Then CargaAjuste() DivAjuste.Visible = True + DivRecepcionUsados.Visible = False 'Llenar el dropdownlist de almacén - DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6) + CargaAlmacen(TipoAlmacen:=6) CargarDescuento() LnkAgregarUsado.Visible = False UppAcciones.Update() @@ -2812,8 +2879,9 @@ Partial Class Inventarios_RecepcionUsados End If Else DivAjuste.Visible = False + DivRecepcionUsados.Visible = True 'Llenar el dropdownlist de almacén - DdlAlmacen.DataSource = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 22) + CargaAlmacen(TipoAlmacen:=22) LnkAgregarUsado.Visible = True UppAcciones.Update() End If @@ -3384,7 +3452,7 @@ Partial Class Inventarios_RecepcionUsados 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 DtDatos As New DataTable + Dim DtDatos As New DataTable Dim params As New List(Of ReportParameter)