Files
SIG/Ventas/CatClientes.aspx.vb
RPimienta 20c1a4a374 1. Kardex. Visualización de cantidades pendientes de recibir (backorder) y visualizar como se componen la OC.
2.  permitir cancelación de partida del producto de la backorder.
3.  Filtro aseguradora en reportes de cxc y listado de clientes.
4. Rep CxC, personalizar columna de límite de crédito
2024-08-30 03:53:56 -06:00

600 lines
22 KiB
VB.net

Option Explicit On
Option Strict On
Imports System
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class CatClientes
Inherits ClsPaginas
Property DTDatos As DataTable
Get
If ViewState("DTDatos") Is Nothing Then
Return New DataTable
Else
Return DirectCast(ViewState("DTDatos"), DataTable)
End If
End Get
Set(value As DataTable)
ViewState("DTDatos") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
ViewState("Orden") = ""
Inicializa()
CargaSucursales()
CargaClasificaciones()
CargaVendedor()
CargaPersonalizacion()
End If
End Sub
Public Sub CargaDatos()
Dim ObjClientes As New ClsClientes
Dim Nombre, RFC As String
Nombre = "-1"
RFC = "-1"
If TxtNombre.Text.Trim <> String.Empty Then Nombre = TxtNombre.Text.Trim
If TxtRFC.Text.Trim <> String.Empty Then RFC = TxtRFC.Text.Trim
'If ObjClientes.GetClientes(-1, Nombre, "-1", "-1", RFC, "-1", "-1", DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Estatus:=DdlEstatus.SelectedValue.ToEntero, CveClienteClasificacion:=DdlClasificaciones.SelectedValue.ToEntero, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero, PermiteCreditoFiltro:=If(ChkPermiteCredito.Checked, 1, -1)) Then
If ObjClientes.GetClientes(-1, Nombre, "-1", "-1", RFC, "-1", "-1", DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, Estatus:=DdlEstatus.SelectedValue.ToEntero, CveClienteClasificacion:=DdlClasificaciones.SelectedValue.ToEntero, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, CveVendedor:=DdlVendedor.SelectedValue.ToEntero,
PermiteCreditoFiltro:=DdlPermiteCredito.SelectedValue.ToEntero,
EnDemanda:=DDlEnDemanda.SelectedValue.ToEntero,
EnQuebranto:=DdlEnQuebranto.SelectedValue.ToEntero, Aseguradora:=DdlAseguradora.SelectedValue.ToEntero) Then
If ObjClientes.DtResultados.Rows.Count > 0 Then
DTDatos = ObjClientes.DtResultados
Else
DTDatos = Nothing
Alert("No se encontraron registros con los parametros solicitados.", Extensiones.TipoMensaje.MsgAdvertencia)
End If
End If
ObjClientes.Dispose()
If ViewState("Orden").ToString() <> String.Empty Then
CargaGrid(ViewState("Orden").ToString())
Else
CargaGrid("")
End If
UPDatos.Update()
End Sub
Private Sub CargaSucursales()
DdlSubProyecto.DataSource = GlobalDTSubProyectos(UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
DdlSubProyecto.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
Private Sub CargaClasificaciones()
DdlClasificaciones.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa)
DdlClasificaciones.DataBind()
DdlClasificaciones.Items.Insert(0, New ListItem("Todas", "-1"))
End Sub
Private Sub Inicializa()
PanelContrato.Visible = True
MPContrato.Enabled = True
Me.Form.DefaultButton = LbFiltrar.UniqueID
DdlClienteAUnificar.setEsWebService(True)
DdlClienteAUnificar.SelectedValue = "-1"
DdlClienteAUnificar.SelectedText = "Todos"
DdlClienteOriginal.setEsWebService(True)
DdlClienteOriginal.SelectedValue = "-1"
DdlClienteOriginal.SelectedText = "Todos"
If UsuarioActual.CveEmpresa = 119 Then
divfiltro2.Visible = True
End If
UpBodyUnificar.Update()
End Sub
Private Sub CargaVendedor()
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa)
DdlVendedor.DataBind()
DdlVendedor.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Protected Sub LbFiltrar_Click(sender As Object, e As EventArgs) Handles LbFiltrar.Click
CargaDatos()
End Sub
Protected Sub ImgExcel_Click(sender As Object, e As EventArgs) Handles ImgExcel.Click
GvDatos.ExportToExcel("RepClientes_" & NowADS().ToShortDateString)
End Sub
#Region "P D F"
Private Sub LinkPdf_Click(sender As Object, e As EventArgs) Handles LinkPdf.Click
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
'OBTENEMOS LOS DATOS
Dim DtClientes As DataTable
'Dim ObjClientes As New ClsClientes
If DTDatos.Rows.Count > 0 Then
DtClientes = DTDatos
If UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 77 Then
DtClientes = DTDatos.FiltraParametros("CveCliente IN (10450, 10460, 10458)")
ElseIf UsuarioActual.CveEmpresa = 2 AndAlso UsuarioActual.CveUsuario = 21 Then
DtClientes = DTDatos.FiltraParametros("CveCliente IN (27448)")
End If
Else
DtClientes = Nothing
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC))
params.Add(New ReportParameter("DireccionEmpresa", UsuarioActual.Empresa.Direccion))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", NowADS().ToDateTime.ToString))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
ImprimirPDF("Empresas/Grales/Formatos/RepClientes.rdlc", DtClientes, params, "RepClientes")
End Sub
#End Region
#Region "G V D A T O S"
Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.RowIndex = 0 Then
e.Row.Cells(1).Width = Unit.Pixel(300)
e.Row.Cells(2).Width = Unit.Pixel(120)
e.Row.Cells(3).Width = Unit.Pixel(190)
e.Row.Cells(4).Width = Unit.Pixel(110)
e.Row.Cells(5).Width = Unit.Pixel(80)
e.Row.Cells(6).Width = Unit.Pixel(80)
e.Row.Cells(7).Width = Unit.Pixel(100)
End If
e.Row.Cells(1).HorizontalAlign = HorizontalAlign.Left
'e.Row.FCLiteral("LtlNombre").Text = "<a class=""Texto"" href=""javascript:AbrirVentana('/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & "', 700, 500, 'N', 'PS')"">" & e.Row.FCLiteral("LtlNombre").Text & "</a>"
'e.Row.FCLiteral("LtlRFC").Text = "<a class=""Texto"" href=""javascript:AbrirVentana('/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & "', 700, 500, 'N', 'PS')"">" & e.Row.FCLiteral("LtlRFC").Text & "</a>"
'e.Row.FCLiteral("LtlSucursal").Text = "<a class=""Texto"" href=""javascript:AbrirVentana('/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & "', 700, 500, 'N', 'PS')"">" & e.Row.FCLiteral("LtlSucursal").Text & "</a>"
'e.Row.FCLiteral("LtlTelefono").Text = "<a class=""Texto"" href=""javascript:AbrirVentana('/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & "', 700, 500, 'N', 'PS')"">" & e.Row.FCLiteral("LtlTelefono").Text & "</a>"
e.Row.FCLiteral("LtlCodigo").Text = "<a class=""Texto"" href=""/Ventas/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & """>" & e.Row.FCLiteral("LtlCodigo").Text & "</a>"
e.Row.FCLiteral("LtlNombre").Text = "<a class=""Texto"" href=""/Ventas/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & """>" & e.Row.FCLiteral("LtlNombre").Text & "</a>"
e.Row.FCLiteral("LtlRFC").Text = "<a class=""Texto"" href=""/Ventas/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & """>" & e.Row.FCLiteral("LtlRFC").Text & "</a>"
e.Row.FCLiteral("LtlSucursal").Text = "<a class=""Texto"" href=""/Ventas/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & """>" & e.Row.FCLiteral("LtlSucursal").Text & "</a>"
e.Row.FCLiteral("LtlTelefono").Text = "<a class=""Texto"" href=""/Ventas/Clientes.aspx?CveCliente=" & e.Row.DBCampo("CveCliente") & """>" & e.Row.FCLiteral("LtlTelefono").Text & "</a>"
If e.Row.DataKey("FechaLimiteCredito").ToString.ToDate = MinFecha Then
e.Row.FCLiteral("LtlFechaLimiteCredito").Text = ""
Else
e.Row.FCLiteral("LtlFechaLimiteCredito").Text = e.Row.DataKey("FechaLimiteCredito").ToString.ToDate.ToString("dd/MM/yyyy")
End If
End If
End Sub
#End Region
#Region "O R D E N A M I E N T O"
Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim Orden As String = ""
Dim Campo As String = ""
Dim Literal As Literal = Nothing
Const OrdenInicial As String = ""
Dim Arg(2) As String
Arg = CType(sender, LinkButton).CommandArgument().ToString.Split(";"c)
Campo = Arg(0)
Literal = CType(CType(sender, LinkButton).NamingContainer.FindControl("Img" & Campo.Replace(",", "_")), Literal)
If ViewState(String.Format("O{0}", Campo)) IsNot Nothing AndAlso ViewState(String.Format("O{0}", Campo)).ToString = String.Format("{0} DESC", Campo) Then
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} ASC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-asc' style='color:#999' ></i>")
Else
ViewState(String.Format("O{0}", Campo)) = String.Format("{0} DESC", Campo)
Literal.Text = String.Format("<i class='fa fa-sort-desc' style='color:#999' ></i>")
End If
Orden = OrdenInicial & ViewState(String.Format("O{0}", Campo)).ToString
ViewState("Orden") = Orden
CargaGrid(Orden)
End Sub
Private Sub CargaGrid(Orden As String)
If Orden <> String.Empty Then
Dim DV As New DataView(DTDatos, "", Orden, DataViewRowState.CurrentRows)
GvDatos.DataSource = DV.ToTable()
DV.Dispose()
Else
GvDatos.DataSource = DTDatos
End If
GvDatos.DataBind()
End Sub
#End Region
#Region "UNIFICAR CLIENTE"
Private Sub BtnUnificar_Click(sender As Object, e As EventArgs) Handles BtnUnificar.Click
Dim ObjCliente As New ClsClientes()
ObjCliente.IniciaTransacSQL()
If ObjCliente.UnificarClientes(DdlClienteAUnificar.SelectedValue.ToEntero, DdlClienteOriginal.SelectedValue.ToEntero) Then
ObjCliente.Commit()
Alert("Se han unificado los clientes satisfactoriamente", TipoMensaje.MsgInformacion)
Else
ObjCliente.RollBack()
Alert("Ha ocurrido un error al unificar clientes", TipoMensaje.MsgInformacion)
End If
ObjCliente.Dispose()
Inicializa()
CargaDatos()
End Sub
#End Region
#Region "P E R S O N A L I Z A R"
Protected Sub BtnPersonalizar_Click(sender As Object, e As System.EventArgs) Handles BtnPersonalizar.Click
If ChkGuardarPersonalizacion.Checked Then
GuardaPersonalizacion()
End If
Personaliza(True)
End Sub
Private Sub GuardaPersonalizacion()
Dim objUsuario As New ClsSisUsuarios
Dim ListPersonalizada As New List(Of String)
If ChkCodigo.Checked Then
ListPersonalizada.Add("Codigo")
End If
If ChkNombre.Checked Then
ListPersonalizada.Add("Nombre")
End If
If ChkRFC.Checked Then
ListPersonalizada.Add("RFC")
End If
If ChkSucursal.Checked Then
ListPersonalizada.Add("Sucursal")
End If
If ChkTelefono.Checked Then
ListPersonalizada.Add("Telefono")
End If
If ChkVendedor.Checked Then
ListPersonalizada.Add("Vendedor")
End If
If ChkEstadoSis.Checked Then
ListPersonalizada.Add("EstadoSis")
End If
If ChkFechaIng.Checked Then
ListPersonalizada.Add("FechaIng")
End If
If ChkUsuario.Checked Then
ListPersonalizada.Add("Usuario")
End If
If ChkNombreCorto.Checked Then
ListPersonalizada.Add("NombreCorto")
End If
If ChkNoExt.Checked Then
ListPersonalizada.Add("NoExt")
End If
If ChkNoInt.Checked Then
ListPersonalizada.Add("NoInt")
End If
If ChkColonia.Checked Then
ListPersonalizada.Add("Colonia")
End If
If ChkCiudad.Checked Then
ListPersonalizada.Add("Ciudad")
End If
If ChkEstado.Checked Then
ListPersonalizada.Add("Estado")
End If
If ChkPais.Checked Then
ListPersonalizada.Add("Pais")
End If
If ChkCP.Checked Then
ListPersonalizada.Add("CP")
End If
If ChkContacto.Checked Then
ListPersonalizada.Add("Contacto")
End If
If ChkMail.Checked Then
ListPersonalizada.Add("Mail")
End If
If ChkRecepcionFacturas.Checked Then
ListPersonalizada.Add("RecepcionFacturas")
End If
If ChkRetIVA.Checked Then
ListPersonalizada.Add("RetIVA")
End If
If ChkRetISR.Checked Then
ListPersonalizada.Add("RetISR")
End If
If ChkPlazoCobranza.Checked Then
ListPersonalizada.Add("PlazoCobranza")
End If
If ChkLimiteCredito.Checked Then
ListPersonalizada.Add("LimiteCredito")
End If
'If ChkCIE.Checked Then
' ListPersonalizada.Add("CIE")
'End If
If ChkCalle.Checked Then
ListPersonalizada.Add("Calle")
End If
If ChkCelular.Checked Then
ListPersonalizada.Add("Celular")
End If
If ChkCorreoCotizacion.Checked Then
ListPersonalizada.Add("CorreoCotizacion")
End If
If ChkOtroTelefono.Checked Then
ListPersonalizada.Add("OtroTelefono")
End If
If ChkPermiteCredito.Checked Then
ListPersonalizada.Add("PermiteCredito")
End If
If chkFechaLimiteCredito.Checked Then
ListPersonalizada.Add("FechaLimiteCredito")
End If
If objUsuario.AddUsuariosPersonalizaciones(UsuarioActual, "CatClientes.aspx", String.Join("|", ListPersonalizada)) Then
'Alert("Personalizacion guardada")
End If
objUsuario.Dispose()
End Sub
Private Sub CargaPersonalizacion(Optional RecargaDatos As Boolean = False)
Dim strBasePersonalizacion As String = UsuarioActual.Personalizaciones("CatClientes.aspx")
If strBasePersonalizacion.Trim.Length > 0 Then
ChkCodigo.Checked = False
ChkNombre.Checked = False
ChkRFC.Checked = False
ChkSucursal.Checked = False
ChkTelefono.Checked = False
ChkVendedor.Checked = False
ChkEstadoSis.Checked = False
ChkFechaIng.Checked = False
ChkUsuario.Checked = False
ChkNombreCorto.Checked = False
ChkVendedor.Checked = False
ChkNoExt.Checked = False
ChkNoInt.Checked = False
ChkColonia.Checked = False
ChkCiudad.Checked = False
ChkEstado.Checked = False
ChkPais.Checked = False
ChkCP.Checked = False
ChkContacto.Checked = False
ChkMail.Checked = False
ChkRecepcionFacturas.Checked = False
ChkRetIVA.Checked = False
ChkRetISR.Checked = False
ChkPlazoCobranza.Checked = False
ChkLimiteCredito.Checked = False
ChkCalle.Checked = False
ChkCelular.Checked = False
ChkCorreoCotizacion.Checked = False
ChkOtroTelefono.Checked = False
ChkPermiteCredito.Checked = False
chkFechaLimiteCredito.Checked = False
Dim Personalizaciones As String() = strBasePersonalizacion.Split("|"c)
For Each personalizacion As String In Personalizaciones
Select Case personalizacion
Case "Codigo"
ChkCodigo.Checked = True
Exit Select
Case "Nombre"
ChkNombre.Checked = True
Exit Select
Case "RFC"
ChkRFC.Checked = True
Exit Select
Case "Sucursal"
ChkSucursal.Checked = True
Exit Select
Case "Telefono"
ChkTelefono.Checked = True
Exit Select
Case "Vendedor"
ChkVendedor.Checked = True
Exit Select
Case "EstadoSis"
ChkEstadoSis.Checked = True
Exit Select
Case "FechaIng"
ChkFechaIng.Checked = True
Exit Select
Case "Usuario"
ChkUsuario.Checked = True
Exit Select
Case "NombreCorto"
ChkNombreCorto.Checked = True
Exit Select
Case "NoExt"
ChkNoExt.Checked = True
Exit Select
Case "NoInt"
ChkNoInt.Checked = True
Exit Select
Case "Colonia"
ChkColonia.Checked = True
Exit Select
Case "Ciudad"
ChkCiudad.Checked = True
Exit Select
Case "Estado"
ChkEstado.Checked = True
Exit Select
Case "Pais"
ChkPais.Checked = True
Exit Select
Case "CP"
ChkCP.Checked = True
Exit Select
Case "Contacto"
ChkContacto.Checked = True
Exit Select
Case "Mail"
ChkMail.Checked = True
Exit Select
Case "RecepcionFacturas"
ChkRecepcionFacturas.Checked = True
Exit Select
Case "RetIVA"
ChkRetIVA.Checked = True
Exit Select
Case "RetISR"
ChkRetISR.Checked = True
Exit Select
Case "PlazoCobranza"
ChkPlazoCobranza.Checked = True
Exit Select
Case "LimiteCredito"
ChkLimiteCredito.Checked = True
Exit Select
'Case "CIE"
' ChkCIE.Checked = True
' Exit Select
Case "Calle"
ChkCalle.Checked = True
Exit Select
Case "Celular"
ChkCelular.Checked = True
Exit Select
Case "CorreoCotizacion"
ChkCorreoCotizacion.Checked = True
Exit Select
Case "OtroTelefono"
ChkOtroTelefono.Checked = True
Exit Select
Case "PermiteCredito"
ChkPermiteCredito.Checked = True
Exit Select
Case "FechaLimiteCredito"
chkFechaLimiteCredito.Checked = True
Exit Select
Case Else
Exit Select
End Select
Next
Personaliza(RecargaDatos)
Else
PersonalizaDefault()
End If
UPPersonalizar.Update()
End Sub
Private Sub PersonalizaDefault()
End Sub
Private Sub Personaliza(Optional RecargaDatos As Boolean = False)
GvDatos.Columns(0).Visible = ChkCodigo.Checked
GvDatos.Columns(1).Visible = ChkNombre.Checked
GvDatos.Columns(2).Visible = ChkRFC.Checked
GvDatos.Columns(3).Visible = ChkSucursal.Checked
GvDatos.Columns(4).Visible = ChkTelefono.Checked
GvDatos.Columns(5).Visible = ChkVendedor.Checked
GvDatos.Columns(6).Visible = ChkEstadoSis.Checked
GvDatos.Columns(7).Visible = ChkFechaIng.Checked
GvDatos.Columns(8).Visible = ChkUsuario.Checked
GvDatos.Columns(9).Visible = ChkNombreCorto.Checked
' GvDatos.Columns(10).Visible = ChkVendedor.Checked
GvDatos.Columns(10).Visible = ChkNoExt.Checked
GvDatos.Columns(11).Visible = ChkNoInt.Checked
GvDatos.Columns(12).Visible = ChkColonia.Checked
GvDatos.Columns(13).Visible = ChkCiudad.Checked
GvDatos.Columns(14).Visible = ChkEstado.Checked
GvDatos.Columns(15).Visible = ChkPais.Checked
GvDatos.Columns(16).Visible = ChkCP.Checked
GvDatos.Columns(17).Visible = ChkContacto.Checked
GvDatos.Columns(18).Visible = ChkMail.Checked
GvDatos.Columns(19).Visible = ChkRecepcionFacturas.Checked
GvDatos.Columns(20).Visible = ChkRetIVA.Checked
GvDatos.Columns(21).Visible = ChkRetISR.Checked
GvDatos.Columns(22).Visible = ChkPlazoCobranza.Checked
GvDatos.Columns(23).Visible = ChkLimiteCredito.Checked
'GvDatos.Columns(24).Visible = ChkCIE.Checked
GvDatos.Columns(24).Visible = ChkCalle.Checked
GvDatos.Columns(25).Visible = ChkCelular.Checked
GvDatos.Columns(26).Visible = ChkCorreoCotizacion.Checked
GvDatos.Columns(27).Visible = ChkOtroTelefono.Checked
GvDatos.Columns(28).Visible = ChkPermiteCredito.Checked
GvDatos.Columns(29).Visible = chkFechaLimiteCredito.Checked
If RecargaDatos Then CargaDatos()
UPDatos.Update()
End Sub
#End Region
End Class