Files
SIG/CxC/RepCxCDetalle.aspx.vb
2023-03-01 16:27:20 -07:00

1399 lines
54 KiB
VB.net

Option Explicit On
Option Strict On
Imports System.Data
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports GemBox.Spreadsheet
Imports System.IO
Partial Class RepCxCDetalle
Inherits ClsPaginas
'pRivate ReadOnly Property ColumnasVisibles As
#Region "PROPIEDADES"
Public Property Anio() As Integer
Get
Return ViewState("Anio").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("Anio") = value
End Set
End Property
Public Property Mes() As Integer
Get
Return ViewState("Mes").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("Mes") = value
End Set
End Property
Public Property AnioMes() As String
Get
Return ViewState("AnioMes").ToString
End Get
Set(value As String)
ViewState("AnioMes") = value
End Set
End Property
Public Property Fecha() As String
Get
Return ViewState("Fecha").ToString
End Get
Set(value As String)
ViewState("Fecha") = value
End Set
End Property
Public Property FechaVI() As String
Get
Return ViewState("FechaVInicio").ToString
End Get
Set(value As String)
ViewState("FechaVInicio") = value
End Set
End Property
Public Property FechaVF() As String
Get
Return ViewState("FechaVFin").ToString
End Get
Set(value As String)
ViewState("FechaVFin") = value
End Set
End Property
Public Property FechaI() As String
Get
Return ViewState("FechaInicio").ToString
End Get
Set(value As String)
ViewState("FechaInicio") = value
End Set
End Property
Public Property FechaF() As String
Get
Return ViewState("FechaFin").ToString
End Get
Set(value As String)
ViewState("FechaFin") = value
End Set
End Property
Public Property FechaCorte() As String
Get
Return ViewState("FechaCorte").ToString
End Get
Set(value As String)
ViewState("FechaCorte") = value
End Set
End Property
Public Property Iva() As String
Get
Return ViewState("IVA").ToString
End Get
Set(value As String)
ViewState("IVA") = value
End Set
End Property
Public Property Agrupador() As Integer
Get
Return ViewState("Agrupador").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("Agrupador") = value
End Set
End Property
Public Property Opcion() As String
Get
Return ViewState("Opcion").ToString
End Get
Set(value As String)
ViewState("Opcion") = value
End Set
End Property
Public Property TipoDocto() As String
Get
Return ViewState("TipoDocto").ToString
End Get
Set(value As String)
ViewState("TipoDocto") = value
End Set
End Property
Public Property TipoCambio() As Integer
Get
Return ViewState("TipoCambio").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("TipoCambio") = value
End Set
End Property
Public Property TCEspecifico() As Double
Get
Return ViewState("TCEspecifico").ToString.ToDouble
End Get
Set(value As Double)
ViewState("TCEspecifico") = value
End Set
End Property
Public Property SePersonalizo() As Integer
Get
Return ViewState("SePersonalizo").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("SePersonalizo") = value
End Set
End Property
Private Property CveClienteSucursal As Integer
Get
If ViewState("CveClienteSucursal") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("CveClienteSucursal"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveClienteSucursal") = value
End Set
End Property
Private Property CveCobranzaEstatus As Integer
Get
If ViewState("CveCobranzaEstatus") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("CveCobranzaEstatus"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveCobranzaEstatus") = value
End Set
End Property
Private Property LimiteCredito As Decimal
Get
If ViewState("LimiteCredito") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("LimiteCredito"), Decimal)
End If
End Get
Set(value As Decimal)
ViewState("LimiteCredito") = value
End Set
End Property
Private Property TipoCliente As Integer
Get
If ViewState("TipoCliente") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("TipoCliente"), Integer)
End If
End Get
Set(value As Integer)
ViewState("TipoCliente") = value
End Set
End Property
Private Property CveMoneda As Integer
Get
If ViewState("CveMoneda") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("CveMoneda"), Integer)
End If
End Get
Set(value As Integer)
ViewState("CveMoneda") = value
End Set
End Property
Private Property EstatusCliente As Integer
Get
If ViewState("EstatusCliente") Is Nothing Then
Return -1
Else
Return DirectCast(ViewState("EstatusCliente"), Integer)
End If
End Get
Set(value As Integer)
ViewState("EstatusCliente") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
ViewState("Opcion") = IfNull(Request("Op"), "-1")
CargaCombos()
If Request("Op") IsNot Nothing Then
CargaDatos()
End If
If UsuarioActual.CveEmpresa = 7 Then
ChkCuentaContableReferencia.Visible = True
End If
CargaAsignarCobranza()
TxtFechaCobranza.Text = Now.ToShortDateString
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
DVCartera.Visible = True
End If
End If
End Sub
#Region "CARGAS"
Private Sub CargaCombos()
Dim CveCliente, CveVendedor, CveUsuario, CveSubProyecto,
CveEstatus, CveResponsable, CveAgrupador, CveClienteClasificacion As Integer
txtFechaF.Text = Now.LastDayOfMonth.ToShortDateString
If UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlClientesWS.setEsWebService(True)
Else
DdlClientesWS.setEsWebService(False)
CargaClientes()
End If
'DdlClientes.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1)
'DdlClientes.DataBind()
'CargaSubProyectos
DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1)
DdlSubProyecto.DataBind()
'CargaUsuarios
DdlUsuario.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
DdlUsuario.DataBind()
'CargaResponsable
DdlResponsable.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
DdlResponsable.DataBind()
'Tipo Docto
DdlTipoDocto.Items.Add(New ListItem("Ing X Comp", "IxC"))
'Carga Cobranza Estatus
DdlCobranzaEstatusFiltro.DataSource = GlobalDTVtaCobranzaEstatus(UsuarioActual.CveEmpresa)
DdlCobranzaEstatusFiltro.DataBind()
DdlCobranzaEstatusFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
'Carga Clasificacion Cliente
DdlClienteClasificacion.DataSource = GlobalDTClienteClasificaciones(UsuarioActual.CveEmpresa)
DdlClienteClasificacion.DataBind()
DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
'Cargamos las fechas
Anio = If(Request("Anio") IsNot Nothing, Request("Anio").ToString, "-1").ToString.ToEntero
Mes = If(Request("Mes") IsNot Nothing, Request("Mes").ToString, "-1").ToString.ToEntero
AnioMes = If(Request("AnioMes") IsNot Nothing, Request("AnioMes").ToString, "-1").ToString
Fecha = If(Request("Fecha") IsNot Nothing, Request("Fecha").ToString, "-1").ToString
FechaI = If(Request("FechaI") IsNot Nothing, Request("FechaI").ToString, "-1").ToString
FechaF = If(Request("FechaF") IsNot Nothing, Request("FechaF").ToString, "-1").ToString
FechaVI = If(Request("FechaVI") IsNot Nothing, Request("FechaVI").ToString, "-1").ToString
FechaVF = If(Request("FechaVF") IsNot Nothing, Request("FechaVF").ToString, "-1").ToString
FechaCorte = IfNull(Request("FechaCorte"), Now.ToDate.ToString).ToString
CveCobranzaEstatus = If(Request("CveCobranzaEstatus") IsNot Nothing, Request("CveCobranzaEstatus").ToString, "-1").ToString.ToEntero
CveClienteClasificacion = If(Request("CveClienteClasificacion") IsNot Nothing, Request("CveClienteClasificacion").ToString, "-1").ToString.ToEntero
LimiteCredito = If(Request("LimiteCredito") IsNot Nothing, Request("LimiteCredito").ToString, "-1").ToString.ToDecimal
TipoCliente = If(Request("TipoCliente") IsNot Nothing, Request("TipoCliente").ToString, "-1").ToString.ToEntero
CveMoneda = If(Request("CveMoneda") IsNot Nothing, Request("CveMoneda").ToString, "-1").ToString.ToEntero
EstatusCliente = If(Request("EstatusCliente") IsNot Nothing, Request("EstatusCliente").ToString, "-1").ToString.ToEntero
DdlTipoCliente.SelectedValueExist(TipoCliente)
DdlEstatusCliente.SelectedValueExist(EstatusCliente)
If FechaF <> "-1" Then
txtFechaF.Text = FechaF
End If
If FechaI <> "-1" Then
txtFechaI.Text = FechaI
End If
If FechaVF <> "-1" Then
txtFechaVF.Text = FechaVF
End If
If FechaVI <> "-1" Then
txtFechaVI.Text = FechaVI
End If
If Fecha <> "-1" Then
txtFechaI.Text = Fecha
txtFechaF.Text = Fecha
End If
txtCorteA.Text = $"31/12/{Now.Year}"
txtFechaI.Text = If(Anio <> -1, String.Format("01/01/{0}", Anio), txtFechaI.Text)
txtFechaI.Text = If(Mes <> -1, txtFechaI.Text, txtFechaI.Text)
txtFechaI.Text = If(AnioMes <> "-1", String.Format("01/{0}/{1}", AnioMes.Substring(5, 2).PadLeft(2, "0"c), AnioMes.Substring(0, 4)), txtFechaI.Text)
If Request("FechaCorte") <> "-1" AndAlso IsDate(Request("FechaCorte")) Then txtCorteA.Text = Request("FechaCorte")
If Anio <> -1 Then
txtFechaF.Text = String.Format("31/12/{0}", Anio)
ElseIf Mes <> -1 Then
'txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString
ElseIf AnioMes <> "-1" Then
txtFechaF.Text = txtFechaI.Text.ToDate.LastDayOfMonth.ToShortDateString
End If
TipoCambio = IfNull(Request("TipoCambio"), -1).ToString.ToEntero
TCEspecifico = IfNull(Request("TCEspecifico"), -1).ToString.ToDouble
TipoDocto = IfNull(Request("TipoDocto"), "-1").ToString
CveClienteSucursal = IfNull(Request("CveClienteSucursal"), "-1").ToString.ToEntero
CveSubProyecto = IfNull(Request("CveSubProyecto"), "-1").ToString.ToEntero
CveVendedor = IfNull(Request("Vendedor"), "-1").ToString.ToEntero
CveCliente = IfNull(Request("CveCliente"), "-1").ToString.ToEntero
CveUsuario = IfNull(Request("CveUsuario"), "-1").ToString.ToEntero
CveEstatus = IfNull(Request("CveEstatusFactura"), "-1").ToString.ToEntero
CveResponsable = IfNull(Request("CveUsuarioResponsable"), "-1").ToString.ToEntero
CveAgrupador = IfNull(Request("GPO"), "-1").ToString.ToEntero
Iva = IfNull(Request("IVA"), "-1").ToString
DdlSubProyecto.SelectedValueExist(CveSubProyecto)
If Request("AplicaAnticiposPagados") IsNot Nothing Then
ChkAnticipos.Checked = If(Request("AplicaAnticiposPagados").ToEntero = 1, True, False)
End If
DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion)
CargaClientes()
If CveCliente > 0 Then
DdlClientesWS.SelectedValue = CveCliente.ToString
'DdlClientesWS.SelectedText = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltroPrimeroValor("NombreComercial", $"CveCliente = {CveCliente}")
End If
'DdlClientes.SelectedValueExist(CveCliente)
DdlUsuario.SelectedValueExist(CveUsuario)
DdlResponsable.SelectedValueExist(CveResponsable)
DdlGrupo.SelectedValueExist(CveAgrupador)
'Carga Vendedor
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=-1).FiltraParametros("VendedorTipo in (1,4)")
DdlVendedor.DataBind()
DdlVendedor.SelectedValueExist(CveVendedor)
If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
DdlVendedor.Attributes.Add("disabled", "disabled")
DdlVendedor.Enabled = False
End If
'Nuevos
DdlTipoDocto.SelectedValuesIfExistM(TipoDocto)
RblTipoCambio.SelectedValue = CType(TipoCambio, String)
'13/04/2018 - Carga filtro estatus cobranza
DdlCobranzaEstatusFiltro.SelectedValueExist(CveCobranzaEstatus.ToString)
If RblTipoCambio.SelectedValue.ToEntero = 3 Then
If TCEspecifico <> -1 Then
LiEspecifico.Visible = True
TxtEspecifico.Text = TCEspecifico.ToString
Else
Dim TipoCambio As Double
LiEspecifico.Visible = True
TipoCambio = GlobalTipoCambio(Now)
TxtEspecifico.Text = TipoCambio.ToString
End If
End If
If CveClienteSucursal > 0 Then
DdlClientesWS.Attributes.Add("style", "!important width: 60%;")
DdlClienteSucursal.Visible = True
DivClientes.Attributes.Remove("class")
DivClientes.Attributes.Add("class", "col-md-4")
Dim ObjCliente As New ClsClientes
If ObjCliente.GetSucursales(CveCliente) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
DdlClienteSucursal.DataSource = ObjCliente.DtResultados
End If
End If
ObjCliente.Dispose()
DdlClienteSucursal.DataBind()
DdlClienteSucursal.Items.Insert(0, New ListItem("Todas", "-1"))
DdlClienteSucursal.SelectedValueExist(CveClienteSucursal)
Else
DdlClientesWS.Attributes.Add("style", "!important width: 100%;")
End If
If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then ChkAnticipos.Visible = True
DdlTieneLineaAdicional.SelectedValueExist(If(Request("TieneLineaAdicional") IsNot Nothing, Request("TieneLineaAdicional").ToString, "-1").ToString)
If UsuarioActual.CveEmpresa = 119 Then
divLineaAdicional1.Visible = True
divLineaAdicional2.Visible = True
End If
If UsuarioActual.CveEmpresa = 13 Then
CargaContratos()
End If
DdlContrato.SelectedValueExist(If(Request("CveContrato") IsNot Nothing, Request("CveContrato").ToString, "-1").ToString)
End Sub
Private Sub CargaContratos()
Dim ObjContratos As New ClsContratos
If ObjContratos.GetContratos(-1, UsuarioActual.CveEmpresa, CveCliente:=-1) Then
DdlContrato.DataSource = ObjContratos.DtResultados
End If
divContrato.Visible = True
divContrato1.Visible = True
ObjContratos.Dispose()
DdlContrato.DataBind()
End Sub
Private Function CargaDatos() As DataSet
Dim DSRespuesta As New DataSet
Dim DTaDAtos As New DataTable
Dim DTCartera As New DataTable
Dim ObjMovtos As New ClsMovimientos()
Dim FechaI, FechaF, FechaVI, FechaVF As String
If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then
TCEspecifico = TxtEspecifico.Text.ToDouble
Else
TCEspecifico = -1
End If
FechaI = If(IsDate(txtFechaI.Text.Trim()), txtFechaI.Text.Trim(), "-1")
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
FechaVI = If(IsDate(txtFechaVI.Text.Trim()), txtFechaVI.Text.Trim(), "-1")
FechaVF = If(IsDate(txtFechaVF.Text.Trim()), txtFechaVF.Text.Trim(), "-1")
'FechaI, FechaF, -1, UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero
Dim CveCliente = If(DdlClientesWS.SelectedValue.ToEntero > 0, DdlClientesWS.SelectedValue.ToEntero, -1)
If ObjMovtos.GetCxCDetalle(FechaI, FechaF, CveCliente, DdlSubProyecto.SelectedValue.ToEntero, DdlVendedor.SelectedValue.ToEntero, DdlUsuario.SelectedValue.ToEntero,
Anio, Mes, AnioMes, Fecha, CveClienteSucursal, Opcion, -1,
Iva.ToString, DdlGrupo.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, DdlResponsable.SelectedValue.ToEntero,
RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, If(DdlTipoDocto.GetSelectedValuesM = "", "-1", DdlTipoDocto.GetSelectedValuesM), FechaVI, FechaVF,
FechaCorte:=txtCorteA.Text.ToDate, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveCobranzaEstatus:=DdlCobranzaEstatusFiltro.SelectedValue.ToEntero,
CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, LimiteCredito:=LimiteCredito, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero,
CveMoneda:=CveMoneda, EstatusCliente:=DdlEstatusCliente.SelectedValue.ToEntero, AplicaAnticiposPagados:=If(ChkAnticipos.Checked, 1, 0), TieneLineaAdicional:=DdlTieneLineaAdicional.SelectedValue.ToEntero()) Then
GvDatos.DataSource = ObjMovtos.DSResultados.Tables(0)
'DTaDAtos = ObjMovtos.DSResultados.Tables(0)
'DTaDAtos.TableName = "DTaDAtos"
DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(0).Copy)
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
GvCartera.DataSource = ObjMovtos.DSResultados.Tables(1)
'DTCartera = ObjMovtos.DSResultados.Tables(1)
'DTCartera.TableName = "DTCartera"
DSRespuesta.Tables.Add(ObjMovtos.DSResultados.Tables(1).Copy)
End If
Else
GvDatos.DataSource = Nothing
End If
ObjMovtos.Dispose()
GvDatos.DataBind()
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
GvCartera.DataBind()
End If
UPDatos.Update()
UpCartera.Update()
Return DSRespuesta
End Function
Private Sub ConfiguraEmpresa()
'Dim ObjEmpresa As New ClsEmpresas()
'If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(7).Visible = False
If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(8).Visible = False
'End If
'ObjEmpresa.Dispose()
End Sub
#End Region
#Region "CONSULTAR"
Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click
CargaDatos()
ConfiguraEmpresa()
UPDatos.Update()
End Sub
#End Region
#Region "GRIDVIEW"
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(70)
e.Row.Cells(2).Width = Unit.Pixel(75)
End If
e.Row.FCHyperLink("HlFolio").Text = e.Row.DBCampo("SerieFolio")
If e.Row.DBCampo("CveVenta").ToEntero() > 0 Then
If e.Row.DBCampo("TipoDocto") = "IxC" Then
e.Row.FCHyperLink("HlFolio").NavigateUrl = String.Format("/Bancos/IE.aspx?CveIE={0}", e.Row.DBCampo("CveVenta"))
Else
e.Row.FCHyperLink("HlFolio").NavigateUrl = String.Format("/Ventas/Ventas.aspx?CveVenta={0}", e.Row.DBCampo("CveVenta"))
End If
End If
If e.Row.DBCampo("SubProyecto") = "" And e.Row.DBCampo("CveMoneda") = "1" Then
e.Row.Cells(11).Text = "Total Pesos"
e.Row.CssClass = "Totales"
e.Row.FCCheckBox("ChkCobranza").Visible = False
e.Row.Cells(39).Text = ""
e.Row.Cells(21).Text = ""
e.Row.Cells(28).Text = ""
ElseIf e.Row.DBCampo("SubProyecto") = "" And e.Row.DBCampo("CveMoneda") = "2" Then
e.Row.Cells(12).Text = "Total Dólares"
e.Row.CssClass = "Totales"
e.Row.FCCheckBox("ChkCobranza").Visible = False
e.Row.Cells(39).Text = ""
e.Row.Cells(21).Text = ""
e.Row.Cells(28).Text = ""
ElseIf e.Row.DBCampo("CveVenta") = "" Then
e.Row.CssClass = "SubTotales"
e.Row.FCCheckBox("ChkCobranza").Visible = False
e.Row.Cells(39).Text = ""
e.Row.Cells(21).Text = ""
e.Row.Cells(28).Text = ""
End If
End If
End Sub
#End Region
#Region "PERSONALIZAR COLUMNAS"
Protected Sub BtnPersonalizar_Click(sender As Object, e As EventArgs) Handles BtnPersonalizar.Click
If ChkFecha.Checked Then
GvDatos.Columns(1).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(1).Visible = False
End If
If ChkFolio.Checked Then
GvDatos.Columns(2).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(2).Visible = False
End If
If ChkTotal.Checked Then
GvDatos.Columns(9).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(9).Visible = False
End If
If ChkSubTotal.Checked Then
GvDatos.Columns(3).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(3).Visible = False
End If
If ChkIVA.Checked Then
GvDatos.Columns(6).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(6).Visible = False
End If
If ChkDescuento.Checked Then
GvDatos.Columns(4).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(4).Visible = False
End If
If ChkAmortizacion.Checked Then
GvDatos.Columns(5).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(5).Visible = False
End If
If ChkRetIVA.Checked Then
GvDatos.Columns(7).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(7).Visible = False
End If
If ChkRetISR.Checked Then
GvDatos.Columns(9).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(9).Visible = False
End If
If ChkMoneda.Checked Then
GvDatos.Columns(10).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(10).Visible = False
End If
If ChkSucursal.Checked Then
GvDatos.Columns(11).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(11).Visible = False
End If
If ChkCodigo.Checked Then
GvDatos.Columns(15).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(15).Visible = False
End If
If ChkCliente.Checked Then
GvDatos.Columns(16).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(16).Visible = False
End If
If ChkSucursalCliente.Checked Then
GvDatos.Columns(17).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(17).Visible = False
End If
If ChkVendedor.Checked Then
GvDatos.Columns(18).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(18).Visible = False
End If
If ChlMotivoDescuento.Checked Then
GvDatos.Columns(19).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(19).Visible = False
End If
If ChkEstatusFactura.Checked Then
GvDatos.Columns(20).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(20).Visible = False
End If
If ChkSeTimbro.Checked Then
GvDatos.Columns(21).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(21).Visible = False
End If
If ChkCuentaContableReferencia.Checked Then
GvDatos.Columns(22).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(22).Visible = False
End If
If ChkCuentaContable.Checked Then
GvDatos.Columns(23).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(23).Visible = False
End If
If ChkUsuario.Checked Then
GvDatos.Columns(24).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(24).Visible = False
End If
If ChkMotivoCancelacion.Checked Then
GvDatos.Columns(25).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(25).Visible = False
End If
If ChkObservaciones.Checked Then
GvDatos.Columns(26).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(26).Visible = False
End If
If ChkSucursalEjecucion.Checked Then
GvDatos.Columns(27).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(27).Visible = False
End If
If ChkTelefono.Checked Then
GvDatos.Columns(28).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(28).Visible = False
End If
If ChkMail.Checked Then
GvDatos.Columns(29).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(29).Visible = False
End If
If ChkLimiteCredito.Checked Then
GvDatos.Columns(30).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(30).Visible = False
End If
If ChkSucursalCobranza.Checked Then
GvDatos.Columns(31).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(31).Visible = False
End If
If ChkEstatusCobranza.Checked Then
GvDatos.Columns(33).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(33).Visible = False
End If
If ChkTurnoCobranza.Checked Then
GvDatos.Columns(34).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(34).Visible = False
End If
If ChkObsCobranza.Checked Then
GvDatos.Columns(35).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(35).Visible = False
End If
If ChkFechaCobranza.Checked Then
GvDatos.Columns(36).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(36).Visible = False
End If
If ChkHorario.Checked Then
GvDatos.Columns(37).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(37).Visible = False
End If
If ChkDiasPago.Checked Then
GvDatos.Columns(38).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(38).Visible = False
End If
If ChkSeEnvioMail.Checked Then
GvDatos.Columns(39).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(39).Visible = False
End If
If ChkEstatusCliente.Checked Then
GvDatos.Columns(40).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(40).Visible = False
End If
If ChkIEPS.Checked Then
GvDatos.Columns(41).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(41).Visible = False
End If
If ChkDiasTranscurridos.Checked Then
GvDatos.Columns(42).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(42).Visible = False
End If
If ChkTC.Checked Then
GvDatos.Columns(43).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(43).Visible = False
End If
If ChkFechaEjecucion.Checked Then
GvDatos.Columns(44).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(44).Visible = False
End If
If ChkMostrarLineaAdicional.Checked Then
GvDatos.Columns(45).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(45).Visible = False
End If
If ChkMostrarDescripcionVenta.Checked Then
GvDatos.Columns(46).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(46).Visible = False
End If
If ChkContrato.Checked Then
GvDatos.Columns(47).Visible = True
SePersonalizo = 1
Else
GvDatos.Columns(47).Visible = False
End If
If SePersonalizo = 1 Then
ImgExcelPersonalizado.Visible = True
Else
ImgExcelPersonalizado.Visible = False
End If
CargaDatos()
RegistraScript("$('#DivPersonalizar').modal('hide');")
End Sub
#End Region
#Region "IMPRESIONES"
Protected Sub ImgExcel_Click(sender As Object, e As System.EventArgs) Handles ImgExcel.Click
GenerarImpresion("EXCEL")
End Sub
Private Sub ImgExcelPersonalizado_Click(sender As Object, e As EventArgs) Handles ImgExcelPersonalizado.Click
Dim Cliente = If(DdlClientesWS.SelectedValue = "-1", "", $" Cliente: {DdlClientesWS.SelectedText}")
Dim Sucursal = If(DdlSubProyecto.SelectedValue = "-1", "", $" Sucursal: {DdlSubProyecto.SelectedItem.Text}")
Dim Grupo = $" Agrupado Por: {DdlGrupo.SelectedItem.Text}" 'If(DdlGrupo.SelectedValue = "3", "", $"&emsp;<b>Agrupado Por:</b>&nbsp;{DdlGrupo.SelectedItem.Text}")
Dim TipoDocto = If(DdlTipoDocto.GetSelectedText = "", "", $" Documentos: {DdlTipoDocto.GetSelectedText}")
Dim Vendedor = If(DdlVendedor.SelectedValue = "-1", "", $" Vendedor: {DdlVendedor.SelectedItem.Text}")
Dim FechaIn As String = If(txtFechaI.Text = "", "", $" Fecha Inicio Docto: {txtFechaI.Text}")
Dim FechaFn As String = If(txtFechaF.Text = "", "", $" Fecha Fin Docto: {txtFechaF.Text}")
Dim FVI As String = If(txtFechaVI.Text = "", "", $" Fecha Venc. Inic.: {txtFechaVI.Text}")
Dim FVF As String = If(txtFechaVF.Text = "", "", $" Fecha Venc. Final: ;{txtFechaVF.Text}")
Dim Registro = If(DdlUsuario.SelectedValue = "-1", "", $" Registró: ;{DdlUsuario.SelectedItem.Text}")
Dim Responsable = If(DdlResponsable.SelectedValue = "-1", "", $" Responsable: ;{DdlResponsable.SelectedItem.Text}")
Dim EstatusCob = If(DdlCobranzaEstatusFiltro.SelectedValue = "-1", "", $"status Cobranza: ;{DdlCobranzaEstatusFiltro.SelectedItem.Text}")
Dim CorteA As String = If(txtCorteA.Text = "31/12/2019", "", $"Corte A {txtCorteA.Text}")
Dim ClasificacionCli = If(DdlClienteClasificacion.SelectedValue = "-1", "", $" Clasificación Cliente: {DdlClienteClasificacion.SelectedItem.Text}")
Dim Filtro As String = $"{Cliente}{Sucursal}{Grupo}{Vendedor}{FechaIn}{FechaFn}{Registro}{Responsable}{TipoDocto}{EstatusCob}{FVI}{FVF}{ClasificacionCli}{CorteA}"
GvDatos.ExportToExcelGembox("ReporteCxCDetalle", UsuarioActual, "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE", DatoTituloExtra:=$"", DatosFiltros:=Filtro)
'GvDatos.ExportToExcelG("ReporteCxCDetalle", "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE", UsuarioActual, Filtro)
'SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet())
'Dim ef As ExcelFile = New ExcelFile
'Dim ws As ExcelWorksheet = ef.Worksheets.Add("DataTable to Sheet")
'Dim dt As DataTable = New DataTable
'Dim response As HttpResponse = Me.Response
''Recorrer columnas
'For index = 0 To GvDatos.Columns.Count - 1
' If GvDatos.Columns(index).Visible Then
' dt.Columns.Add(GvDatos.Columns(index).HeaderText)
' End If
'Next
''Recorrer filas
'For Each fila As GridViewRow In GvDatos.Rows
' Dim dr As DataRow = dt.NewRow()
' For index = 0 To GvDatos.Columns.Count - 1
' If GvDatos.Columns(index).Visible Then
' If TypeOf GvDatos.Columns(index) Is TemplateField Then
' If GvDatos.Columns(index).HeaderText = "Folio" Then
' dr(GvDatos.Columns(index).HeaderText) = fila.FCHyperLink("HlFolio").Text.Replace("&nbsp;", "")
' End If
' ElseIf TypeOf GvDatos.Columns(index) Is HyperLinkField Then
' dr(GvDatos.Columns(index).HeaderText) = DirectCast(fila.Cells(index).Controls(0), HyperLink).Text.Replace("&nbsp;", "")
' Else
' dr(GvDatos.Columns(index).HeaderText) = fila.Cells(index).Text.Replace("&nbsp;", "")
' End If
' End If
' Next
' dt.Rows.Add(dr)
'Next
'' Insert DataTable into an Excel worksheet.
'ws.InsertDataTable(dt,
' New InsertDataTableOptions() With
' {
' .ColumnHeaders = True,
' .StartRow = 1
' })
'ef.Save(response, "RepCxC.xlsx")
End Sub
Private Sub GenerarImpresion(Optional TipoImpresion As String = "PDF")
'Dim ObjMovtos As New ClsMovimientos()
Dim FechaI As String = txtFechaI.Text
Dim FechaF As String = txtFechaF.Text
If txtFechaI.Text = "" Then FechaI = "-1"
If txtFechaF.Text = "" Then FechaF = "-1"
If RblTipoCambio.SelectedValue.ToEntero = 3 And TxtEspecifico.Text <> "" Then
TCEspecifico = TxtEspecifico.Text.ToDouble
Else
TCEspecifico = -1
End If
Dim Cliente = If(DdlClientesWS.SelectedValue = "-1", "", $"&emsp;<b>Cliente:</b>&nbsp;{DdlClientesWS.SelectedText}")
Dim Sucursal = If(DdlSubProyecto.SelectedValue = "-1", "", $"&emsp;<b>Sucursal:</b>&nbsp;{DdlSubProyecto.SelectedItem.Text}")
Dim Grupo = $"&emsp;<b>Agrupado Por:</b>&nbsp;{DdlGrupo.SelectedItem.Text}" 'If(DdlGrupo.SelectedValue = "3", "", $"&emsp;<b>Agrupado Por:</b>&nbsp;{DdlGrupo.SelectedItem.Text}")
Dim TipoDocto = If(DdlTipoDocto.GetSelectedText = "", "", $"&emsp;<b>Documentos:</b>&nbsp;{DdlTipoDocto.GetSelectedText}")
Dim Vendedor = If(DdlVendedor.SelectedValue = "-1", "", $"&emsp;<b>Vendedor:</b>&nbsp;{DdlVendedor.SelectedItem.Text}")
Dim FechaIn As String = If(txtFechaI.Text = "", "", $"&emsp;<b>Fecha Inicio Docto:</b>&nbsp;{txtFechaI.Text}")
Dim FechaFn As String = If(txtFechaF.Text = "", "", $"&emsp;<b>Fecha Fin Docto:</b>&nbsp;{txtFechaF.Text}")
Dim FVI As String = If(txtFechaVI.Text = "", "", $"&emsp;<b>Fecha Venc. Inic.:</b>&nbsp;{txtFechaVI.Text}")
Dim FVF As String = If(txtFechaVF.Text = "", "", $"&emsp;<b>Fecha Venc. Final:</b>&nbsp;{txtFechaVF.Text}")
Dim Registro = If(DdlUsuario.SelectedValue = "-1", "", $"&emsp;<b>Registró:</b>&nbsp;{DdlUsuario.SelectedItem.Text}")
Dim Responsable = If(DdlResponsable.SelectedValue = "-1", "", $"&emsp;<b>Responsable:</b>&nbsp;{DdlResponsable.SelectedItem.Text}")
Dim EstatusCob = If(DdlCobranzaEstatusFiltro.SelectedValue = "-1", "", $"&emsp;<b>Estatus Cobranza:</b>&nbsp;{DdlCobranzaEstatusFiltro.SelectedItem.Text}")
Dim CorteA As String = If(txtCorteA.Text = "31/12/2019", "", $"&emsp;<b>Corte A:</b>&nbsp;{txtCorteA.Text}")
Dim ClasificacionCli = If(DdlClienteClasificacion.SelectedValue = "-1", "", $"&emsp;<b>Clasificación Cliente:</b>&nbsp;{DdlClienteClasificacion.SelectedItem.Text}")
Dim TituloReporte As String = "REPORTE DE CUENTAS POR COBRAR DEL CLIENTE CON DETALLE"
'If UsuarioActual.CveEmpresa = 72 Then
' TituloReporte = "Antigüedad de Saldos de Clientes"
'End If
Dim Imagen As New System.IO.FileInfo($"{UsuarioActual.Empresa.Ruta}/Logo.png")
Dim logouri As String = ""
If Imagen.Exists Then
logouri = String.Format("file://{0}", Imagen.FullName)
End If
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("FechaInicio", FechaI))
params.Add(New ReportParameter("FechaFin", FechaF))
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre))
params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToShortDateString))
params.Add(New ReportParameter("AgrupadoPor", $"{Cliente}{Sucursal}{Grupo}{Vendedor}{FechaIn}{FechaFn}{Registro}{Responsable}{TipoDocto}{EstatusCob}{FVI}{FVF}{ClasificacionCli}{CorteA}"))
params.Add(New ReportParameter("TituloReporte", TituloReporte))
params.Add(New ReportParameter("LogoPath", If(Imagen.Exists, $"file://{Imagen.FullName}", "")))
Dim lrds As New List(Of ReportDataSource)
Dim DSDatos As DataSet = CargaDatos()
Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = DSDatos.Tables(0)}
lrds.Add(rds)
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DSDatos.Tables(1)}
lrds.Add(rdsCartera)
Else
Dim DTCartera As New DataTable
DTCartera.Columns.Add("Rango")
DTCartera.Columns.Add("Saldo", GetType(Decimal))
DTCartera.Columns.Add("Porcentaje", GetType(Decimal))
DTCartera.Columns.Add("Objetivo", GetType(Decimal))
Dim rdsCartera As New ReportDataSource With {.Name = "DSCartera", .Value = DTCartera}
lrds.Add(rdsCartera)
End If
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta))
If Archivo.Exists Then
ImprimirPDF(String.Format("{0}Formatos/RepCxCDetalle.rdlc", UsuarioActual.Empresa.Ruta), lrds, params, "ReporteCxCDetalle", TipoImpresion)
Else
ImprimirPDF("Empresas/Grales/Formatos/RepCxCDetalle.rdlc", lrds, params, "ReporteCxCDetalle", TipoImpresion)
End If
End Sub
Protected Sub ImgImprimir_Click(sender As Object, e As EventArgs) Handles ImgImprimir.Click
GenerarImpresion("PDF")
End Sub
#End Region
#Region "TIPO DE CAMBIO"
Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged
If RblTipoCambio.SelectedValue.ToEntero = 3 Then
Dim TipoCambio As Double
LiEspecifico.Visible = True
TipoCambio = GlobalTipoCambio(Now)
TxtEspecifico.Text = TipoCambio.ToString
Else
LiEspecifico.Visible = False
End If
UpBodyTipoCambio.Update()
End Sub
Private Sub BtnTipoCambio_Click(sender As Object, e As EventArgs) Handles BtnTipoCambio.Click
CargaDatos()
RegistraScript(String.Format("$('#{0}').modal('hide');", "DivTipoCambio"))
End Sub
#End Region
#Region "C O B R A N Z A "
Private Sub CargaAsignarCobranza()
Dim ObjVentas As New ClsVentas
DdlUsuarioCobranza.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa)
DdlUsuarioCobranza.DataBind()
DdlUsuarioCobranza.Items.Insert(0, New ListItem("Sin Cobrador", "-1"))
DdlCobranzaEstatus.DataSource = GlobalDTVtaCobranzaEstatus(UsuarioActual.CveEmpresa)
DdlCobranzaEstatus.DataBind()
DdlCobranzaEstatus.Items.Insert(0, New ListItem("Sin Estatus", "-1"))
If ObjVentas.GetCobranzaTurnoEstatus(-1, UsuarioActual.CveEmpresa) Then
DdlTurnoCobranza.DataSource = ObjVentas.DtResultados
DdlTurnoCobranza.DataBind()
DdlTurnoCobranza.Items.Insert(0, New ListItem("Sin Turno", "-1"))
End If
ObjVentas.Dispose()
End Sub
Private Sub LkbHabilitarCobranza_Click(sender As Object, e As EventArgs) Handles LkbHabilitarCobranza.Click
GvDatos.Columns(32).Visible = True ' chk aplica
GvDatos.Columns(33).Visible = True : ChkEstatusCobranza.Checked = True
GvDatos.Columns(35).Visible = True : ChkObsCobranza.Checked = True
GvDatos.Columns(36).Visible = True : ChkFechaCobranza.Checked = True
GvDatos.Columns(37).Visible = True : ChkHorario.Checked = True
DivCobranza.Visible = True
CargaDatos()
UPPersonalizar.Update()
UpCobranza.Update()
End Sub
Private Sub BtnAsignaCobranza_Click(sender As Object, e As EventArgs) Handles BtnAsignaCobranza.Click
Dim time As DateTime
Dim TieneError = False
Dim ObjVentas As New ClsVentas
ObjVentas.IniciaTransacSQL()
Try
For Each row As GridViewRow In GvDatos.Rows
Dim TipoDocto As String = row.DataKey("TipoDocto")
If row.FCCheckBox("ChkCobranza").Checked AndAlso TipoDocto <> "IxC" Then
time = DateTime.Parse(String.Format("{0} {1}:{2} {3}", TxtFechaCobranza.Text, TimeSelector.Hour, TimeSelector.Minute, TimeSelector.AmPm))
If Not ObjVentas.UpdateAsignaVentaCobranza(row.DataKey("CveVenta").ToEntero, DdlCobranzaEstatus.SelectedValue.ToEntero, DdlUsuarioCobranza.SelectedValue.ToEntero, DdlTurnoCobranza.SelectedValue.ToEntero, TxtObservacionCobranza.Text.Trim, time) Then
TieneError = True
End If
End If
Next
Catch ex As Exception
OnError("Ocurrió un error al actualizar", ex)
TieneError = True
End Try
If Not TieneError Then
ObjVentas.Commit()
Alert("Se asigno exitosamente datos de cobranza a la venta", TipoMensaje.MsgInformacion)
Else
ObjVentas.RollBack()
Alert("Hubo un error al asignar datos de cobranza", TipoMensaje.MsgInformacion)
End If
ObjVentas.Dispose()
CargaDatos()
End Sub
#End Region
#Region "SELECTED INDEX CHANGE"
Protected Sub DdlClienteClasificacion_SelectedIndexChanged(sender As Object, e As EventArgs)
CargaClientes()
End Sub
Private Sub CargaClientes()
If Not UsuarioActual.Empresa.Funcionalidad(105) = "1" Then
DdlClientesWS.ddl.Items.Clear()
DdlClientesWS.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa, -1).FiltraParametros($"CveClienteClasificacion = {DdlClienteClasificacion.SelectedValue.ToEntero} OR {DdlClienteClasificacion.SelectedValue.ToEntero} = -1")
DdlClientesWS.DataBind()
DdlClientesWS.ddl.Items.Insert(0, New ListItem("Todos", "-1"))
End If
End Sub
Private Sub GvCartera_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvCartera.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
If e.Row.DataKey("Rango") = "Total" Then
e.Row.Font.Bold = True
End If
End If
End Sub
#End Region
Public Overrides Sub VerifyRenderingInServerForm(ByVal control As Control)
End Sub
Public Sub ExportToExcelGembox(GridView As GridView, NombreArchivoXLSx As String, Usuario As Usuario, Titulo As String, Optional DatoTituloExtra As String = "", Optional DatosFiltros As String = "", Optional AnchoImagen As Integer = 100, Optional AlturaImagen As Integer = 100, Optional DTExtra As DataTable = Nothing)
Dim sw1 As New StringWriter()
Dim htw1 As New HtmlTextWriter(sw1)
GridView.RenderControl(htw1)
Dim options = GemBox.Spreadsheet.LoadOptions.HtmlDefault
Dim htmlStream1 = New MemoryStream(options.Encoding.GetBytes(sw1.ToString()))
htmlStream1.Position = 0
Dim sr1 As New StreamReader(htmlStream1)
Dim myStr1 = sr1.ReadToEnd()
sr1.Dispose()
htmlStream1.Dispose()
sw1.Dispose()
Dim HtmlCompleto As String = myStr1
HtmlCompleto = Regex.Replace(HtmlCompleto, "\<[\/]*a[^\>]*\>", "")
Dim htmlStream5 = New MemoryStream(options.Encoding.GetBytes(HtmlCompleto))
GemBox.Spreadsheet.SpreadsheetInfo.SetLicense(SerialGemBoxSpreadsheet)
Dim excel As GemBox.Spreadsheet.ExcelFile
excel = GemBox.Spreadsheet.ExcelFile.Load(htmlStream5, options)
If Usuario IsNot Nothing Then
Dim TotalRowHeader As Integer = 6
Dim TotalRowFooter As Integer = 2
Dim worksheet = excel.Worksheets(0)
worksheet.Rows.InsertEmpty(0, TotalRowHeader)
Dim celdasConTexto = worksheet.GetUsedCellRange(True)
If celdasConTexto Is Nothing Then Exit Sub 'No se recuperaron datos, salir de sin guardar porque soltará error
celdasConTexto.Style.Font.Name = "Calibri Light"
Dim RangoNombreEmpresa = worksheet.Cells.GetSubrangeAbsolute(1, celdasConTexto.FirstColumnIndex, 1, celdasConTexto.LastColumnIndex)
RangoNombreEmpresa.Merged = True
RangoNombreEmpresa.Value = Usuario.Empresa.Empresa
RangoNombreEmpresa.Style.Font.Size = 18 * 20
RangoNombreEmpresa.Style.Font.Name = "Calibri Light"
RangoNombreEmpresa.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoNombreEmpresa.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
Dim RangoTitulo = worksheet.Cells.GetSubrangeAbsolute(3, celdasConTexto.FirstColumnIndex, 3, celdasConTexto.LastColumnIndex)
RangoTitulo.Merged = True
RangoTitulo.Value = Titulo
RangoTitulo.Style.Font.Size = 20 * 20
RangoTitulo.Style.Font.Name = "Calibri Light"
RangoTitulo.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
RangoTitulo.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
If DatoTituloExtra.Length > 0 Then
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = DatoTituloExtra
RangoDatoTituloExtra.Style.Font.Size = 20 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
End If
If DatosFiltros.Length > 0 Then
Dim Arreglo As String() = DatosFiltros.Split("|"c)
worksheet.Rows.InsertEmpty(TotalRowHeader, Arreglo.Count)
For Each TextoFiltro As String In Arreglo
Dim RangoDatoTituloExtra = worksheet.Cells.GetSubrangeAbsolute(TotalRowHeader, celdasConTexto.FirstColumnIndex, TotalRowHeader, celdasConTexto.LastColumnIndex)
RangoDatoTituloExtra.Merged = True
RangoDatoTituloExtra.Value = TextoFiltro
RangoDatoTituloExtra.Style.Font.Size = 12 * 20
RangoDatoTituloExtra.Style.Font.Name = "Calibri Light"
RangoDatoTituloExtra.Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Left
RangoDatoTituloExtra.Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
TotalRowHeader += 1
Next
End If
' TotalRowHeader += 2
For i = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Size = 12 * 20
worksheet.Rows(TotalRowHeader).Cells(i).Style.HorizontalAlignment = GemBox.Spreadsheet.HorizontalAlignmentStyle.Center
worksheet.Rows(TotalRowHeader).Cells(i).Style.VerticalAlignment = GemBox.Spreadsheet.VerticalAlignmentStyle.Center
worksheet.Rows(TotalRowHeader).Cells(i).Style.FillPattern.SetPattern(GemBox.Spreadsheet.FillPatternStyle.Solid, GemBox.Spreadsheet.SpreadsheetColor.FromArgb(75, 119, 190), GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255))
worksheet.Rows(TotalRowHeader).Cells(i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
If i > 0 Then
Try
worksheet.Columns(i).AutoFit(1)
Catch ex As Exception
End Try
End If
Next
Dim IndexEndTable As Integer = GridView.Rows.Count + TotalRowHeader + TotalRowFooter
worksheet.Rows(IndexEndTable).Cells(1).Value = "Usuario Imprimió"
worksheet.Rows(IndexEndTable + 1).Cells(1).Value = Usuario.Nombre
worksheet.Rows(IndexEndTable).Cells(3).Value = "Fecha Impresión"
worksheet.Rows(IndexEndTable + 1).Cells(3).Value = DateTime.Now.ToString("dd/MM/yyyy")
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", Usuario.Empresa.Ruta))
If Imagen.Exists Then
Dim Ruta As String = String.Format("{0}/Logo.png", Usuario.Empresa.Ruta)
Using sr As New StreamReader(Ruta)
Dim ms As New MemoryStream()
sr.BaseStream.CopyTo(ms)
worksheet.Pictures.Add(ms, ExcelPictureFormat.Png, "A1", AnchoImagen, AlturaImagen, LengthUnit.Pixel)
End Using
End If
For I = celdasConTexto.FirstColumnIndex To celdasConTexto.LastColumnIndex - 2
If I > 0 Then
If 1 = 1 Then
worksheet.Columns(I + 1).Style.NumberFormat = "#,##0.00"
Else
worksheet.Columns(I + 1).Style.NumberFormat = "#,##"
End If
Try
worksheet.Columns(I).AutoFit(1)
Catch ex As Exception
End Try
End If
Next
If DTExtra IsNot Nothing Then
Dim NombreTabla As String = ""
If DTExtra.TableName IsNot Nothing Then
NombreTabla = DTExtra.TableName
End If
If NombreTabla.Trim = "" Then
NombreTabla = "hoja2"
End If
'excel.Worksheets.Add(NombreTabla)
Dim workbookDTExtra = New ExcelFile
Dim worksheetDTExtra = workbookDTExtra.Worksheets.Add(NombreTabla)
worksheetDTExtra.InsertDataTable(DTExtra,
New InsertDataTableOptions() With
{
.ColumnHeaders = True,
.StartRow = 0
})
Dim columnCount = worksheetDTExtra.CalculateMaxUsedColumns()
For i As Integer = 0 To columnCount - 1
worksheetDTExtra.Columns(i).AutoFit(1, worksheetDTExtra.Rows(1), worksheetDTExtra.Rows(worksheetDTExtra.Rows.Count - 1))
worksheetDTExtra.Cells(0, i).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#4b77be"))
worksheetDTExtra.Cells(0, i).Style.Font.Color = GemBox.Spreadsheet.SpreadsheetColor.FromArgb(255, 255, 255)
Next
excel.Worksheets.AddCopy(NombreTabla, worksheetDTExtra)
excel.Worksheets(0).Name = Titulo
End If
Dim indexRow As Integer = 8
For indexRow = 8 To worksheet.Rows.Count - 4
If worksheet.Cells(indexRow, 0).Value.ToString.Trim = "" Then
worksheet.Cells.GetSubrangeRelative(indexRow, 0, celdasConTexto.LastColumnIndex + 1, 1).Style.FillPattern.SetSolid(Drawing.ColorTranslator.FromHtml("#c0c0c0"))
End If
Next
End If
excel.Save(HttpContext.Current.Response, $"{NombreArchivoXLSx}.xlsx")
End Sub
End Class