diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index cf5bb2b82..2b624ec92 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -1665,7 +1665,6 @@ Partial Class Ventas ViewState("CveOC") = value End Set End Property - Private Property RegistroxOC As Boolean Get Return CBool(IfNull(ViewState("RegistroxOC"), False)) @@ -1674,8 +1673,6 @@ Partial Class Ventas ViewState("RegistroxOC") = value End Set End Property - - Private Property EnviarCorreoCliente As Boolean Get Return CBool(IfNull(ViewState("EnviarCorreoCliente"), False)) @@ -2598,10 +2595,6 @@ Partial Class Ventas CargaGestionCobranza() End If - If UsuarioActual.Empresa.Funcionalidad(595) = "2" Then - LnkSolicitarCredito.Visible = True - End If - DdlSATPS.setEsWebService(True) : DdlSATPS.Attributes.Add("data-metodo", "getpssat") DivPSSAT.Visible = True @@ -7709,6 +7702,8 @@ Partial Class Ventas Private Sub CargaRestriccionesCreditoCliente(Optional Alertas As Boolean = False, Optional CveVenta As Integer = -1) Dim ValorAutorizacion As String = UsuarioActual.Empresa.Funcionalidad(595) + 'solo para bdh, que se generen NC + If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then DdlSolCreditoTipoDocto.Items.Add(New ListItem("Nota de crédito", "Egs")) 'OBLIGAR PAGO DE CONTADO SI EL CLIENTE NO PERMITE CREDITO If Not EsFilial AndAlso (Not UsuarioActual.Empresa.Funcionalidad(702).Contiene("1")) AndAlso Me.PermiteCredito = False AndAlso ((DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot") AndAlso CveVenta < 1) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem", "Cot", "PA") AndAlso EsCreaApartirDe) OrElse (DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveVenta > 0)) Then @@ -7750,7 +7745,7 @@ Partial Class Ventas If Me.PermiteCredito Then If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then - Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) + Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) If CreditoDispo > 0 Then TrCreditoDisponible.Visible = True LblCreditoDisponible.Text = String.Format("{0:C}", CreditoDispo) @@ -7778,7 +7773,7 @@ Partial Class Ventas UPCondicionesPago.Update() End If - Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) + Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) If CreditoDispo > 0 Then TrCreditoDisponible.Visible = True @@ -7801,7 +7796,7 @@ Partial Class Ventas If Not EsCreaApartirDe AndAlso (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValueExist("Cot") Else - If UsuarioActual.Empresa.Funcionalidad(595) = "1" Then + If ValorAutorizacion = "1" Then DdlTipoComprobante.SelectedValueExistInsert("PA", "Autorización") DdlTipoComprobante.SelectedValue = "PA" @@ -7814,7 +7809,7 @@ Partial Class Ventas If IfNull(Request("Op"), "").ToString() = "Cot" OrElse (DdlTipoComprobante.SelectedValue = "Cot" AndAlso CveVenta > 0) Then DdlTipoComprobante.SelectedValue = "Cot" 'quito remisión y factura - If UsuarioActual.Empresa.Funcionalidad(595) <> "2" Then + If ValorAutorizacion = "1" Then DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ing")) If Not UsuarioActual.TienePermisoProceso(325) Then DdlTipoComprobante.Items.Remove(DdlTipoComprobante.Items.FindByValue("Ant")) @@ -7839,7 +7834,6 @@ Partial Class Ventas If Bloqueo AndAlso ValorAutorizacion = "2" Then Dim Autorizacion As Integer = 0 - Dim ObjVentas As New ClsVentas If ObjVentas.GetAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero, "Ing", CveEstatus:=1) Then Dim RowAutorizacion As DataRow = Nothing @@ -7862,6 +7856,16 @@ Partial Class Ventas TieneBloqueoPorCreditoVencimiento = 0 Alert("El cliente tiene una autorización aprobada", TipoMensaje.ToastInformacion) End If + LnkSolicitarCredito.Visible = True + DdlTipoAutorizacion.SelectedValueExist("1") + End If + + If Bloqueo AndAlso ValorAutorizacion = "3" Then ' autorización con vinculación a una venta registrada + TrCredito1.Visible = True + ChkSolicitudAutorizacionCredito.Checked = True + LnkSolicitarCredito.Visible = True + divModalidad2.Visible = False + divModalidad3.Visible = True End If 'SI ES AUTORIZACION DEBE PERMITIR GENERARLA @@ -7999,16 +8003,7 @@ Partial Class Ventas End If 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, "Ing", 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() + 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) @@ -8128,7 +8123,7 @@ Partial Class Ventas 'CREDITO NO SUFICIENTE If Opcion = 3 Then - 'Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) + 'Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero()) 'If CreditoDispo < 0 AndAlso RBLPago.SelectedValue = "1" Then ' BloquearCliente = True 'End If @@ -8295,7 +8290,7 @@ Partial Class Ventas Alert("La Sucursal/Departamento del cliente se encuentra inactivo", TipoMensaje.MsgAdvertencia) Else RBLPago.Items(0).Enabled = True - Dim CreditoDispo As Decimal = CargaCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero(), ObjVentas) + Dim CreditoDispo As Decimal = GetSaldoCreditoDisponible(CveCliente, DdlSucursalCliente.SelectedValue.ToEntero(), ObjVentas) TrCreditoDisponible.Visible = True LblCreditoDisponible.Text = String.Format("{0:C}", CreditoDispo) @@ -8435,7 +8430,7 @@ Partial Class Ventas UpCliente.Update() UpEmitirTransitorio.Update() End Sub - Private Function CargaCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal + Private Function GetSaldoCreditoDisponible(tCveCliente As Integer, tCveSucursalCliente As Integer, Optional ByRef ObjVentas As ClsVentas = Nothing) As Decimal Dim Retorno As Decimal = 0 Dim ObjVentasAplciar As ClsVentas = Nothing If ObjVentas IsNot Nothing Then @@ -9083,9 +9078,9 @@ Partial Class Ventas GvPS.DataBind() End Sub Protected Sub GvPS_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvPS.RowUpdating - 'Dim TipoDescuento As Integer - Dim CvePSNuevo As Integer = GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero() + Dim CvePSNuevo As Integer = GvPS.Rows(e.RowIndex).FCDropDownLost("DdlPS").SelectedValue.ToEntero() + Dim CvePSAnterior As Integer = GvPS.Rows(e.RowIndex).DataKey("CvePS").ToEntero Dim Cantidad, PU As Decimal Dim ObjDescuento As New Modelos.VentaDescuentos Dim CuentaPredial As String @@ -9112,7 +9107,7 @@ Partial Class Ventas End If 'SI ESTA HABILITADO LA OPCION DE DESCUENTO, SE AGREGO UN DESCUENTO MANUAL Y NO TIENE PROMOCION - If GvPS.Rows(e.RowIndex).FCTextBox("TxtDescuento").Enabled Then + If GvPS.Rows(e.RowIndex).FCTextBox("TxtDescuento").Enabled AndAlso CvePSAnterior = CvePSNuevo Then 'AndAlso (ObjDescuento.CvePromocionDetalle <= 0 AndAlso ObjDescuento.ImporteDescuento <= 0) Then ObjDescuento.ImporteDescuento = DescuentoManual End If @@ -10904,6 +10899,35 @@ Partial Class Ventas End If End If End If + If ErrorList.Count = 0 AndAlso ObjFactura.CveVenta > 0 AndAlso ChkSolicitudAutorizacionCredito.Checked Then + ' crea la solicitud de autorización de crédito + Dim tCveTipoAutorizacion As Integer = 1 + If ObjVentas.AddAutorizacionLimite(UsuarioActual.CveEmpresa, CveCliente, DdlVendedor.SelectedValue.ToEntero(), TxtTotal.Text.ToDecimal(), 0, UsuarioActual.CveUsuario, tCveTipoAutorizacion, TipoDocumento:=DdlTipoComprobante.SelectedValue, DiasVencidos:=25, CveVenta:=ObjFactura.CveVenta) Then + Alert("La autorización se agregó correctamente.", TipoMensaje.MsgInformacion) + Dim Arr As New ArrayList + + Arr.Add(NombreCliente) + Arr.Add($" $ {TxtTotal.Text.ToDecimal}") + Arr.Add(DdlSubProyectoDatos.SelectedItem.Text) + Dim dtt As DataTable = Nothing + Dim ObjProceso As New ClsSisProcesos + If ObjProceso.GetUsuariosconProceso(379, UsuarioActual.CveEmpresa) Then 'proceso para autorizar + dtt = ObjProceso.DtResultados.FiltraParametros("", DistinctColumns:={"CveUsuario", "Celular"}) + End If + If dtt IsNot Nothing AndAlso dtt.Rows.Count > 0 Then + For Each dr As DataRow In dtt.Rows + Dim NumeroTelefono = "526621143532" + If EsProduccion Then + NumeroTelefono = String.Format("52{0}", dr("Celular").ToString()) + End If + EnviarNotificacionWhatsAppPlantilla(NumeroTelefono, "solicitud_autorizacion_credito2", Arr) + 'ClsSisNotificaciones.EnviarAlerta("Solicitud de Autorización de crédito", $"Solicitud de autorización de crédito Folio: {Folio}
Ir Activar", dr("CveUsuario").ToString, Tipo:=TipoNotificacion.ToastInformacionB) + Next + End If + ObjProceso.Dispose() + + End If + End If 'Paso CRM actualizar importe de acercamiento y guardar en bitacora If DdlTipoComprobante.SelectedValue.Contiene("Cot") AndAlso CveEmpresaCRM > 0 AndAlso CveAcercamientoCRM > 0 Then @@ -25097,7 +25121,6 @@ Partial Class Ventas TxtCorreoCliente.Text = "" TxtTelefonoCliente.Text = "" - If UsuarioActual.CveEmpresa = 189 Then TxtRFCNombre.Text = "" @@ -26073,16 +26096,16 @@ Partial Class Ventas Dim RestringirAlmacenes As Integer = -1 - Dim BuscarEnTabla As Boolean = True - - Dim ObjInventarios As New ClsInventarios() - If ObjInventarios.GetExistenciasProducto(GvRow.DataKey("CvePS").ToEntero(), -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), - ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=-1, - ExcluyeTransitorios:=1, RestringirAlmacenes:=RestringirAlmacenes, TopSelect:=100, BuscarEnTabla:=BuscarEnTabla) Then - GvVerExistencias.DataSource = ObjInventarios.DtResultados.Copy() - End If - ObjInventarios.Dispose() - + Dim BuscarEnTabla As Boolean = True + + Dim ObjInventarios As New ClsInventarios() + If ObjInventarios.GetExistenciasProducto(GvRow.DataKey("CvePS").ToEntero(), -1, UsuarioActual.CveEmpresa, -1, FechaMovto:=DateTime.Today.AddDays(1).ToString("yyyy/MM/dd HH:mm"), + ExcluyeApartados:=-1, ExcluyeAdelantado:=1, CveSubProyecto:=-1, + ExcluyeTransitorios:=1, RestringirAlmacenes:=RestringirAlmacenes, TopSelect:=100, BuscarEnTabla:=BuscarEnTabla) Then + GvVerExistencias.DataSource = ObjInventarios.DtResultados.Copy() + End If + ObjInventarios.Dispose() + GvVerExistencias.DataBind() UpVerExistencias.Update() @@ -37336,11 +37359,16 @@ Partial Class Ventas UpModalSolicitud.Update() End Sub Protected Sub BtnSolicitarCredito_Click(sender As Object, e As EventArgs) Handles BtnSolicitarCredito.Click + If UsuarioActual.Empresa.Funcionalidad(595) = "3" Then + RegistraScript("$('#DivModalSolicitarCredito').modal('hide')") + Exit Sub + End If + Dim DiasVencidos As Integer = 0 Dim CveEstatus As Integer = 0 Dim TipoDocto As String = DdlSolCreditoTipoDocto.SelectedValue Dim CveTipoAutorizacion As Integer = DdlTipoAutorizacion.SelectedValue.ToEntero() - If CveTipoAutorizacion <= 0 Then + If UsuarioActual.Empresa.Funcionalidad(595) <> "3" AndAlso CveTipoAutorizacion <= 0 Then Alert("Debe seleccionar un tipo de autorización", TipoMensaje.MsgAdvertencia) Exit Sub End If @@ -37364,8 +37392,11 @@ Partial Class Ventas UpModalSolicitud.Update() End Sub Protected Sub DdlTipoAutorizacion_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoAutorizacion.SelectedIndexChanged - DivImporteSolicitud.Visible = DdlTipoAutorizacion.SelectedValue.ToEntero() = 1 - DivDiasVencidos.Visible = DdlTipoAutorizacion.SelectedValue.ToEntero() = 2 + DivImporteSolicitud.Visible = DdlTipoAutorizacion.SelectedValue = "1" + DivDiasVencidos.Visible = DdlTipoAutorizacion.SelectedValue = "2" + If Not UsuarioActual.Empresa.Funcionalidad(382) = "1" Then + TxtDiasVencidos.Text = "25" + End If UpModalSolicitud.Update() End Sub @@ -39863,18 +39894,18 @@ Partial Class Ventas End Function Protected Sub GvVerExistencias_RowDataBound(sender As Object, e As GridViewRowEventArgs) If e.Row.RowType = DataControlRowType.DataRow Then - If e.Row.DBCampo("CveAlmacen") = "" Then - e.Row.CssClass = "Totales" + If e.Row.DBCampo("CveAlmacen") = "" Then + e.Row.CssClass = "Totales" End If End If End Sub - Private Sub CargaGiro() - Dim Dt As DataTable = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) - DdlGiro.DataSource = Dt - DdlGiro.DataBind() - DdlGiro.Items.Insert(0, New ListItem("Seleccione", "-1")) - UpAgregarCliente.Update() + Private Sub CargaGiro() + Dim Dt As DataTable = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa) + DdlGiro.DataSource = Dt + DdlGiro.DataBind() + DdlGiro.Items.Insert(0, New ListItem("Seleccione", "-1")) + UpAgregarCliente.Update() End Sub