From 7027f12f6e00bce4c2c8732a5cfbc86cc37b3d16 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Thu, 23 Jun 2022 15:19:16 -0700 Subject: [PATCH] Optimizacion de carga de factura en modelos, validacion de recepcion de usados --- App_Code/Modelos.vb | 33 ++++++++--- Inventarios/RecepcionUsados.aspx.vb | 85 +++++++++++++++++------------ 2 files changed, 73 insertions(+), 45 deletions(-) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index cc723ffa4..ffe3a8e55 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -379,7 +379,7 @@ Namespace Modelos End If Timbre = New CFDITimbre End Sub - Public Sub New(UsuarioActual As Usuario, CveVenta As Integer, CveEmpresa As Integer, Optional DirectorioServidor As String = "", Optional EsCancelacion As Boolean = False) + Public Sub New(UsuarioActual As Usuario, CveVenta As Integer, CveEmpresa As Integer, Optional DirectorioServidor As String = "", Optional EsCancelacion As Boolean = False, Optional CargaDTDetalle As Boolean = True, Optional CargaDatosCliente As Boolean = True, Optional CargaDatosRelacionados As Boolean = True) Me.UsuarioActual = UsuarioActual Me.CveVenta = CveVenta Me.CveEmpresa = CveEmpresa @@ -397,9 +397,12 @@ Namespace Modelos SetMetodoPago() SetMoneda() - SetSubProyecto() - SetSubProyectoMatriz() - SetCliente() + + If Me.CveSubProyecto > 0 Then + SetSubProyecto() + SetSubProyectoMatriz() + End If + If ObjVentas.DtResultados.Rows(0)("IEPS").ToString.ToDecimal <= 0 Then Me.VentaDesglosaIEPS = False Else @@ -408,11 +411,23 @@ Namespace Modelos SetTotales(ObjVentas.DtResultados, ObjVentas) End If End If - If ObjVentas.GetVentaDetalle(CveVenta) Then - Me.DtDetalle = ObjVentas.DtResultados.Copy() + + If CargaDTDetalle Then + If ObjVentas.GetVentaDetalle(CveVenta) Then + Me.DtDetalle = ObjVentas.DtResultados.Copy() + End If End If + ObjVentas.Dispose() - IniciaValoresVentas(EsCancelacion) + + If CargaDatosCliente Then + SetCliente() + End If + + If CargaDatosRelacionados Then + IniciaValoresVentas(EsCancelacion) + End If + If String.IsNullOrEmpty(DirectorioServidor) Then DirectorioServidor = ModExtensiones.DirectorioBaseEmpresas End If @@ -6620,7 +6635,7 @@ Namespace Modelos Public Property ObservacionesAlmacen As String Public Property CveOC As Integer = -1 Public Property CveCuentaTerminal As Integer = -1 - Public Property ClienteEsDistribuidor As Boolean = False + Public Property EsDistribuidor As Boolean = False Public Property AplicaGastoContrato As Boolean = False Public Property FacturaDevolucion As Modelos.Factura Public Property CveOrdenProduccion As Integer = -1 @@ -7046,7 +7061,7 @@ Namespace Modelos Public Sub SetSubProyecto() If CveSubProyecto > 0 AndAlso UsuarioActual IsNot Nothing Then - SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero($"CveSubProyecto = {CveSubProyecto}")) + SubProyecto = New Modelos.SubProyectoModel(GlobalDTSubProyectos(-1, CveSubProyecto:=CveSubProyecto, CveEmpresa:=UsuarioActual.CveEmpresa).FiltroPrimero("")) End If End Sub Public Sub SetSubProyectoMatriz() diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb index f26d169af..f2f347096 100644 --- a/Inventarios/RecepcionUsados.aspx.vb +++ b/Inventarios/RecepcionUsados.aspx.vb @@ -613,7 +613,7 @@ Partial Class Inventarios_RecepcionUsados CargaPS() End Sub - Private Sub CargaAlmacen(Optional CveSubProyecto As Integer = -1, Optional TipoAlmacen As Integer = 22) + Private Sub CargaAlmacen(Optional CveSubProyecto As Integer = -1, Optional TipoAlmacen As Integer = 22, Optional BloquearAlmacen As Boolean = False) DdlAlmacen.Items.Clear() 'Llenar el dropdownlist de almacén Dim dt As DataTable = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoAlmacen:=TipoAlmacen) @@ -633,6 +633,9 @@ Partial Class Inventarios_RecepcionUsados Dim CveAlmacen As Integer = dt.FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto = {CveSubProyecto}").ToEntero() If CveAlmacen > 0 Then DdlAlmacen.SelectedValueExist(CveAlmacen) + If BloquearAlmacen Then + DdlAlmacen.Enabled = False + End If End If End If @@ -766,10 +769,13 @@ Partial Class Inventarios_RecepcionUsados TmpDTAjustes.Rows.Clear() End If + RblUsadosAjuste.Enabled = True + CveRemisionRecibida = -1 EsDistribuidor = False - DdlClientes.SelectedValueExist("-1") - DdlClientes_SelectedIndexChanged(DdlClientes, EventArgs.Empty) + InicializaClientes(True) + DdlClientes.Enabled = True + ChkClientesTodos.Enabled = True SiguienteFolio() @@ -2024,15 +2030,17 @@ Partial Class Inventarios_RecepcionUsados Protected Sub DdlClientes_SelectedIndexChanged(sender As Object, e As EventArgs) CambiaCliente() End Sub - Private Sub CambiaCliente() - DivClienteSucursal.Visible = False - DdlClientesSucursales.Items.Clear() - + Private Sub CambiaCliente(Optional CargaSucursales As Boolean = True, Optional CargaFacturas As Boolean = True) If DdlClientes.SelectedValue.ToEntero > 0 Then Me.EsDistribuidor = CBool(GlobalDTCliente(UsuarioActual.CveEmpresa, CveCliente:=DdlClientes.SelectedValue.ToEntero()).FiltroPrimeroValor("EsDistribuidor", "")) - - CargaSucursalesCliente() - CargaFacturasCliente() + If CargaSucursales Then + DivClienteSucursal.Visible = False + DdlClientesSucursales.Items.Clear() + CargaSucursalesCliente() + End If + If CargaFacturas Then + CargaFacturasCliente() + End If End If UpGenerales.Update() End Sub @@ -2250,7 +2258,12 @@ Partial Class Inventarios_RecepcionUsados Me.CveRemisionRecibida = -1 Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero() - RecibirRemision() + If Me.CveRemisionRecibida > 0 Then + RecibirRemision() + Else + Alert("No se pudo recibir la remisión", TipoMensaje.MsgError) + End If + End Sub Private Sub RecibirRemision() @@ -2261,7 +2274,7 @@ Partial Class Inventarios_RecepcionUsados Me.ObjFactura = Nothing End If - Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas) + Me.ObjFactura = New Modelos.Factura(UsuarioActual, CveRemisionRecibida, UsuarioActual.CveEmpresa, DirectorioServidor:=ModExtensiones.DirectorioBaseEmpresas, CargaDatosCliente:=False, CargaDatosRelacionados:=False) If Me.ObjFactura IsNot Nothing Then @@ -2271,28 +2284,15 @@ Partial Class Inventarios_RecepcionUsados Dim DtUsados As DataTable = Nothing Dim CveCliente As Integer = -1 + EsDistribuidor = ObjFactura.EsDistribuidor + CveCliente = Me.ObjFactura.CveCliente + 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 ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then DtUsados = ObjVentas.DtResultados.Copy() End If - 'RELACIONA LA VENTA DETALLA DE LA REMISION - If DtUsados IsNot Nothing Then - DtUsados.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer))) - For Each RowUsado As DataRow In DtUsados.Rows - Dim CveVentaDetalle As Integer = Me.ObjFactura.DtDetalle.FiltroPrimeroValor("CveVentaDetalle", $"EsCargo = 1 AND Cantidad = {RowUsado("Cantidad")} AND CvePS = {RowUsado("CvePS")}").ToEntero() - If CveVentaDetalle > 0 Then - RowUsado("CveVentaDetalle") = CveVentaDetalle - End If - Next - - End If - Dim RecepcionValida As Boolean = True If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then @@ -2312,22 +2312,38 @@ Partial Class Inventarios_RecepcionUsados Exit Sub End If + 'RELACIONA LA VENTA DETALLA DE LA REMISION + If DtUsados IsNot Nothing Then + DtUsados.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer))) + For Each RowUsado As DataRow In DtUsados.Rows + Dim CveVentaDetalle As Integer = Me.ObjFactura.DtDetalle.FiltroPrimeroValor("CveVentaDetalle", $"EsCargo = 1 AND Cantidad = {RowUsado("Cantidad")} AND CvePS = {RowUsado("CvePS")}").ToEntero() + If CveVentaDetalle > 0 Then + RowUsado("CveVentaDetalle") = CveVentaDetalle + End If + Next + End If + If ObjFactura.CveSubProyecto > 0 Then - CargaAlmacen(CveSubProyecto:=ObjFactura.CveSubProyecto) + CargaAlmacen(CveSubProyecto:=ObjFactura.CveSubProyecto, BloquearAlmacen:=True) End If If CveCliente > 0 Then + DivCliente.Visible = True + DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveCliente = {0}", CveCliente)) DdlClientes.DataBind() + DdlClientes.SelectedValueExist(CveCliente) + CambiaCliente(False, False) + + DdlClientes.Enabled = False + ChkClientesTodos.Enabled = False End If + RblUsadosAjuste.Enabled = False + '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 @@ -2337,9 +2353,6 @@ Partial Class Inventarios_RecepcionUsados '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