From 66355829a074c283342c819e42c28219ac22ba41 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Fri, 16 Jul 2021 21:19:56 -0700 Subject: [PATCH 01/15] --- App_Code/ClsInventarios.vb | 42 ++------------------------------------ 1 file changed, 2 insertions(+), 40 deletions(-) diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 8844b682c..139002853 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -1503,7 +1503,7 @@ Public Class ClsInventarios End Function Public Function GetKardexAlmacenHorizontal(CvePS As Integer, FechaFin As Date, CveAlmacen As Integer, CveUnidadMedida As Integer, CveProveedor As Integer, CveTipoAlmacen As Integer, IncluyeTransitorios As Integer, CveClasificacion As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional CondicionExistencias As Integer = 0, - Optional Orden As Integer = -1, Optional Marcas As String = "-1", Optional IncluyeProyectado As Integer = -1, Optional CveAlmacenes As String = "-1") As Boolean + Optional Orden As Integer = -1, Optional Marcas As String = "-1", Optional IncluyeProyectado As Integer = -1, Optional CveAlmacenes As String = "-1", Optional GPO As Integer = 1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Inv_KardexAlmacenHorizontalGet") @@ -1525,46 +1525,8 @@ Public Class ClsInventarios .Add("@Marcas", SqlDbType.VarChar).Value = Marcas .Add("@IncluyeProyectado", SqlDbType.TinyInt).Value = IncluyeProyectado .Add("@CveAlmacenes", SqlDbType.NVarChar).Value = CveAlmacenes - End With + .Add("@GPO", SqlDbType.Int).Value = GPO - Try - SqlAdapter.Fill(Data) - Retorno = True - Catch Ex1 As SqlException - - Me.OnError("Ocurrió un error al obtener el kardex de almacen.", Ex1, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) - - Catch ex As Exception - OnError("Ocurrió un error al obtener el kardex de almacen.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) - End Try - - Return Retorno - - End Function - Public Function GetKardexAlmacenHorizontalAgrupado(CvePS As Integer, FechaFin As Date, CveAlmacen As Integer, CveUnidadMedida As Integer, CveProveedor As Integer, CveTipoAlmacen As Integer, - IncluyeTransitorios As Integer, CveClasificacion As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional CondicionExistencias As Integer = 0, - Optional Orden As Integer = -1, Optional Marcas As String = "-1", Optional IncluyeProyectado As Integer = -1, Optional CveAlmacenes As String = "-1") As Boolean - Dim Retorno As Boolean = False - - DataAdapter("PA_Inv_KardexAlmacenHorizontalGetAgrupado") - - With SqlAdapter.SelectCommand.Parameters - '.Add("@FechaI", SqlDbType.VarChar).Value = FechaI - .Add("@FechaFin", SqlDbType.Date).Value = FechaFin - .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa - .Add("@CveClasificacion", SqlDbType.Int).Value = CveClasificacion - .Add("@CvePS", SqlDbType.Int).Value = CvePS - .Add("@CveAlmacen", SqlDbType.Int).Value = CveAlmacen - .Add("@CveUnidadMedida", SqlDbType.Int).Value = CveUnidadMedida - .Add("@IncluyeTransitorios", SqlDbType.Int).Value = IncluyeTransitorios - .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario - .Add("@CveProveedorCompra", SqlDbType.Int).Value = CveProveedor - .Add("@CveTipoAlmacen", SqlDbType.Int).Value = CveTipoAlmacen - .Add("@ExistenciasCondicion", SqlDbType.Int).Value = CondicionExistencias - .Add("@Orden", SqlDbType.Int).Value = Orden - .Add("@Marcas", SqlDbType.VarChar).Value = Marcas - .Add("@IncluyeProyectado", SqlDbType.TinyInt).Value = IncluyeProyectado - .Add("@CveAlmacenes", SqlDbType.NVarChar).Value = CveAlmacenes End With Try From fa562fec01630150bc5129ea6d49a273867adb09 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Jul 2021 13:37:01 -0700 Subject: [PATCH 02/15] Funcionalidad para limite de credito y restricciones de venta --- Ventas/Ventas.aspx.vb | 578 +++++++++++++++++++----------------------- 1 file changed, 257 insertions(+), 321 deletions(-) diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 5257b1b11..4bb92c596 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -2243,7 +2243,7 @@ Partial Class Ventas CargaClasificaciones() CargaPS(-1, DdlPS) - CargaPSRemision(-1, DdlPSRemision) + 'CargaPSRemision(-1, DdlPSRemision) CargaPSPyME(-1, DdlPSPyME) CreaDTVentas() @@ -5181,7 +5181,8 @@ Partial Class Ventas AgregarProductoServicio(dr("Cantidad").ToString().ToDecimal, dr("CveUM").ToString().ToEntero(), dr("UM").ToString(), dr("CveClasificacion").ToString().ToEntero(), dr("Clasificacion").ToString(), dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal, dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(), - CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True) + CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), + CveVentaDetalle:=dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True) Next @@ -5595,15 +5596,11 @@ Partial Class Ventas ViewState("Vendedor") = ObjCliente.Vendedor ViewState("CtaContable") = ObjCliente.CuentaContable ViewState("IdCtaContClientes") = ObjCliente.IdCtaContClientes - ViewState("CveCuentaClientes") = ObjCliente.CveCuentaClientes ViewState("IdCtaContMonedaExtranjera") = ObjCliente.IdCtaContMonedaExtranjera ViewState("IdCtaContComplementaria") = ObjCliente.IdCtaContComplementaria ViewState("IdCtaContAnticipos") = ObjCliente.IdCtaContAnticipos - ViewState("CveCuentaAnticipos") = ObjCliente.CveCuentaAnticipos ViewState("IdCtaContRetIVA") = ObjCliente.IdCtaContRetIVA - ViewState("CveCuentaRetIVA") = ObjCliente.CveCuentaRetIVA ViewState("IdCtaContRetISR") = ObjCliente.IdCtaContRetISR - ViewState("CveCuentaRetISR") = ObjCliente.CveCuentaRetISR ViewState("CodCliente") = ObjCliente.Codigo ViewState("CvePrecioLista") = ObjCliente.CvePrecioLista @@ -6148,25 +6145,10 @@ Partial Class Ventas End Sub Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1) - 'RMF. validacion temporal - 'verifica si tiene autorizaciones de Nota de crédito autorizadas - If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then ' si es empresa de acumuladores - Dim ObjVentas As New ClsVentas - - If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then - Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion") - - If RowAutorizacion IsNot Nothing Then - DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos") - End If - - End If - - ObjVentas.Dispose() - End If + Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595) 'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO - If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then + If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso Me.PermiteCredito = False AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta <= 0 Then RBLPago.SelectedValue = "2" RBLPago.Items(0).Enabled = False RBLPago_SelectedIndexChanged(Nothing, Nothing) @@ -6187,209 +6169,153 @@ Partial Class Ventas End If UPCondicionesPago.Update() 'CARGAR CREDITO DISPONIBLE AL GENERAR UNA FACTURA - ElseIf UsuarioActual.Empresa.Funcionalidad(596) = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta < 1 Then - RBLPago.SelectedValue = "1" - RBLPago_SelectedIndexChanged(Nothing, Nothing) - UPCondicionesPago.Update() - Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) + End If - If CreditoDispo > 0 Then - TrCreditoDisponible.Visible = True - LblCreditoDisponible.Text = CreditoDispo.FormatoNumero - If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%" - If UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso CveVenta <= 0 AndAlso RBLPago.SelectedValue = "1" AndAlso PermiteCredito Then + If Not UsuarioActual.Empresa.Funcionalidad(702) = "1" Then + RBLPago.SelectedValue = "1" + RBLPago_SelectedIndexChanged(Nothing, Nothing) + UPCondicionesPago.Update() + Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) - Dim Vta As New ClsVentas - Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) - Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) - Vta.Dispose() - If Opcion > 0 Then - 'si la cotización no debe de existir este canddado - If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) - 'RBLPago.SelectedValue = "2" - 'RBLPago.Items(0).Enabled = False - RBLPago_SelectedIndexChanged(Nothing, Nothing) - UPCondicionesPago.Update() - DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") - DdlTipoComprobante.SelectedValue = "PA" - TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString - 'si llegó por la opción de cotización no debe de restringuir - If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" - 'quito remisión y factura - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) - If Not UsuarioActual.TienePermisoProceso(325) Then - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) - End If - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem")) - If Opcion = 1 Then - BtnEmitirImprimir.Visible = False - BtnsFacturar.Visible = False - LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) - BtnGenerarRemision.Visible = False - LnkPedido2SinFacturar.Visible = False - LnkCotizaciones.Visible = False - LnkOCs.Visible = False - End If - Else - ' el cliente tiene crédito disponible, no tiene bloqueo - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("PA")) + If CreditoDispo > 0 Then + TrCreditoDisponible.Visible = True + LblCreditoDisponible.Text = CreditoDispo.FormatoNumero + If PorcentajeCredito > 80 Then TrPorcentajeCredito.Visible = True : LblPorcentajeCredito.Text = $"{PorcentajeCredito.FormatoNumero}%" - If UsuarioActual.TienePermisoProceso(60) Then DdlTipoComprobante.SelectedValueExistInsert("Ing", "Ingresos") 'puede facturar - If UsuarioActual.TienePermisoProceso(199) Then DdlTipoComprobante.SelectedValueExistInsert("Rem", "Remisión") ' puede remisionar - DdlTipoComprobante.SelectedValueExist(UsuarioActual.CveTipoDocumento) - - TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString - End If - - 'Else - ' 'que no de crédito, solo contado - ' RBLPago.SelectedValue = "2" - ' RBLPago.Items(0).Enabled = False - 'End If - - End If - Else - 'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO - If UsuarioActual.Empresa.Funcionalidad(595) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then - - 'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS - If UsuarioActual.Empresa.Funcionalidad(597) = "1" Then + If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "PA") Then Dim Vta As New ClsVentas Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) Vta.Dispose() If Opcion > 0 Then - If Opcion = 1 Then - BtnEmitirImprimir.Visible = False - End If + 'si la cotización no debe de existir este canddado If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) - Else - If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) - End If - End If - - 'RBLPago.SelectedValue = "2" - 'RBLPago.Items(0).Enabled = False - RBLPago_SelectedIndexChanged(Nothing, Nothing) - UPCondicionesPago.Update() - DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") - DdlTipoComprobante.SelectedValue = "PA" - TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString - 'si llegó por la opción de cotización no debe de restringuir - If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) - If Not UsuarioActual.TienePermisoProceso(325) Then - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) - End If - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem")) - BtnsFacturar.Visible = False - LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) - BtnGenerarRemision.Visible = False - LnkPedido2SinFacturar.Visible = False - LnkCotizaciones.Visible = False - LnkOCs.Visible = False - - Else - 'RMF. codigo temporal para pruebas - If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then - Dim Vta As New ClsVentas - Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) - Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) - Vta.Dispose() - If Opcion > 0 Then - LnkSolicitarCredito.Visible = True - Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) - End If - Else - - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - RBLPago.SelectedValue = "2" - RBLPago.Items(0).Enabled = False + 'RBLPago.SelectedValue = "2" + 'RBLPago.Items(0).Enabled = False RBLPago_SelectedIndexChanged(Nothing, Nothing) UPCondicionesPago.Update() - Else - 'este codigo no es temporal - If Alertas AndAlso UsuarioActual.Empresa.Funcionalidad(518) = "1" Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) - If UsuarioActual.CveEmpresa = 140 Then - LnkSolicitarCredito.Visible = True - DdlTipoAutorizacion.SelectedValueExist("1") + DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") + DdlTipoComprobante.SelectedValue = "PA" + TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString + 'si llegó por la opción de cotización no debe de restringuir + If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" + 'quito remisión y factura + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) + If Not UsuarioActual.TienePermisoProceso(325) Then + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) End If - End If - - - End If - End If - End If - UPPCreditoDisponible.Update() - 'Si tiene credito disponible, Verificar limites de (verificar candados de venta, remisiones sin facturar, facturas que no tengan vencidas) - ElseIf UsuarioActual.Empresa.Funcionalidad(597) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(268) AndAlso CveVenta > 0 AndAlso (DdlTipoComprobante.SelectedValue.Contiene("Pd2", "Cot") Or (DdlTipoComprobante.SelectedValue = "Rem" And ModalidadEdicion And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000")) Then - Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) - If CreditoDispo > 0 Then - Dim Vta As New ClsVentas - Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) - Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) - Vta.Dispose() - If Opcion > 0 Then - If ModalidadEdicion AndAlso ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() And DdlTipoComprobante.SelectedValue = "Rem" And ViewState("CveClienteAnterior").ToString().ToEntero() > 0 And LblRFC.Text.Trim <> "XAXX010101000" Then - ViewState("CveCliente") = ViewState("CveClienteAnterior").ToString().ToEntero() - - CargaCliente(ViewState("CveCliente").ToString().ToEntero()) - If Opcion > 0 Then - If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) - Else - If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) - End If - BtnEmitirImprimir.Visible = False - BtnVistaPrevia.Visible = False - UpFacturar.Update() - Exit Sub - ElseIf DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso EsCreaApartirDe Then - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) - If Not UsuarioActual.TienePermisoProceso(325) Then - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) - End If - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem")) - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Pd2")) - DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Egs")) - BtnGenerarRemision.Visible = False - BtnGenerarOS.Visible = False - BtnEmitirImprimir.Visible = True - BtnsFacturar.Visible = False - LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) - Else - If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then - BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False) - End If - BtnGenerarRemision.Visible = False - BtnGenerarOS.Visible = False - BtnEmitirImprimir.Visible = False - BtnsFacturar.Visible = False - LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) - If ViewState("CveCliente").ToString().ToEntero() <> ViewState("CveClienteAnterior").ToString().ToEntero() Then - If Opcion > 0 Then - If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) - Else - If Alertas Then Alert("El cliente tiene límite de crédito agotado.", TipoMensaje.MsgAdvertencia) + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem")) + If Opcion = 1 Then + BtnEmitirImprimir.Visible = False + BtnsFacturar.Visible = False + LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) + BtnGenerarRemision.Visible = False + LnkPedido2SinFacturar.Visible = False + LnkCotizaciones.Visible = False + LnkOCs.Visible = False End If + Else + ' el cliente tiene crédito disponible, no tiene bloqueo + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("PA")) + + If UsuarioActual.TienePermisoProceso(60) Then DdlTipoComprobante.SelectedValueExistInsert("Ing", "Ingresos") 'puede facturar + If UsuarioActual.TienePermisoProceso(199) Then DdlTipoComprobante.SelectedValueExistInsert("Rem", "Remisión") ' puede remisionar + DdlTipoComprobante.SelectedValueExist(UsuarioActual.CveTipoDocumento) + + TxtFechaPago.Text = If(DdlTipoComprobante.SelectedValue = "Rem", Now.AddDays(PlazoCobranzaRemision), Now.AddDays(PlazoCobranza)).ToShortDateString End If + + End If Else - BtnGeneraAutorizacion.Visible = False - If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then - If UsuarioActual.TienePermisoProceso(199) Then - BtnGenerarRemision.Visible = If(CveEstatus <> 21, True, False) - Else - BtnGenerarRemision.Visible = False - End If - End If - End If - Else - BtnGenerarRemision.Visible = False - If DdlTipoComprobante.SelectedValue.Contiene("Pd2") Then - BtnGeneraAutorizacion.Visible = If(CveEstatus <> 21, True, False) + 'GENERAR AUTORIZACION SI TIENE EXCEDIO EL LIMITE DE CREDITO + Select Case ValorAutorizacion + Case "1" 'CREAR DOCUMENTO DE AUTORIZACION PA + If Not UsuarioActual.TienePermisoProceso(268) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem", "Ing", "Ant", "PA") Then + + 'VERIFICAR CANDADOS DE VENTA, REMISIONES SIN FACTURAR, FACTURAS QUE NO TENGAN VENCIDAS + Dim Vta As New ClsVentas + Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) + Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) + Vta.Dispose() + If Opcion > 0 Then + If Opcion = 1 Then + BtnEmitirImprimir.Visible = False + End If + If Alertas Then Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) + Else + If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) + End If + + 'RBLPago.SelectedValue = "2" + 'RBLPago.Items(0).Enabled = False + RBLPago_SelectedIndexChanged(Nothing, Nothing) + UPCondicionesPago.Update() + DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") + DdlTipoComprobante.SelectedValue = "PA" + TxtFechaPago.Text = Now.AddDays(PlazoCobranza).ToShortDateString + 'si llegó por la opción de cotización no debe de restringuir + If IfNull(Request("Op"), "").ToString() = "Cot" Then DdlTipoComprobante.SelectedValue = "Cot" + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) + If Not UsuarioActual.TienePermisoProceso(325) Then + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) + End If + DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Rem")) + BtnsFacturar.Visible = False + LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274) + BtnGenerarRemision.Visible = False + LnkPedido2SinFacturar.Visible = False + LnkCotizaciones.Visible = False + LnkOCs.Visible = False + End If + Case "2" 'Autorizacion desde una solicitud del catalogo de autorizaciones + 'RMF. validacion temporal + 'verifica si tiene autorizaciones de Nota de crédito autorizadas + Dim ObjVentas As New ClsVentas + If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, -1, CveEstatus:=1) Then + Dim RowAutorizacion As DataRow = ObjVentas.DtResultados.FiltroPrimero($"CveVenta IS NULL AND CveTipoDocumento='Egs'", Orderby:="TipoAutorizacion") + If RowAutorizacion IsNot Nothing Then + DdlTipoComprobante.SelectedValueExistInsert("Egs", "Egresos") + End If + End If + ObjVentas.Dispose() + Case Else 'SI NO TIENE NINGUN TIPO DE AUTORIZACION CONFIGURADO + 'RMF. codigo temporal para pruebas + If Alertas AndAlso UsuarioActual.CveEmpresa = 140 AndAlso UsuarioActual.CveUsuario.Contiene(100, 1937, 2275) AndAlso Now.Hour > 5 AndAlso Now.Hour < 9 Then + Dim Vta As New ClsVentas + Dim Opcion As Integer = Vta.ObtenerClienteLimitesVenta(CveCliente, UsuarioActual.CveEmpresa) + Dim OpcionMsg As String = String.Format("El Cliente se encuentra bloqueado por la siguiente razón:

{0}", Vta.SerieVenta) + Vta.Dispose() + If Opcion > 0 Then + LnkSolicitarCredito.Visible = True + Alert(OpcionMsg, TipoMensaje.MsgAdvertencia) + End If + Else + + If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + RBLPago.SelectedValue = "2" + RBLPago.Items(0).Enabled = False + RBLPago_SelectedIndexChanged(Nothing, Nothing) + UPCondicionesPago.Update() + Else + 'este codigo no es temporal + If Alertas Then Alert("El cliente tiene su límite de crédito agotado.", TipoMensaje.MsgAdvertencia) + If UsuarioActual.CveEmpresa = 140 Then + LnkSolicitarCredito.Visible = True + DdlTipoAutorizacion.SelectedValueExist("1") + End If + End If + + + End If + End Select + End If End If + + UPPCreditoDisponible.Update() End If 'Puede hacer pedido @@ -6556,49 +6482,45 @@ Partial Class Ventas End Sub Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal Dim Retorno As Decimal = 0 - If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then + Dim ObjVentasAplciar As ClsVentas = Nothing + If ObjVentas IsNot Nothing Then + ObjVentasAplciar = ObjVentas + Else + ObjVentasAplciar = New ClsVentas + End If - Dim ObjVentasAplciar As ClsVentas = Nothing - If ObjVentas IsNot Nothing Then - ObjVentasAplciar = ObjVentas - Else - ObjVentasAplciar = New ClsVentas - End If + If ObjVentasAplciar.ObtenerCreditoRestante(tCveCliente, tCveSucursalCliente) Then + If ObjVentasAplciar.DtResultados.Rows.Count > 0 Then - If ObjVentasAplciar.ObtenerCreditoRestante(tCveCliente, tCveSucursalCliente) Then - If ObjVentasAplciar.DtResultados.Rows.Count > 0 Then + If tCveSucursalCliente > 0 Then - If tCveSucursalCliente > 0 Then + Dim LimiteRestanteSucursal As Decimal = ObjVentasAplciar.DtResultados(0)("LimiteRestanteSucursal").ToString().ToDecimal + Dim PorcentajeSaldoSucursal As Decimal = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoSucursal").ToString().ToDecimal - Dim LimiteRestanteSucursal As Decimal = ObjVentasAplciar.DtResultados(0)("LimiteRestanteSucursal").ToString().ToDecimal - Dim PorcentajeSaldoSucursal As Decimal = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoSucursal").ToString().ToDecimal + Dim LimiteRestanteCliente As Decimal = ObjVentasAplciar.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal + Dim PorcentajeSaldoCliente As Decimal = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoCliente").ToString().ToDecimal - Dim LimiteRestanteCliente As Decimal = ObjVentasAplciar.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal - Dim PorcentajeSaldoCliente As Decimal = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoCliente").ToString().ToDecimal - - 'SI EL LIMITE DE LA SUCURSAL ES MAYOR AL DEL CLIENTE DEBE LIMITAR AL DEL CLIENTE - If LimiteRestanteSucursal > LimiteRestanteCliente Then - Retorno = LimiteRestanteCliente - PorcentajeCredito = PorcentajeSaldoCliente - ElseIf LimiteRestanteSucursal < LimiteRestanteCliente Then - Retorno = LimiteRestanteSucursal - PorcentajeCredito = PorcentajeSaldoSucursal - ElseIf LimiteRestanteSucursal = LimiteRestanteCliente Then - Retorno = LimiteRestanteSucursal - PorcentajeCredito = PorcentajeSaldoSucursal - End If - - Else - Retorno = ObjVentasAplciar.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal - PorcentajeCredito = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoCliente").ToString().ToDecimal + 'SI EL LIMITE DE LA SUCURSAL ES MAYOR AL DEL CLIENTE DEBE LIMITAR AL DEL CLIENTE + If LimiteRestanteSucursal > LimiteRestanteCliente Then + Retorno = LimiteRestanteCliente + PorcentajeCredito = PorcentajeSaldoCliente + ElseIf LimiteRestanteSucursal < LimiteRestanteCliente Then + Retorno = LimiteRestanteSucursal + PorcentajeCredito = PorcentajeSaldoSucursal + ElseIf LimiteRestanteSucursal = LimiteRestanteCliente Then + Retorno = LimiteRestanteSucursal + PorcentajeCredito = PorcentajeSaldoSucursal End If + + Else + Retorno = ObjVentasAplciar.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal + PorcentajeCredito = ObjVentasAplciar.DtResultados(0)("PorcentajeSaldoCliente").ToString().ToDecimal End If End If + End If - If ObjVentas Is Nothing Then - ObjVentasAplciar.Dispose() - End If - + If ObjVentas Is Nothing Then + ObjVentasAplciar.Dispose() End If Return Retorno End Function @@ -7635,38 +7557,38 @@ Partial Class Ventas 'No exceder el limite de credito, Si no tiene contrato limita el credito, si tiene no hace nada. Si no tiene remisiones tampoco hace nada. If (Not CveContrato > 0 Or CveContratoTipo.Contiene(28)) AndAlso (Not NuevaFactura = 1) AndAlso RBLPago.SelectedValue = "1" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Rem", "Ant") AndAlso RemisionesLista.Count <= 0 AndAlso TxtTotal.Text.ToDecimal > 0 AndAlso Not CvePedidoA > 0 Then - If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then - Dim ObjVentas As New ClsVentas + 'If UsuarioActual.Empresa.Funcionalidad(518) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(185) Then + Dim ObjVentas As New ClsVentas - If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then - If ObjVentas.DtResultados.Rows.Count > 0 Then + If ObjVentas.ObtenerCreditoRestante(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) Then + If ObjVentas.DtResultados.Rows.Count > 0 Then - If DdlSucursalCliente.SelectedValue.ToEntero() > 0 Then - If ObjVentas.DtResultados(0)("LimiteRestanteSucursal").ToString().ToDecimal - If(TxtTipoCambio.Visible, TxtTotal.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal, TxtTotal.Text.ToDecimal) < 0 Then - ObjVentas.Dispose() - Alert("Se está excediendo el límite de credito permitido de la Sucursal del Cliente.", TipoMensaje.MsgInformacion) - Exit Sub - End If - Else - If ObjVentas.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal - If(TxtTipoCambio.Visible, TxtTotal.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal, TxtTotal.Text.ToDecimal) < 0 Then - ObjVentas.Dispose() - Alert("Se está excediendo el límite de credito permitido del Cliente.", TipoMensaje.MsgInformacion) - Exit Sub - End If + If DdlSucursalCliente.SelectedValue.ToEntero() > 0 Then + If ObjVentas.DtResultados(0)("LimiteRestanteSucursal").ToString().ToDecimal - If(TxtTipoCambio.Visible, TxtTotal.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal, TxtTotal.Text.ToDecimal) < 0 Then + ObjVentas.Dispose() + Alert("Se está excediendo el límite de credito permitido de la Sucursal del Cliente.", TipoMensaje.MsgInformacion) + Exit Sub End If - Else - ObjVentas.Dispose() - Alert("Ocurrio un error al obtener el limite de credito del cliente", TipoMensaje.MsgError) - Exit Sub + If ObjVentas.DtResultados(0)("LimiteRestanteCliente").ToString().ToDecimal - If(TxtTipoCambio.Visible, TxtTotal.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal, TxtTotal.Text.ToDecimal) < 0 Then + ObjVentas.Dispose() + Alert("Se está excediendo el límite de credito permitido del Cliente.", TipoMensaje.MsgInformacion) + Exit Sub + End If End If + Else ObjVentas.Dispose() Alert("Ocurrio un error al obtener el limite de credito del cliente", TipoMensaje.MsgError) Exit Sub End If + Else ObjVentas.Dispose() + Alert("Ocurrio un error al obtener el limite de credito del cliente", TipoMensaje.MsgError) + Exit Sub End If + ObjVentas.Dispose() + 'End If End If @@ -8239,15 +8161,17 @@ Partial Class Ventas Dim DtMovDetalles As DataTable = Nothing If ObjInventario.GetSaldoVentaDetalle(CveDevolucion, UsuarioActual.CveEmpresa) Then DtMovDetalles = ObjInventario.DtResultados.Copy() + Else + ErrorList.Add("No se pudo verificar los movimientos de almacen de la factura") End If If DtMovDetalles IsNot Nothing Then For Each Row As DataRow In DtMovDetalles.Rows - Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToEntero() + Dim SaldoAlmacen As Decimal = Row("SaldoAlmacen").ToString().ToDecimal() If SaldoAlmacen < 0 Then - ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) - ElseIf SaldoAlmacen = 0 Then - ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 0) + If Not ObjInventario.UpdateEstatusAlmacen(Row("CveVentaDetalleNueva").ToString().ToEntero(), 1) Then + ErrorList.Add("No se pudo actualizar el movimiento de almacen de la factura") + End If End If Next End If @@ -14158,6 +14082,9 @@ Partial Class Ventas saldo = e.Row.DataKey("SaldoSubTotal").ToString().ToDecimal End If + e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero + ElseIf CveVenta > 0 AndAlso e.Row.DBCampo("Tipo").ToString() = "Ant" Then + saldo = e.Row.DataKey("SaldoConImpuestos").ToString().ToDecimal e.Row.FCLiteral("LtlAnticipos").Text = saldo.FormatoNumero End If @@ -15019,7 +14946,6 @@ Partial Class Ventas If IdCtaContRetIVA <> 0 Then IdCtaContable = IdCtaContRetIVA - CveCuenta = CveCuentaRetIVA Else If ObjConta.GetRetCuenta(8, UsuarioActual.CveEmpresa) Then If ObjConta.DtResultados.Rows.Count > 0 Then @@ -20592,9 +20518,9 @@ Partial Class Ventas DdlMetodoPago33.Enabled = False If UsuarioActual.CveEmpresa.Contiene(72, 80, 146) Then + CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero()) DdlFormaPago33.Enabled = False DdlFormaPago33.SelectedValueExist("20") - CargaFormaPago(DdlMetodoPago33.SelectedValue.ToEntero()) End If End If @@ -20978,7 +20904,7 @@ Partial Class Ventas Dim AmortizacionNC As Decimal = 0 'SI ES AMORTIZACION POR NOTA DE CREDITO DEBE SUMAR LA TOTALIDAD PARA COMPARAR EL PAGO - If DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then + If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") AndAlso DdlTipoAmortizacionAnticipo.SelectedValue = "2" Then For Each gvr As GridViewRow In GVAnticipos.Rows If gvr.FCCheckBox("Chk" & gvr.RowIndex) IsNot Nothing AndAlso gvr.FCCheckBox("Chk" & gvr.RowIndex).Checked AndAlso gvr.DataKey("CveConceptoContable").ToEntero().Contiene(3) Then AmortizacionNC += gvr.FCTextBox(String.Format("TxtAnticipo{0}", gvr.RowIndex)).Text.ToDecimal @@ -25198,53 +25124,58 @@ Partial Class Ventas Me.TmpDTRNCBonificacionesSeleccionadas = Nothing - Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") - Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) - Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) - Me.TmpDTRNCBonificacionesCliente.Columns.Add("CveVentaRNCCargo", GetType(Integer)) + If DtNC IsNot Nothing Then + Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") + Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) + Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) + Me.TmpDTRNCBonificacionesCliente.Columns.Add("CveVentaRNCCargo", GetType(Integer)) - If CargarBonificaciones Then - 'Me.TmpDTRNCBonificacionesSeleccionadas = Me.TmpDTRNCBonificacionesCliente.Copy() - CargaBonificaciones(-1, True) - End If + If CargarBonificaciones Then + 'Me.TmpDTRNCBonificacionesSeleccionadas = Me.TmpDTRNCBonificacionesCliente.Copy() + CargaBonificaciones(-1, True) + End If - If CargarSoloGarantias Then - GvRemisionesNC.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = True") - Else - GvRemisionesNC.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = False") - End If - GvRemisionesNC.DataBind() + If CargarSoloGarantias Then + GvRemisionesNC.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = True") + Else + GvRemisionesNC.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = False") + End If + GvRemisionesNC.DataBind() - 'GvRemisionesNCBon.DataSource = Me.TmpDTRNCBonificacionesSeleccionadas - 'GvRemisionesNCBon.DataBind() + 'GvRemisionesNCBon.DataSource = Me.TmpDTRNCBonificacionesSeleccionadas + 'GvRemisionesNCBon.DataBind() - If CveVentaUsado > 0 Then - DivSMU.Visible = True - Dim FacUsado As New Modelos.Factura(UsuarioActual, CveVentaUsado, UsuarioActual.CveEmpresa) - Dim SaldoMaximoUsados As Decimal = FacUsado.DtDetalle.SUM("Total", "EsCargo = True").ToDecimal() + FacUsado.DtDetalle.SUM("ImporteIVA", "EsCargo = True").ToDecimal() - HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() - LtlSMU.Text = String.Format("{0:N2}", SaldoMaximoUsados) - Else - Dim ObjAcum As New ClsAcumuladores - If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then - Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) + If CveVentaUsado > 0 Then DivSMU.Visible = True + Dim FacUsado As New Modelos.Factura(UsuarioActual, CveVentaUsado, UsuarioActual.CveEmpresa) + Dim SaldoMaximoUsados As Decimal = FacUsado.DtDetalle.SUM("Total", "EsCargo = True").ToDecimal() + FacUsado.DtDetalle.SUM("ImporteIVA", "EsCargo = True").ToDecimal() + HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() + LtlSMU.Text = String.Format("{0:N2}", SaldoMaximoUsados) + Else + Dim ObjAcum As New ClsAcumuladores + If ObjAcum.GetMovimientosDistribuidorResumen(CveCliente, UsuarioActual.CveEmpresa) Then + Dim RowUsadosNC As DataRow = ObjAcum.DtResultados.Rows(2) + DivSMU.Visible = True + + Dim SaldoMaximo As Decimal = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal() + If SaldoMaximo > 0 Then + HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() + LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) + Else + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" + End If - Dim SaldoMaximo As Decimal = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal() - If SaldoMaximo > 0 Then - HdnSaldoMaximoUsados.Value = RowUsadosNC("ValorConImpuestos").ToString() - LtlSMU.Text = RowUsadosNC("ValorConImpuestos").ToString().ToDecimal().FormatoNumero(2) Else + 'DivSMU.Visible = False HdnSaldoMaximoUsados.Value = "0" LtlSMU.Text = "0" End If - - Else - 'DivSMU.Visible = False - HdnSaldoMaximoUsados.Value = "0" - LtlSMU.Text = "0" + ObjAcum.Dispose() End If - ObjAcum.Dispose() + Else + HdnSaldoMaximoUsados.Value = "0" + LtlSMU.Text = "0" End If UpModalRemisionesNC.Update() @@ -25261,26 +25192,31 @@ Partial Class Ventas Me.TmpDTRNCBonificacionesSeleccionadas = Nothing - Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") - Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) - Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) - Me.TmpDTRNCBonificacionesCliente.Columns.Add("CveVentaRNCCargo", GetType(Integer)) + If DtNC IsNot Nothing Then + Me.TmpDTRNCBonificacionesCliente = DtNC.FiltraParametros("TipoRNC = 2") + Me.TmpDTRNCBonificacionesCliente.Columns.Add("ImporteBonificacion", GetType(Decimal)) + Me.TmpDTRNCBonificacionesCliente.Columns.Add("IVABonificacion", GetType(Decimal)) + Me.TmpDTRNCBonificacionesCliente.Columns.Add("CveVentaRNCCargo", GetType(Integer)) - If CargarBonificaciones Then - 'Me.TmpDTRNCBonificacionesSeleccionadas = Me.TmpDTRNCBonificacionesCliente.Copy() - CargaBonificacionesDesc("-1", True) - End If + If CargarBonificaciones Then + 'Me.TmpDTRNCBonificacionesSeleccionadas = Me.TmpDTRNCBonificacionesCliente.Copy() + CargaBonificacionesDesc("-1", True) + End If - If CargarSoloGarantias Then - GvDescNCCargos.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = True") + If CargarSoloGarantias Then + GvDescNCCargos.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = True") + Else + GvDescNCCargos.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = False") + End If + GvDescNCCargos.DataBind() + + Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal() + HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() + LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados) Else - GvDescNCCargos.DataSource = DtNC.FiltraParametros("TipoRNC = 1 AND EsGarantia = False") + HdnSaldoMaximoUsados.Value = "0" + LblSaldoMaximoUsados.Text = "0" End If - GvDescNCCargos.DataBind() - - Dim SaldoMaximoUsados As Decimal = Me.TmpDT.SUM("Total", "EsCargo = True").ToDecimal() + Me.TmpDT.SUM("ImporteIVA", "EsCargo = True").ToDecimal() - HdnSaldoMaximoUsados.Value = SaldoMaximoUsados.ToString() - LblSaldoMaximoUsados.Text = String.Format("{0:N2}", SaldoMaximoUsados) UpDescNC.Update() End Sub @@ -28471,7 +28407,7 @@ Partial Class Ventas ChkRemProductos.Visible = True Else 'DivPSRemision.Visible = True - CargaPSRemision(-1, DdlPSRemision) + 'CargaPSRemision(-1, DdlPSRemision) ChkRemProductos.Visible = False ChkRemProductos.Checked = False End If From 865a41e1041e08e8ce7ac2ef254ee28103517ca1 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Mon, 19 Jul 2021 13:37:24 -0700 Subject: [PATCH 03/15] Reporte de comisiones de servec --- App_Code/ClsPaginas.vb | 2 + App_Code/ClsVentas.vb | 44 +++++++++ Ventas/RepComisionesServec.aspx | 104 ++++++++++++++++++++ Ventas/RepComisionesServec.aspx.vb | 63 +++++++++++++ Ventas/RepComisionesServecDetalle.aspx | 110 ++++++++++++++++++++++ Ventas/RepComisionesServecDetalle.aspx.vb | 85 +++++++++++++++++ 6 files changed, 408 insertions(+) create mode 100644 Ventas/RepComisionesServec.aspx create mode 100644 Ventas/RepComisionesServec.aspx.vb create mode 100644 Ventas/RepComisionesServecDetalle.aspx create mode 100644 Ventas/RepComisionesServecDetalle.aspx.vb diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index e9dae6449..7c3e1743f 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5085,6 +5085,8 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/CatMetasVendedores.aspx".ToUpper(), 723) PaginaDict.Add("/Ventas/RepAuxiliarFacturas.aspx".ToUpper(), 567) PaginaDict.Add("/Ventas/CatAutorizacionLimites.aspx".ToUpper(), 781) + PaginaDict.Add("/Ventas/RepComisionesServec.aspx".ToUpper(), 782) + PaginaDict.Add("/Ventas/RepComisionesServecDetalle.aspx".ToUpper(), 783) #End Region diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index d2d08206d..576c9b935 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -3825,6 +3825,50 @@ Public Class ClsVentas Return Retorno End Function + Public Function GetRepComisionesServec(CveVendedor As Integer, FechaI As Date, FechaF As Date, CveSubProyecto As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_ReporteComisionesServecGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Reporte de Comisiones.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + + Public Function GetRepComisionesServecDetalle(CveVendedor As Integer, FechaI As Date, FechaF As Date, CveSubProyecto As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_Vta_ReporteComisionesServecDetalleGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveVendedor", SqlDbType.Int).Value = CveVendedor + .Add("@FechaI", SqlDbType.Date).Value = FechaI + .Add("@FechaF", SqlDbType.Date).Value = FechaF + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto + End With + + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener el Reporte de Comisiones Detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo) + End Try + + Return Retorno + End Function + #End Region #Region "REPORTE DE PRODUCTOS SERVICIOS PERIODO" diff --git a/Ventas/RepComisionesServec.aspx b/Ventas/RepComisionesServec.aspx new file mode 100644 index 000000000..86fcd5566 --- /dev/null +++ b/Ventas/RepComisionesServec.aspx @@ -0,0 +1,104 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepComisionesServec.aspx.vb" Inherits="Ventas_RepComisionesServec" %> + + + + + + + Reporte de comisiones + + + + + + + + + + +
+
+
+ +
+
+
+ +
+ + + +
+ +
+ + + +
+ +
+
+ + + + +
+ + + + + + +
+ +
+
+ + + + +
+ + + + + + +
+
+
+ +
+
+
+
+
+
+

Importes expresados en moneda nacional

+
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
+ + + + + + + + + + + + + + + + + +
+ + + diff --git a/Ventas/RepComisionesServec.aspx.vb b/Ventas/RepComisionesServec.aspx.vb new file mode 100644 index 000000000..594a94faa --- /dev/null +++ b/Ventas/RepComisionesServec.aspx.vb @@ -0,0 +1,63 @@ +Option Explicit On +Option Strict On + +Imports Extensiones +Imports System.Data + +Partial Class Ventas_RepComisionesServec + Inherits ClsPaginas + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) + DdlSubProyecto.DataBind() + + InicializaValores() + End If + End Sub + +#Region " INICIALIZA VALORES " + + Private Sub InicializaValores() + txtFechaI.Text = FirstDayOfMonth(Now).ToShortDateString + txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString + + DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) + DdlVendedor.DataBind() + + End Sub + +#End Region + + Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click + CargaDatos() + UPDatos.Update() + End Sub + + Private Sub CargaDatos() + Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) + Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) + Dim ObjVentas As New ClsVentas() + + If ObjVentas.GetRepComisionesServec(DdlVendedor.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + GvDatos.DataSource = ObjVentas.DtResultados + Else + GvDatos.DataSource = Nothing + End If + ObjVentas.Dispose() + GvDatos.DataBind() + End Sub + + Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + Select Case e.Row.DBCampo("TipoFila").ToString.ToEntero() + Case 1 + e.Row.CssClass = "Totales" + Case Else + e.Row.CssClass = "Texto" + End Select + + e.Row.FCHyperLink("HLVendedor").NavigateUrl = String.Format("/Ventas/RepComisionesServecDetalle.aspx?CveVendedor={0}&CveSubProyecto={1}&FechaI={2:dd/MM/yyy}&FechaF={3:dd/MM/yyy}", e.Row.DBCampo("CveVendedor"), DdlSubProyecto.SelectedValue, If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha), If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha)) + End If + End Sub +End Class diff --git a/Ventas/RepComisionesServecDetalle.aspx b/Ventas/RepComisionesServecDetalle.aspx new file mode 100644 index 000000000..11d57435d --- /dev/null +++ b/Ventas/RepComisionesServecDetalle.aspx @@ -0,0 +1,110 @@ +<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepComisionesServecDetalle.aspx.vb" Inherits="Ventas_RepComisionesServecDetalle" %> + + + + + + + Reporte de comisiones - Detalle + + + + + + + + + + +
+
+
+ +
+
+
+ +
+ + + +
+ +
+ + + +
+ +
+
+ + + + +
+ + + + + + +
+ +
+
+ + + + +
+ + + + + + +
+
+
+ +
+
+
+
+
+
+

Importes expresados en moneda nacional

+
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/Ventas/RepComisionesServecDetalle.aspx.vb b/Ventas/RepComisionesServecDetalle.aspx.vb new file mode 100644 index 000000000..9ba00bafd --- /dev/null +++ b/Ventas/RepComisionesServecDetalle.aspx.vb @@ -0,0 +1,85 @@ +Option Explicit On +Option Strict On + +Imports Extensiones +Imports System.Data + +Partial Class Ventas_RepComisionesServecDetalle + Inherits ClsPaginas + + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load + If Not IsPostBack Then + DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) + DdlSubProyecto.DataBind() + + InicializaValores() + CargaParametrosDetalle() + End If + End Sub + +#Region " INICIALIZA VALORES " + + Private Sub InicializaValores() + DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa) + DdlVendedor.DataBind() + End Sub + + Private Sub CargaParametrosDetalle() + Dim CveVendedor, CveSubProyecto, FechaI, FechaF As String + + CveVendedor = If(Request("CveVendedor") IsNot Nothing AndAlso Request("CveVendedor").ToEntero() > 0, Request("CveVendedor").ToEntero(), -1).ToString + CveSubProyecto = If(Request("CveSubProyecto") IsNot Nothing AndAlso Request("CveSubProyecto").ToEntero() > 0, Request("CveSubProyecto").ToEntero(), -1).ToString + + FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString + FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString + + DdlVendedor.SelectedValueExist(CveVendedor) + DdlSubProyecto.SelectedValueExist(CveSubProyecto) + + If FechaI <> "-1" Then + txtFechaI.Text = FechaI + End If + If FechaF <> "-1" Then + txtFechaF.Text = FechaF + End If + CargaDatos() + End Sub + +#End Region + + Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click + CargaDatos() + UPDatos.Update() + End Sub + + Private Sub CargaDatos() + Dim FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim().ToDate, MinFecha) + Dim FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim().ToDate, MaxFecha) + Dim ObjVentas As New ClsVentas() + + If ObjVentas.GetRepComisionesServecDetalle(DdlVendedor.SelectedValue.ToEntero, FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then + GvDatos.DataSource = ObjVentas.DtResultados + Else + GvDatos.DataSource = Nothing + End If + ObjVentas.Dispose() + GvDatos.DataBind() + End Sub + + Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound + If e.Row.RowType = DataControlRowType.DataRow Then + Select Case e.Row.DBCampo("TipoFila").ToString.ToEntero() + Case 1 + e.Row.CssClass = "Totales" + Case 2 + e.Row.CssClass = "SubTotales" + Case 3 + e.Row.CssClass = "SubTotales2" + Case 4 + e.Row.FCHyperLink("HLGrupo").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta")) + End Select + + End If + End Sub + +End Class From 983c315277116fb09b9223c1c3c117f38f0bc527 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Mon, 19 Jul 2021 22:34:38 -0700 Subject: [PATCH 04/15] Ver cantidad de registros --- Inventarios/InventarioFisicoDetalle.aspx | 5 ++++- Inventarios/InventarioFisicoDetalle.aspx.vb | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Inventarios/InventarioFisicoDetalle.aspx b/Inventarios/InventarioFisicoDetalle.aspx index 8596e2357..bd93252e6 100644 --- a/Inventarios/InventarioFisicoDetalle.aspx +++ b/Inventarios/InventarioFisicoDetalle.aspx @@ -349,7 +349,10 @@
-
+
+ Número de registros: +
+
" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info">
diff --git a/Inventarios/InventarioFisicoDetalle.aspx.vb b/Inventarios/InventarioFisicoDetalle.aspx.vb index e572bd81c..e7afad4c4 100644 --- a/Inventarios/InventarioFisicoDetalle.aspx.vb +++ b/Inventarios/InventarioFisicoDetalle.aspx.vb @@ -139,6 +139,7 @@ Partial Class Inventarios_InventarioFisicoDetalle LBAvance.Visible = UsuarioActual.TienePermisoProceso(178) ' si tiene permiso de ver el avance, se activa End Select GvIFD.Visible = False + divRegistrados.Visible = False DivBuscador.Visible = False If ObjInventario.GetInventarioFisicoDetallesAlmacen(CveInventarioFisico, UsuarioActual.CveEmpresa) Then @@ -250,7 +251,9 @@ Partial Class Inventarios_InventarioFisicoDetalle Protected Sub BtnVerRegistrados_Click(sender As Object, e As EventArgs) GvIFD.Visible = True - DivBuscador.Visible = True + DivBuscador.Visible = True + divRegistrados.Visible = True + Dim Inventario As New ClsInventarios If Inventario.GetInventarioFisicoDetalle(CveInventarioFisico, ddlUsuario.SelectedValue.ToString.ToEntero) Then If Inventario.DtResultados.Rows.Count > 0 Then @@ -263,6 +266,7 @@ Partial Class Inventarios_InventarioFisicoDetalle GvIFD.DataSource = Nothing End If ' DtDatos = Inventario.DtResultados + LtlTotalRegistros.Text = Inventario.DtResultados.Rows.Count End If Inventario.Dispose() GvIFD.DataBind() @@ -456,7 +460,9 @@ Partial Class Inventarios_InventarioFisicoDetalle RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") End If GvIFD.Visible = False - DivBuscador.Visible = False + DivBuscador.Visible = False + divRegistrados.Visible = False + UPPInventario.Update() End Sub From 87bfbd456b7db9d174f3ad3c10a6497f6ac20251 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Mon, 19 Jul 2021 22:34:46 -0700 Subject: [PATCH 05/15] --- Inventarios/KardexAlmacenHorizontal.aspx | 13 ++-- Inventarios/KardexAlmacenHorizontal.aspx.vb | 76 +++++++++------------ 2 files changed, 39 insertions(+), 50 deletions(-) diff --git a/Inventarios/KardexAlmacenHorizontal.aspx b/Inventarios/KardexAlmacenHorizontal.aspx index 8558b7971..f043c2844 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx +++ b/Inventarios/KardexAlmacenHorizontal.aspx @@ -141,12 +141,19 @@
-
+
+ +
+ + + + +
@@ -216,10 +223,6 @@ -
Ver por SubProyecto:
-
- -
diff --git a/Inventarios/KardexAlmacenHorizontal.aspx.vb b/Inventarios/KardexAlmacenHorizontal.aspx.vb index 2916dec67..bae47a480 100644 --- a/Inventarios/KardexAlmacenHorizontal.aspx.vb +++ b/Inventarios/KardexAlmacenHorizontal.aspx.vb @@ -139,60 +139,46 @@ Partial Class Inventarios_KardexAlmacen Dim CveAlmacenes As String = ddlAlmacen.GetSelectedValues() Dim CveProveedorCompra As Integer = If(DdlProveedor.SelectedValue.ToEntero > 0, DdlProveedor.SelectedValue.ToEntero, -1) Dim Marcas As String = If(DdlMarca.GetSelectedValuesM = "", "-1", DdlMarca.GetSelectedValuesM) - Dim dtMovs As DataTable = Nothing + Dim GPO As Integer = Ddlgrupo.SelectedValue.ToEntero - If chkAgruparSubProyecto.Checked Then - If ObjMovimientos.GetKardexAlmacenHorizontalAgrupado(CvePS, FechaF, -1, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), DdlIncluyeTransitorios.SelectedValue.ToEntero(), DdlClasificacion.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CondicionExistencias:=DdlExistencia.SelectedValue, Orden:=DdlOrden.SelectedValue.ToEntero(), Marcas:=Marcas, IncluyeProyectado:=DdlProyeccionFiltro.SelectedValue.ToEntero, CveAlmacenes:=CveAlmacenes) Then - If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then - dt = ObjMovimientos.DtResultados - End If - Else - ObjMovimientos.Dispose() - Alert("Ocurrió un error al consultar el Kardex.", TipoMensaje.MsgError) - Exit Sub + If ObjMovimientos.GetKardexAlmacenHorizontal(CvePS, FechaF, -1, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), DdlIncluyeTransitorios.SelectedValue.ToEntero(), + DdlClasificacion.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CondicionExistencias:=DdlExistencia.SelectedValue, + Orden:=DdlOrden.SelectedValue.ToEntero(), Marcas:=Marcas, IncluyeProyectado:=DdlProyeccionFiltro.SelectedValue.ToEntero, CveAlmacenes:=CveAlmacenes, GPO:=GPO) Then + If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then + dt = ObjMovimientos.DtResultados + Dim ListaBorrar As New List(Of DataColumn) + For index = 3 To dt.Columns.Count - 1 + Dim TotColumna As Double = 0 + For Each Dr As DataRow In dt.Rows + TotColumna += Dr.Item(index).ToString.ToDouble + Next + 'If Not TotColumna > 0 Then + ' ListaBorrar.Add(dt.Columns(index)) + 'End If + Next + For Each item As DataColumn In ListaBorrar + dt.Columns().Remove(item) + Next + dt.AcceptChanges() + GvDatos.DataSource = dt + Else + Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia) + GvDatos.Columns.Clear() + dt = Nothing + Exit Sub End If Else - If ObjMovimientos.GetKardexAlmacenHorizontal(CvePS, FechaF, -1, DdlUnidadMedida.SelectedValue.ToEntero, CveProveedorCompra, DdlTipoAlmacen.SelectedValue.ToEntero(), DdlIncluyeTransitorios.SelectedValue.ToEntero(), DdlClasificacion.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CondicionExistencias:=DdlExistencia.SelectedValue, Orden:=DdlOrden.SelectedValue.ToEntero(), Marcas:=Marcas, IncluyeProyectado:=DdlProyeccionFiltro.SelectedValue.ToEntero, CveAlmacenes:=CveAlmacenes) Then - If ObjMovimientos.DtResultados IsNot Nothing AndAlso ObjMovimientos.DtResultados.Rows.Count > 0 Then - dt = ObjMovimientos.DtResultados - End If - Else - ObjMovimientos.Dispose() - Alert("Ocurrió un error al consultar el Kardex.", TipoMensaje.MsgError) - Exit Sub - End If - End If - - - If dt IsNot Nothing AndAlso dt.Rows.Count > 0 Then - Dim ListaBorrar As New List(Of DataColumn) - For index = 3 To dt.Columns.Count - 1 - Dim TotColumna As Double = 0 - For Each Dr As DataRow In dt.Rows - TotColumna += Dr.Item(index).ToString.ToDouble - Next - 'If Not TotColumna > 0 Then - ' ListaBorrar.Add(dt.Columns(index)) - 'End If - Next - For Each item As DataColumn In ListaBorrar - dt.Columns().Remove(item) - Next - dt.AcceptChanges() - GvDatos.DataSource = dt - GvDatos.DataBind() - Else - Alert("La búsqueda no contiene resultados.", TipoMensaje.MsgAdvertencia) - GvDatos.Columns.Clear() - dt = Nothing - Exit Sub + ObjMovimientos.Dispose() + Alert("Ocurrió un error al consultar el Kardex.", TipoMensaje.MsgError) + Exit Sub End If + GvDatos.DataBind() + For index = 4 To GvDatos.Rows(0).Cells.Count - 1 GvDatos.HeaderRow.Cells(index).Text = GvDatos.HeaderRow.Cells(index).Text.Split("|")(0) Next - ObjMovimientos.Dispose() End Sub Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound From 0293fc5c1fd8b84689668504ed98fe07a5a035b5 Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Mon, 19 Jul 2021 22:35:07 -0700 Subject: [PATCH 06/15] columna de limitar cantidad --- Contratos/ContratoObra.aspx | 47 ++++++++++++++++++---------------- Contratos/ContratoObra.aspx.vb | 47 ++++++++++++++++++++-------------- 2 files changed, 53 insertions(+), 41 deletions(-) diff --git a/Contratos/ContratoObra.aspx b/Contratos/ContratoObra.aspx index 47510cdea..dcf14eb01 100644 --- a/Contratos/ContratoObra.aspx +++ b/Contratos/ContratoObra.aspx @@ -1046,21 +1046,26 @@ - + + + + + + + + - - +
+ + +
+
@@ -2892,7 +2902,7 @@ <%--MODAL CONTROL PRESUPUESTOS AGREGAR--%>

+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+ CssClass="table GVEstimacion table-advance table-hover Widthall ScrollAD mysmallbtn" GridLines="None" Width="100%"> @@ -5439,6 +5443,9 @@
+
+ +
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 14a68d83c..8ddb0e402 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -18126,46 +18126,86 @@ Partial Class Compras_Compras End If ActualizaTotales = True - Select Case Modalidad - Case "A" 'ADD - - Dim SATClavePS = -1 - Dim PSRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") - If PSRow IsNot Nothing Then - SATClavePS = PSRow("SATClavePS").ToString.ToEntero - End If - Dim IVA As Double - If chkImportacion.Checked Then - IVA = (txtImportacion.Text.Trim.ToDouble / (TxtCantidad.Text.Trim.ToDouble * TxtPrecio.Text.Trim.ToDouble)) + Dim ObjContratos As New ClsContratos + Dim TieneError As Boolean = False + Dim Mensaje As String = "" + Dim dttemp As DataTable = GlobalDTContratos().FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyecto.SelectedValue.ToString)) + If dttemp IsNot Nothing AndAlso dttemp.Rows.Count > 0 Then + Dim drContrato As DataRow = dttemp.Rows(0) + If ObjContratos.GetContratosDetalle(drContrato("CveContrato").ToString.ToEntero) Then + Dim dtContratodetalle As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) + If dtContratodetalle IsNot Nothing AndAlso dtContratodetalle.Rows.Count > 0 Then + Dim drContratoDetalle As DataRow = dtContratodetalle(0) + If Convert.ToBoolean(drContratoDetalle("LimitarCantidad")) Then + If ObjContratos.GetReporteContratosAvancesDetalleControl(drContrato("CveContrato").ToString.ToEntero, UsuarioActual.CveEmpresa) Then + Dim dtContratodetalleControl As DataTable = ObjContratos.DtResultados.FiltraParametros(String.Format("CvePS = {0}", DdlPS.SelectedValue.ToString)) + If dtContratodetalleControl IsNot Nothing AndAlso dtContratodetalleControl.Rows.Count > 0 Then + Dim drContratoDetalleControl As DataRow = dtContratodetalleControl(0) + If TxtCantidad.Text.Trim.ToDouble > drContratoDetalleControl("FaltanteCantidad").ToString.ToDouble Then + Mensaje = String.Format("La cantidad del Producto/Servicio debe ser menor o igual a {0}", drContratoDetalleControl("FaltanteCantidad").ToString) + TieneError = True + End If + Else + Mensaje = "Este producto no pertence al contrato seleccionado" + TieneError = True + End If + Else + Mensaje = "Error al consultar el contrato" + End If + End If Else - IVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) + Mensaje = "Este producto no pertence al contrato seleccionado" + TieneError = True End If - AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, - DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, IVA, - TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, - NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS) + Else + Mensaje = "Error al consultar el contrato" - AddPS2() - LimpiaAgregar() + End If + End If + If Not TieneError Then + Select Case Modalidad + Case "A" 'ADD - If ChkAgregar.Checked = True And Modalidad = "A" Then - RegistraScript("displayToastr(1);", "display") - Else + Dim SATClavePS = -1 + Dim PSRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("") + If PSRow IsNot Nothing Then + SATClavePS = PSRow("SATClavePS").ToString.ToEntero + End If + Dim IVA As Double + If chkImportacion.Checked Then + IVA = (txtImportacion.Text.Trim.ToDouble / (TxtCantidad.Text.Trim.ToDouble * TxtPrecio.Text.Trim.ToDouble)) + Else + IVA = Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2) + End If + AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero, + DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, IVA, + TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, + NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS) + + AddPS2() + LimpiaAgregar() + + If ChkAgregar.Checked = True And Modalidad = "A" Then + RegistraScript("displayToastr(1);", "display") + Else + RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) + End If + + Case "U" 'UPDATE + UpdatePS() + Alert("Concepto actualizado Correctamente.", TipoMensaje.MsgInformacion) RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) - End If + End Select + ActualizaTotales = False - Case "U" 'UPDATE - UpdatePS() - Alert("Concepto actualizado Correctamente.", TipoMensaje.MsgInformacion) - RegistraScript(String.Format("$('#{0}').modal('hide');", "divAddProducto")) - End Select - ActualizaTotales = False + If UsuarioActual.Empresa.Funcionalidad(562).ToEntero > 0 Then CargaGastosServicios(UsuarioActual.Empresa.Funcionalidad(562).ToEntero) - If UsuarioActual.Empresa.Funcionalidad(562).ToEntero > 0 Then CargaGastosServicios(UsuarioActual.Empresa.Funcionalidad(562).ToEntero) - - If UsuarioActual.Empresa.UsaAC Then - CompruebaAgregar() - GuardaAC() + If UsuarioActual.Empresa.UsaAC Then + CompruebaAgregar() + GuardaAC() + End If + Else + Alert(Mensaje, TipoMensaje.MsgAdvertencia) End If 'If UsuarioActual.Empresa.Funcionalidad(577).ToString = "1" Then @@ -20786,9 +20826,17 @@ Partial Class Compras_Compras If ObjContratos.DtResultados.Rows.Count > 0 Then GvContratosControl.DataSource = ObjContratos.DtResultados BtnAplicarContrato.Visible = True + divBusqueda.Visible = True + ChkContinualAgregandoControl.Visible = True + ChkContinualAgregandoControl.Checked = True + Else GvContratosControl.DataSource = Nothing BtnAplicarContrato.Visible = False + divBusqueda.Visible = False + ChkContinualAgregandoControl.Visible = False + ChkContinualAgregandoControl.Checked = False + End If End If @@ -20863,11 +20911,9 @@ Partial Class Compras_Compras Next AddPS2() - - - RegistraScript("$('#DivmodalConmtrato').modal('hide')") - - + If Not ChkContinualAgregandoControl.Checked Then + RegistraScript("$('#DivmodalConmtrato').modal('hide')") + End If End Sub diff --git a/OC/OC.aspx b/OC/OC.aspx index b4968ba52..59056f36c 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -2747,33 +2747,33 @@
+
+ " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+ CssClass="table GVEstimacion table-advance table-hover Widthall ScrollAD mysmallbtn" GridLines="None" Width="100%"> - - - - - - <%# Eval("CantidadMax", "{0:N2}")%> - - - - - + - + + + + + + + <%# Eval("PU", "{0:N2}")%> @@ -2790,8 +2790,9 @@
- - +
+ +
From 9cf67b2c5c87178a83329153469b24f525a776d0 Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 20 Jul 2021 10:11:48 -0700 Subject: [PATCH 14/15] Reducir sleep en envio de informacion, API Econo --- Ashx/E141.ashx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ashx/E141.ashx b/Ashx/E141.ashx index 90a17dc54..4f74331ac 100644 --- a/Ashx/E141.ashx +++ b/Ashx/E141.ashx @@ -2106,7 +2106,7 @@ Public Class E141 : Implements IHttpHandler End If End If - Threading.Thread.Sleep(3000) + Threading.Thread.Sleep(1000) End While End If From 40a0f7e27329cdbcdb43804295890a7571d3b80d Mon Sep 17 00:00:00 2001 From: Jonathan Alexis Perez Morales Date: Tue, 20 Jul 2021 10:13:06 -0700 Subject: [PATCH 15/15] Correciones en trayectos --- .gitignore | 1 + GPS/TrayectoDetalle.aspx | 2 +- GPS/TrayectoDetalle.aspx.vb | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index dc964f860..52ab644c4 100644 --- a/.gitignore +++ b/.gitignore @@ -278,3 +278,4 @@ __pycache__/ vwd.webinfo /Bin.rar +/Ashx/sigfox.ashx diff --git a/GPS/TrayectoDetalle.aspx b/GPS/TrayectoDetalle.aspx index 7348e02c5..f93043055 100644 --- a/GPS/TrayectoDetalle.aspx +++ b/GPS/TrayectoDetalle.aspx @@ -375,7 +375,7 @@ - +
diff --git a/GPS/TrayectoDetalle.aspx.vb b/GPS/TrayectoDetalle.aspx.vb index fe58efe5d..9c6208757 100644 --- a/GPS/TrayectoDetalle.aspx.vb +++ b/GPS/TrayectoDetalle.aspx.vb @@ -308,8 +308,8 @@ Partial Class GPS_TrayectoDetalle End Try End If - 'UpIgniciones.Update() - 'UpEventos.Update() + UpIgniciones.Update() + UpEventos.Update() End Sub Public Sub CargaReporte() Dim ObjGPS As New ClsGPS