diff --git a/Acumuladores/RepIndicadorDiario.aspx.vb b/Acumuladores/RepIndicadorDiario.aspx.vb index 61d0da0e4..1e0fbc7ab 100644 --- a/Acumuladores/RepIndicadorDiario.aspx.vb +++ b/Acumuladores/RepIndicadorDiario.aspx.vb @@ -40,14 +40,6 @@ Partial Class ACumuladores_RepIndicadorDiario ViewState("TCEspecifico") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -225,78 +217,6 @@ Partial Class ACumuladores_RepIndicadorDiario RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -318,13 +238,11 @@ Partial Class ACumuladores_RepIndicadorDiario Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index d46da9077..a54f105bb 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -1,6 +1,7 @@ Option Strict On Option Explicit On Imports System.Data +Imports System.Diagnostics Imports System.IO Imports System.Net.Http Imports System.Xml @@ -15,11 +16,8 @@ Imports Newtonsoft.Json.Linq 'NOTA AD TEAM 'COLOR PARA ROW TOTAL EN REPORT VIEWER: #67809F (AZULITO) - - Public Class ClsPaginas Inherits System.Web.UI.Page - Public Const CveUsuarioAsistencia As Integer = 100 Public Const ContraseñaPredeterminada = "-acceso-" Public Const ContraseñaPredeterminadaEncriptada = "aQDyjiv2NgoTct4c84VnLQ==" ' "-acceso-" @@ -27,13 +25,13 @@ Public Class ClsPaginas Private Shared ReadOnly IV() As Byte = {&H12, &H34, &H56, &H78, &H90, &HAB, &HCD, &HEF} Private Const SEncryptionKey As String = "__sig__$gj7+5&j__sig__" Public Shared UrlParametros As System.Collections.Hashtable + Private ReadOnly LocalStopwatch As New System.Threading.ThreadLocal(Of Stopwatch)(Function() New Stopwatch()) + Public Shared Colors As String() = {"#FF0F00", "#FF6600", "#FF9E01", "#FCD202", "#F8FF01", "#B0DE09", "#04D215", "#0D8ECF", "#0D52D1", + "#2A0CD0", "#8A0CCF", "#CD0D74", "#754DEB", "#DDDDDD", "#999999", "#333333", "#000000"} +#Region "Propiedades" Public Shared Property EmpresaNotificaciones() As Empresa - Public Shared Property EmpresaNotificacionesGPS() As Empresa - - - Public Shared ReadOnly Property EsProduccion As Boolean Get If IsNothing(System.Configuration.ConfigurationManager.AppSettings("EsProduccion")) Then @@ -43,18 +41,14 @@ Public Class ClsPaginas End If End Get End Property - -#Region "Propiedades" Private Property SubReportData As Modelos.MSubReportData Get Return If(IsNothing(ViewState("SubReportData")), Nothing, DirectCast(ViewState("SubReportData"), Modelos.MSubReportData)) End Get - Set(value As Modelos.MSubReportData) ViewState("SubReportData") = value End Set End Property - Public Shared ReadOnly Property UrlSitio As String Get If IsNothing(System.Configuration.ConfigurationManager.AppSettings("UrlSitio")) Then @@ -104,35 +98,30 @@ Public Class ClsPaginas End Try End Set End Property +#End Region - +#Region "GlobalDTs" Public Property GlobalTipoCambio(Optional Fecha As Date = MinFecha) As Double Get If GlobalTipoCambio <= 0 Then 'sino tiene dato lo recargo por si ya esta insertado If Fecha = MinFecha Then Fecha = Now - Dim ObjGral As New ClsGenerales If ObjGral.GetTipoCambio(-1, Fecha) AndAlso ObjGral.DtResultados.Rows.Count > 0 Then - Application("GlobalTipoCambio") = ObjGral.DtResultados.Rows(0)("TipoCambio").ToString.ToDouble Else Application("GlobalTipoCambio") = 0 End If ObjGral.Dispose() - End If - Return Application("GlobalTipoCambio").ToString.ToDouble End Get Set(value As Double) Application("GlobalTipoCambio") = value End Set - End Property Public ReadOnly Property GlobalTipoCambioUltimaFluctuacion(Optional Fecha As Date = MinFecha) As MTipoCambioFluctuacion Get - If Application("GlobalTipoCambioUltimaFluctuacion") Is Nothing Then Dim ObjGral As New ClsGenerales If ObjGral.GetTipoCambioUltimaFluctuacion(-1, Now) AndAlso ObjGral.DtResultados.Rows.Count > 0 Then @@ -142,28 +131,23 @@ Public Class ClsPaginas End If ObjGral.Dispose() End If - Dim fluctuacion = New MTipoCambioFluctuacion() With { .TCFluctuacion = 0, .FechaFluctuacion = MinFecha } - 'sino tiene dato lo recargo por si ya esta insertado If Fecha = MinFecha Then Fecha = Now - If Application("GlobalTipoCambioUltimaFluctuacion") IsNot Nothing Then - Dim dr = DirectCast(Application("GlobalTipoCambioUltimaFluctuacion"), DataTable).FiltroPrimero(String.Format("Fecha <= '{0}'", Fecha), Orderby:="Fecha DESC") + Dim dr = DirectCast(Application("GlobalTipoCambioUltimaFluctuacion"), DataTable).FiltroPrimero(String.Format("Fecha < '{0}'", Fecha), Orderby:="Fecha DESC") If dr IsNot Nothing Then fluctuacion.TCFluctuacion = dr("TCFluctuacion").ToString().ToDecimal() fluctuacion.FechaFluctuacion = dr("FechaFluctuacion").ToString().ToDateTime() End If - Return fluctuacion Else Return fluctuacion End If - End Get End Property @@ -176,41 +160,33 @@ Public Class ClsPaginas If GlobalTipoCambioEuro <= 0 Then 'sino tiene dato lo recargo por si ya esta insertado If Fecha = MinFecha Then Fecha = Now - Dim ObjGral As New ClsGenerales If ObjGral.GetTipoCambio(-1, Fecha) AndAlso ObjGral.DtResultados.Rows.Count > 0 Then - Application("GlobalTipoCambioEuro") = ObjGral.DtResultados.Rows(0)("TipoCambioEuro").ToString.ToDouble Else Application("GlobalTipoCambioEuro") = 0 End If ObjGral.Dispose() - End If - Return Application("GlobalTipoCambioEuro").ToString.ToDouble End Get Set(value As Double) Application("GlobalTipoCambioEuro") = value End Set - End Property - Property GlobalDTUsuarios(Optional CveUsuario As Integer = -1, Optional CveEmpresa As Integer = -1, Optional CveCliente As Integer = -1, Optional CveProveedor As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUsuarios-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Using ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.GetUsuariosEmpresas(-1, CveEmpresa) Then Application(AppNombre) = ObjUsuarios.DtResultados End Using End If - Dim Str As New StringBuilder If CveUsuario <> -1 Then Str.AppendFormat("CveUsuario = {0}", CveUsuario) 'If CveEmpresa <> -1 Then Str.AppendFormat(" {0} CveEmpresa = {1}", If(Str.Length > 0, "AND", ""), CveEmpresa) If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) If CveProveedor <> -1 Then Str.AppendFormat(" {0} CveProveedor = {1}", If(Str.Length > 0, "AND", ""), CveProveedor) - If CveUsuario <> -1 OrElse CveEmpresa <> -1 Then Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTUsuarios = Dv.ToTable @@ -218,45 +194,39 @@ Public Class ClsPaginas Else GlobalDTUsuarios = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUsuarios-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTNomConceptos(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTNomConceptos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTNomConceptos-{CveEmpresa}" If Application("GlobalDTNomConceptos") Is Nothing Then Dim ObjNom As New ClsNominas If ObjNom.GetConceptos(CveEmpresa) Then Application(AppNombre) = ObjNom.DtResultados ObjNom.Dispose() End If - GlobalDTNomConceptos = DirectCast(Application(AppNombre), DataTable) - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTNomConceptos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTNomConceptos-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTTiposGastos(CveEmpresa As Integer, Optional Estatus As Integer = 1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTTiposGastos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTTiposGastos-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Dim ObjCompra As New ClsCompras() If ObjCompra.GetTipoGasto(-1, -1) Then Application(AppNombre) = ObjCompra.DtResultados Else Application(AppNombre) = Nothing ObjCompra.Dispose() End If - If CveEmpresa <> -1 Then - Dim StrSQL As New StringBuilder StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) If Estatus >= 0 Then StrSQL.AppendFormat(" AND CveEstatus = {0} ", Estatus) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTTiposGastos = Dv.ToTable Dv.Dispose() @@ -265,24 +235,19 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTTiposGastos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTTiposGastos-{CveEmpresa}" Application(AppNombre) = value End Set - End Property Property GlobalDTMFActividad(CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveActividad As Integer = -1) As DataTable Get - Dim dt As DataTable = Nothing Dim ObjMF As New ClsMF - If ObjMF.GetActividad(CveActividad, CveEmpresa, Estatus) Then dt = ObjMF.DtResultados End If - ObjMF.Dispose() GlobalDTMFActividad = dt - End Get Set(value As DataTable) Application("GlobalDTActividad") = value @@ -290,17 +255,13 @@ Public Class ClsPaginas End Property Property GlobalDTMFOperador(CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveOperador As Integer = -1) As DataTable Get - Dim dt As DataTable = Nothing Dim ObjMF As New ClsMF - If ObjMF.GetOperador(CveOperador, CveEmpresa, Estatus) Then dt = ObjMF.DtResultados End If - ObjMF.Dispose() GlobalDTMFOperador = dt - End Get Set(value As DataTable) Application("GlobalDTOperador") = value @@ -308,17 +269,13 @@ Public Class ClsPaginas End Property Property GlobalDTMFEstatus(CveEmpresa As Integer, Optional Estatus As Integer = -1, Optional CveEstatus As Integer = -1) As DataTable Get - Dim dt As DataTable = Nothing Dim ObjMF As New ClsMF - If ObjMF.GetEstatus(CveEstatus, Estatus, CveEmpresa) Then dt = ObjMF.DtResultados End If - ObjMF.Dispose() GlobalDTMFEstatus = dt - End Get Set(value As DataTable) Application("GlobalDTEstatus") = value @@ -347,9 +304,7 @@ Public Class ClsPaginas ' If ObjGrales.GetSATProductosServicios Then Application("GlobalDTPSATPS") = ObjGrales.DtResultados.AsEnumerable() Else Application("GlobalDTPSATPS") = Nothing ' ObjGrales.Dispose() 'End If - 'GlobalDTPSATPS = DirectCast(Application("GlobalDTPSATPS"), EnumerableRowCollection(Of DataRow)).CopyToDataTable - Dim ObjGrales As New ClsGenerales If ObjGrales.GetSATProductosServicios(CodigoSAT, SATProductoServicio, CveSATPS) Then GlobalDTPSATPS = ObjGrales.DtResultados @@ -362,7 +317,6 @@ Public Class ClsPaginas ' Application("GlobalDTPSATPS") = value 'End Set End Property - #Region "GLOBALES DE SAT COMERCIO EXTERIOR" Public Shared Property GlobalDTClavePedimento() As DataTable Get @@ -379,7 +333,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTFraccionArancelaria() As EnumerableRowCollection(Of DataRow) Get Dim AppNombre As String = "GlobalDTFraccionArancelaria" @@ -395,7 +348,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTIncoterm() As DataTable Get Dim AppNombre As String = "GlobalDTIncoterm" @@ -411,7 +363,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTTipoOperacion() As DataTable Get Dim AppNombre As String = "GlobalDTTipoOperacion" @@ -427,7 +378,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTSATMotivoTraslado() As DataTable Get Dim AppNombre As String = "GlobalDTSATMotivoTraslado" @@ -443,7 +393,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTUnidadAduana() As DataTable Get Dim AppNombre As String = "GlobalDTUnidadAduana" @@ -482,42 +431,34 @@ Public Class ClsPaginas If ObjGrales.GetSATEstado("-1") Then Application(AppNombre) = ObjGrales.DtResultados ObjGrales.Dispose() End If - Dim Filtro As New StringBuilder Filtro.Append(" 1 = 1 ") If ClaveSATPais <> "-1" Then Filtro.AppendFormat(" AND ClaveSATPais = '{0}' ", ClaveSATPais) If CvePais > 0 Then Filtro.AppendFormat(" AND CvePais = {0} ", CvePais) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralEstados = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTGralEstados" Application(AppNombre) = value End Set End Property - Property GlobalDTGralMunicipios(ClaveSATEstado As String, Optional CveEstado As Integer = -1) As DataTable Get - Dim AppNombre As String = "GlobalDTGralMunicipios" If Application(AppNombre) Is Nothing Then Dim ObjGrales As New ClsGenerales If ObjGrales.GetSATMunicipio("-1") Then Application(AppNombre) = ObjGrales.DtResultados ObjGrales.Dispose() End If - Dim Filtro As New StringBuilder Filtro.Append(" 1 = 1 ") If ClaveSATEstado <> "-1" Then Filtro.AppendFormat(" AND ClaveSATEstado = '{0}' ", ClaveSATEstado) If CveEstado > 0 Then Filtro.AppendFormat(" AND CveEstado = {0} ", CveEstado) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralMunicipios = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTGralMunicipios" @@ -525,46 +466,33 @@ Public Class ClsPaginas End Set End Property - Property GlobalDTLocalidad(Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1) As DataTable Get - If Application("GlobalDTLocalidad") Is Nothing Then - Dim ObjGrales As New ClsGenerales If ObjGrales.GetSATLocalidad(-1, -1) Then Application("GlobalDTLocalidad") = ObjGrales.DtResultados ObjGrales.Dispose() - End If - Dim StrFiltro As String = "" - If CveEstado > 0 And CveMunicipio > 0 Then StrFiltro = $" CveEstado = '{CveEstado}' AND CveMunicipio = '{CveMunicipio}'" ElseIf CveEstado > 0 Then StrFiltro = $" CveEstado = '{CveEstado}'" ElseIf CveMunicipio > 0 Then StrFiltro = $" CveMunicipio = '{CveMunicipio}'" - Else StrFiltro = "" End If - Dim Dv As New DataView(DirectCast(Application("GlobalDTLocalidad"), DataTable), StrFiltro, "", DataViewRowState.CurrentRows) GlobalDTLocalidad = Dv.ToTable - Dv.Dispose() - - End Get Set(value As DataTable) Application("GlobalDTLocalidad") = value End Set - End Property - Property GlobalDTGralColonias(ClaveSATEstado As String, ClaveSATMunicipio As String, ClaveSATColonia As String, Optional CveMunicipio As Integer = -1, Optional CodigoPostal As Integer = -1, Optional CveColonia As Integer = -1) As DataTable Get @@ -574,7 +502,6 @@ Public Class ClsPaginas If ObjGrales.GetSATColonia("-1", "-1", "-1") Then Application(AppNombre) = ObjGrales.DtResultados ObjGrales.Dispose() End If - Dim Filtro As New StringBuilder Filtro.Append(" 1 = 1 ") If ClaveSATEstado <> "-1" Then Filtro.AppendFormat(" AND ClaveSATEstado = '{0}' ", ClaveSATEstado) @@ -583,21 +510,17 @@ Public Class ClsPaginas If CveMunicipio > 0 Then Filtro.AppendFormat(" AND CveMunicipio = {0} ", CveMunicipio) If CodigoPostal > 0 Then Filtro.AppendFormat(" AND CP = {0} ", CodigoPostal) If CveColonia > 0 Then Filtro.AppendFormat(" AND CveColonia = {0} ", CveColonia) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralColonias = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTGralColonias" Application(AppNombre) = value End Set End Property - #End Region - Public Shared Property GlobalDTPSATUM() As EnumerableRowCollection(Of DataRow) Get If HttpContext.Current.Application("GlobalDTPSATUM") Is Nothing Then @@ -606,7 +529,6 @@ Public Class ClsPaginas ObjGrales.Dispose() End If Return DirectCast(HttpContext.Current.Application("GlobalDTPSATUM"), EnumerableRowCollection(Of DataRow)) - ''System.Data.EnumerableRowCollection 'If Not IsNothing(HttpContext.Current.Application("GlobalDTPSATUM")) Then ' If HttpContext.Current.Application("GlobalDTPSATUM").GetType().IsSubclassOf(GetType(EnumerableRowCollection)) Then @@ -632,18 +554,16 @@ Public Class ClsPaginas End Property Property GlobalDTUsuarioResponsable(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTUsuarioResponsable-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUsuarioResponsable-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Using ObjUsuarios As New ClsSisUsuarios If ObjUsuarios.GetUsuariosEmpresas(-1, CveEmpresa) Then Application(AppNombre) = ObjUsuarios.DtResultados.FiltraParametros("ProveedoresResponsables > 0") End Using End If - 'Dim Str As New StringBuilder ''If CveEmpresa <> -1 Then Str.AppendFormat(" {0} CveEmpresa = {1}", If(Str.Length > 0, "AND", ""), CveEmpresa) 'If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) 'If CveProveedor <> -1 Then Str.AppendFormat(" {0} CveProveedor = {1}", If(Str.Length > 0, "AND", ""), CveProveedor) - 'If CveUsuario <> -1 OrElse CveEmpresa <> -1 Then ' Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) ' GlobalDTUsuarios = Dv.ToTable @@ -651,10 +571,9 @@ Public Class ClsPaginas 'Else GlobalDTUsuarioResponsable = DirectCast(Application(AppNombre), DataTable) ' End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTUsuarioResponsable-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUsuarioResponsable-{CveEmpresa}" Application(AppNombre) = value End Set End Property @@ -666,44 +585,38 @@ Public Class ClsPaginas Application("GlobalDTProveedoresCuentas") = value End Set End Property - Property GlobalDTCuentasDepositosClientes(CveEmpresa As Integer, Optional CveCliente As Integer = -1, Optional Estatus As Boolean = True) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTCuentasDepositosClientes-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCuentasDepositosClientes-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(Application(AppNombre), DataTable) Is Nothing Then Dim P As New ClsGenerales If P.GetCuentasDepositos(CveEmpresa:=CveEmpresa, CveCliente:=-2) Then Application(AppNombre) = P.DtResultados P.Dispose() End If - Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveCliente <> -1 Then Str.AppendFormat(" AND CveCliente = {0}", CveCliente) If Estatus = True Then Str.AppendFormat(" AND Estatus = 1 ") - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) - GlobalDTCuentasDepositosClientes = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTCuentasDepositosClientes-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCuentasDepositosClientes-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTProveedorClasificacion(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTProveedorClasificacion-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProveedorClasificacion-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(Application(AppNombre), DataTable) Is Nothing Then Dim P As New ClsCompProveedores If P.GetProveedorClasificacion(CveEmpresa) Then Application(AppNombre) = P.DtResultados P.Dispose() End If - If CveEmpresa <> -1 Then Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), String.Format("CveEmpresa ={0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTProveedorClasificacion = Dv.ToTable @@ -711,24 +624,21 @@ Public Class ClsPaginas Else GlobalDTProveedorClasificacion = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTProveedorClasificacion-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProveedorClasificacion-{CveEmpresa}" Application(AppNombre) = value - End Set End Property Property GlobalDTProveedorSucursales(CveProveedor As Integer, CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTProveedorSucursales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProveedorSucursales-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(Application(AppNombre), DataTable) Is Nothing Then Dim P As New ClsCompProveedores If P.GetSucursales(-1, CveEmpresa) Then Application(AppNombre) = P.DtResultados P.Dispose() End If - If CveProveedor <> -1 Then Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), String.Format("CveProveedor = {0}", CveProveedor), "", DataViewRowState.CurrentRows) GlobalDTProveedorSucursales = Dv.ToTable @@ -736,12 +646,10 @@ Public Class ClsPaginas Else GlobalDTProveedorSucursales = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTProveedorSucursales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProveedorSucursales-{CveEmpresa}" Application(AppNombre) = value - End Set End Property Property GlobalDTRoles(CveEmpresa As Integer) As DataTable @@ -753,7 +661,6 @@ Public Class ClsPaginas Else GlobalDTRoles = DirectCast(Application("GlobalDTRoles"), DataTable) End If - End Get Set(ByVal value As DataTable) Application("GlobalDTRoles") = value @@ -783,7 +690,6 @@ Public Class ClsPaginas Application("GlobalDTNomSatRegimenContratacion") = value End Set End Property - Property GlobalDTRegimenesFiscales(Optional TipoPersona As Integer = -1) As DataTable Get Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales") @@ -804,7 +710,6 @@ Public Class ClsPaginas GlobalDTRegimenesFiscales = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales") @@ -840,12 +745,10 @@ Public Class ClsPaginas If Not IO.Directory.Exists(Ruta) Then IO.Directory.CreateDirectory(Ruta) If Not System.IO.Directory.Exists(String.Format("{0}\XML\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\XML\", Ruta)) If Not System.IO.Directory.Exists(String.Format("{0}\PDF\", Ruta)) Then System.IO.Directory.CreateDirectory(String.Format("{0}\PDF\", Ruta)) - Next End If End Using End If - If CveEmpresa <> -1 Then Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTEmpresas = Dv.ToTable @@ -853,18 +756,15 @@ Public Class ClsPaginas Else GlobalDTEmpresas = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(ByVal value As DataTable) Dim AppNombre As String = "GlobalDTEmpresas" HttpContext.Current.Application(AppNombre) = value End Set End Property - #Region "C A R T A P O R T E " Public Shared Property GlobalDTMaterialPeligroso(Optional CveMaterialPeligroso As Integer = -1) As DataTable Get - Dim AppNombre As String = "GlobalDTMaterialPeligroso" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim Obj As New ClsGenerales @@ -880,17 +780,14 @@ Public Class ClsPaginas Else GlobalDTMaterialPeligroso = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTMaterialPeligroso" HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTEmbalajes(Optional CveEmbalaje As Integer = -1) As DataTable Get - Dim AppNombre As String = "GlobalDTEmbalajes" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim Obj As New ClsGenerales @@ -906,7 +803,6 @@ Public Class ClsPaginas Else GlobalDTEmbalajes = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTEmbalajes" @@ -914,11 +810,9 @@ Public Class ClsPaginas End Set End Property #End Region - - Public Shared Property GlobalDTClasificaciones(Optional CveEmpresa As Integer = -1, Optional CveCategoria As Integer = -1, Optional UsoClasificacion As Integer = -1, Optional CveClasificacion As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTClasificaciones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClasificaciones-{CveEmpresa}" 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjClasificaciones As New ClsClasificaciones @@ -937,26 +831,21 @@ Public Class ClsPaginas Else GlobalDTClasificaciones = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTClasificaciones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClasificaciones-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTRHActividades(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTRHActividades-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTRHActividades-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then - Dim ObjRH As New ClsRH If ObjRH.GetActividades(CveEmpresa) Then Application(AppNombre) = ObjRH.DtResultados ObjRH.Dispose() - End If - If CveEmpresa <> -1 Then Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) @@ -967,18 +856,15 @@ Public Class ClsPaginas GlobalDTRHActividades = DirectCast(Application(AppNombre), DataTable) End If - - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTRHActividades-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTRHActividades-{CveEmpresa}" Application(AppNombre) = value End Set End Property - Property GlobalDTClasificaciones2(Optional CveEmpresa As Integer = -1, Optional CveCategoria As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTClasificaciones2-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClasificaciones2-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjClasificaciones As New ClsClasificaciones @@ -989,17 +875,15 @@ Public Class ClsPaginas Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveCategoria <> -1 Then Str.AppendFormat(" AND CveCategoria = {0}", CveCategoria) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) GlobalDTClasificaciones2 = Dv.ToTable Dv.Dispose() Else GlobalDTClasificaciones2 = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTClasificaciones2-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClasificaciones2-{CveEmpresa}" Application(AppNombre) = value End Set End Property @@ -1008,14 +892,12 @@ Public Class ClsPaginas If CveEmpresa <> -1 Then Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) - Dim Dv As New DataView(DirectCast(Application("GlobalDTClasificacionesSubProyecto"), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) GlobalDTClasificacionesSubProyectos = Dv.ToTable Dv.Dispose() Else GlobalDTClasificacionesSubProyectos = DirectCast(Application("GlobalDTClasificacionesSubProyecto"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTClasificacionesSubProyecto") = value @@ -1027,14 +909,12 @@ Public Class ClsPaginas Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveCategoria <> -1 Then Str.AppendFormat(" AND CveCategoria = {0}", CveCategoria) - Dim Dv As New DataView(DirectCast(Application("GlobalDTACClasificadorObjetoGasto"), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) GlobalDTACClasificadorObjetoGasto = Dv.ToTable Dv.Dispose() Else GlobalDTACClasificadorObjetoGasto = DirectCast(Application("GlobalDTACClasificadorObjetoGasto"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTACClasificadorObjetoGasto") = value @@ -1063,15 +943,12 @@ Public Class ClsPaginas Dim Str As New StringBuilder Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveCategoria <> -1 Then Str.AppendFormat(" AND CveCategoria = {0}", CveCategoria) - Dim Dv As New DataView(DirectCast(Application("GlobalDTSubFamilias"), DataTable), Str.ToString(), "", DataViewRowState.CurrentRows) GlobalDTSubFamilias = Dv.ToTable Dv.Dispose() - Else GlobalDTSubFamilias = DirectCast(Application("GlobalDTSubFamilias"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTSubFamilias") = value @@ -1086,7 +963,6 @@ Public Class ClsPaginas If ObjGenerales.GetCategorias(CveEmpresa, 2) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - GlobalDTFamilias = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -1103,7 +979,6 @@ Public Class ClsPaginas If ObjGenerales.GetCategorias(CveEmpresa, 3) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - GlobalDTCategoriasPresupuestos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -1111,10 +986,9 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTChoferes(CveEmpresa As Integer, Optional CveChofer As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTChoferes-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTChoferes-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjAcar As New ClsAcarreos() @@ -1123,20 +997,17 @@ Public Class ClsPaginas End If ObjAcar.Dispose() End If - Dim Str As New StringBuilder If CveChofer > 0 Then Str.AppendFormat("CveChofer = {0}", CveChofer) Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTChoferes = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTChoferes-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTChoferes-{CveEmpresa}" Application(AppNombre) = value End Set End Property - Property GlobalDTClasificacionesPresupuestos(Optional CveEmpresa As Integer = -1) As DataTable Get If CveEmpresa <> -1 Then @@ -1203,10 +1074,7 @@ Public Class ClsPaginas Dim AppNombre As String = "GlobalDTMonedasAlias" HttpContext.Current.Application(AppNombre) = value End Set - End Property - - Public Shared Property GlobalDTSATUsosCFDI(Optional EsPersonaFisica As Integer = -1, Optional RegimenFiscalReceptor As String = "-1") As DataTable Get Dim AppNombre As String = "GlobalDTSATUsosCFDI" @@ -1215,22 +1083,18 @@ Public Class ClsPaginas If ObjGrales.GetSATUsosCFDI() Then HttpContext.Current.Application(AppNombre) = ObjGrales.DtResultados ObjGrales.Dispose() End If - If EsPersonaFisica <> -1 Then Dim Tipo As New StringBuilder If EsPersonaFisica = 1 Then Tipo.Append("AplicaPersonaFisica = 1") Else Tipo.Append("AplicaPersonaMoral = 1") - If RegimenFiscalReceptor <> "-1" Then Tipo.AppendFormat("AND RegimenFiscalReceptor LIKE '%{0}%'", RegimenFiscalReceptor) End If - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Tipo.ToString(), " UsoCFDIDescripcion", DataViewRowState.CurrentRows) GlobalDTSATUsosCFDI = Dv.ToTable Dv.Dispose() Else GlobalDTSATUsosCFDI = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTSATUsosCFDI" @@ -1239,14 +1103,13 @@ Public Class ClsPaginas End Property Public Shared Property GlobalDTUnidadesMedida(Optional CveEmpresa As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTUnidadesMedida-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUnidadesMedida-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(HttpContext.Current.Application(AppNombre), DataTable) Is Nothing Or (DirectCast(HttpContext.Current.Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(HttpContext.Current.Application(AppNombre), DataTable).Rows.Count = 0) Then Dim ObjUnidadesMedida As New ClsUnidadesMedida() If ObjUnidadesMedida.GetUnidadesMedida(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjUnidadesMedida.DtResultados ObjUnidadesMedida.Dispose() End If - If CveEmpresa <> -1 Then Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), " UnidadMedida", DataViewRowState.CurrentRows) GlobalDTUnidadesMedida = Dv.ToTable @@ -1256,13 +1119,13 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTUnidadesMedida-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUnidadesMedida-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property Property GlobalDTUnidadesMedidaAlias(Optional CveEmpresa As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTUnidadesMedidaAlias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUnidadesMedidaAlias-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(Application(AppNombre), DataTable) Is Nothing Or (DirectCast(Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(Application(AppNombre), DataTable).Rows.Count = 0) Then Dim ObjUnidadesMedida As New ClsUnidadesMedida() @@ -1278,14 +1141,13 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTUnidadesMedidaAlias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTUnidadesMedidaAlias-{CveEmpresa}" Application(AppNombre) = value 'Dim ObjUnidadesMedida As New ClsUnidadesMedida() 'If ObjUnidadesMedida.GetUnidadesMedidaAlias(CveEmpresa, -1) Then Application(AppNombre) = ObjUnidadesMedida.DtResultados 'ObjUnidadesMedida.Dispose() End Set End Property - Public Shared Property GlobalDTSATMotivosCancelacion(Optional CveSATMotivoCancelacion As Integer = -1, Optional CodigoSAT As String = "-1") As DataTable Get If HttpContext.Current.Application("GlobalDTSATMotivosCancelacion") Is Nothing Then @@ -1295,26 +1157,22 @@ Public Class ClsPaginas End If End Using End If - If CveSATMotivoCancelacion <> -1 OrElse CodigoSAT <> "-1" Then Dim StrSQL As New StringBuilder StrSQL.Append("1=1") If CveSATMotivoCancelacion <> -1 Then StrSQL.AppendFormat(" AND CveSATMotivoCancelacion = {0}", CveSATMotivoCancelacion) If CodigoSAT <> "-1" Then StrSQL.AppendFormat(" AND CodigoSAT = '{0}'", CodigoSAT) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application("GlobalDTSATMotivosCancelacion"), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), " CveSATMotivoCancelacion", DataViewRowState.CurrentRows) GlobalDTSATMotivosCancelacion = Dv.ToTable Dv.Dispose() Else GlobalDTSATMotivosCancelacion = DirectCast(HttpContext.Current.Application("GlobalDTSATMotivosCancelacion"), DataTable) End If - End Get Set(ByVal value As DataTable) HttpContext.Current.Application("GlobalDTSATMotivosCancelacion") = value End Set End Property - Public Shared Property GlobalDTSATObjetosImpuestos() As DataTable Get Dim AppNombre As String = "GlobalDTSATObjetosImpuestos" @@ -1325,7 +1183,6 @@ Public Class ClsPaginas End If ObjGral.Dispose() End If - Return CType(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -1333,10 +1190,9 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTMotivosCancelacionEmpresa(CveEmpresa As Integer, Optional CveMotivoCancelacion As Integer = -1, Optional CveSATMotivoCancelacion As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTMotivosCancelacionEmpresa-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTMotivosCancelacionEmpresa-{CveEmpresa}" 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjGral As New ClsGenerales() @@ -1354,23 +1210,20 @@ Public Class ClsPaginas End If ObjGral.Dispose() End If - If HttpContext.Current.Application(AppNombre) IsNot Nothing Then Dim Str As New StringBuilder Str.AppendFormat(" 1 = 1 ") If CveMotivoCancelacion > 0 Then Str.AppendFormat(" AND CveMotivoCancelacion = {0}", CveMotivoCancelacion) If CveSATMotivoCancelacion > 0 Then Str.AppendFormat(" AND CveSATMotivoCancelacion = {0}", CveSATMotivoCancelacion) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTMotivosCancelacionEmpresa = Dv.ToTable Dv.Dispose() Else GlobalDTMotivosCancelacionEmpresa = Nothing End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTMotivosCancelacionEmpresa-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTMotivosCancelacionEmpresa-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property @@ -1420,7 +1273,6 @@ Public Class ClsPaginas Dim ObjProyectos As New ClsProyectos If ObjProyectos.GetProyectos(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjProyectos.DtResultados ObjProyectos.Dispose() - Dim msg As String = "aqui no se carga proyectos" If HttpContext.Current.Request IsNot Nothing Then msg += HttpContext.Current.Request.ServerVariables("URL") @@ -1452,42 +1304,38 @@ Public Class ClsPaginas End Property Public Shared Property GlobalDTSubProyectos(CveProyecto As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEmpresa As Integer = -1, Optional Estatus As Integer = 1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubProyectos-{CveEmpresa}" 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing Or (DirectCast(HttpContext.Current.Application(AppNombre), DataTable) IsNot Nothing AndAlso DirectCast(HttpContext.Current.Application(AppNombre), DataTable).Rows.Count = 0) Then Dim P As New ClsSubProyectos If P.GetSubProyectos(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = P.DtResultados P.Dispose() End If - If CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse Estatus <> -1 Then Dim StrSQL As New StringBuilder If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) If CveSubProyecto <> -1 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0}", CveSubProyecto) If Estatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", Estatus) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) GlobalDTSubProyectos = Dv.ToTable Dv.Dispose() Else GlobalDTSubProyectos = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(ByVal value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTSubProyectos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubProyectos-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property Public Shared Property GlobalDTSubProyectosUsuarios(CveUsuario As Integer, CveProyecto As Integer, CveEmpresa As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEstatus As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTSubProyectosUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubProyectosUsuarios-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjSubProyectos As New ClsSubProyectos() If ObjSubProyectos.GetSubProyectosUsuarios(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjSubProyectos.DtResultados ObjSubProyectos.Dispose() End If - If CveUsuario <> -1 OrElse CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEmpresa <> -1 OrElse CveEstatus <> -1 Then Dim StrSQL As New StringBuilder If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) @@ -1495,48 +1343,41 @@ Public Class ClsPaginas If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa) If CveUsuario <> -1 Then StrSQL.AppendFormat(" AND CveUsuario = {0}", CveUsuario) If CveEstatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatus = {0}", CveEstatus) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) GlobalDTSubProyectosUsuarios = Dv.ToTable Dv.Dispose() - Else GlobalDTSubProyectosUsuarios = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(ByVal value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTSubProyectosUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubProyectosUsuarios-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property Public Shared Property GlobalDTProyectosUsuarios(CveUsuario As Integer, CveProyecto As Integer, CveEmpresa As Integer, CveEstatus As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTProyectosUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProyectosUsuarios-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjSubProyectos As New ClsSubProyectos() If ObjSubProyectos.GetSubProyectosUsuarios(CveEmpresa:=CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjSubProyectos.DtResultados.FiltraParametros("", "", {"Proyecto", "CveProyecto", "CveUsuario", "CveEmpresa", "CveEstatusProyecto"}) ObjSubProyectos.Dispose() End If - If CveUsuario <> -1 OrElse CveProyecto <> -1 OrElse CveEmpresa <> -1 OrElse CveEstatus <> -1 Then Dim StrSQL As New StringBuilder If CveProyecto <> -1 Then StrSQL.AppendFormat(" AND CveProyecto = {0}", CveProyecto) If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa) If CveUsuario <> -1 Then StrSQL.AppendFormat(" AND CveUsuario = {0}", CveUsuario) If CveEstatus <> -1 Then StrSQL.AppendFormat(" AND CveEstatusProyecto = {0}", CveEstatus) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) GlobalDTProyectosUsuarios = Dv.ToTable Dv.Dispose() - Else GlobalDTProyectosUsuarios = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If - End Get Set(ByVal value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTProyectosUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProyectosUsuarios-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property @@ -1607,7 +1448,6 @@ Public Class ClsPaginas Property GlobalDTTipoCuentasEquipos(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTTipoCuentasEquipos"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTTipoCuentasEquipos = Dv.ToTable Dv.Dispose() @@ -1622,7 +1462,6 @@ Public Class ClsPaginas Property GlobalDTTipoCuentasEquiposCaracteristicas(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTTipoCuentasEquiposCaracteristicas"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTTipoCuentasEquiposCaracteristicas = Dv.ToTable Dv.Dispose() @@ -1637,7 +1476,6 @@ Public Class ClsPaginas Property GlobalDTTipoCuentasEquiposOpciones(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTTipoCuentasEquiposOpciones"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTTipoCuentasEquiposOpciones = Dv.ToTable Dv.Dispose() @@ -1652,11 +1490,9 @@ Public Class ClsPaginas ''Property GlobalDTProductosServicios(CveEmpresa As Integer, Optional CveClasificacion As Integer = -1, Optional CveClasificacionCosto As Integer = -1, Optional Estatus As Integer = 1, ' Optional CvePS As Integer = -1, Optional AplicaParaVenta As Integer = -1, Optional CveTipoPS As Integer = -1, Optional SATClavePS As String = "-1") As DataTable ' Get - ' If CveEmpresa = -1 Then ' GlobalDTProductosServicios = DirectCast(Application("GlobalDTProductosServicios"), EnumerableRowCollection(Of DataRow)).CopyToDataTable ' Else - ' Dim Cons = DirectCast(Application("GlobalDTProductosServicios"), EnumerableRowCollection(Of DataRow)) ' Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) ' If CveClasificacion >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) @@ -1666,17 +1502,14 @@ Public Class ClsPaginas ' If AplicaParaVenta >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!AplicaParaVenta) = AplicaParaVenta)) ' If CveTipoPS >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveTipoPS) = CveTipoPS)) ' If SATClavePS <> "-1" Then Cons = Cons.Where((Function(a) Convert.ToString(a!SATClavePS) = SATClavePS)) - ' 'Try, generado para cuando el resultado no tiene valores(The source contains no DataRows.), no detenga la ejecucion, no se le puso un count previo, porque el costo se duplica, al preguntar y luego ordenar y convertir a datatable ' Try ' GlobalDTProductosServicios = Cons.OrderBy(Function(a) a!PS).CopyToDataTable ' Catch ex As Exception ' GlobalDTProductosServicios = New DataTable ' End Try - ' 'Cons.CopyToDataTable.FiltraParametros("", "PS") 'Dv.ToTable() - ' 'VIEJO AGOSTO 2016 ' 'Dim StrSQL As New StringBuilder ' 'StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) @@ -1684,20 +1517,15 @@ Public Class ClsPaginas ' 'If CveClasificacionCosto >= 0 Then StrSQL.AppendFormat(" AND CveClasificacionCosto = {0}", CveClasificacionCosto) ' 'If Estatus >= 0 Then StrSQL.AppendFormat(" AND CveEstado = {0} ", Estatus) ' 'If CvePS >= 0 Then StrSQL.AppendFormat(" AND CvePS = {0} ", CvePS) - ' ' Dim Dv As New DataView(DirectCast(Application("GlobalDTProductosServicios"), DataTable), StrSQL.ToString, "CveEmpresa,PS", DataViewRowState.CurrentRows) - ' 'Dim Dvr As DataRowView() = Dv.FindRows(StrSQL.ToString) ' 'Dim returnRows As New List(Of DataRow)() ' 'For Each drv As DataRowView In Dvr ' ' returnRows.Add(drv.Row) ' 'Next - ' 'GlobalDTProductosServicios = Dv.ToTable() ' 'Dv.Dispose() - ' End If - ' End Get ' Set(value As DataTable) ' Application("GlobalDTProductosServicios") = value @@ -1706,32 +1534,27 @@ Public Class ClsPaginas Public Shared ReadOnly Property GlobalDTPS(CveEmpresa As Integer, Optional CvePS As Integer = -1, Optional SATClavePS As String = "-1", Optional AplicaParaVenta As Integer = -1, Optional Estatus As Integer = -1, Optional Codigo As String = "-1") As DataTable Get Dim ObjPS As New ClsProductosServicios - If ObjPS.GetPS(CvePS, -1, CveEmpresa, Codigo:=Codigo, SATClavePS:=SATClavePS, pAplicaParaVenta:=AplicaParaVenta, pEstado:=Estatus) Then GlobalDTPS = ObjPS.DtResultados Else GlobalDTPS = Nothing End If - ObjPS.Dispose() End Get End Property Public Property GlobalDTPSSimplificado(CveEmpresa As Integer, Optional CveClasificacion As Integer = -1, Optional PSCodigo As String = "-1", Optional Estatus As Integer = 1, Optional AplicaParaVenta As Integer = -1, Optional CvePS As Integer = -1, Optional Codigo As String = "-1", Optional CodigoSATPS As String = "-1") As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTPSSimplificado-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPSSimplificado-{CveEmpresa}" If CveEmpresa <> -1 Then 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSSimplificado(CveEmpresa) Then Application(AppNombre) = ObjPS.DtResultados.AsEnumerable() ObjPS.Dispose() - End If - Dim Cons = DirectCast(Application(AppNombre), EnumerableRowCollection(Of DataRow)) - 'Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveEmpresa) = CveEmpresa)) If CveClasificacion >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CveClasificacion) = CveClasificacion)) If PSCodigo <> "-1" Then Cons = Cons.Where((Function(a) Convert.ToString(a!PSCodigo) = PSCodigo)) @@ -1741,25 +1564,23 @@ Public Class ClsPaginas If AplicaParaVenta >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!AplicaParaVenta) = AplicaParaVenta)) If CvePS >= 0 Then Cons = Cons.Where((Function(a) Convert.ToInt32(a!CvePS) = CvePS)) If CodigoSATPS <> "-1" Then Cons = Cons.Where((Function(a) Convert.ToString(a!SATClavePS) = CodigoSATPS)) - Try GlobalDTPSSimplificado = Cons.OrderBy(Function(a) a!PSCodigo).CopyToDataTable Catch ex As Exception GlobalDTPSSimplificado = New DataTable End Try - Else GlobalDTPSSimplificado = DirectCast(Application(AppNombre), EnumerableRowCollection(Of DataRow)).CopyToDataTable End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTPSSimplificado-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPSSimplificado-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTProductosServiciosAlias(CveEmpresa As Integer, Optional Estatus As Integer = 1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTProductosServiciosAlias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProductosServiciosAlias-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjPS As New ClsProductosServicios @@ -1767,13 +1588,10 @@ Public Class ClsPaginas ObjPS.Dispose() End If - If CveEmpresa <> -1 Then - Dim StrSQL As New StringBuilder StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) If Estatus >= 0 Then StrSQL.AppendFormat(" AND CveEstado = {0} ", Estatus) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTProductosServiciosAlias = Dv.ToTable Dv.Dispose() @@ -1782,26 +1600,23 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTProductosServiciosAlias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProductosServiciosAlias-{CveEmpresa}" Application(AppNombre) = value End Set End Property Public Shared Property GlobalDTProductosServiciosEquivalencias(CvePS As Integer, CveUM As Integer, CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTProductosServiciosEquivalencias-{0}", CveEmpresa) - + Dim AppNombre As String = $"GlobalDTProductosServiciosEquivalencias-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSEquivalencias(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjPS.DtResultados ObjPS.Dispose() End If - If CvePS <> -1 OrElse CveUM <> -1 Then Dim StrSQL As New StringBuilder If CvePS <> -1 Then StrSQL.AppendFormat(" AND CvePS = {0}", CvePS) If CveUM <> -1 Then StrSQL.AppendFormat(" AND CveUM = {0}", CveUM) If CveEmpresa <> -1 Then StrSQL.AppendFormat(" AND CveEmpresa = {0}", CveEmpresa) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), StrSQL.ToString.Trim.TrimStart("A"c, "N"c, "D"c), "", DataViewRowState.CurrentRows) GlobalDTProductosServiciosEquivalencias = Dv.ToTable Dv.Dispose() @@ -1810,15 +1625,13 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTProductosServiciosEquivalencias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTProductosServiciosEquivalencias-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value - End Set End Property Property GlobalDTProductosServiciosCaracteristicas(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTProductosServiciosCaracteristicas"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTProductosServiciosCaracteristicas = Dv.ToTable Dv.Dispose() @@ -1830,23 +1643,20 @@ Public Class ClsPaginas Application("GlobalDTProductosServiciosCaracteristicas") = value End Set End Property - Property GlobalDTPSAdicionales(CvePS As Integer, CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTPSAdicionales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPSAdicionales-{CveEmpresa}" If CveEmpresa <> -1 Then 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSAdicionales(-1, CveEmpresa) Then Application(AppNombre) = ObjPS.DtResultados ObjPS.Dispose() - End If End If Dim Str As New StringBuilder If CvePS > 0 Then Str.AppendFormat("CvePS = {0}", CvePS) If CveEmpresa > 0 Then Str.AppendFormat("{0} CveEmpresa = {1}", If(CvePS > 0, " AND ", ""), CveEmpresa) - If CvePS > 0 Then Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTPSAdicionales = Dv.ToTable @@ -1856,15 +1666,13 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTPSAdicionales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPSAdicionales-{CveEmpresa}" Application(AppNombre) = value - End Set End Property Property GlobalDTProductosServiciosCaracteristicasOpciones(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTProductosServiciosCaracteristicasOpciones"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTProductosServiciosCaracteristicasOpciones = Dv.ToTable Dv.Dispose() @@ -1884,10 +1692,9 @@ Public Class ClsPaginas Application("GlobalDTInvMetodosInventario") = value End Set End Property - Property GlobalDTInvCamiones(CveEmpresa As Integer, Optional CveCamion As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTInvCamiones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTInvCamiones-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjInventarios As New ClsInventarios @@ -1896,16 +1703,14 @@ Public Class ClsPaginas End If ObjInventarios.Dispose() End If - Dim Str As New StringBuilder If CveCamion > 0 Then Str.AppendFormat("CveCamion = {0}", CveCamion) Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTInvCamiones = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTInvCamiones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTInvCamiones-{CveEmpresa}" Application(AppNombre) = value End Set End Property @@ -1935,18 +1740,16 @@ Public Class ClsPaginas End Property Property GlobalDTImpuestosLocales(CvePS As Integer, CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTImpuestosLocales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTImpuestosLocales-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjPS As New ClsProductosServicios If ObjPS.GetPSImpuestosLocales(-1, CveEmpresa) Then Application(AppNombre) = ObjPS.DtResultados ObjPS.Dispose() - End If Dim Str As New StringBuilder If CvePS > 0 Then Str.AppendFormat("CvePS = {0}", CvePS) If CveEmpresa > 0 Then Str.AppendFormat("{0} CveEmpresa = {1}", If(CvePS > 0, " AND ", ""), CveEmpresa) - If CvePS > 0 Then Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTImpuestosLocales = Dv.ToTable @@ -1956,7 +1759,7 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTImpuestosLocales-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTImpuestosLocales-{CveEmpresa}" Application(AppNombre) = value 'Dim ObjPS As New ClsProductosServicios 'If ObjPS.GetPSImpuestosLocales(-1, CveEmpresa) Then Application(AppNombre) = ObjPS.DtResultados @@ -1983,11 +1786,9 @@ Public Class ClsPaginas ' Get ' Dim Str As String = String.Format("CveEmpresa = {0} ", UsuarioActual.CveEmpresa) ' If CveUsuario > -1 Then Str = String.Format("{0} AND CveUsuario ={1}", Str, CveUsuario) - ' Dim Dv As New DataView(DirectCast(Application("GlobalDTBancosCuentas"), DataTable), Str, "", DataViewRowState.CurrentRows) ' GlobalDTBancosCuentas = Dv.ToTable ' Dv.Dispose() - ' End Get ' Set(value As DataTable) ' Application("GlobalDTBancosCuentas") = value @@ -1995,7 +1796,7 @@ Public Class ClsPaginas 'End Property Public Shared Property GlobalDTBancosCuentas(CveUsuario As Integer, Optional CveCuenta As Integer = -1, Optional Estatus As Integer = 1, Optional CveEmpresa As Integer = -1, Optional CveTipoCuenta As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTBancosCuentas-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTBancosCuentas-{CveEmpresa}" 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing Then Using ObjBancos As New ClsBancos @@ -2006,20 +1807,18 @@ Public Class ClsPaginas End If End Using End If - Dim Str As String = String.Format("CveEmpresa = {0} ", CveEmpresa) If CveUsuario > -1 Then Str = String.Format("{0} AND CveUsuario = {1}", Str, CveUsuario) If CveTipoCuenta > -1 Then Str = String.Format("{0} AND CveTipoCuenta = {1}", Str, CveTipoCuenta) If CveCuenta > -1 Then Str = String.Format("{0} AND CveCuenta = {1}", Str, CveCuenta) If Estatus > -1 Then Str = String.Format("{0} AND Estatus = '{1}'", Str, If(Estatus = 1, "Activo", "Inactivo")) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str, "", DataViewRowState.CurrentRows) GlobalDTBancosCuentas = Dv.ToTable Dv.Dispose() 'GlobalDTBancosCuentas = DirectCast(Application("GlobalDTBancosCuentas"), DataTable) End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTBancosCuentas-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTBancosCuentas-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property @@ -2077,7 +1876,6 @@ Public Class ClsPaginas End Set End Property 'Fin Bancos - 'Fin EstadoCIvil 'TipoPerioso Property GlobalDTTipoPeriodo() As DataTable @@ -2089,7 +1887,6 @@ Public Class ClsPaginas End Set End Property 'Fin TipoPeriodo - 'Periodos Property GlobalDTNominasPeriodos(CveTipoPeriodo As Integer, CvePeriodo As Integer, CveEmpresa As Integer) As DataTable Get @@ -2101,53 +1898,46 @@ Public Class ClsPaginas Dim Dv As New DataView(DirectCast(Application("GlobalDTNominasPeriodos"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTNominasPeriodos = Dv.ToTable Dv.Dispose() - Else GlobalDTNominasPeriodos = DirectCast(Application("GlobalDTNominasPeriodos"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTNominasPeriodos") = value End Set End Property 'Fin Periodos - 'Fin Ruta 'Cliente Property GlobalDTCliente(CveEmpresa As Integer, Optional Estatus As Integer = 1, Optional CveCliente As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTCliente-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCliente-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjClientes As New ClsClientes If ObjClientes.GetClientes(-1, "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa, Estatus:=-1) Then Application(AppNombre) = ObjClientes.DtResultados ObjClientes.Dispose() End If - If CveEmpresa <> -1 Then - Dim StrSQL As New StringBuilder StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) If Estatus >= 0 Then StrSQL.AppendFormat(" AND EstatusBool = {0} ", Estatus) If CveCliente >= 0 Then StrSQL.AppendFormat(" AND CveCliente = {0} ", CveCliente) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTCliente = Dv.ToTable Dv.Dispose() - Else GlobalDTCliente = DirectCast(Application(AppNombre), DataTable) End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTCliente-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCliente-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTClienteClasificaciones(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTClienteClasificaciones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClienteClasificaciones-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjClientes As New ClsClientes @@ -2155,7 +1945,6 @@ Public Class ClsPaginas ObjClientes.Dispose() End If If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTClienteClasificaciones = Dv.ToTable Dv.Dispose() @@ -2164,7 +1953,7 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTClienteClasificaciones-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClienteClasificaciones-{CveEmpresa}" Application(AppNombre) = value End Set End Property @@ -2185,7 +1974,7 @@ Public Class ClsPaginas 'Variables para Ventas Property GlobalDTVendedores(CveEmpresa As Integer, Optional Estatus As Integer = 1, Optional VendedorTipo As Integer = 1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTVendedores-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTVendedores-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjVendedores As New ClsVtaVendedores @@ -2193,22 +1982,19 @@ Public Class ClsPaginas ObjVendedores.Dispose() End If If CveEmpresa <> -1 Then - Dim StrSQL As New StringBuilder StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) If VendedorTipo >= 0 Then StrSQL.AppendFormat(" AND VendedorTipo = {0} ", VendedorTipo) If Estatus >= 0 Then StrSQL.AppendFormat(" AND CveEstatus = {0} ", If(Estatus = 1, True, False)) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTVendedores = Dv.ToTable Dv.Dispose() - Else GlobalDTVendedores = DirectCast(Application(AppNombre), DataTable) End If End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTVendedores-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTVendedores-{CveEmpresa}" Application(AppNombre) = value End Set End Property @@ -2228,30 +2014,27 @@ Public Class ClsPaginas End Property Property GlobalDTCompProveedores(CveEmpresa As Integer, Optional CveProveedor As Integer = -1, Optional RFC As String = "-1") As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTCompProveedores-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCompProveedores-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjProveedores As New ClsCompProveedores If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then Application(AppNombre) = ObjProveedores.DtResultados ObjProveedores.Dispose() End If - If CveEmpresa <> -1 AndAlso Application(AppNombre) IsNot Nothing Then Dim StrSQL As New StringBuilder StrSQL.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveProveedor >= 0 Then StrSQL.AppendFormat(" AND CveProveedor = {0} ", CveProveedor) If RFC <> "-1" Then StrSQL.AppendFormat(" AND RFC = '{0}' ", RFC) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTCompProveedores = Dv.ToTable Dv.Dispose() Else GlobalDTCompProveedores = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTCompProveedores-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCompProveedores-{CveEmpresa}" Application(AppNombre) = value 'Dim ObjProveedores As New ClsCompProveedores 'If ObjProveedores.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, CveEmpresa) Then Application(AppNombre) = ObjProveedores.DtResultados @@ -2277,42 +2060,36 @@ Public Class ClsPaginas End Property Property GlobalDTContratos(CveEmpresa As Integer, Optional CveContrato As Integer = -1, Optional CveSubProyecto As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTContratos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTContratos-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Using ObjContratos As New ClsContratos If ObjContratos.GetContratos(-1, CveEmpresa) Then Application(AppNombre) = ObjContratos.DtResultados Else Application(AppNombre) = Nothing End Using End If - Dim StrSQL As New StringBuilder StrSQL.Append(" 1 = 1 ") If CveContrato >= 0 Then StrSQL.AppendFormat(" AND CveContrato = {0} ", CveContrato) If CveSubProyecto >= 0 Then StrSQL.AppendFormat(" AND CveSubProyecto = {0} ", CveSubProyecto) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTContratos = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTContratos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTContratos-{CveEmpresa}" Application(AppNombre) = value End Set End Property Property GlobalDTContratosTipos(CveEmpresa As Integer) As DataTable Get Dim AppNombre As String = "GlobalDTContratosTipos" - 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjContratos As New ClsContratos If ObjContratos.GetContratosTipos(-1) Then Application(AppNombre) = ObjContratos.DtResultados ObjContratos.Dispose() End If - GlobalDTContratosTipos = DirectCast(Application(AppNombre), DataTable) - End Get Set(value As DataTable) Dim AppNombre As String = "GlobalDTContratosTipos" @@ -2352,56 +2129,50 @@ Public Class ClsPaginas End Property Public Shared Property GlobalDTAlmacen(CveEmpresa As Integer, Optional CveTipoAlmacen As Integer = -1, Optional CveEstatus As Integer = 1, Optional CveAlmacen As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAlmacen-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAlmacen-{CveEmpresa}" 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjUsr As New ClsInventarios If ObjUsr.GetAlmacenes(-1, -1, CveEmpresa, -1) Then HttpContext.Current.Application(AppNombre) = ObjUsr.DtResultados ObjUsr.Dispose() End If - Dim Str As New StringBuilder Str.Append("1=1 AND ") If CveEmpresa <> -1 Then Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa) If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen) If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus) If CveAlmacen > 0 Then Str.AppendFormat("AND CveAlmacen = {0}", CveAlmacen) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTAlmacen = Dv.ToTable Dv.Dispose() End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAlmacen-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAlmacen-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set - End Property Property GlobalDTAlmacenUsuarios(CveUsuario As Integer, CveEmpresa As Integer, Optional CveTipoAlmacen As Integer = 1, Optional CveEstatus As Integer = 1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAlmacenUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAlmacenUsuarios-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjUsr As New ClsSisUsuarios If ObjUsr.GetAlmacen(-1, CveEmpresa) Then Application(AppNombre) = ObjUsr.DtResultados ObjUsr.Dispose() End If - Dim Str As New StringBuilder If CveEmpresa <> -1 Then Str.AppendFormat("CveUsuario = {0} AND CveEmpresa = {1} ", CveUsuario, CveEmpresa) If CveTipoAlmacen > 0 Then Str.AppendFormat("AND CveTipoAlmacen = {0}", CveTipoAlmacen) If CveEstatus > 0 Then Str.AppendFormat("AND CveEstatus = {0}", CveEstatus) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTAlmacenUsuarios = Dv.ToTable Dv.Dispose() End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAlmacenUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAlmacenUsuarios-{CveEmpresa}" Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTSeccionAlmacen(CveEmpresa As Integer, CveAlmacen As Integer) As DataTable Get Dim AppNombre As String = $"GlobalDTSeccionAlmacen-{CveEmpresa}" @@ -2424,7 +2195,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTInvPSSeccionesAlmacen(CveEmpresa As Integer, CveAlmacen As Integer, CvePS As Integer) As DataTable Get Dim dtt As DataTable = Nothing @@ -2432,7 +2202,7 @@ Public Class ClsPaginas If ObjInv.GetProductosServiciosAlmacenSeccionClasificacion(CvePS, CveAlmacen, CveEmpresa) Then dtt = ObjInv.DtResultados ObjInv.Dispose() GlobalDTInvPSSeccionesAlmacen = dtt - 'Dim AppNombre As String = String.Format("GlobalDTInvPSSeccionesAlmacen-{0}", CveEmpresa) + 'Dim AppNombre As String = $"GlobalDTInvPSSeccionesAlmacen-{CveEmpresa}" ''sino existe, recarga los datos 'If Application(AppNombre) Is Nothing Then ' Dim ObjInv As New ClsInventarios @@ -2441,11 +2211,9 @@ Public Class ClsPaginas 'End If 'If CveEmpresa <> -1 Then ' Dim Str As New StringBuilder - ' If CveEmpresa <> -1 Then Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa) ' If CveAlmacen > 0 Then Str.AppendFormat("AND CveAlmacen = {0}", CveAlmacen) ' If CvePS > 0 Then Str.AppendFormat("AND CvePS = {0}", CvePS) - ' 'si el PS no tiene definido una seccion, toma las del Almacen ' If DirectCast(Application(AppNombre), DataTable) IsNot Nothing Then ' Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) @@ -2459,18 +2227,15 @@ Public Class ClsPaginas ' 'sino tiene datos registrados, toma los de almacen ' GlobalDTInvPSSeccionesAlmacen = GlobalDTSeccionAlmacen(CveEmpresa, CveAlmacen) ' End If - 'Else ' GlobalDTInvPSSeccionesAlmacen = DirectCast(Application(AppNombre), DataTable) 'End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTInvPSSeccionesAlmacen-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTInvPSSeccionesAlmacen-{CveEmpresa}" Application(AppNombre) = value End Set End Property - Property GlobalDTNom_Periodos() As DataTable Get GlobalDTNom_Periodos = DirectCast(Application("GlobalDTNom_Periodos"), DataTable) @@ -2561,7 +2326,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - #Region "***********************************************************************DT EVENTOS****************************************************************************************" Property GlobalDTTiposEventos() As DataTable Get @@ -2571,7 +2335,6 @@ Public Class ClsPaginas Application("GlobalDTTiposEventos") = value End Set End Property - Property GlobalDTEventos() As DataTable Get GlobalDTEventos = DirectCast(Application("GlobalDTEventos"), DataTable) @@ -2580,7 +2343,6 @@ Public Class ClsPaginas Application("GlobalDTEventos") = value End Set End Property - Public Shared Property GlobalDTOIEventoTarea(CveEmpresa As Integer, Optional CveUsuario As Integer = -1) As DataTable Get Dim AppNombre As String = $"GlobalDTOIEventoTarea-{CveEmpresa}" @@ -2603,7 +2365,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTOIEstatusEventos(Optional CveEventoEstatus As Integer = -1) As DataTable Get Dim AppNombre As String = "GlobalDTOIEstatusEventos" @@ -2626,7 +2387,6 @@ Public Class ClsPaginas End Set End Property #End Region - #Region " **********************************************************************DT PROSPECTOS*************************************************************************************" Property GlobalDTProspectosCaracteristicasClasificaciones() As DataTable Get @@ -2647,7 +2407,6 @@ Public Class ClsPaginas Property GlobalDTProspectosCaracteristicas(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTProspectosCaracteristicas"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) GlobalDTProspectosCaracteristicas = Dv.ToTable Dv.Dispose() @@ -2659,7 +2418,6 @@ Public Class ClsPaginas Application("GlobalDTProspectosCaracteristicas") = value End Set End Property - Property GlobalDTProspectosCaracteristicasOpciones() As DataTable Get GlobalDTProspectosCaracteristicasOpciones = DirectCast(Application("GlobalDTProspectosCaracteristicasOpciones"), DataTable) @@ -2669,7 +2427,6 @@ Public Class ClsPaginas End Set End Property #End Region - #Region "***********************************************************************DT ACTIVOS FIJOS**********************************************************************************" Property GlobalDTActivoFijos(CveEmpresa As Integer, Optional CveSubTipoActivoFijo As Integer = -1, Optional CveActivoFijo As Integer = -1) As DataTable Get @@ -2677,16 +2434,13 @@ Public Class ClsPaginas 'Dim Str As New StringBuilder 'Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) 'If CveSubTipoActivoFijo <> -1 Then Str.AppendFormat(" AND CveSubTipoActivoFijo = {0}", CveSubTipoActivoFijo) - Dim ObjAF As New ClsAF 'If ObjAF.GetActivosFijos(CveActivoFijo, UsuarioActual.CveEmpresa, "-1", "-1", -1, -1, -1, "-1", -1, -1, -1, -1, -1) Then If ObjAF.GetActivosFijos(CveActivoFijo, CveEmpresa, "-1", "-1", -1, CveSubTipoActivoFijo, "-1", -1, -1, -1, -1, -1, "", -1) Then dt = ObjAF.DtResultados End If - ObjAF.Dispose() GlobalDTActivoFijos = dt - End Get Set(ByVal value As DataTable) Application("GlobalDTActivoFijos") = value @@ -2703,13 +2457,10 @@ Public Class ClsPaginas Property GlobalDTMarcaActivoFijo(CveEmpresa As Integer) As DataTable Get Dim dt As DataTable = Nothing - Dim ObjAF As New ClsAF - If ObjAF.GetMarcasActivosFijos(CveEmpresa) Then dt = ObjAF.DtResultados End If - ObjAF.Dispose() GlobalDTMarcaActivoFijo = dt End Get @@ -2720,13 +2471,10 @@ Public Class ClsPaginas Property GlobalDTModeloActivoFijo(CveEmpresa As Integer, CveMarca As Integer) As DataTable Get Dim dt As DataTable = Nothing - Dim ObjAF As New ClsAF - If ObjAF.GetModelosActivosFijos(CveEmpresa, CveMarca) Then dt = ObjAF.DtResultados End If - ObjAF.Dispose() GlobalDTModeloActivoFijo = dt End Get @@ -2734,32 +2482,26 @@ Public Class ClsPaginas Application("GlobalDTModeloActivoFijo") = value End Set End Property - Property GlobalDTSubTipoActivoFijo(CveEmpresa As Integer, Optional CveTipoActivoFijo As Integer = -1) As DataTable - Get - Dim AppNombre As String = String.Format("GlobalDTSubTipoActivoFijo-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubTipoActivoFijo-{CveEmpresa}" 'sino existe, recarga los datos If Application(AppNombre) Is Nothing Then Dim ObjSubTipos As New ClsAF If ObjSubTipos.GetSubTiposActivosFijos(CveEmpresa) Then Application(AppNombre) = ObjSubTipos.DtResultados ObjSubTipos.Dispose() End If - Dim Str As New StringBuilder - If CveEmpresa <> -1 Then Str.AppendFormat(" CveEmpresa = {0} ", CveEmpresa) If CveTipoActivoFijo > 0 Then Str.AppendFormat("AND CveTipoActivoFijo = {0}", CveTipoActivoFijo) Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTSubTipoActivoFijo = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTSubTipoActivoFijo-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTSubTipoActivoFijo-{CveEmpresa}" Application(AppNombre) = value End Set - 'Get ' If CveEmpresa <> -1 Then ' Dim Dv As New DataView(DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) @@ -2787,9 +2529,7 @@ Public Class ClsPaginas Application("GlobalDTTipoActivoFijo") = value End Set End Property - #End Region - #Region "***********************************************************************DT GENERALES**************************************************************************************" Property GlobalDTGralCategorias(CveEmpresa As Integer) As DataTable Get @@ -2800,12 +2540,10 @@ Public Class ClsPaginas If ObjGenerales.GetCategorias(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - Dim filtro As New StringBuilder 'If CveMarca > 0 Then ' filtro.AppendFormat(" CveMarca={0} ", CveMarca) 'End If - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralCategorias = Dv.ToTable Dv.Dispose() @@ -2824,12 +2562,10 @@ Public Class ClsPaginas If ObjGenerales.GetCategorias(CveEmpresa, 4) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - Dim filtro As New StringBuilder 'If CveMarca > 0 Then ' filtro.AppendFormat(" CveMarca={0} ", CveMarca) 'End If - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralCategorias2 = Dv.ToTable Dv.Dispose() @@ -2854,7 +2590,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTGralColectivas(CveEmpresa As Integer) As DataTable Get Dim AppNombre As String = $"GlobalDTGralColectivas-{CveEmpresa}" @@ -2870,7 +2605,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTGralMarcas(CveEmpresa As Integer, Optional CveMarca As Integer = -1) As DataTable Get Dim AppNombre As String = $"GlobalDTGralMarcas-{CveEmpresa}" @@ -2880,26 +2614,21 @@ Public Class ClsPaginas If ObjMarcas.GetMarcas(CveEmpresa) Then Application(AppNombre) = ObjMarcas.DtResultados Else Application(AppNombre) = Nothing ObjMarcas.Dispose() End If - Dim filtro As New StringBuilder If CveMarca > 0 Then filtro.AppendFormat(" CveMarca={0} ", CveMarca) End If - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTGralMarcas = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = $"GlobalDTGralMarcas-{CveEmpresa}" Application(AppNombre) = value End Set End Property - #End Region - #Region "***********************************************************************DT PROSPECTOS*************************************************************************************" Property GlobalDTProspectosSupervisores(CveEmpresa As Integer) As DataTable Get @@ -2924,12 +2653,10 @@ Public Class ClsPaginas Dim Dv As New DataView(DirectCast(Application("GlobalDTProspectosCoordinadores"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTProspectosCoordinadores = Dv.ToTable Dv.Dispose() - Else GlobalDTProspectosCoordinadores = DirectCast(Application("GlobalDTProspectosCoordinadores"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosCoordinadores") = value End Set @@ -2944,7 +2671,6 @@ Public Class ClsPaginas GlobalDTProspectosApoyos = DirectCast(Application("GlobalDTProspectosApoyos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosApoyos") = value End Set @@ -3020,7 +2746,6 @@ Public Class ClsPaginas GlobalDTProspectosApoyosTipos = DirectCast(Application("GlobalDTProspectosApoyosTipos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosApoyosTipos") = value End Set @@ -3037,17 +2762,14 @@ Public Class ClsPaginas Get Dim Str As New StringBuilder If CveEmpresa <> -1 Then Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) - If Str.Length > 0 Then Dim Dv As New DataView(DirectCast(Application("GlobalDTProspectosEncuestas"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTProspectosEncuestas = Dv.ToTable Dv.Dispose() - Else GlobalDTProspectosEncuestas = DirectCast(Application("GlobalDTProspectosEncuestas"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosEncuestas") = value End Set @@ -3058,17 +2780,14 @@ Public Class ClsPaginas If CveEmpresa <> -1 Then Str.AppendFormat("CveEmpresa = {0}", CveEmpresa) If CveEncuesta <> -1 Then Str.AppendFormat(" {0} CveEncuesta = {1}", If(Str.Length > 0, "AND", ""), CveEncuesta) - If Str.Length > 0 Then Dim Dv As New DataView(DirectCast(Application("GlobalDTProspectosEncuestasPreguntas"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTProspectosEncuestasPreguntas = Dv.ToTable Dv.Dispose() - Else GlobalDTProspectosEncuestasPreguntas = DirectCast(Application("GlobalDTProspectosEncuestasPreguntas"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosEncuestasPreguntas") = value End Set @@ -3080,17 +2799,14 @@ Public Class ClsPaginas If CveEncuesta <> -1 Then Str.AppendFormat(" {0} CveEncuesta = {1}", If(Str.Length > 0, "AND", ""), CveEncuesta) If CvePregunta <> -1 Then Str.AppendFormat(" {0} CvePregunta = {1}", If(Str.Length > 0, "AND", ""), CvePregunta) - If Str.Length > 0 Then Dim Dv As New DataView(DirectCast(Application("GlobalDTProspectosEncuestasRespuestas"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTProspectosEncuestasRespuestas = Dv.ToTable Dv.Dispose() - Else GlobalDTProspectosEncuestasRespuestas = DirectCast(Application("GlobalDTProspectosEncuestasRespuestas"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosEncuestasRespuestas") = value End Set @@ -3109,7 +2825,6 @@ Public Class ClsPaginas Application("GlobalDTProspectosTipos") = value End Set End Property - #Region " DT PROSPECTOS SOLICITUDES" Property GlobalDTProspectosSolicitudes(CveEmpresa As Integer) As DataTable Get @@ -3135,7 +2850,6 @@ Public Class ClsPaginas GlobalDTProspectosSolicitudesEstatus = DirectCast(Application("GlobalDTProspectosSolicitudesEstatus"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosSolicitudesEstatus") = value End Set @@ -3150,7 +2864,6 @@ Public Class ClsPaginas GlobalDTProspectosSolicitudesTipos = DirectCast(Application("GlobalDTProspectosSolicitudesTipos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosSolicitudesTipos") = value End Set @@ -3177,14 +2890,10 @@ Public Class ClsPaginas Application("GlobalDTProspectosSolicitudesApoyos") = value End Set End Property - #End Region #End Region - #Region "**********************************************DT AMORTIZACIÓN CONTABLE PLAN DE DESARROLLO********************************************************************************" - #Region "***********************************************************************DT AMORTIZACIÓN CONTABLE*********************************************************************************************" - Property GlobalDTAC_RubrosIngreso() As DataTable Get GlobalDTAC_RubrosIngreso = DirectCast(Application("GlobalDTAC_RubrosIngreso"), DataTable) @@ -3208,7 +2917,6 @@ Public Class ClsPaginas Application("GlobalDTAC_FuentesRecaudacion") = value End Set End Property - Property GlobalDTAC_FuentesFinanciamiento() As DataTable Get GlobalDTAC_FuentesFinanciamiento = DirectCast(Application("GlobalDTAC_FuentesFinanciamiento"), DataTable) @@ -3408,7 +3116,6 @@ Public Class ClsPaginas Application("GlobalDTAC_TipoGasto") = value End Set End Property - Property GlobalDTAC_ProgramaOperativo(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then @@ -3423,7 +3130,6 @@ Public Class ClsPaginas Application("GlobalDTAC_ProgramaOperativo") = value End Set End Property - Property GlobalDTAC_MatrizIngresos() As DataTable Get GlobalDTAC_MatrizIngresos = DirectCast(Application("GlobalDTAC_MatrizIngresos"), DataTable) @@ -3432,7 +3138,6 @@ Public Class ClsPaginas Application("GlobalDTAC_MatrizIngresos") = value End Set End Property - Property GlobalDTAC_MatrizEgresos() As DataTable Get GlobalDTAC_MatrizEgresos = DirectCast(Application("GlobalDTAC_MatrizEgresos"), DataTable) @@ -3442,9 +3147,7 @@ Public Class ClsPaginas End Set End Property - #End Region - Property GlobalDTAC_PD_EjeRector(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then @@ -3454,13 +3157,11 @@ Public Class ClsPaginas Else GlobalDTAC_PD_EjeRector = DirectCast(Application("GlobalDTAC_PD_EjeRector"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTAC_PD_EjeRector") = value End Set End Property - Property GlobalDTAC_PD_Programas(CveEjeRector As Integer) As DataTable Get If CveEjeRector <> -1 Then @@ -3470,13 +3171,11 @@ Public Class ClsPaginas Else GlobalDTAC_PD_Programas = DirectCast(Application("GlobalDTAC_PD_Programas"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTAC_PD_Programas") = value End Set End Property - Property GlobalDTAC_PD_Estrategias(CveProgramas As Integer) As DataTable Get If CveProgramas <> -1 Then @@ -3486,13 +3185,11 @@ Public Class ClsPaginas Else GlobalDTAC_PD_Estrategias = DirectCast(Application("GlobalDTAC_PD_Estrategias"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTAC_PD_Estrategias") = value End Set End Property - Property GlobalDTAC_PD_LineasAccion(CveEstrategias As Integer) As DataTable Get If CveEstrategias <> -1 Then @@ -3502,13 +3199,11 @@ Public Class ClsPaginas Else GlobalDTAC_PD_LineasAccion = DirectCast(Application("GlobalDTAC_PD_LineasAccion"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTAC_PD_LineasAccion") = value End Set End Property - Property GlobalDTAC_PD_Metas(CveLineasAccion As Integer) As DataTable Get If CveLineasAccion <> -1 Then @@ -3518,14 +3213,12 @@ Public Class ClsPaginas Else GlobalDTAC_PD_Metas = DirectCast(Application("GlobalDTAC_PD_Metas"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTAC_PD_Metas") = value End Set End Property #End Region - #Region "***********************************************************************GLOBAL DT ORDENES DE COMPRA***********************************************************************" Property GlobalDTOCEstatus(CveEmpresa As Integer) As DataTable Get @@ -3543,22 +3236,17 @@ Public Class ClsPaginas End Property Property GlobalDTOCEstatusUsuarios(CveEmpresa As Integer, Optional CveUsuario As Integer = -1, Optional Tipo As String = "") As DataTable Get - - Dim AppNombre As String = String.Format("GlobalDTOCEstatusUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTOCEstatusUsuarios-{CveEmpresa}" 'sino existe, recarga los datos If DirectCast(Application(AppNombre), DataTable) Is Nothing Then - Dim ObjOC As New ClsOC If ObjOC.GetEstatusUsuarios(-1, -1, -1, -1, CveEmpresa) Then Application(AppNombre) = ObjOC.DtResultados Else Application(AppNombre) = Nothing End If - ObjOC.Dispose() - End If - If CveEmpresa <> -1 Then Dim filtro As New StringBuilder filtro.AppendFormat("CveEmpresa = {0} ", CveEmpresa) @@ -3571,22 +3259,17 @@ Public Class ClsPaginas Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), filtro.ToString, "", DataViewRowState.CurrentRows) GlobalDTOCEstatusUsuarios = Dv.ToTable Dv.Dispose() - Else GlobalDTOCEstatusUsuarios = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTOCEstatusUsuarios-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTOCEstatusUsuarios-{CveEmpresa}" Application(AppNombre) = value End Set End Property - - #End Region - #Region "F I N A N Z A S " Property GlobalDTFinan_RazonesFinancieras() As DataTable Get @@ -3597,8 +3280,6 @@ Public Class ClsPaginas End Set End Property #End Region - - #Region "***********************************************************************GLOBAL DT CONTABILIDAD****************************************************************************" Public Shared Property GlobalDTContaPlantillasPolizas(CveEmpresa As Integer, Optional TipoPlantilla As Integer = -1) As DataTable Get @@ -3609,20 +3290,16 @@ Public Class ClsPaginas ObjContabilidad.Dispose() End If Dim Str As New StringBuilder - If TipoPlantilla <> -1 Then Str.AppendFormat(" TipoPlantilla = {0}", TipoPlantilla) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTContaPlantillasPolizas = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = $"GlobalDTContaPlantillasPolizas-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTContaPlantillasPolizasDetalle(CveEmpresa As Integer, CvePlantillaPoliza As Integer) As DataTable Get Dim AppNombre As String = $"GlobalDTContaPlantillasPolizasDetalle-{CveEmpresa}" @@ -3632,20 +3309,16 @@ Public Class ClsPaginas ObjContabilidad.Dispose() End If Dim Str As New StringBuilder - If CvePlantillaPoliza <> -1 Then Str.AppendFormat(" CvePlantillaPoliza = {0}", CvePlantillaPoliza) - Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTContaPlantillasPolizasDetalle = Dv.ToTable Dv.Dispose() - End Get Set(value As DataTable) Dim AppNombre As String = $"GlobalDTContaPlantillasPolizasDetalle-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTContaConceptosContables(CveConceptoContable As Integer) As DataTable Get Dim AppNombre As String = String.Format("GlobalDTContaConceptosContables") @@ -3668,7 +3341,6 @@ Public Class ClsPaginas End Set End Property #End Region - #Region "**********************************************************************GLOBAL DT RH (RECURSOS HUMANOS)********************************************************************" Property GlobalDTAsistenciaDetalle() As DataTable Get @@ -3679,7 +3351,6 @@ Public Class ClsPaginas If ObjPersonal.GetAsistenciasDetalle() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTAsistenciaDetalle = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3696,7 +3367,6 @@ Public Class ClsPaginas If ObjPersonal.GetAsistenciasInasistencias() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTAsistenciasInasistencias = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3713,7 +3383,6 @@ Public Class ClsPaginas If ObjPersonal.GetEstatusPersonal() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTEstatusPersonal = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3730,14 +3399,12 @@ Public Class ClsPaginas If ObjPersonal.GetPersonal(-1, CveEmpresa) Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTRHPersonal = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) Dim AppNombre As String = $"GlobalDTRHPersonal-{CveEmpresa}" Application(AppNombre) = value End Set - End Property Property GlobalDTDepartamentos() As DataTable Get @@ -3748,7 +3415,6 @@ Public Class ClsPaginas If ObjPersonal.GetDepartamentos() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTDepartamentos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3765,7 +3431,6 @@ Public Class ClsPaginas If ObjPersonal.GetPuestos(CveEmpresa) Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTRHPuestos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3782,7 +3447,6 @@ Public Class ClsPaginas If ObjPersonal.GetEscolaridades() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTEscolaridad = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3799,7 +3463,6 @@ Public Class ClsPaginas If ObjPersonal.GetEstadoCivil() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTEstadoCivil = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3816,7 +3479,6 @@ Public Class ClsPaginas If ObjPersonal.GetDocumentos() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTDocumentos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3833,7 +3495,6 @@ Public Class ClsPaginas If ObjPersonal.GetGeneros() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTGenero = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3850,7 +3511,6 @@ Public Class ClsPaginas If ObjPersonal.GetMotivoBaja() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTMotivoBaja = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3867,7 +3527,6 @@ Public Class ClsPaginas If ObjPersonal.GetTiposContrato() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTTiposContrato = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3884,7 +3543,6 @@ Public Class ClsPaginas If ObjPersonal.GetRutas() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTRutas = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3901,7 +3559,6 @@ Public Class ClsPaginas If ObjPersonal.GetTurnos() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTTurno = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3918,7 +3575,6 @@ Public Class ClsPaginas If ObjPersonal.GetJornadas() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTJornadas = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3935,7 +3591,6 @@ Public Class ClsPaginas If ObjPersonal.GetMotivoHorasExtras() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTMotivosHorasExtras = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3952,7 +3607,6 @@ Public Class ClsPaginas If ObjPersonal.GetTipoBuzon() Then Application(AppNombre) = ObjPersonal.DtResultados ObjPersonal.Dispose() End If - GlobalDTTipoBuzon = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -3961,9 +3615,7 @@ Public Class ClsPaginas End Set End Property #End Region - #Region "*********** D T - C O M B U S T I B L E S ***********" - Property GlobalDTCombustibles(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then @@ -3972,29 +3624,22 @@ Public Class ClsPaginas Dim Dv As New DataView(DirectCast(Application("GlobalDTCombustibles"), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTCombustibles = Dv.ToTable Dv.Dispose() - Else GlobalDTCombustibles = DirectCast(Application("GlobalDTCombustibles"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTCombustibles") = value End Set End Property - Property GlobalDTCombustiblesTipos(Optional CveCombustibleTipo As Integer = -1) As DataTable Get - If CveCombustibleTipo <> -1 Then - Dim StrSQL As New StringBuilder If CveCombustibleTipo <> -1 Then StrSQL.AppendFormat("CveCombustibleTipo = {0}", CveCombustibleTipo) - Dim Dv As New DataView(DirectCast(Application("GlobalDTCombustiblesTipos"), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTCombustiblesTipos = Dv.ToTable Dv.Dispose() - Else GlobalDTCombustiblesTipos = DirectCast(Application("GlobalDTCombustiblesTipos"), DataTable) End If @@ -4004,9 +3649,7 @@ Public Class ClsPaginas End Set End Property #End Region - #Region "*********** D T - M A N T E N I M I E N T O S ***********" - Property GlobalDTMantenimientosTipos() As DataTable Get GlobalDTMantenimientosTipos = DirectCast(Application("GlobalDTMantenimientosTipos"), DataTable) @@ -4015,7 +3658,6 @@ Public Class ClsPaginas Application("GlobalDTMantenimientosTipos") = value End Set End Property - Property GlobalDTMantenimientos() As DataTable Get GlobalDTMantenimientos = DirectCast(Application("GlobalDTMantenimientos"), DataTable) @@ -4024,34 +3666,24 @@ Public Class ClsPaginas Application("GlobalDTMantenimientos") = value End Set End Property - Property GlobalDTMantenimientosTipos(Optional CveMantenimientoTipo As Integer = -1) As DataTable Get - If CveMantenimientoTipo <> -1 Then - Dim StrSQL As New StringBuilder If CveMantenimientoTipo <> -1 Then StrSQL.AppendFormat("CveMantenimientoTipo = {0}", CveMantenimientoTipo) - Dim Dv As New DataView(DirectCast(Application("GlobalDTMantenimientosTipos"), DataTable), StrSQL.ToString, "", DataViewRowState.CurrentRows) GlobalDTMantenimientosTipos = Dv.ToTable Dv.Dispose() - Else GlobalDTMantenimientosTipos = DirectCast(Application("GlobalDTMantenimientosTipos"), DataTable) End If End Get Set(ByVal value As DataTable) - Application("GlobalDTMantenimientosTipos") = value End Set End Property - #End Region - - #Region "*********** D T - T A L L E R E S ***********" - Property GlobalDTTalleresTipos() As DataTable Get GlobalDTTalleresTipos = DirectCast(Application("GlobalDTTalleresTipos"), DataTable) @@ -4060,7 +3692,6 @@ Public Class ClsPaginas Application("GlobalDTTalleresTipos") = value End Set End Property - Property GlobalDTTalleres() As DataTable Get GlobalDTTalleres = DirectCast(Application("GlobalDTTalleres"), DataTable) @@ -4069,11 +3700,8 @@ Public Class ClsPaginas Application("GlobalDTTalleres") = value End Set End Property - #End Region - #Region "*********** D T - D I S T R I B U I D O R E S ***********" - Property GlobalDTDistribuidoresTipos() As DataTable Get GlobalDTDistribuidoresTipos = DirectCast(Application("GlobalDTDistribuidoresTipos"), DataTable) @@ -4082,7 +3710,6 @@ Public Class ClsPaginas Application("GlobalDTDistribuidoresTipos") = value End Set End Property - Property GlobalDTDistribuidores() As DataTable Get GlobalDTDistribuidores = DirectCast(Application("GlobalDTDistribuidores"), DataTable) @@ -4091,9 +3718,7 @@ Public Class ClsPaginas Application("GlobalDTDistribuidores") = value End Set End Property - #End Region - Public Class SisParametro Public Property CveParametro As Integer Public Property CveModulo As Integer @@ -4106,12 +3731,9 @@ Public Class ClsPaginas Public Property Fecha2 As DateTime Public Property FechaVencimiento As DateTime End Class - ReadOnly Property GlobalDTParametros(CveParametro As SisParametros) As SisParametro Get - Dim dr As DataRow = DirectCast(Application("GlobalDTParametros"), DataTable).FiltroPrimero("CveParametro =" & CveParametro, "") - If dr IsNot Nothing Then Dim Par As New SisParametro Par.CveParametro = dr("CveParametro").ToString.ToEntero @@ -4128,10 +3750,8 @@ Public Class ClsPaginas Else GlobalDTParametros = Nothing End If - End Get End Property - Public Shared Property GlobalDTOIRevision(CveEmpresa As Integer) As DataTable Get Dim AppNombre As String = $"GlobalDTOIRevision-{CveEmpresa}" @@ -4148,7 +3768,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTOIAgendaTipo() As DataTable Get Dim AppNombre As String = "GlobalDTOIAgendaTipo" @@ -4164,7 +3783,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTVtaCondicionesEntrega(Optional CveEmpresa As Integer = -1) As DataTable Get Dim AppNombre As String = $"GlobalDTVtaCondicionesEntrega-{CveEmpresa}" @@ -4190,7 +3808,6 @@ Public Class ClsPaginas If ObjGenerales.GetGralPaqueteriasGuiasTipo(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - GlobalDTPaqueteriaGuiaTipos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -4200,7 +3817,6 @@ Public Class ClsPaginas End Property Public Shared Property GlobalDTClasificacionPorcentaje(CveEmpresa As Integer, Optional CveClasicacionPorcentaje As Integer = -1, Optional CveClasicacion As Integer = -1, Optional PorcentajeIVA As Double = -1) As DataTable - Get Dim Str As StringBuilder = New StringBuilder() If CveEmpresa <> -1 Or CveClasicacionPorcentaje <> -1 Or CveClasicacion <> -1 Or PorcentajeIVA <> -1 Then @@ -4221,112 +3837,95 @@ Public Class ClsPaginas End Property Property GlobalDTPaqueterias(CveEmpresa As Integer, Optional TipoPaqueteria As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTPaqueterias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPaqueterias-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Dim ObjGenerales As New ClsGenerales If ObjGenerales.GetGralPaqueterias(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados Else Application(AppNombre) = Nothing ObjGenerales.Dispose() End If - Dim Str As StringBuilder = New StringBuilder() If TipoPaqueteria <> -1 Then Str.AppendFormat("TipoPaqueteria = {0}", TipoPaqueteria) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTPaqueterias = Dv.ToTable Dv.Dispose() Str.Clear() End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTPaqueterias-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTPaqueterias-{CveEmpresa}" Application(AppNombre) = value End Set End Property Public Shared Property GlobalDTAcumTiposDefecto(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAcumTiposDefecto-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumTiposDefecto-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjAcumuladores As New ClsAcumuladores() If ObjAcumuladores.TiposDefectoGet(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjAcumuladores.DtResultados ObjAcumuladores.Dispose() End If GlobalDTAcumTiposDefecto = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAcumTiposDefecto-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumTiposDefecto-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property Public Shared Property GlobalDTAcumTiposUso(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAcumTiposUso-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumTiposUso-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Dim ObjAcumuladores As New ClsAcumuladores() If ObjAcumuladores.TiposUsoGet(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjAcumuladores.DtResultados ObjAcumuladores.Dispose() End If GlobalDTAcumTiposUso = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAcumTiposUso-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumTiposUso-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTAcumGarantiasMesesTipoUso(CveEmpresa As Integer, CveMarca As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAcumGarantiasMesesTipoUso-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumGarantiasMesesTipoUso-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Dim ObjAcumuladores As New ClsAcumuladores() If ObjAcumuladores.GarantiasMesesGet(-1, CveEmpresa) Then Application(AppNombre) = ObjAcumuladores.DtResultados.FiltraParametros("", DistinctColumns:={"CveMarca", "CveTipoUso", "TipoUso"}) ObjAcumuladores.Dispose() End If - If CveMarca <> -1 Then Dim Str As StringBuilder = New StringBuilder() If CveMarca <> -1 Then Str.AppendFormat("CveMarca = {0}", CveMarca) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTAcumGarantiasMesesTipoUso = Dv.ToTable Dv.Dispose() Else GlobalDTAcumGarantiasMesesTipoUso = DirectCast(Application(AppNombre), DataTable) End If - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAcumGarantiasMesesTipoUso-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumGarantiasMesesTipoUso-{CveEmpresa}" Application(AppNombre) = value End Set End Property - - - Property GlobalDTCultivosCuadro(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTCultivosCuadro-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCultivosCuadro-{CveEmpresa}" If Application(AppNombre) Is Nothing Then - Dim ObjGenerales As New ClsGenerales() If ObjGenerales.GetCultivosCuadro(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() - End If - GlobalDTCultivosCuadro = DirectCast(Application(AppNombre), DataTable) - End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTCultivosCuadro-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTCultivosCuadro-{CveEmpresa}" Application(AppNombre) = value End Set End Property - Public Shared Property GlobalDTAcumTamaños(CveEmpresa As Integer) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTAcumTamaños-{0}", CveEmpresa) - + Dim AppNombre As String = $"GlobalDTAcumTamaños-{CveEmpresa}" If HttpContext.Current.Application(AppNombre) Is Nothing Then Using ObjAcumuladores As New ClsAcumuladores() If ObjAcumuladores.TamañoGet(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjAcumuladores.DtResultados Else HttpContext.Current.Application(AppNombre) = Nothing @@ -4335,16 +3934,13 @@ Public Class ClsPaginas GlobalDTAcumTamaños = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTAcumTamaños-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTAcumTamaños-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set End Property - - Property GlobalDTClientesVendedoresSubProyectos(CveEmpresa As Integer, Optional CveCliente As Integer = -1, Optional CveSubProyecto As Integer = -1) As DataTable Get - Dim AppNombre As String = String.Format("GlobalDTClientesVendedoresSubProyectos-{0}", CveEmpresa) - + Dim AppNombre As String = $"GlobalDTClientesVendedoresSubProyectos-{CveEmpresa}" If Application(AppNombre) Is Nothing Then Dim ObjInv As New ClsVentas If ObjInv.GetClientesVendedoresSubProyectos(-1, -1, -1, CveEmpresa) Then Application(AppNombre) = ObjInv.DtResultados @@ -4354,16 +3950,14 @@ Public Class ClsPaginas Str.Append("1 = 1 ") If CveCliente <> -1 Then Str.AppendFormat(" AND CveCliente = {0} ", CveCliente) If CveSubProyecto <> -1 Then Str.AppendFormat(" AND CveSubProyecto = {0} ", CveSubProyecto) - Dim Dv As New DataView(DirectCast(Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTClientesVendedoresSubProyectos = Dv.ToTable End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTClientesVendedoresSubProyectos-{0}", CveEmpresa) + Dim AppNombre As String = $"GlobalDTClientesVendedoresSubProyectos-{CveEmpresa}" Application(AppNombre) = value End Set End Property - #Region "CITRUS GAME" Property GlobalDTGralEmpacados(CveEmpresa As Integer) As DataTable Get @@ -4373,7 +3967,6 @@ Public Class ClsPaginas If ObjGenerales.GetEmpacados(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - GlobalDTGralEmpacados = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -4389,7 +3982,6 @@ Public Class ClsPaginas If ObjGenerales.GetTipoOrganicos(CveEmpresa) Then Application(AppNombre) = ObjGenerales.DtResultados ObjGenerales.Dispose() End If - GlobalDTGralTipoOrganicos = DirectCast(Application(AppNombre), DataTable) End Get Set(value As DataTable) @@ -4398,17 +3990,12 @@ Public Class ClsPaginas End Set End Property #End Region -#End Region - - #Region "GDT'S RASTREO" Property GlobalDTDispositivos(CveCliente As Integer) As DataTable Get Dim Str As StringBuilder = New StringBuilder() - If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) - If CveCliente <> -1 Then Dim Dv As New DataView(DirectCast(Application("GlobalDTDispositivos"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTDispositivos = Dv.ToTable @@ -4416,19 +4003,16 @@ Public Class ClsPaginas Else GlobalDTDispositivos = DirectCast(Application("GlobalDTDispositivos"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTDispositivos") = value End Set End Property - Public Sub RecargaGlobalDTDispositivos(GPS As ClsGPS) If GPS.DispositivosGet(-1, -1, -1, -1) Then GlobalDTDispositivos(-1) = GPS.DtResultados End If End Sub - Property GlobalDTDispositivosUsuarios(CveCliente As Integer, Optional CveUsuario As Integer = -1) As DataTable Get If Application("GlobalDTDispositivosUsuarios") Is Nothing Then @@ -4438,13 +4022,10 @@ Public Class ClsPaginas End If ObjGPS.Dispose() End If - Dim Str As StringBuilder = New StringBuilder() - If CveUsuario <> -1 Then Str.AppendFormat("CveUsuario = {0}", CveUsuario) If CveCliente <> -1 Then Str.AppendFormat(" {0} CveCliente = {1}", If(Str.Length > 0, "AND", ""), CveCliente) - If CveUsuario <> -1 OrElse CveCliente <> -1 Then Dim Dv As New DataView(DirectCast(Application("GlobalDTDispositivosUsuarios"), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) GlobalDTDispositivosUsuarios = Dv.ToTable @@ -4452,20 +4033,19 @@ Public Class ClsPaginas Else GlobalDTDispositivosUsuarios = DirectCast(Application("GlobalDTDispositivosUsuarios"), DataTable) End If - End Get Set(value As DataTable) Application("GlobalDTDispositivosUsuarios") = value End Set End Property - +#End Region #End Region +#Region "Funciones" Public Enum SisParametros As Integer URL = 1 DirectorioSitio = 2 eFacturasCaptcha = 3 - RutaEmpresasJM = 500 RutaEmpresasRM = 501 RutaEmpresasPC = 502 @@ -4476,16 +4056,13 @@ Public Class ClsPaginas Private Function IsCurrentDate(Ticks As Long) As Boolean Dim FechaRequest As DateTime = New DateTime(Ticks) Dim FechaServer As DateTime = DateTime.UtcNow - Return (FechaRequest > (FechaServer).AddMinutes(-5) And FechaRequest < (FechaServer).AddMinutes(5)) End Function Private Function URLRequestParams(Cadena As String) As Hashtable Dim P1() As String = Cadena.Split("&"c) Dim Tmp As String Dim P2() As String - Dim URLParametros As New Hashtable - For Each Tmp In P1 P2 = Tmp.Replace("%26%", "&").Split("="c) URLParametros.Add(P2(0).ToString.ToUpper, P2(1)) @@ -4497,14 +4074,11 @@ Public Class ClsPaginas pages.Add("/Compras/PopUpVerFactura.aspx") Return pages End Function - Dim sw As Diagnostics.Stopwatch Protected Overridable Sub Page_PreInit(sender As Object, e As EventArgs) Handles Me.PreInit - If Not User.Identity.IsAuthenticated OrElse UsuarioActual Is Nothing Then Dim AuthorizeRequest As Boolean = False Dim HuboError = False Dim statusCode = 200 - If AuthorizePageWithoutSessions().Contains(Request.ServerVariables("URL")) Then If Request.Headers("ADSToken") IsNot Nothing AndAlso Request.Headers("Host") IsNot Nothing Then Try @@ -4514,26 +4088,21 @@ Public Class ClsPaginas ' Usuario.CerrarSession() ' Response.End() 'End If - Dim UserParams As Hashtable = URLRequestParams(Decripta((Request.Headers("ADSToken").ToString))) - Dim CveEmpresaToken As Integer = UserParams("CVEEMPRESA").ToString().ToEntero() Dim Ticks As Long = UserParams("TICKS").ToString().ToLong() - AuthorizeRequest = IsCurrentDate(Ticks) AndAlso CveEmpresaToken > 0 Catch ex As Exception HuboError = True AuthorizeRequest = False OnError("Ocurrió un error al leer el token de autorización", ex) Finally - If HuboError Then statusCode = 500 End If If Not AuthorizeRequest Then statusCode = 401 End If - End Try Else AuthorizeRequest = False @@ -4541,43 +4110,33 @@ Public Class ClsPaginas Else AuthorizeRequest = False End If - Response.StatusCode = statusCode If Not AuthorizeRequest Then Usuario.CerrarSession() Response.End() End If - Else - - sw = New Diagnostics.Stopwatch - sw.Start() + LocalStopwatch.Value.Restart() If Not Page.IsPostBack Then - 'If Not CType(Session("UsuarioSIG"), Usuario).SeleccionoEmpresa AndAlso Request.ServerVariables("URL") <> "/Sistemas/PopUpSeleccionarEmpresa.aspx" Then ' Response.Redirect("/Sistemas/PopUpSeleccionarEmpresa.aspx") ' 'Alert(Request.ServerVariables("URL")) 'End If - Dim i As Integer = Obt_ClavePagina(Request.ServerVariables("URL")) Dim FailURL As String = $"{FormsAuthentication.DefaultUrl}?ADCod={Encripta($"CveModulo={i}")}" - 'si es <0 la página es sin restricciones If i = -1 Then CveModulo = -333 Else CveModulo = i If i > 0 Then - If Not UsuarioActual.TienePermisoPagina(i) Then Response.Redirect(FailURL) End If - Else Response.Redirect(FailURL) End If End If - 'Else ' If ViewState("TipoPermiso") IsNot Nothing Then TipoPermiso = ViewState("TipoPermiso").ToString End If @@ -4592,27 +4151,3935 @@ Public Class ClsPaginas ' Exit For ' End If 'Next - ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.SetAspSig, ASPSIG:=Request.Cookies.Get(".ASPXSIG").Value) UsuarioActual.isLoginseted = True End If - 'ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.SetAspSig, ASPSIG:=Request.Cookies[".ASPXSIG"].ToString()) ADSSession.ADSSessionConfig.SessionManager(ADSSession.OpcionSession.CambiarModulo, Nothing, -1, "", Request.Url.PathAndQuery.ToString()) 'If Me.Request.ServerVariables("http_user_agent").ToLower.Contains("safari") AndAlso Page.ClientTarget <> "uplevel" Then Page.ClientTarget = "uplevel" 'Código agregado para que muestre bién el menu, en chrome End If End Sub + Public Sub CerrarSession() + Usuario.CerrarSession() + End Sub + Private Shared Function GetCurrentPageViewState() As System.Web.UI.StateBag + Dim page As Page = TryCast(HttpContext.Current.CurrentHandler, Page) + Dim viewStateProp = page?.[GetType]().GetProperty("ViewState", Reflection.BindingFlags.FlattenHierarchy Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic) + Return CType(viewStateProp?.GetValue(page), System.Web.UI.StateBag) + End Function + Public Shared Sub Alert(Mensaje As String, Optional pOpcion As TipoMensaje = TipoMensaje.MsgInformacion, Optional JSBtnAceptar As String = "", Optional timeout As Integer = 5, Optional ShowCloseButton As Boolean = True, Optional TextoConfirmacion As String = "", Optional TextoSegundoBoton As String = "", Optional JSBtn2 As String = "") + If DirectCast(pOpcion, Integer).Contiene(5, 7, 6, 8) Then + Mensaje = Mensaje.Replace("'"c, "\'").Replace(vbCrLf, "").Replace("""", "\'").Replace(vbLf, " ") + JSBtnAceptar = JSBtnAceptar.Replace("'"c, "\'") + Dim toastscript As String = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, timeout, DirectCast(pOpcion, Integer)) + GetCurrentPageViewState()("strToastMsglargonoreplace") = String.Format("{0}{1}", If(Not IsNothing(GetCurrentPageViewState()("strToastMsglargonoreplace")) AndAlso GetCurrentPageViewState()("strToastMsglargonoreplace").ToString().Length > 0, GetCurrentPageViewState()("strToastMsglargonoreplace").ToString(), ""), toastscript) + Else + Mensaje.Alert(Mensaje, pOpcion, JSBtnAceptar, TimeoutToast:=timeout, ShowCloseButton:=ShowCloseButton, TextoConfirmacion:=TextoConfirmacion, TextoSegundoBoton:=TextoSegundoBoton, JSBtn2:=JSBtn2) + End If + End Sub + Protected Overridable Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender + If User.Identity.IsAuthenticated AndAlso UsuarioActual IsNot Nothing Then + LocalStopwatch.Value.Stop() + If Not Page.IsPostBack Then + Using ObjUsuario As New ClsSisUsuarios + ObjUsuario.AddBitacora(CveModulo, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Request.Url.PathAndQuery.ToString(), LocalStopwatch.Value.ElapsedMilliseconds) + End Using + End If + End If + If Not IsNothing(ViewState("strToastMsglargonoreplace")) AndAlso ViewState("strToastMsglargonoreplace").ToString.Length > 0 Then + RegistraScript(ViewState("strToastMsglargonoreplace").ToString(), "esteseraunticklargoparaquenosesobrescribaconotro") + ViewState("strToastMsglargonoreplace") = Nothing + End If + End Sub + Protected Overrides Sub SavePageStateToPersistenceMedium(pviewState As Object) + 'If Request.Form("__VIEWSTATE_KEY") IsNot Nothing Then Cache.Remove(Request.Form("__VIEWSTATE_KEY")) 'elimino la cachado anteriormente + Dim VSKey As String = String.Format("VIEWSTATE_{0}_{1}_{2}", Session.SessionID, Request.Path, Date.Now.Ticks) + Cache.Add(VSKey, pviewState, Nothing, Date.Now.AddMinutes(40), Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing) 'Store the ViewState on Cache + 'Session.Add(VSKey, pviewState) 'Store the ViewState on Cache + ClientScript.RegisterHiddenField("__VIEWSTATE_KEY", VSKey) + End Sub + Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object + Dim VSKey As String = Request.Form("__VIEWSTATE_KEY") + If Not VSKey.StartsWith("VIEWSTATE_") Then 'Request the Key from the page and validade it. + Throw New Exception(String.Format("Invalid VIEWSTATE Key: {0}", VSKey)) + End If + If Cache(VSKey) Is Nothing Then 'si por algún motivo, el caché expiró, le dice a la página que se recargue y obtenga los datos de nuevo, y así evitar errores al obtener el viewstate vacío + Response.Redirect(Request.RawUrl) + Return Nothing + Else + Return Cache(VSKey) + End If + End Function + Public Shared Sub CargaParametros(Parametros As String) + Dim P1() As String = Parametros.Split("&"c) + Dim Tmp As String + Dim P2() As String + UrlParametros = New Hashtable + For Each Tmp In P1 + P2 = Tmp.Split("="c) + UrlParametros.Add(P2(0).ToString.ToUpper(), P2(1)) + Next + End Sub + Shared Sub RegeneraImagen(ByVal Ruta As String) + Dim BM As New Drawing.Bitmap(Ruta) + Dim Width As Integer = BM.Width + Dim Height As Integer = BM.Height + Dim Thumb As New Drawing.Bitmap(Width, Height) + Dim G As Drawing.Graphics = Drawing.Graphics.FromImage(Thumb) + G.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic + G.DrawImage(BM, New Drawing.Rectangle(0, 0, Width, Height), New Drawing.Rectangle(0, 0, BM.Width, BM.Height), Drawing.GraphicsUnit.Pixel) + BM.Dispose() + G.Dispose() + 'image path. + Thumb.Save(Ruta, Drawing.Imaging.ImageFormat.Jpeg) 'can use any image format + Thumb.Dispose() + End Sub + Public Shared Sub RegistraScript(Script As String, Optional valuetick As String = "") + Dim page As Page = TryCast(HttpContext.Current.CurrentHandler, Page) + Script = $"{Script.TrimEnd(";"c)};" 'sino trae ";" al final, se lo agregamos + ScriptManager.RegisterStartupScript(page, page.GetType(), $"{DateTime.Now.Ticks + 1}{ThreadSafeRandom.Next()}{valuetick}", Script, True) + End Sub + Public Sub TabEnabled(Tab As System.Web.UI.HtmlControls.HtmlAnchor, Valor As Boolean) + If Valor Then + 'RegistraScript(String.Format("$( ""#{0}"" ).removeClass( ""linkdesactive"" );", tab.ClientID)) + Try + Tab.Attributes("class") = Tab.Attributes("class").Replace("linkdesactive", "") + Catch ex As Exception + Tab.Attributes("class") = "" + End Try + Else + Tab.Attributes.Add("class", "linkdesactive") + End If + End Sub + Public Sub TabActive(Tab As System.Web.UI.HtmlControls.HtmlAnchor) + RegistraScript(String.Format("$( ""#{0}"" ).Click( );", Tab.ClientID)) + End Sub + Public Sub Alerta(Mensaje As String, Tipo As String, Funcion As String) + RegistraScript(String.Format("bootbox.alert('{0}', function() {{{2}}} );", Mensaje, Tipo, Funcion)) + End Sub + Public Sub NotificacionesPendientes(Nota As String) + 'incremento el contador de alertas + Dim Type = Master.GetType + Dim Prop = Type.GetProperty("countNotificaciones") + Prop.SetValue(Master, 1 + CInt(Prop.GetValue(Master))) + 'end incremento contador de alertas + Dim ltl = DirectCast(Master.FindControl("LtlMNotificaciones"), Literal) + ltl.Text = String.Format(" {0} {1}", ltl.Text, Nota) + End Sub + Public Sub Confirmacion(Mensaje As String, Tipo As String, FuncionOK As String, FuncionCancel As String) + RegistraScript(String.Format("bootbox.confirm('{0}', function(result) {{if (result){{ {2} }}else{{ {3} }} }}); ", Mensaje, Tipo, FuncionOK, FuncionCancel)) + End Sub + Public Function AddBitacoraUsuario(CveModulo As Integer, Accion As String, Resultado As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean + Dim Retorno As Boolean = False + Dim ObjUsuario As New ClsSisUsuarios + Retorno = ObjUsuario.AddBitacora(CveModulo, Accion, Resultado, CveUsuario, CveEmpresa) + ObjUsuario.Dispose() + Return Retorno + End Function + Public Sub CargarCentrosDeCosto(DdlProyecto As ListControl, DdlSubProyecto As ListControl, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) + Select Case UsuarioActual.Empresa.Tipo_CentroCosto + Case 1 + If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False + If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False + If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Centro de costo" + Case 2 + If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False + If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False + If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Sucursal" + Case 3 + If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False + If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False + If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Proyecto" + Case 4 + If LthProyectoP IsNot Nothing Then LthProyectoP.Text = "Proyecto
" + If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Subproyecto" + Case 5 + If LthProyectoP IsNot Nothing Then LthProyectoP.Text = "Proyecto
" + If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Sucursal" + End Select + If DdlProyecto IsNot Nothing Then + DdlProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})) + DdlProyecto.DataBind() + If AplicaTodos <> "" Then DdlProyecto.Items.Insert(0, New ListItem(AplicaTodos, "-1")) + End If + If DdlSubProyectoMultiple IsNot Nothing Then + DdlSubProyectoMultiple.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) + DdlSubProyectoMultiple.DataBind() + If AplicaTodos <> "" Then DdlSubProyectoMultiple.Items.Insert(0, New ListItem(AplicaTodos, "-1")) + End If + If DdlSubProyecto IsNot Nothing Then + DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) + DdlSubProyecto.DataBind() + If AplicaTodos <> "" Then DdlSubProyecto.Items.Insert(0, New ListItem(AplicaTodos, "-1")) + End If + End Sub + Public Sub CargaSeccionesAlmacen(ByRef DdlSeccionAlmacen As DropDownList, CveAlmacen As Integer, CvePS As Integer, CveEmpresa As Integer, Optional IncluyeSeleccione As Boolean = False) + DdlSeccionAlmacen.Items.Clear() + DdlSeccionAlmacen.ClearSelection() + Dim dtsec As DataTable = GlobalDTInvPSSeccionesAlmacen(CveEmpresa, CveAlmacen, CvePS) + DdlSeccionAlmacen.DataSource = dtsec + DdlSeccionAlmacen.DataBind() + If dtsec Is Nothing Then Exit Sub + If dtsec.Rows.Count = 1 Then + DdlSeccionAlmacen.SelectedIndex = 0 + DdlSeccionAlmacen.Enabled = False + Else 'si es mayor a uno que por default seleccione el primero, que seria el predeterminado + DdlSeccionAlmacen.SelectedValueExist(dtsec.FiltroPrimeroValor("CveSeccionAlmacen", "Predeterminado = 1")) + If IncluyeSeleccione Then DdlSeccionAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + dtsec.Dispose() + End Sub + +#End Region + +#Region "PDFs y Reportes" +#Region "IMPRIMIR PDF" + ''' + ''' Genera documento PDF o Excel + ''' + ''' Directorio donde se ubica el archivo + ''' Datatable + ''' Listado de parametros para el reporte + ''' Opcional Nombre del archivo que se descarga + ''' Optional, Formato de Generacion PDF o Excel + ''' + Public Sub ImprimirPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment") + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = RDSName + rds.Value = DtDatos + lrds.Add(rds) + ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR, Content_Disposition) + End Sub + Public Sub ImprimirPDFStimulsoft(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "Datos", Optional Content_Disposition As String = "attachment") + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = RDSName + rds.Value = DtDatos + lrds.Add(rds) + Dim Extension = "pdf" + If Formato.ToLower() = "excel" Then + Extension = "xlsx" + End If + ImprimirbytesPDF(StreamBytesStimulsoft("Facturas", RutaReporte, lrds, Parametros, NombreArchivo:=NombreArchivo, Formato:=Formato), NombreArchivo, Formato, Content_Disposition:=Content_Disposition, Extension:=Extension) + End Sub + Public Sub ImprimirPDFMultiDS(RutaReporte As String, lrds As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) + ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) + End Sub + ''' + ''' Genera documento PDF o Excel + ''' + ''' Directorio donde se ubica el archivo + ''' Contenedor de Datatables + ''' Listado de parametros para el reporte + ''' Opcional Nombre del archivo que se descarga + ''' Optional, Formato de Generacion PDF o Excel + ''' + Public Sub ImprimirPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment", Optional SubReportData As Modelos.MSubReportData = Nothing) + 'limpio ReportViwer + ImprimirbytesPDF(StreamPDF(RutaReporte, DataSource, Parametros, NombreArchivo, Formato, MR, SubReportData), NombreArchivo, Formato, Content_Disposition:=Content_Disposition) + End Sub + Public Function StreamPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing, Optional SubReportData As Modelos.MSubReportData = Nothing) As Byte() + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = RDSName + rds.Value = DtDatos + lrds.Add(rds) + Return StreamPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR, SubReportData) + End Function + 'Public Function StreamPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte() + ' 'limpio ReportViwer + ' Dim sw As Stopwatch =Stopwatch.StartNew() + ' If IsNothing(MR) Then MR = New ReportViewer + ' Dim Bytes As Byte() = Nothing + ' Try + ' ' MasterReporteador.LocalReport.DataSources.Clear() + ' For Each RDS As ReportDataSource In DataSource + ' MR.LocalReport.DataSources.Add(RDS) + ' Next + ' MR.LocalReport.ReportPath = RutaReporte + ' MR.ProcessingMode = ProcessingMode.Local + ' MR.LocalReport.EnableExternalImages = True + ' MR.LocalReport.SetParameters(Parametros) + ' MR.LocalReport.Refresh() + ' Dim Warnings As Warning() = Nothing + ' Dim StreamIds As String() = Nothing + ' Dim MimeType As String = Nothing + ' Dim Encoding As String = Nothing + ' Dim Extension As String = Nothing + ' Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) + ' Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException + ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + ' 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + ' Catch ex As Exception + ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + ' End Try + ' sw.Stop() + ' If sw.Elapsed.TotalSeconds > 10 Then + ' GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + ' End If + ' Return Bytes + 'End Function + Public Function StreamPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing, Optional SubReportData As Modelos.MSubReportData = Nothing) As Byte() + 'limpio ReportViwer + Dim sw As Stopwatch = Stopwatch.StartNew() + + Me.SubReportData = Nothing + Dim Bytes As Byte() = Nothing + Dim CveUsuario As Integer = 0 + Dim CveEmpresa As Integer = 0 + Dim RutaEmpresa As String = "" + If Context.Session("UsuarioSIG") IsNot Nothing Then + CveUsuario = UsuarioActual.CveUsuario + CveEmpresa = UsuarioActual.CveEmpresa + RutaEmpresa = UsuarioActual.Empresa.RutaArchivos + End If + Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) + 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA + If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") AndAlso Not RutaReporte.Contains("Contabilidad2/Reportes/") AndAlso Not RutaReporte.Contains("AC/Reportes/") Then + bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "") + End If + RutaReporte.Replace("/", "\") + If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then + RutaReporte = String.Format("{0}{1}", bdir, RutaReporte) + End If + If EsProduccion Then + Dim wsreport As New WSRDLC2.WebServiceSoapClient + Dim params As New List(Of WSRDLC2.ReportParameter) + Dim reportobjects As New List(Of WSRDLC2.ReportObjects) + Dim jsonData As String = Nothing + If SubReportData IsNot Nothing Then + jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(SubReportData) + End If + Dim ds As New DataSet + For Each rpds As ReportDataSource In DataSource + If rpds.Value IsNot Nothing Then + If rpds.Value.GetType().ToString() = "System.Data.DataTable" Then + Dim dt As DataTable = DirectCast(rpds.Value, Data.DataTable) + dt = dt.Copy() + dt.TableName = rpds.Name + ds.Tables.Add(dt) + Else + Dim ojext As New WSRDLC2.ReportObjects + ojext.Name = rpds.Name + ojext.Value = rpds.Value + reportobjects.Add(ojext) + End If + Else + Dim dt = New DataTable() + dt.TableName = If(String.IsNullOrEmpty(rpds.Name), "DataTable1", rpds.Name) + ds.Tables.Add(dt) + End If + Next + For Each rpds As ReportParameter In Parametros + Dim param As New WSRDLC2.ReportParameter + param.Name = rpds.Name + 'SI ES TEXTO, QUITAR TABS Y OTROS ESPACIOS QUE DEN PROBLEMAS AL MANDAR LA PETICION + If rpds IsNot Nothing AndAlso rpds.Values IsNot Nothing AndAlso rpds.Values.Count > 0 AndAlso rpds.Values(0) IsNot Nothing AndAlso rpds.Values(0).GetType() = GetType(String) Then + param.Values = {rpds.Values(0).Replace(vbVerticalTab, "")} + Else + param.Values = {rpds.Values(0)} + End If + params.Add(param) + Next + Bytes = wsreport.StreamNEWPDFBytes(RutaReporte, ds, reportobjects.ToArray(), params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario, jsonData) + wsreport = Nothing + params = Nothing + ds.Dispose() : ds = Nothing + Else + If IsNothing(MR) Then MR = New ReportViewer + Try + ' MasterReporteador.LocalReport.DataSources.Clear() + For Each RDS As ReportDataSource In DataSource + MR.LocalReport.DataSources.Add(RDS) + Next + MR.LocalReport.ReportPath = RutaReporte + MR.ProcessingMode = ProcessingMode.Local + If SubReportData IsNot Nothing Then + Me.SubReportData = SubReportData + AddHandler MR.LocalReport.SubreportProcessing, AddressOf LocalReport_SubreportProcessing + End If + MR.LocalReport.EnableExternalImages = True + MR.LocalReport.SetParameters(Parametros) + MR.LocalReport.Refresh() + Dim Warnings As Warning() = Nothing + Dim StreamIds As String() = Nothing + Dim MimeType As String = Nothing + Dim Encoding As String = Nothing + Dim Extension As String = Nothing + Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) + Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException + GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + Catch ex As Exception + GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + End Try + MR.Dispose() + MR = Nothing + 'Dim ruta = wsreport.StreamPDF(RutaReporte, ds, params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario) + 'If File.Exists(ruta) Then + ' Bytes = File.ReadAllBytes(ruta) + ' File.Delete(ruta) + 'End If + 'Dim setup As AppDomainSetup = New AppDomainSetup + 'With setup + ' .ApplicationBase = Environment.CurrentDirectory + ' .LoaderOptimization = LoaderOptimization.MultiDomainHost + 'End With + 'setup.SetCompatibilitySwitches({"NetFx40_LegacySecurityPolicy"}) + 'Dim _casPolicyEnabledDomain As AppDomain = AppDomain.CreateDomain("Full Trust", Nothing, setup) + 'Dim fllreport As ADSReportLib.FullTrustReportviewer = Nothing + 'Try + ' fllreport = CType(_casPolicyEnabledDomain.CreateInstanceFromAndUnwrap(GetType(ADSReportLib.FullTrustReportviewer).Assembly.CodeBase, GetType(ADSReportLib.FullTrustReportviewer).FullName), ADSReportLib.FullTrustReportviewer) + ' fllreport.Initialize("DisplayName", RutaReporte, Parametros.AsEnumerable(), New List(Of String()), True) + ' For Each RDS As ReportDataSource In DataSource + ' fllreport.AddDataSources(RDS.Name, DirectCast(RDS.Value, DataTable)) + ' Next + ' Dim Warnings As Warning() = Nothing + ' Dim StreamIds As String() = Nothing + ' Dim MimeType As String = Nothing + ' Dim Encoding As String = Nothing + ' Dim Extension As String = Nothing + ' Bytes = fllreport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds) + ' fllreport = Nothing + 'Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException + ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + ' 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + 'Catch ex As Exception + ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + 'Finally + ' AppDomain.Unload(_casPolicyEnabledDomain) + 'End Try + 'If fllreport IsNot Nothing Then fllreport.liberarecursos() + End If + sw.Stop() + If sw.Elapsed.TotalSeconds > 5 Then + GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + End If + Return Bytes + End Function + Private Sub LocalReport_SubreportProcessing(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs) + If SubReportData IsNot Nothing Then + For Each ds In SubReportData.DataSources + e.DataSources.Add(ds) + Next + End If + End Sub + Public Function ImprimirPDFCrystal(RutaReporte As String, DataSource As DataTable, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportDocument = Nothing) As Byte() + 'limpio ReportViwer + Dim sw As Stopwatch = Stopwatch.StartNew() + + If IsNothing(MR) Then MR = New ReportDocument() + Dim Bytes As Byte() = Nothing + Dim formatType As ExportFormatType = ExportFormatType.NoFormat + Try + MR.Load(RutaReporte) + MR.SetDataSource(DataSource) + For Each item As CrystalParametro In Parametros + MR.SetParameterValue(item.Nombre, item.Valor) + Next + Select Case Formato + Case "PDF" + formatType = ExportFormatType.PortableDocFormat + 'Format = "Application/pdf" + Case "EXCEL" + formatType = ExportFormatType.Excel + 'Format = "application/ms-excel" + End Select + Dim Stream As IO.Stream = MR.ExportToStream(formatType) + Dim BD As New BinaryReader(MR.ExportToStream(formatType)) + Bytes = BD.ReadBytes(CInt(MR.ExportToStream(formatType).Length)) + BD.Dispose() + Stream.Dispose() + 'Dim Buffer(CInt(Stream.Length)) As Byte + 'Bytes = Buffer + 'MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo) + Catch ex As CrystalReportsException + GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, + $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, + ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + Catch ex As Exception + GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, + $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, + ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + End Try + sw.Stop() + If sw.Elapsed.TotalSeconds > 10 Then + GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + End If + If MR IsNot Nothing Then MR.Dispose() + Return Bytes + End Function + Public Function ImprimirSubRepPDFCrystal(RutaReporte As String, DataSource As DataTable, Parametros As List(Of CrystalParametro), DataSource1 As DataTable, DataSource2 As DataTable, SubRep1 As String, SubRep2 As String, Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportDocument = Nothing) As Byte() + 'limpio ReportViwer + Dim sw As Stopwatch = Stopwatch.StartNew() + + If IsNothing(MR) Then MR = New ReportDocument() + Dim SR1 As New ReportDocument + Dim SR2 As New ReportDocument + Dim Bytes As Byte() = Nothing + Dim formatType As ExportFormatType = ExportFormatType.NoFormat + Try + MR.Load(RutaReporte) + SR1 = MR.OpenSubreport(SubRep1) + SR2 = MR.OpenSubreport(SubRep2) + MR.SetDataSource(DataSource) + SR1.SetDataSource(DataSource1) + SR2.SetDataSource(DataSource2) + For Each item As CrystalParametro In Parametros + MR.SetParameterValue(item.Nombre, item.Valor) + Next + Select Case Formato + Case "PDF" + formatType = ExportFormatType.PortableDocFormat + 'Format = "Application/pdf" + Case "EXCEL" + formatType = ExportFormatType.Excel + 'Format = "application/ms-excel" + End Select + Dim Stream As IO.Stream = MR.ExportToStream(formatType) + Dim BD As New BinaryReader(MR.ExportToStream(formatType)) + Bytes = BD.ReadBytes(CInt(MR.ExportToStream(formatType).Length)) + BD.Dispose() + Stream.Dispose() + 'Dim Buffer(CInt(Stream.Length)) As Byte + 'Bytes = Buffer + 'MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo) + Catch ex As CrystalReportsException + GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, + $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, + ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + Catch ex As Exception + GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, + $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, + ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + End Try + sw.Stop() + If sw.Elapsed.TotalSeconds > 10 Then + GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + End If + If MR IsNot Nothing Then MR.Dispose() + Return Bytes + End Function + 'Public Function ImprimirPDFPyME(RutaReporte As String, DataSource As DataSet, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As StiReport = Nothing) As Byte() + ' If IsNothing(MR) Then MR = New Stimulsoft.Report.StiReport() + ' Dim Bytes As Byte() = Nothing + ' Try + ' MR.Load(RutaReporte) + ' MR.Dictionary.DataSources.Clear() + ' MR.RegData(DataSource) + ' Dim Lista = MR.Dictionary.Variables.ToList() + ' For Each item As CrystalParametro In Parametros + ' If Lista.Exists(Function(a) a.Name = item.Nombre) Then + ' MR.Dictionary.Variables(item.Nombre).Value = item.Valor.ToString + ' End If + ' Next + ' MR.Dictionary.Synchronize() + ' MR.IsRendered = False + ' MR.Render(False) + ' Dim pdfSettings As New Stimulsoft.Report.Export.StiPdfExportSettings() + ' Dim MemoryStream As New MemoryStream + ' Select Case Formato + ' Case "PDF" + ' MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Pdf, MemoryStream, pdfSettings) + ' Case "EXCEL" + ' MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Excel2007, MemoryStream, pdfSettings) + ' End Select + ' Bytes = MemoryStream.ToArray + ' MR.RenderedPages.Clear() + ' MR.Dispose() + ' MemoryStream.Dispose() + ' Catch ex As Exception + ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + ' End Try + ' Return Bytes + 'End Function + Public Function StreamPDFTest(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte() + 'limpio ReportViwer + Dim sw As Stopwatch = Stopwatch.StartNew() + + If IsNothing(MR) Then MR = New ReportViewer + Dim Bytes As Byte() = Nothing + Try + ' MR.LocalReport.ReportPath = RutaReporte + MR.ProcessingMode = ProcessingMode.Local + Using rdlcR As New StreamReader(RutaReporte) + MR.LocalReport.LoadReportDefinition(rdlcR) + MR.LocalReport.EnableExternalImages = True + MR.LocalReport.SetParameters(Parametros) + MR.LocalReport.Refresh() + End Using + For Each RDS As ReportDataSource In DataSource + MR.LocalReport.DataSources.Add(RDS) + Next + Dim Warnings As Warning() = Nothing + Dim StreamIds As String() = Nothing + Dim MimeType As String = Nothing + Dim Encoding As String = Nothing + Dim Extension As String = Nothing + Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) + Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException + GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + Catch ex As Exception + GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") + 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 + 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") + End Try + sw.Stop() + If sw.Elapsed.TotalSeconds > 10 Then + GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + 'GuardaLog($"Tiempo Renderizado Milisegundos {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + End If + Return Bytes + End Function + + ''' + ''' Genera documento PDF o Excel + ''' + ''' + ''' + ''' + ''' + Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment", Optional Extension As String = "") + 'limpio ReportViwer + Dim mimeType As String = Nothing + 'If Descarga Then + ' Try + ' bytes = bytes + ' File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img) + ' Catch ex As Exception + ' If UsuarioActual.CveRol = 1 Then + ' Alert(ex.Message, TipoMensaje.MsgAdvertencia) + ' Else + ' Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia) + ' End If + ' End Try + 'End If + Try + bytes = bytes + Response.Buffer = True + Response.Clear() + If Formato = "PDF" Then + Response.ContentType = "application/pdf" + Else + Response.ContentType = mimeType + End If + Response.ClearHeaders() + Dim fileExtension As String = "" + If Not String.IsNullOrEmpty(Extension) Then + fileExtension = Extension + Else + fileExtension = If(Formato = "PDF", "pdf", "xls") + End If + Response.AddHeader("content-disposition", String.Format("{0}; filename=""{1}.{2}""", Content_Disposition, NombreArchivo, fileExtension)) + Response.BinaryWrite(bytes) ' create the file + Response.Flush() ' send it to the client to download + bytes = Nothing + HttpContext.Current.Response.SuppressContent = True + HttpContext.Current.ApplicationInstance.CompleteRequest() + 'HttpContext.Current.Response.End() + Catch ex As Exception + If UsuarioActual.CveRol = 1 Then + Alert($"Error: {ex.Message} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))}", TipoMensaje.MsgAdvertencia) + Else + Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod:'IMPDFclspag'", TipoMensaje.MsgAdvertencia) + End If + End Try + End Sub + Public Sub ImprimirPDFview(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource + rds.Name = RDSName + rds.Value = DtDatos + lrds.Add(rds) + ImprimirPDFview(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) + End Sub + Public Sub ImprimirPDFview(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) + 'limpio ReportViwer + If IsNothing(MR) Then + MR = New ReportViewer + End If + ' MasterReporteador.LocalReport.DataSources.Clear() + For Each rds As ReportDataSource In DataSource + MR.LocalReport.DataSources.Add(rds) + Next + MR.LocalReport.ReportPath = RutaReporte + MR.ProcessingMode = ProcessingMode.Local + MR.LocalReport.EnableExternalImages = True + MR.LocalReport.SetParameters(Parametros) + MR.LocalReport.Refresh() + End Sub +#End Region +#Region "IMPRIMIR FACTURA" + 'Public Sub PdfFacturaPyME(ByRef Vta As Modelos.Factura, DT As DataTable, Optional Guardar As Boolean = True) + ' Dim retorno As Byte() = Nothing + ' 'DATOS GENERALES + ' Dim Ruta As String = UsuarioActual.Empresa.Ruta + ' Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" + ' Dim NombreArchivo As String = "" + ' Dim NombreArchivoDescarga As String = "" + ' Dim TipoDocumento As String = "" + ' Dim TipoDocumentoRef As String = "" + ' Dim AplicaPagare As String = "1" + ' Dim RFCReceptor As String = "" + ' If String.IsNullOrEmpty(Vta.RFCReceptor) Then + ' RFCReceptor = Vta.Cliente.RFC + ' If Vta.FacturarSucursal Then + ' If Vta.ClienteSucursal IsNot Nothing Then + ' RFCReceptor = Vta.ClienteSucursal.RFC + ' End If + ' End If + ' Else + ' RFCReceptor = Vta.RFCReceptor + ' End If + ' Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio) + ' Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) + ' Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) + ' Dim ImagenPath = String.Format("{0}Formatos\Suc{1}\logo.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + ' Dim Logo As New System.IO.FileInfo(ImagenPath) + ' Dim ImgLogo = New Uri(String.Format("{0}Empresas/{1}/Formatos/Suc{2}.png", UrlSitio, UsuarioActual.CveEmpresa, Vta.CveSucursal)).AbsoluteUri + ' Dim SBDomicilioSucursal As New StringBuilder() + ' Dim CiudadSucursal As String = String.Format("{0},{1}", Vta.SubProyecto.Municipio, Vta.SubProyecto.Estado) + ' Dim DomicilioSucursal As String = "" + ' SBDomicilioSucursal.AppendFormat("{0}", Vta.SubProyecto.Calle) + ' If Vta.SubProyecto.NoExt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", Vta.SubProyecto.NoExt) + ' If Vta.SubProyecto.NoInt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", Vta.SubProyecto.NoInt) + ' If Vta.SubProyecto.Colonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", Vta.SubProyecto.Colonia) + ' If Vta.SubProyecto.CP.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", Vta.SubProyecto.CP) + ' If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) + ' If Vta.SubProyecto.Pais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", Vta.SubProyecto.Pais) + ' DomicilioSucursal = SBDomicilioSucursal.ToString + ' Dim Fecha As String = Vta.Fecha.ToShortDateString + ' Dim SBDireccion As New StringBuilder() + ' Dim SBLugar As New StringBuilder() + ' Dim ClienteDireccion As String + ' Dim ClienteLugar As String + ' 'SI ESTA TIMBRADA - CON XML + ' If File.Exists(PathXML) AndAlso Vta.Serie <> "VistaPrevia" Then 'Cuando es vista previe y coincide la serie y folio se ponen los datos fiscales + ' Dim XmlDoc As New System.Xml.XmlDocument + ' XmlDoc.Load(PathXML) + ' Dim TC As Decimal = 1 + ' Try + ' TC = XmlDoc.DocumentElement.Attributes("TipoCambio").InnerText.ToDecimal + ' Catch ex As Exception + ' TC = 1 + ' End Try + ' Vta.FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate + ' Vta.NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText + ' Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") + ' If Not IsNothing(validaElemento) Then + ' For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + ' If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then + ' Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + ' Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText + ' Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate + ' Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText + ' Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText + ' End If + ' Next + ' Else + ' Vta.FolioFiscal = "Sin Timbrar" + ' Vta.NoSerieCertificado = "Sin Timbrar" + ' Vta.SelloCFDi = "Sin Timbrar" + ' Vta.SelloSAT = "Sin Timbrar" + ' End If + ' 'SIN TIMBRAR - SIN XML + ' Else + ' Vta.FolioFiscal = "Sin Timbrar" + ' Vta.NoSerieCertificado = "Sin Timbrar" + ' Vta.SelloCFDi = "Sin Timbrar" + ' Vta.SelloSAT = "Sin Timbrar" + ' End If + ' 'DIRECCION CLIENTE + ' If Vta.CveClienteSucursal.ToEntero > 0 Then + ' 'Si cliente tiene Noint, NoExt, CP + ' SBDireccion.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) + ' If Vta.ClienteSucursal.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) + ' If Vta.ClienteSucursal.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) + ' If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.ClienteSucursal.Colonia) + ' If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then + ' If Vta.ClienteSucursal.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.ClienteSucursal.CP.Trim) + ' End If + ' 'Si cliente tiene Local, CD, Edo, Pais + ' If Vta.ClienteSucursal.Localidad IsNot Nothing AndAlso Vta.ClienteSucursal.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.ClienteSucursal.Localidad) + ' If Vta.ClienteSucursal.Municipio IsNot Nothing AndAlso Vta.ClienteSucursal.Municipio.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.ClienteSucursal.Municipio) + ' If Vta.ClienteSucursal.Estado IsNot Nothing AndAlso Vta.ClienteSucursal.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.ClienteSucursal.Estado) + ' If Vta.ClienteSucursal.Pais IsNot Nothing AndAlso Vta.ClienteSucursal.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.ClienteSucursal.Pais) + ' Else + ' SBDireccion.AppendFormat("{0}", Vta.Cliente.Direccion) + ' If Vta.Cliente.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) + ' If Vta.Cliente.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) + ' If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.Cliente.Colonia) + ' If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then + ' If Vta.Cliente.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.Cliente.CP.Trim) + ' End If + ' 'Si cliente tiene Local, CD, Edo, Pais + ' If Vta.Cliente.Localidad IsNot Nothing AndAlso Vta.Cliente.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.Cliente.Localidad) + ' If Vta.Cliente.Ciudad IsNot Nothing AndAlso Vta.Cliente.Ciudad.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.Cliente.Ciudad) + ' If Vta.Cliente.Estado IsNot Nothing AndAlso Vta.Cliente.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.Cliente.Estado) + ' If Vta.Cliente.Pais IsNot Nothing AndAlso Vta.Cliente.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.Cliente.Pais) + ' End If + ' ClienteDireccion = SBDireccion.ToString + ' ClienteLugar = SBLugar.ToString + ' SBDireccion.Clear() + ' SBLugar.Clear() + ' 'LOGO + ' Dim LogoRuta As String = "" + ' 'POR SUCURSAL + ' LogoRuta = String.Format("{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + ' If File.Exists(LogoRuta) Then + ' LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + ' 'POR EMPRESA + ' Else + ' LogoRuta = String.Format("{0}Formatos\Logo.png", UsuarioActual.Empresa.Ruta) + ' If File.Exists(LogoRuta) Then + ' 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + ' LogoRuta = String.Format("{0}", LogoRuta) + ' End If + ' End If + ' 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + ' LogoRuta = String.Format("{0}", LogoRuta) + ' 'Si no tiene CBB, SE GENERA + ' If Not ImagenCBB.Exists Then + ' Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + ' CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB) + ' End If + ' ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) + ' Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||" + ' If Not ImagenCBB.Exists Then ImgCBB = "" + ' Dim RutaFormato As String = "" + + ' 'AQUI EMPIEZA LOS PARAMETROS + ' Try + ' Dim params = New List(Of CrystalParametro) + ' 'CLIENTE + ' params.Add(New CrystalParametro("ClienteCodigo", Vta.Cliente.Codigo)) + ' params.Add(New CrystalParametro("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre)))) + ' params.Add(New CrystalParametro("ClienteDireccion", ClienteDireccion)) + ' params.Add(New CrystalParametro("ClienteLugar", ClienteLugar)) + + ' 'TOTALES + ' params.Add(New CrystalParametro("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("Descuento", Vta.Descuento.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("Amortizacion", Vta.Amortizacion.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("SubTotal2", (Vta.SubTotal - Vta.Descuento - Vta.Amortizacion).ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("IVA", Vta.IVA.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("RetIVA", Vta.RetIVA.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("RetISR", Vta.RetISR.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("Total", Vta.Total.ToString.FormatoNumero(2))) + ' params.Add(New CrystalParametro("ImporteLetra", Vta.Total.ToString.ToDouble.Texto2Letras(Vta.CveMoneda))) + ' 'DATOS GENERALES + ' params.Add(New CrystalParametro("Observaciones", Vta.Observaciones)) + ' params.Add(New CrystalParametro("CveVendedor", Vta.CveVendedor.ToString)) + ' 'params.Add(New CrystalParametro("Status", Vta.EstatusFactura)) + ' params.Add(New CrystalParametro("FechaSolicitud", Vta.Fecha.ToString("dd/MMMM/yyyy"))) ' se puede omitir + ' params.Add(New CrystalParametro("Serie", Vta.Serie)) + ' params.Add(New CrystalParametro("Folio", Vta.Folio.ToString)) + ' params.Add(New CrystalParametro("DomicilioSucursal", DomicilioSucursal)) + ' params.Add(New CrystalParametro("Vencimiento", Vta.FechaVencimiento.ToString("dd/MM/yyyy"))) + ' params.Add(New CrystalParametro("FolioFiscal", Vta.FolioFiscal)) + ' params.Add(New CrystalParametro("FechaCertificacion", String.Format("{0}T{1}", Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss")))) + ' params.Add(New CrystalParametro("SelloCFDI", Vta.SelloCFDi)) + ' params.Add(New CrystalParametro("CadenaSAT", CadenaOriginals)) + ' params.Add(New CrystalParametro("SelloSAT", Vta.SelloSAT)) + ' params.Add(New CrystalParametro("QR", ImgCBB)) + ' params.Add(New CrystalParametro("ClienteRFC", RFCReceptor)) + ' params.Add(New CrystalParametro("FormaPago", Vta.FormaPagoText)) + ' params.Add(New CrystalParametro("Moneda", Vta.Moneda)) + ' params.Add(New CrystalParametro("TipoCambio", Vta.TipoCambio.ToString)) + ' params.Add(New CrystalParametro("CondicionPago", Vta.CondicionesPagoText)) + ' params.Add(New CrystalParametro("CadenaOriginal", CadenaOriginals)) + ' params.Add(New CrystalParametro("SerieCertificadoSAT", Vta.NoSerieCertificado)) + ' params.Add(New CrystalParametro("CertificadoContribuyente", Vta.NoSerieCertificadoContribuyente)) + ' params.Add(New CrystalParametro("NumCta", Vta.NumeroCuenta)) + ' params.Add(New CrystalParametro("LogoPath", LogoRuta)) + ' 'VENDEDOR + ' Dim RowVendedor As DataRow = GlobalDTVendedores(-1).FiltroPrimero(String.Format("CveVendedor = {0}", Vta.CveVendedor.ToString)) + ' If Not IsNothing(RowVendedor) Then + ' params.Add(New CrystalParametro("VendedorNombre", RowVendedor("Vendedor").ToString)) + ' params.Add(New CrystalParametro("VendedorMail", RowVendedor("Correo").ToString)) + ' params.Add(New CrystalParametro("VendedorTelefono", RowVendedor("Telefono").ToString)) + ' params.Add(New CrystalParametro("VendedorCelular", RowVendedor("Celular").ToString)) + ' End If + ' params.Add(New CrystalParametro("CiudadSucursal", CiudadSucursal)) + ' params.Add(New CrystalParametro("OC", Vta.Det_OrdenCompra.ToString)) + ' If UsuarioActual.Empresa.Funcionalidad(508) = "1" Then + ' params.Add(New CrystalParametro("IEPS", Vta.IEPS.ToString.FormatoNumero(2))) + ' End If + ' If Vta.CveClienteSucursal > 0 Then + ' params.Add(New CrystalParametro("ClienteContactoMail", Vta.ClienteSucursal.CorreoSucursal)) + ' params.Add(New CrystalParametro("ClienteTelefono", Vta.ClienteSucursal.TelefonoSucursal)) + ' Else + ' params.Add(New CrystalParametro("ClienteContactoMail", Vta.Cliente.MailCotizacion)) + ' params.Add(New CrystalParametro("ClienteTelefono", If(Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso Vta.Cliente.Telefono.Length > 6, Vta.Cliente.Telefono, Vta.TelefonoGenerico))) + ' End If + ' If UsuarioActual.CveEmpresa.Contiene(17) Then + ' params.Add(New CrystalParametro("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString)) + ' Else + ' params.Add(New CrystalParametro("MetodoPago", Vta.MetodoPago.ToString)) + ' End If + + ' Select Case Vta.TipoDocto + ' Case "Ing" + ' NombreArchivo = "Factura" + ' NombreArchivoDescarga = "Factura" + ' TipoDocumento = "INGRESO" + ' 'GENERAL + ' params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga)) + ' params.Add(New CrystalParametro("Tipo", TipoDocumento)) + ' params.Add(New CrystalParametro("Ref", TipoDocumentoRef)) + ' params.Add(New CrystalParametro("AplicaPagare", AplicaPagare)) + ' 'VSH + ' If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then + ' 'DATOS CLIENTES + ' Dim ClienteRow = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCliente = {0}", Vta.CveCliente.ToString)) + ' Dim DatosCliente = "" + ' If ClienteRow IsNot Nothing Then + ' DatosCliente = String.Format("{0} | {1} | {2}", Vta.SubProyecto.Municipio, ClienteRow("CuentaContable"), ClienteRow("Codigo")) + ' End If + ' params.Add(New CrystalParametro("DatosClientes", DatosCliente)) + ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) + ' End If + ' 'COMPU, DN DIFUSA + ' If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then + ' params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) + ' params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) + ' params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato)) + ' params.Add(New CrystalParametro("DescripcionContrato", Vta.NumeroDescripcionContrato)) + ' params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) + ' params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) + ' params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString)) + ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) + ' 'INE COMPLEMENTOS + ' If UsuarioActual.CveEmpresa.Contiene(72) Then + ' Dim INETipoProceso As String = "" + ' Dim INETipoComite As String = "" + ' Dim INEIdContabilidad As Integer = 0 + ' If Vta.ComplementoINE IsNot Nothing Then + ' INETipoProceso = Vta.ComplementoINE.INETipoProceso + ' INETipoComite = Vta.ComplementoINE.INETipoComite + ' INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad + ' End If + ' params.Add(New CrystalParametro("INETipoProceso", INETipoProceso)) + ' params.Add(New CrystalParametro("INETipoComite", INETipoComite)) + ' params.Add(New CrystalParametro("INEIdContabilidad", INEIdContabilidad)) + ' params.Add(New CrystalParametro("Referencia", Vta.Cliente.ReferenciaFiscal)) + ' params.Add(New CrystalParametro("ClienteContacto", Vta.AtencionA)) + ' End If + ' 'DIRECCION ENVIO + ' If Vta.EnviarA.CveDireccionEnvio > 0 Then + ' Dim StrEnvioDi As New StringBuilder + ' StrEnvioDi.AppendFormat("{0}", Vta.EnviarA.EnvioDireccion) + ' If Vta.EnviarA.EnvioNoExt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.EnviarA.EnvioNoExt) + ' If Vta.EnviarA.EnvioNoInt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.EnviarA.EnvioNoInt) + ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) + ' params.Add(New CrystalParametro("EnvioNoExt", Vta.EnviarA.EnvioNoExt)) + ' params.Add(New CrystalParametro("EnvioNoInt", Vta.EnviarA.EnvioNoInt)) + ' params.Add(New CrystalParametro("EnvioColonia", Vta.EnviarA.EnvioColonia)) + ' params.Add(New CrystalParametro("EnvioCiudad", Vta.EnviarA.EnvioCiudad)) + ' params.Add(New CrystalParametro("EnvioEstado", Vta.EnviarA.EnvioEstado)) + ' params.Add(New CrystalParametro("EnvioContacto", Vta.EnviarA.EnvioContacto)) + ' params.Add(New CrystalParametro("EnvioDepartamento", Vta.EnviarA.EnvioDepartamento)) + ' params.Add(New CrystalParametro("EnvioCP", Vta.EnviarA.EnvioCP)) + ' Else + ' If Vta.CveClienteSucursal.ToEntero > 0 Then + ' Dim StrEnvioDi As New StringBuilder + ' StrEnvioDi.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) + ' If Vta.ClienteSucursal.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) + ' If Vta.ClienteSucursal.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) + ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) + ' params.Add(New CrystalParametro("EnvioColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) + ' params.Add(New CrystalParametro("EnvioCiudad", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) + ' params.Add(New CrystalParametro("EnvioEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) + ' params.Add(New CrystalParametro("EnvioCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) + ' Else + ' Dim StrEnvioDi As New StringBuilder + ' StrEnvioDi.AppendFormat("{0}", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")) + ' If Vta.Cliente.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) + ' If Vta.Cliente.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) + ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) + ' params.Add(New CrystalParametro("EnvioColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) + ' params.Add(New CrystalParametro("EnvioCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) + ' params.Add(New CrystalParametro("EnvioEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) + ' params.Add(New CrystalParametro("EnvioCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) + ' End If + ' End If + ' 'CLIENTE SUCURSAL + ' If Vta.CveClienteSucursal.ToEntero > 0 Then + ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) + ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) + ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) + ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) + ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) + ' params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) + ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) + ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) + ' params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) + ' Else + ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) + ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) + ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) + ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) + ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) + ' params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) + ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) + ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) + ' params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) + ' End If + ' End If + ' RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, NombreArchivo) + ' Case "Egs" + ' If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + ' NombreArchivo = "NotaCredito" + ' Else + ' NombreArchivo = "Factura" + ' End If + ' NombreArchivoDescarga = "Nota de Crédito" + ' TipoDocumento = "EGRESO" + ' TipoDocumentoRef = String.Format(": Ref.:{0}", Vta.RefDocto) + ' AplicaPagare = "0" + ' 'GENERAL + ' params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga)) + ' params.Add(New CrystalParametro("Tipo", TipoDocumento)) + ' params.Add(New CrystalParametro("Ref", TipoDocumentoRef)) + ' params.Add(New CrystalParametro("AplicaPagare", AplicaPagare)) + ' params.Add(New CrystalParametro("Fecha", String.Format("{0}T{1}", Vta.Fecha.ToString("yyyy-MM-dd"), Vta.Fecha.ToString("HH:mm:ss")))) + ' 'ALAN YEPIZ + ' If UsuarioActual.CveEmpresa.Contiene(123) Then + ' params.Add(New CrystalParametro("DiaExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Day))) + ' params.Add(New CrystalParametro("MesExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Month))) + ' params.Add(New CrystalParametro("AñoExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Year))) + ' End If + ' 'COMPU, DN DIFUSA + ' If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then + ' params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) + ' params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) + ' params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato)) + ' params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) + ' params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) + ' params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString)) + ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) + ' 'CLIENTE SUCURSAL + ' If Vta.CveClienteSucursal.ToEntero > 0 Then + ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) + ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) + ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) + ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) + ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) + ' params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) + ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) + ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) + ' params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) + ' Else + ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) + ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) + ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) + ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) + ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) + ' params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) + ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) + ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) + ' params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) + ' End If + ' End If + + ' RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, "Factura") + ' Case Else + ' NombreArchivo = "" + ' TipoDocumento = "" + ' End Select + ' If NombreArchivo = "" Then + ' GuardaLog("No se especifico el tipo de Impresion de venta (Venta, Remision, Cotización, Nota de Crédito).") + ' Exit Sub + ' End If + ' 'TERMINA REGION PARAMETROS + ' Dim lrds As New List(Of ReportDataSource) + ' 'Si es ECLIPSE CREAR COLUMAS PARA FIRMAS EN DtDetalle. + ' If UsuarioActual.CveEmpresa.Contiene(1, 15, 17, 71, 76, 125) Then + ' Dim DtDetalleFirmas As New DataTable + ' DtDetalleFirmas.TableName = "DetalleFirma" + ' DtDetalleFirmas = Vta.DtDetalle.Copy() + ' 'SI NO TIENE LAS COLUMNAS DE FIRMAS LAS CREA. + ' If Not DtDetalleFirmas.Columns.Contains("Titulo") Then + ' DtDetalleFirmas.Columns.Add("Titulo", GetType(String)) + ' DtDetalleFirmas.Columns.Add("Nombre", GetType(String)) + ' DtDetalleFirmas.Columns.Add("Puesto", GetType(String)) + ' DtDetalleFirmas.Columns.Add("Lado", GetType(Integer)) + ' End If + ' 'Se llenan los Rows de las columnas con los datos del DtFirmas + ' For i As Integer = 0 To Vta.DtFirmas.Rows.Count - 1 + ' 'Si DtDetalle es menor al DtFirmas, crea un nuevo Row en DtDetalle y le asigna valor, Si no solo asigna valor + ' If DtDetalleFirmas.Rows.Count < i + 1 Then + ' Dim Dr = DtDetalleFirmas.NewRow + ' Dr("Titulo") = Vta.DtFirmas(i)("Titulo").ToString + ' Dr("Nombre") = Vta.DtFirmas(i)("Nombre").ToString + ' Dr("Puesto") = Vta.DtFirmas(i)("Puesto").ToString + ' Dr("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero + ' DtDetalleFirmas.Rows.Add(Dr) + ' Else + ' DtDetalleFirmas(i)("Titulo") = Vta.DtFirmas(i)("Titulo").ToString + ' DtDetalleFirmas(i)("Nombre") = Vta.DtFirmas(i)("Nombre").ToString + ' DtDetalleFirmas(i)("Puesto") = Vta.DtFirmas(i)("Puesto").ToString + ' DtDetalleFirmas(i)("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero + ' End If + ' Next i + ' Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = DtDetalleFirmas} + ' lrds.Add(rds) + ' Else + ' Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = Vta.DtDetalle} + ' lrds.Add(rds) + ' End If + ' Dim rds1 As New ReportDataSource With {.Name = "DataSet1", .Value = If(Vta.DtDeduccion IsNot Nothing, Vta.DtDeduccion, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + ' lrds.Add(rds1) + ' 'DETALLE FIRMAS + ' Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(Vta.DtFirmas IsNot Nothing, Vta.DtFirmas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + ' lrds.Add(rds2) + ' Dim Archivo As New System.IO.FileInfo(RutaFormato) + ' Dim DataSet As New DataSet + ' Vta.DtDetalle.TableName = "Datos" + ' Vta.DtDeduccion.TableName = "Deduccion" + ' DataSet.Tables.Add(Vta.DtDetalle.Copy) + ' DataSet.Tables.Add(Vta.DtDeduccion.Copy) + ' If Archivo.Exists Then + ' ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura") + ' If Guardar Then + ' Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) + ' If Not ArchivoPDF.Exists Then + ' Try + ' DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) + ' DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) + ' File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + ' Catch ex As Exception + ' Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + ' End Try + ' Else + ' Try + ' ArchivoPDF.Delete() + ' File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + ' Catch ex As Exception + ' Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + ' End Try + ' End If + ' End If + ' Else + ' params.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) + ' params.Add(New CrystalParametro("RFC", UsuarioActual.Empresa.RFC)) + ' ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura") + ' End If + + ' Catch ex As Exception + ' GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + ' End Try + 'End Sub + Public Function PdfFactura(ByRef Vta As Modelos.Factura, Optional AplicaPagare As String = "0", Optional Guardar As Boolean = True, Optional SubReportData As Modelos.MSubReportData = Nothing, Optional UsarStimulsoft As Boolean = False) As Byte() + Dim retorno As Byte() = Nothing + ' Dim ObjVentas As New ClsVentas + 'DATOS GENERALES + Dim Ruta As String = UsuarioActual.Empresa.Ruta + Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" + Dim NombreArchivo As String = "" + Dim NombreArchivoDescarga As String = "" + Dim TipoDocumento As String = "" + Dim TipoDocumentoRef As String = "" + Dim RFCReceptor As String = "" + Dim XmlVersion As String = "" + If String.IsNullOrEmpty(Vta.RFCReceptor) Then + RFCReceptor = Vta.Cliente.RFC + If Vta.FacturarSucursal Then + If Vta.ClienteSucursal IsNot Nothing Then + RFCReceptor = Vta.ClienteSucursal.RFC + End If + End If + Else + RFCReceptor = Vta.RFCReceptor + End If + + Dim RutaCarpetaCBB As String = String.Format("{0}CBB\", Ruta) + Dim FinfoCarpetaCBB As New IO.DirectoryInfo(RutaCarpetaCBB) + If Not FinfoCarpetaCBB.Exists Then + Try + IO.Directory.CreateDirectory(RutaCarpetaCBB) + Catch ex As Exception + GuardaLogAD($"CveEmpresa {UsuarioActual.CveEmpresa} Vta {Vta.SerieFolio} Error al crear directorio CBB {ex.Message}") + End Try + End If + + Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio) + Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) + Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) + Dim ImagenPath = String.Format("{0}Formatos\Suc{1}\logo.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + Dim Logo As New System.IO.FileInfo(ImagenPath) + Dim ImgLogo = New Uri(String.Format("{0}Empresas/{1}/Formatos/Suc{2}.png", UrlSitio, UsuarioActual.CveEmpresa, Vta.CveSucursal)).AbsoluteUri + Dim SBDomicilioSucursal As New StringBuilder() + Dim CiudadSucursal As String = String.Format("{0},{1}", Vta.SubProyecto.Municipio, Vta.SubProyecto.Estado) + Dim DomicilioSucursal As String = "" + SBDomicilioSucursal.AppendFormat("{0}", Vta.SubProyecto.Calle) + If Vta.SubProyecto.NoExt.Length > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", Vta.SubProyecto.NoExt) + If Vta.SubProyecto.NoInt.Length > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", Vta.SubProyecto.NoInt) + If Vta.SubProyecto.Colonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", Vta.SubProyecto.Colonia) + If Vta.SubProyecto.CP.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", Vta.SubProyecto.CP) + If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) + If Vta.SubProyecto.Pais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", Vta.SubProyecto.Pais) + If Not String.IsNullOrEmpty(Vta.SubProyecto.Telefono) AndAlso UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162) Then SBDomicilioSucursal.AppendFormat(", Tel: {0}", Vta.SubProyecto.Telefono) + DomicilioSucursal = SBDomicilioSucursal.ToString + Dim Fecha As String = Vta.Fecha.ToShortDateString + Dim SBDireccion As New StringBuilder() + Dim SBLugar As New StringBuilder() + Dim ClienteDireccion As String + Dim ClienteLugar As String + Vta.FolioFiscal = "Sin Timbrar" + Vta.NoSerieCertificado = "Sin Timbrar" + Vta.SelloCFDi = "Sin Timbrar" + Vta.SelloSAT = "Sin Timbrar" +#Region "COMERCIO EXTERIOR VARIABLES Y TABLAS" + Dim CETipoOperacion = "", CEClavePedimento As String = "", CEIncoterm As String = "", CEId As String = "", CEMotivoTraslado As String = "", CETipoCambio As String = "" + Dim RCETipoOperacion As String = "", RCEClavePedimento As String = "", RCEIncoterm As String = "", RCEMotivoTraslado As String = "" + + Dim CE_DT_Cabecera As New DataTable + CE_DT_Cabecera.Columns.Add("Version") + CE_DT_Cabecera.Columns.Add("MotivoTraslado") + CE_DT_Cabecera.Columns.Add("TipoOperacion") + CE_DT_Cabecera.Columns.Add("ClaveDePedimento") + CE_DT_Cabecera.Columns.Add("CertificadoOrigen") + CE_DT_Cabecera.Columns.Add("Incoterm") + CE_DT_Cabecera.Columns.Add("Subdivision") + CE_DT_Cabecera.Columns.Add("TipoCambioUSD", GetType(Decimal)) + CE_DT_Cabecera.Columns.Add("TotalUSD", GetType(Decimal)) + + Dim CE_DT_Emisor As New DataTable + CE_DT_Emisor.Columns.Add("Calle") + CE_DT_Emisor.Columns.Add("NumeroExterior") + CE_DT_Emisor.Columns.Add("Colonia") + CE_DT_Emisor.Columns.Add("Municipio") + CE_DT_Emisor.Columns.Add("Estado") + CE_DT_Emisor.Columns.Add("Pais") + CE_DT_Emisor.Columns.Add("CodigoPostal") + CE_DT_Emisor.Columns.Add("Tipo", GetType(Integer)) + Dim CE_DT_Receptor As New DataTable + Dim CE_DT_Destinatario As New DataTable + CE_DT_Receptor = CE_DT_Emisor.Copy + CE_DT_Destinatario = CE_DT_Emisor.Copy + + Dim CE_DT_Mercancias As New DataTable + CE_DT_Mercancias.Columns.Add("NoIdentificacion") + CE_DT_Mercancias.Columns.Add("FraccionArancelaria") + CE_DT_Mercancias.Columns.Add("CantidadAduana") + CE_DT_Mercancias.Columns.Add("UnidadAduana") + CE_DT_Mercancias.Columns.Add("ValorUnitarioAduana", GetType(Decimal)) + CE_DT_Mercancias.Columns.Add("ValorDolares", GetType(Decimal)) +#End Region + 'SI ESTA TIMBRADA - CON XML + If File.Exists(PathXML) AndAlso Vta.Serie <> "VistaPrevia" Then 'Cuando es vista previe y coincide la serie y folio se ponen los datos fiscales + Dim XmlDoc As New System.Xml.XmlDocument + Dim EsXMLValido = False + Try + XmlDoc.Load(PathXML) + EsXMLValido = True + Catch ex As Exception + GuardaLog(" --- *** Impresion ventas - ClsPaginas LN#5016 (Aprox) - EXISTE EL XML PERO NO SE PUEDE LEER. *** --- ") + End Try + + If EsXMLValido Then + Dim TC As Decimal = ValorNodoXML(XmlDoc.DocumentElement, "TC").ToDecimal + If TC <= 0 Then TC = 1 + XmlVersion = ValorNodoXML(XmlDoc.DocumentElement, "version") + If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then + Vta.FechaEmision = ValorNodoXML(XmlDoc.DocumentElement, "fecha").ToDate + Vta.NoSerieCertificadoContribuyente = ValorNodoXML(XmlDoc.DocumentElement, "NoCertificado") + Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") + If Not IsNothing(validaElemento) Then + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then + Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText + Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate + Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText + Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText + End If +#Region "COMERCIO EXTERIOR LECTURA DATOS XML" + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "cce11:ComercioExterior" Then + Dim nRowCECabecera As DataRow = CE_DT_Cabecera.NewRow + CETipoOperacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoOperacion").InnerText + CEClavePedimento = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("ClaveDePedimento").InnerText + CEIncoterm = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Incoterm").InnerText + + nRowCECabecera("Version") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Version").InnerText + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado") IsNot Nothing Then + nRowCECabecera("MotivoTraslado") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado").InnerText + End If + nRowCECabecera("TipoOperacion") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoOperacion").InnerText + nRowCECabecera("ClaveDePedimento") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("ClaveDePedimento").InnerText + nRowCECabecera("CertificadoOrigen") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("CertificadoOrigen").InnerText + nRowCECabecera("Incoterm") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Incoterm").InnerText + nRowCECabecera("Subdivision") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Subdivision").InnerText + nRowCECabecera("TipoCambioUSD") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoCambioUSD").InnerText.ToDecimal + nRowCECabecera("TotalUSD") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TotalUSD").InnerText.ToDecimal + CE_DT_Cabecera.Rows.Add(nRowCECabecera) + Dim nodo As XmlNode = XmlDoc.DocumentElement + Dim VersionCFDI As String = ValorXML(nodo, "version") + Dim cfdVer As String = "" + If VersionCFDI = "3.2" Then + cfdVer = "http://www.sat.gob.mx/cfd/2" + ElseIf VersionCFDI = "3.3" Then + cfdVer = "http://www.sat.gob.mx/cfd/3" + Else ' se considera que es la version 4.0 + cfdVer = "http://www.sat.gob.mx/cfd/4" + End If + Dim namespaces As XmlNamespaceManager = New XmlNamespaceManager(XmlDoc.NameTable) + namespaces.AddNamespace("cfdi", cfdVer) + namespaces.AddNamespace("cce11", "http://www.sat.gob.mx/ComercioExterior11") + CEId = "" + Try + CEId = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).SelectSingleNode("//cce11:Receptor", namespaces).Attributes("NumRegIdTrib").InnerText 'XmlDoc.SelectNodes("//cfdi:Complemento/tfd:TimbreFiscalDigital/cce11:Destinatario") + Catch ex As Exception + End Try + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado") IsNot Nothing Then + CEMotivoTraslado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado").InnerText + End If + CETipoCambio = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoCambioUSD").InnerText + + RCETipoOperacion = GlobalDTTipoOperacion.FiltroPrimeroValor("Descripcion", $"ClaveSATTipoOperacion = '{CETipoOperacion}'") + RCEClavePedimento = GlobalDTClavePedimento.FiltroPrimeroValor("Descripcion", $"ClaveSATPedimento = '{CEClavePedimento}'") + RCEIncoterm = GlobalDTIncoterm.FiltroPrimeroValor("Descripcion", $"ClaveSATIncoterm = '{CEIncoterm}'") + RCEMotivoTraslado = GlobalDTSATMotivoTraslado.FiltroPrimeroValor("MotivoTraslado", $"ClaveSATMotivoTraslado = '{CEMotivoTraslado}'") + + Dim CENodosEmisor As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Emisor", namespaces) 'XmlDoc.SelectNodes("cfdi:Complemento/{0}:Traslados", "") + Dim CENodosReceptor As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Receptor", namespaces) + Dim CEnodosDestinatario As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Destinatario", namespaces) + Dim CEnodosMercancias As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Mercancias", namespaces) + + For Each node As XmlNode In CENodosEmisor + Dim nRowEmisor As DataRow = CE_DT_Emisor.NewRow + nRowEmisor("Calle") = ValorNodoXML(node.FirstChild, "Calle") + nRowEmisor("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") + nRowEmisor("Colonia") = ValorXML(node.FirstChild, "Colonia") + nRowEmisor("Municipio") = ValorXML(node.FirstChild, "Municipio") + nRowEmisor("Estado") = ValorXML(node.FirstChild, "Estado") + nRowEmisor("Pais") = ValorXML(node.FirstChild, "Pais") + nRowEmisor("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") + nRowEmisor("Tipo") = 1 + CE_DT_Emisor.Rows.Add(nRowEmisor) + Exit For + Next + For Each node As XmlNode In CENodosReceptor + Dim nRowReceptor As DataRow = CE_DT_Receptor.NewRow + nRowReceptor("Calle") = ValorXML(node.FirstChild, "Calle") + nRowReceptor("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") + nRowReceptor("Colonia") = ValorXML(node.FirstChild, "Colonia") + nRowReceptor("Municipio") = ValorXML(node.FirstChild, "Municipio") + nRowReceptor("Estado") = ValorXML(node.FirstChild, "Estado") + nRowReceptor("Pais") = ValorXML(node.FirstChild, "Pais") + nRowReceptor("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") + nRowReceptor("Tipo") = 2 + CE_DT_Receptor.Rows.Add(nRowReceptor) + Exit For + Next + For Each node As XmlNode In CEnodosDestinatario + Dim nRowDestinatario As DataRow = CE_DT_Destinatario.NewRow + nRowDestinatario("Calle") = ValorXML(node.FirstChild, "Calle") + nRowDestinatario("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") + nRowDestinatario("Colonia") = ValorXML(node.FirstChild, "Colonia") + nRowDestinatario("Municipio") = ValorXML(node.FirstChild, "Municipio") + nRowDestinatario("Estado") = ValorXML(node.FirstChild, "Estado") + nRowDestinatario("Pais") = ValorXML(node.FirstChild, "Pais") + nRowDestinatario("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") + nRowDestinatario("Tipo") = 3 + CE_DT_Destinatario.Rows.Add(nRowDestinatario) + Exit For + Next + For Each node As XmlNode In CEnodosMercancias + Dim nRowMercancias As DataRow = CE_DT_Mercancias.NewRow + nRowMercancias("NoIdentificacion") = ValorXML(node.FirstChild, "NoIdentificacion") + nRowMercancias("FraccionArancelaria") = ValorXML(node.FirstChild, "FraccionArancelaria") + nRowMercancias("CantidadAduana") = ValorXML(node.FirstChild, "CantidadAduana") + nRowMercancias("UnidadAduana") = ValorXML(node.FirstChild, "UnidadAduana") + nRowMercancias("ValorUnitarioAduana") = ValorXML(node.FirstChild, "ValorUnitarioAduana").ToDecimal + nRowMercancias("ValorDolares") = ValorXML(node.FirstChild, "ValorDolares").ToDecimal + CE_DT_Mercancias.Rows.Add(nRowMercancias) + Next + Dim asddd As String = "" + End If +#End Region + Next + End If + Else + Vta.FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate + Vta.NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText + Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") + If Not IsNothing(validaElemento) Then + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then + Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText + Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate + Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText + Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText + End If + Next + End If + End If + End If + + End If + + If Vta.Version.Length = 0 AndAlso XmlVersion.Length > 0 Then + Vta.Version = XmlVersion + End If + 'DIRECCION CLIENTE + If Vta.CveClienteSucursal.ToEntero > 0 Then + 'Si cliente tiene Noint, NoExt, CP + SBDireccion.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) + If Vta.ClienteSucursal.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) + If Vta.ClienteSucursal.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) + If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.ClienteSucursal.Colonia) + If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then + If Vta.ClienteSucursal.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.ClienteSucursal.CP.Trim) + End If + 'Si cliente tiene Local, CD, Edo, Pais + If Vta.ClienteSucursal.Localidad IsNot Nothing AndAlso Vta.ClienteSucursal.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.ClienteSucursal.Localidad) + If Vta.ClienteSucursal.Municipio IsNot Nothing AndAlso Vta.ClienteSucursal.Municipio.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.ClienteSucursal.Municipio) + If Vta.ClienteSucursal.Estado IsNot Nothing AndAlso Vta.ClienteSucursal.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.ClienteSucursal.Estado) + If Vta.ClienteSucursal.Pais IsNot Nothing AndAlso Vta.ClienteSucursal.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.ClienteSucursal.Pais) + ElseIf Vta.CveCliente.ToEntero > 0 Then + SBDireccion.AppendFormat("{0}", Vta.Cliente.Direccion) + If Vta.Cliente.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) + If Vta.Cliente.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) + If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.Cliente.Colonia) + If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then + If Vta.Cliente.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.Cliente.CP.Trim) + End If + 'Si cliente tiene Local, CD, Edo, Pais + If Vta.Cliente.Localidad IsNot Nothing AndAlso Vta.Cliente.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.Cliente.Localidad) + If Vta.Cliente.Ciudad IsNot Nothing AndAlso Vta.Cliente.Ciudad.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.Cliente.Ciudad) + If Vta.Cliente.Estado IsNot Nothing AndAlso Vta.Cliente.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.Cliente.Estado) + If Vta.Cliente.Pais IsNot Nothing AndAlso Vta.Cliente.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.Cliente.Pais) + End If + ClienteDireccion = SBDireccion.ToString + ClienteLugar = SBLugar.ToString + SBDireccion.Clear() + SBLugar.Clear() + 'LOGO + Dim LogoRuta As String = "" + 'POR SUCURSAL + LogoRuta = String.Format("{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + If File.Exists(LogoRuta) Then + LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) + 'POR EMPRESA + Else + LogoRuta = String.Format("{0}Formatos\Logo.png", UsuarioActual.Empresa.Ruta) + If File.Exists(LogoRuta) Then + 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) + LogoRuta = String.Format("{0}", LogoRuta) + End If + End If + 'Si no tiene CBB, SE GENERA + If Not ImagenCBB.Exists AndAlso Vta.FolioFiscal <> "" Then + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total, Vta.FolioFiscal, RutaCBB) + End If + 'ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme.Replace("https", "http"), Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) + + 'Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||" + Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version.Contiene("3.3", "4.0"), "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado) + If Not ImagenCBB.Exists Then ImgCBB = "" + Dim RutaFormato As String = "" + Dim RutaFormatoDefault As String = "" + + ImgCBB = $"file://{ImagenCBB.FullName}" + + 'AQUI EMPIEZA LOS PARAMETROS + Try + Dim params As New List(Of ReportParameter) + + If RCETipoOperacion.Trim.Length > 0 Then + params.Add(New ReportParameter("CETipoOperacion", RCETipoOperacion)) + params.Add(New ReportParameter("CEClavePedimento", RCEClavePedimento)) + params.Add(New ReportParameter("CEIncoterm", RCEIncoterm)) + params.Add(New ReportParameter("CEId", CEId)) + params.Add(New ReportParameter("CEMotivoTraslado", RCEMotivoTraslado)) + params.Add(New ReportParameter("CETipoCambio", CETipoCambio)) + End If + + If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + params.Add(New ReportParameter("CFDIVersion", Vta.Version)) + If Vta.Cliente.CodigoRegimenFiscal.ToString.Length > 0 Then + params.Add(New ReportParameter("RegimenFiscalCodigo", $"{Vta.Cliente.CodigoRegimenFiscal}-{Vta.Cliente.RegimenFiscal}")) + End If + End If + + 'CLIENTE + If Vta.CveCliente.ToEntero > 0 Or Vta.CveEmpresaCRM.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo)) + params.Add(New ReportParameter("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre)))) + params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion)) + params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) + params.Add(New ReportParameter("ClienteRFC", RFCReceptor)) + End If + If Vta.CveEmpresaCRM.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo)) + params.Add(New ReportParameter("ClienteNombre", Vta.Cliente.Nombre)) + params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion)) + params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) + params.Add(New ReportParameter("ClienteRFC", RFCReceptor)) + End If + + 'TOTALES + params.Add(New ReportParameter("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("Descuento", Vta.Descuento.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("Amortizacion", Vta.Amortizacion.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("SubTotal2", (Vta.SubTotal - Vta.Descuento - Vta.Amortizacion).ToString.FormatoNumero(2))) + params.Add(New ReportParameter("IVA", Vta.IVA.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("RetIVA", Vta.RetIVA.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("RetISR", Vta.RetISR.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("Total", Vta.Total.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("ImporteLetra", Vta.Total.ToString.ToDouble.Texto2Letras(Vta.CveMoneda))) + 'DATOS GENERALES + + If UsuarioActual.CveEmpresa.Contiene(15) Then + params.Add(New ReportParameter("CP", UsuarioActual.Empresa.CP.ToString)) + End If + + params.Add(New ReportParameter("Observaciones", Vta.Observaciones)) + params.Add(New ReportParameter("CveVendedor", Vta.CveVendedor.ToString)) + params.Add(New ReportParameter("Status", Vta.EstatusFactura)) + params.Add(New ReportParameter("FechaSolicitud", Vta.Fecha.ToString("dd/MMMM/yyyy"))) ' se puede omitir + params.Add(New ReportParameter("Serie", Vta.Serie)) + params.Add(New ReportParameter("Folio", Vta.Folio.ToString)) + params.Add(New ReportParameter("DomicilioSucursal", DomicilioSucursal)) + params.Add(New ReportParameter("Vencimiento", Vta.FechaVencimiento.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("FolioFiscal", Vta.FolioFiscal)) + params.Add(New ReportParameter("FechaCertificacion", String.Format("{0}T{1}", Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss")))) + params.Add(New ReportParameter("SelloCFDI", Vta.SelloCFDi)) + params.Add(New ReportParameter("CadenaSAT", CadenaOriginals)) + params.Add(New ReportParameter("SelloSAT", Vta.SelloSAT)) + 'Net.ServicePointManager.SecurityProtocol = Net.ServicePointManager.SecurityProtocol Or Net.SecurityProtocolType.Tls Or Net.SecurityProtocolType.Tls11 Or Net.SecurityProtocolType.Tls12 + params.Add(New ReportParameter("QR", ImgCBB)) + params.Add(New ReportParameter("Moneda", Vta.Moneda)) + params.Add(New ReportParameter("TipoCambio", Vta.TipoCambio.ToString)) + params.Add(New ReportParameter("CondicionPago", Vta.CondicionesPagoText)) + params.Add(New ReportParameter("CadenaOriginal", CadenaOriginals)) + params.Add(New ReportParameter("SerieCertificadoSAT", Vta.NoSerieCertificado)) + params.Add(New ReportParameter("CertificadoContribuyente", Vta.NoSerieCertificadoContribuyente)) + params.Add(New ReportParameter("NumCta", Vta.NumeroCuenta)) + params.Add(New ReportParameter("LogoPath", LogoRuta)) + params.Add(New ReportParameter("CiudadSucursal", CiudadSucursal)) + params.Add(New ReportParameter("OC", Vta.Det_OrdenCompra.ToString)) + params.Add(New ReportParameter("ClienteDiasCredito", "0")) + params.Add(New ReportParameter("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) + params.Add(New ReportParameter("Sucursal", Vta.SubProyecto.SubProyecto)) + params.Add(New ReportParameter("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) + params.Add(New ReportParameter("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) + params.Add(New ReportParameter("PedidoContrato", Vta.PedidoContrato)) + params.Add(New ReportParameter("OrdenCompra", Vta.OrdenCompra)) + params.Add(New ReportParameter("DescripcionContrato", Vta.NumeroDescripcionContrato)) + params.Add(New ReportParameter("Contrato", Vta.NumeroContrato)) + params.Add(New ReportParameter("Fecha", String.Format("{0}T{1}", Vta.Fecha.ToString("yyyy-MM-dd"), Vta.Fecha.ToString("HH:mm:ss")))) + 'VENDEDOR + Dim VendedorNombre As String = "" + Dim VendedorMail As String = "" + Dim VendedorTelefono As String = "" + Dim VendedorCelular As String = "" + Dim RowVendedor As DataRow = GlobalDTVendedores(-1).FiltroPrimero(String.Format("CveVendedor = {0}", Vta.CveVendedor.ToString)) + If Not IsNothing(RowVendedor) Then + VendedorNombre = RowVendedor("Vendedor").ToString + VendedorMail = RowVendedor("Correo").ToString + VendedorTelefono = RowVendedor("Telefono").ToString + VendedorCelular = RowVendedor("Celular").ToString + End If + params.Add(New ReportParameter("VendedorNombre", VendedorNombre)) + params.Add(New ReportParameter("VendedorMail", VendedorMail)) + params.Add(New ReportParameter("VendedorTelefono", VendedorTelefono)) + params.Add(New ReportParameter("VendedorCelular", VendedorCelular)) + If UsuarioActual.Empresa.Funcionalidad(508) = "1" Then + params.Add(New ReportParameter("IEPS", Vta.IEPS.ToString.FormatoNumero(2))) + End If + If Vta.CveClienteSucursal > 0 Then + params.Add(New ReportParameter("ClienteContactoMail", Vta.ClienteSucursal.CorreoSucursal)) + params.Add(New ReportParameter("ClienteTelefono", Vta.ClienteSucursal.TelefonoSucursal)) + ElseIf Vta.CveCliente.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteContactoMail", Vta.Cliente.MailCotizacion)) + params.Add(New ReportParameter("ClienteTelefono", If(Vta.TelefonoGenerico <> "", Vta.TelefonoGenerico, Vta.Cliente.Telefono))) + End If + If UsuarioActual.CveEmpresa.Contiene(17) Then + params.Add(New ReportParameter("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString)) + End If + If Vta.Version.Contiene("3.3", "4.0") Then + params.Add(New ReportParameter("FormaPago", Vta.FormaPago33.ToString)) + params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago33.ToString)) + params.Add(New ReportParameter("UsoCFDI", Vta.UsoCFDI)) + If Vta.TipoDocto.Contiene("Ing", "Egs", "Ant", "Dev") Then + params.Add(New ReportParameter("TipoRelacionTexto", If(Vta.Timbre.CFDIRelacionados.TipoRelacionTexto Is Nothing, "", Vta.Timbre.CFDIRelacionados.TipoRelacionTexto))) + params.Add(New ReportParameter("FolioFiscalRelacionado", If(Vta.Timbre.CFDIRelacionados.UUID.Count = 0, "", Vta.Timbre.CFDIRelacionados.UUID.Item(0)))) + End If + Else + params.Add(New ReportParameter("FormaPago", Vta.FormaPagoText)) + params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago.ToString)) + End If + 'DIRECCION ENVIO + If Vta.EnviarA IsNot Nothing AndAlso Vta.EnviarA.CveDireccionEnvio > 0 Then + Dim StrEnvioDi As New StringBuilder + StrEnvioDi.AppendFormat("{0}", Vta.EnviarA.EnvioDireccion) + If Vta.EnviarA.EnvioNoExt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.EnviarA.EnvioNoExt) + If Vta.EnviarA.EnvioNoInt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.EnviarA.EnvioNoInt) + params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) + params.Add(New ReportParameter("EnvioNoExt", Vta.EnviarA.EnvioNoExt)) + params.Add(New ReportParameter("EnvioNoInt", Vta.EnviarA.EnvioNoInt)) + params.Add(New ReportParameter("EnvioColonia", Vta.EnviarA.EnvioColonia)) + params.Add(New ReportParameter("EnvioCiudad", Vta.EnviarA.EnvioCiudad)) + params.Add(New ReportParameter("EnvioEstado", Vta.EnviarA.EnvioEstado)) + params.Add(New ReportParameter("EnvioContacto", Vta.EnviarA.EnvioContacto)) + params.Add(New ReportParameter("EnvioDepartamento", Vta.EnviarA.EnvioDepartamento)) + params.Add(New ReportParameter("EnvioCP", Vta.EnviarA.EnvioCP)) + If Vta.CveEmpresa = 72 Then + params.Add(New ReportParameter("EnvioTel", Vta.EnviarA.EnvioTel)) + End If + ElseIf Vta.CveCliente.ToEntero > 0 Then + If Vta.CveClienteSucursal.ToEntero > 0 Then + Dim StrEnvioDi As New StringBuilder + StrEnvioDi.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) + If Vta.ClienteSucursal.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) + If Vta.ClienteSucursal.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) + params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) + params.Add(New ReportParameter("EnvioNoExt", Vta.ClienteSucursal.NoExt)) + params.Add(New ReportParameter("EnvioNoInt", Vta.ClienteSucursal.NoInt)) + params.Add(New ReportParameter("EnvioColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) + params.Add(New ReportParameter("EnvioCiudad", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) + params.Add(New ReportParameter("EnvioEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) + params.Add(New ReportParameter("EnvioCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) + Else + Dim StrEnvioDi As New StringBuilder + StrEnvioDi.AppendFormat("{0}", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")) + If Vta.Cliente.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) + If Vta.Cliente.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) + params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) + params.Add(New ReportParameter("EnvioNoExt", Vta.Cliente.NoExt)) + params.Add(New ReportParameter("EnvioNoInt", Vta.Cliente.NoInt)) + params.Add(New ReportParameter("EnvioColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) + params.Add(New ReportParameter("EnvioCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) + params.Add(New ReportParameter("EnvioEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) + params.Add(New ReportParameter("EnvioCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) + End If + params.Add(New ReportParameter("EnvioContacto", "")) + params.Add(New ReportParameter("EnvioDepartamento", "")) + End If + 'CLIENTE SUCURSAL + If Vta.CveClienteSucursal.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) + params.Add(New ReportParameter("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) + params.Add(New ReportParameter("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) + params.Add(New ReportParameter("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) + params.Add(New ReportParameter("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) + params.Add(New ReportParameter("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) + params.Add(New ReportParameter("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) + params.Add(New ReportParameter("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) + params.Add(New ReportParameter("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) + params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) + ElseIf Vta.CveCliente.ToEntero > 0 Then + params.Add(New ReportParameter("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) + params.Add(New ReportParameter("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) + params.Add(New ReportParameter("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) + params.Add(New ReportParameter("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) + params.Add(New ReportParameter("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) + params.Add(New ReportParameter("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) + params.Add(New ReportParameter("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) + params.Add(New ReportParameter("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) + params.Add(New ReportParameter("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) + params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) + End If + 'PARAMETROS SEGUN TIPO DOCUMENTO + Select Case Vta.TipoDocto + Case "Ing" + NombreArchivo = "Factura" + NombreArchivoDescarga = "Factura" + TipoDocumento = "INGRESO" + If UsuarioActual.CveEmpresa.Contiene(137) Then + params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) + End If + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + 'VSH + If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then + 'DATOS CLIENTES + Dim ClienteRow = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCliente = {0}", Vta.CveCliente.ToString)) + Dim DatosCliente = "" + If ClienteRow IsNot Nothing Then + DatosCliente = String.Format("{0} | {1} | {2}", Vta.SubProyecto.Municipio, ClienteRow("CuentaContable"), ClienteRow("Codigo")) + End If + params.Add(New ReportParameter("ClienteDatoExtra1", DatosCliente)) + End If + 'ECONOLLANTAS - AGREGAR QR DE DESCARGA + If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) Then + Dim QRDescarga As String = "" + Dim cfdi As New RVCFDI33.GeneraCFDI() + Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?P={Encripta($"File={Vta.SerieFolio}.pdf")}") + QRDescarga = Convert.ToBase64String(b) + params.Add(New ReportParameter("QRDescarga", QRDescarga)) + End If + 'INE COMPLEMENTOS + If UsuarioActual.CveEmpresa.Contiene(72, 1) Then + Dim INETipoProceso As String = "" + Dim INETipoComite As String = "" + Dim INEIdContabilidad As Integer = 0 + If Vta.ComplementoINE IsNot Nothing Then + INETipoProceso = Vta.ComplementoINE.INETipoProceso + INETipoComite = Vta.ComplementoINE.INETipoComite + INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad + End If + params.Add(New ReportParameter("INETipoProceso", INETipoProceso)) + params.Add(New ReportParameter("INETipoComite", INETipoComite)) + params.Add(New ReportParameter("INEIdContabilidad", INEIdContabilidad.ToString)) + params.Add(New ReportParameter("Referencia", Vta.Cliente.ReferenciaFiscal)) + End If + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Rem" + NombreArchivo = "Remision" + NombreArchivoDescarga = "Remisión" + TipoDocumento = "REMISION" + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Cot" + NombreArchivo = "Cotizacion" + NombreArchivoDescarga = "Cotización" + TipoDocumento = "COTIZACIÓN" + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) + If UsuarioActual.CveEmpresa.Contiene(137, 132, 144) Then + params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) + End If + 'COMPU DN DIFUSA + If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 137, 132, 144, 177) Then + Dim FirmaVendedor As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveVendedor)) + params.Add(New ReportParameter("FirmaVendedor", If(FirmaVendedor.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", UsuarioActual.CveEmpresa, Vta.CveVendedor))).AbsoluteUri, ""))) + params.Add(New ReportParameter("Entrega", Vta.Entrega)) + params.Add(New ReportParameter("Vigencia", Vta.Vigencia.ToString("dd/MMMM/yyyy"))) + params.Add(New ReportParameter("Sucursal", Vta.SubProyecto.SubProyecto)) + params.Add(New ReportParameter("SucursalCliente", If(Vta.ClienteSucursal.Sucursal Is Nothing, "", Vta.ClienteSucursal.Sucursal.ToString))) + params.Add(New ReportParameter("CveMoneda", Vta.CveMoneda.ToString)) + params.Add(New ReportParameter("FormaEntrega", Vta.CondicionEntrega)) + If Not IsNothing(RowVendedor) Then + params.Add(New ReportParameter("TituloVendedor", RowVendedor("TituloDocumentos").ToString)) + Else + params.Add(New ReportParameter("TituloVendedor", "")) + End If + End If + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Egs" + If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + NombreArchivo = "NotaCredito" + Else + NombreArchivo = "Factura" + End If + NombreArchivoDescarga = "Nota de Crédito" + TipoDocumento = "EGRESO" + TipoDocumentoRef = String.Format(": Ref.:{0}", Vta.RefDocto) + AplicaPagare = "0" + If UsuarioActual.CveEmpresa.Contiene(137) Then + params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) + End If + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Ant" + NombreArchivo = "Factura" + NombreArchivoDescarga = "Anticipo" + TipoDocumento = "INGRESO" + If UsuarioActual.CveEmpresa.Contiene(137) Then + params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) + End If + 'GENERAL + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + 'INE COMPLEMENTOS + If UsuarioActual.CveEmpresa.Contiene(72) Then + Dim INETipoProceso As String = "" + Dim INETipoComite As String = "" + Dim INEIdContabilidad As Integer = 0 + If Vta.ComplementoINE IsNot Nothing Then + INETipoProceso = Vta.ComplementoINE.INETipoProceso + INETipoComite = Vta.ComplementoINE.INETipoComite + INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad + End If + params.Add(New ReportParameter("INETipoProceso", INETipoProceso)) + params.Add(New ReportParameter("INETipoComite", INETipoComite)) + params.Add(New ReportParameter("INEIdContabilidad", INEIdContabilidad.ToString)) + params.Add(New ReportParameter("Referencia", Vta.Cliente.ReferenciaFiscal)) + params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) + End If + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Ped" + NombreArchivo = "Pedido" + NombreArchivoDescarga = "Pedido" + TipoDocumento = "INGRESO" + 'GENERAL + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + params.Add(New ReportParameter("CveAlmacenTraspasoOrigen", Vta.CveAlmacenTraspasoOrigen.ToString)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Pd2" + NombreArchivo = "Pedido2" + NombreArchivoDescarga = "Pedido2" + TipoDocumento = "INGRESO" + 'GENERAL + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Dev" + NombreArchivo = "NotaDevolucion" + NombreArchivoDescarga = "NotaDevolucion" + TipoDocumento = "DEVOLUCION" + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "DPe" + NombreArchivo = "DevolucionPedido" + NombreArchivoDescarga = "DevolucionPedido" + TipoDocumento = "INGRESO" + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "PeC" + NombreArchivo = "PedidoConsignacion" + NombreArchivoDescarga = "Pedido Consignación" + TipoDocumento = "INGRESO" + 'GENERAL + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "Tra" + NombreArchivo = "Traspaso" + NombreArchivoDescarga = "Traslado" + TipoDocumento = "Traslado" + Dim ObjInv As New ClsInventarios + Dim AlmOrigen As String = "" + Dim AlmDestino As String = "" + Dim SBDireccionO As New StringBuilder() + Dim SBDireccionD As New StringBuilder() + If ObjInv.GetMovimientos(Vta.Inv_CveMovimiento.ToEntero, -1, -1, UsuarioActual.CveEmpresa) Then + If ObjInv.DtResultados.Rows.Count > 0 Then + Dim Dr As DataRow = ObjInv.DtResultados.Rows(0) + If Dr IsNot Nothing Then + AlmOrigen = Dr("AlmacenOrigen").ToString + AlmDestino = Dr("AlmacenDestino").ToString + If Dr("CalleOrigen").ToString.Length > 0 Then + SBDireccionO.AppendFormat("{0}", Dr("CalleOrigen").ToString) + If Dr("NoExtOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", No.Ext: {0}", Dr("NoExtOrigen").ToString) + If Dr("ColoniaOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Col: {0}", Dr("ColoniaOrigen").ToString) + If Dr("CPOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", CP: {0}", Dr("CPOrigen").ToString) + If Dr("LocalidadOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Loc: {0}", Dr("LocalidadOrigen").ToString) + If Dr("MunicipioOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Cd: {0}", Dr("MunicipioOrigen").ToString) + If Dr("EstadoOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Edo: {0}", Dr("EstadoOrigen").ToString) + If Dr("PaisOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", País: {0}", Dr("PaisOrigen").ToString) + End If + If Dr("CalleDestino").ToString.Length > 0 Then + SBDireccionD.AppendFormat("{0}", Dr("CalleDestino").ToString) + If Dr("NoExtDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", No.Ext: {0}", Dr("NoExtDestino").ToString) + If Dr("ColoniaDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Col: {0}", Dr("ColoniaDestino").ToString) + If Dr("CPDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", CP: {0}", Dr("CPDestino").ToString) + If Dr("LocalidadDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Loc: {0}", Dr("LocalidadDestino").ToString) + If Dr("MunicipioDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Cd: {0}", Dr("MunicipioDestino").ToString) + If Dr("EstadoDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Edo: {0}", Dr("EstadoDestino").ToString) + If Dr("PaisDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", País: {0}", Dr("PaisDestino").ToString) + End If + + End If + + End If + End If + 'GENERAL + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + params.Add(New ReportParameter("AlmOrigen", AlmOrigen)) + params.Add(New ReportParameter("AlmDestino", AlmDestino)) + params.Add(New ReportParameter("DireccionOrigen", SBDireccionO.ToString)) + params.Add(New ReportParameter("DireccionDestino", SBDireccionD.ToString)) + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case "RNC" + NombreArchivo = "RemisionNC" + NombreArchivoDescarga = "RemisionNC" + TipoDocumento = "REMISION" + params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) + params.Add(New ReportParameter("Tipo", TipoDocumento)) + params.Add(New ReportParameter("Ref", TipoDocumentoRef)) + params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) + 'ALAN YEPIZ + If UsuarioActual.CveEmpresa.Contiene(123) Then + params.Add(New ReportParameter("DiaExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Day))) + params.Add(New ReportParameter("MesExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Month))) + params.Add(New ReportParameter("AñoExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Year))) + End If + RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) + RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) + Case Else + NombreArchivo = "" + TipoDocumento = "" + End Select + If NombreArchivo = "" Then + GuardaLog("No se especifico el tipo de Impresion de venta (Venta, Remision, Cotización, Nota de Crédito).") + Return Nothing + End If + 'TERMINA REGION PARAMETROS + Dim lrds As New List(Of ReportDataSource) + 'Si es ECLIPSE CREAR COLUMAS PARA FIRMAS EN DtDetalle. + If UsuarioActual.CveEmpresa.Contiene(1, 15, 17, 71, 76, 126) AndAlso Vta.DtFirmas IsNot Nothing Then + Dim DtDetalleFirmas As New DataTable + DtDetalleFirmas.TableName = "DetalleFirma" + DtDetalleFirmas = Vta.DtDetalle.Copy() + 'SI NO TIENE LAS COLUMNAS DE FIRMAS LAS CREA. + If Not DtDetalleFirmas.Columns.Contains("Titulo") Then + DtDetalleFirmas.Columns.Add("Titulo", GetType(String)) + DtDetalleFirmas.Columns.Add("Nombre", GetType(String)) + DtDetalleFirmas.Columns.Add("Puesto", GetType(String)) + DtDetalleFirmas.Columns.Add("Lado", GetType(Integer)) + End If + 'Se llenan los Rows de las columnas con los datos del DtFirmas + For i As Integer = 0 To Vta.DtFirmas.Rows.Count - 1 + 'Si DtDetalle es menor al DtFirmas, crea un nuevo Row en DtDetalle y le asigna valor, Si no solo asigna valor + If DtDetalleFirmas.Rows.Count < i + 1 Then + Dim Dr = DtDetalleFirmas.NewRow + Dr("Titulo") = Vta.DtFirmas(i)("Titulo").ToString + Dr("Nombre") = Vta.DtFirmas(i)("Nombre").ToString + Dr("Puesto") = Vta.DtFirmas(i)("Puesto").ToString + Dr("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero + DtDetalleFirmas.Rows.Add(Dr) + Else + DtDetalleFirmas(i)("Titulo") = Vta.DtFirmas(i)("Titulo").ToString + DtDetalleFirmas(i)("Nombre") = Vta.DtFirmas(i)("Nombre").ToString + DtDetalleFirmas(i)("Puesto") = Vta.DtFirmas(i)("Puesto").ToString + DtDetalleFirmas(i)("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero + End If + Next i + Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = DtDetalleFirmas} + lrds.Add(rds) + Else + Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = Vta.DtDetalle} + lrds.Add(rds) + End If + Dim rds1 As New ReportDataSource With {.Name = "DataSet1", .Value = If(Vta.DtDeduccion IsNot Nothing, Vta.DtDeduccion, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + lrds.Add(rds1) + 'DETALLE FIRMAS + Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(Vta.DtFirmas IsNot Nothing, Vta.DtFirmas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + lrds.Add(rds2) + Dim rds3 As New ReportDataSource With {.Name = "DataSet3", .Value = If(Vta.DtDesgloseImpuestos IsNot Nothing, Vta.DtDesgloseImpuestos, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + lrds.Add(rds3) + Dim rds4 As New ReportDataSource With {.Name = "DataSet4", .Value = If(Vta.DtDocumentosRelacionados IsNot Nothing, Vta.DtDocumentosRelacionados, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + lrds.Add(rds4) + If UsuarioActual.Empresa.Funcionalidad(707) = "1" OrElse UsarStimulsoft Then + If Vta.DtDocumentosRelacionados IsNot Nothing AndAlso Vta.DtDocumentosRelacionados.Rows.Count > 0 Then + params.Add(New ReportParameter("TieneDocumentosRelacionados", "True")) + Else + params.Add(New ReportParameter("TieneDocumentosRelacionados", "False")) + End If + End If + Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte + lrds.Add(rds5) + + If RCETipoOperacion.Trim.Length > 0 Then + Dim rds6 As New ReportDataSource With {.Name = "CE_DT_Emisor", .Value = CE_DT_Emisor} + lrds.Add(rds6) + Dim rds7 As New ReportDataSource With {.Name = "CE_DT_Receptor", .Value = CE_DT_Receptor} + lrds.Add(rds7) + Dim rds8 As New ReportDataSource With {.Name = "CE_DT_Destinatario", .Value = CE_DT_Destinatario} + lrds.Add(rds8) + Dim rds9 As New ReportDataSource With {.Name = "CE_DT_Mercancias", .Value = CE_DT_Mercancias} + lrds.Add(rds9) + Dim rds10 As New ReportDataSource With {.Name = "CE_DT_Cabecera", .Value = CE_DT_Cabecera} + lrds.Add(rds10) + End If + + If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) AndAlso (RutaFormato.Contains("Factura") Or RutaFormato.Contains("Cotizacion")) Then + params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString)) + End If + 'Imprime los parametros + 'Dim ast As New StringBuilder + 'For Each par As ReportParameter In params + ' ast.AppendFormat("{0}{1}", par.Name, vbCrLf) + 'Next + 'ast.ToString.GuardaLog() + 'PASAR LOS PARAMETROS SI TIENE SUBREPORTE + If SubReportData IsNot Nothing Then + For Each parametro As ReportParameter In SubReportData.Parametros + params.Add(parametro) + Next + End If + 'TEMPORAL, DEBE CAMBIARSE A FUNCIONALIDAD + If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then + Dim ArchivoStimulsfot As New System.IO.FileInfo(RutaFormato.Replace(".rdlc", ".mrt")) + If ArchivoStimulsfot.Exists Then + UsarStimulsoft = True + params.Add(New ReportParameter("RegimenFiscalEmpresa", String.Format("{0} - {1}", UsuarioActual.Empresa.CodigoRegimenFiscal, UsuarioActual.Empresa.RegimenFiscal))) + End If + End If + If Not UsarStimulsoft Then + Dim Archivo As New System.IO.FileInfo(RutaFormato) + If Archivo.Exists Then + 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") + ' retorno = StreamBytesStimulsoft("Facturas", RutaFormato, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") + 'Else + ' retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing) + 'End If + retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing, SubReportData:=SubReportData) + Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) + If Guardar Then + If Not ArchivoPDF.Exists Then + Try + DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) + DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) + File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + End Try + Else + Try + ArchivoPDF.Delete() + File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + End Try + End If + End If + Else + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) + 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") + ' retorno = StreamBytesStimulsoft("Facturas", RutaFormatoDefault, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") + 'Else + ' retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing) + 'End If + retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing, SubReportData:=SubReportData) + End If + Else + RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") + retorno = StreamBytesStimulsoft("Facturas", RutaFormato, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") + If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then + Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) + If Guardar Then + If Not ArchivoPDF.Exists Then + Try + DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) + DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) + File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + End Try + Else + Try + ArchivoPDF.Delete() + File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + End Try + End If + End If + End If + End If + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + End Try + Return retorno + End Function + Protected Function StreamBytesStimulsoft(Opcion As String, RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional NombreDataSource As String = "Datos") As Byte() + 'limpio ReportViwer + Dim sw As Stopwatch = Stopwatch.StartNew() + + Dim Bytes As Byte() = Nothing + Dim CveUsuario As Integer = 0 + Dim CveEmpresa As Integer = 0 + Dim RutaEmpresa As String = "" + If Context.Session("UsuarioSIG") IsNot Nothing Then + CveUsuario = UsuarioActual.CveUsuario + CveEmpresa = UsuarioActual.CveEmpresa + RutaEmpresa = UsuarioActual.Empresa.RutaArchivos + End If + Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) + 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA + If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") Then + bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "") + End If + RutaReporte.Replace("/", "\") + If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then + RutaReporte = String.Format("{0}{1}", bdir, RutaReporte) + End If + Dim urlHost As String = "http://localhost:2202/" + If EsProduccion Then + urlHost = "http://sig.adssistemas.mx:6599/" + End If + 'SITIO DE PRUEBA EN IIS + Dim Url = New Uri(String.Format("{0}{1}", urlHost, Opcion)) + Try + Dim dataSourceArray As New JArray() + Dim paramsArray As New JArray() + For Each rds As ReportDataSource In DataSource + Dim Nombre As String = rds.Name + If RutaReporte.Contains("Factura.mrt") OrElse RutaReporte.Contains("Remision.mrt") OrElse RutaReporte.Contains("Cotizacion.mrt") OrElse RutaReporte.Contains("NotaDevolucion.mrt") Then + Select Case rds.Name + Case "DsOC" + Nombre = "DtDetalle" + Case "DataSet1" + Nombre = "DtTotales" + Case "DataSet2" + Nombre = "DtFirmas" + Case "DataSet3" + Nombre = "DtImpuestos" + Case "DataSet4" + Nombre = "DtDocumentosRelacionados" + Case "DataSet5" + Nombre = "DtNCVinculadas" + End Select + End If + dataSourceArray.Add(New JObject(New JProperty("Nombre", Nombre), New JProperty("Valor", JArray.Parse(JsonConvert.SerializeObject(rds.Value))))) + Next + For Each param As ReportParameter In Parametros + paramsArray.Add(New JObject(New JProperty("Nombre", param.Name), New JProperty("Valor", param.Values.Item(0)))) + Next + Dim payload As New JObject( + New JProperty("formato", Formato), + New JProperty("ruta", RutaReporte), + New JProperty("nombreDataSource", NombreDataSource), + New JProperty("UsarFormatoCompilado", False), + New JProperty("parametros", paramsArray), + New JProperty("dataSource", dataSourceArray) + ) + Dim data = New StringContent(payload.ToString(), Encoding.UTF8, "application/json") + Using httpClient = New HttpClient() + Using request = New HttpRequestMessage(HttpMethod.Post, Url) + 'request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks))) + request.Content = New StringContent(payload.ToString(), Encoding.UTF8, "application/json") + Dim response = httpClient.SendAsync(request).Result + If response.StatusCode = Net.HttpStatusCode.OK Then + Bytes = response.Content.ReadAsByteArrayAsync().Result + End If + End Using + End Using + Catch ex As Exception + OnError("Ocurrió un error al descargar la factura", ex) + End Try + sw.Stop() + If sw.Elapsed.TotalSeconds > 5 Then + GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") + End If + Return Bytes + End Function + Private Function ValorNodoXML(n As System.Xml.XmlNode, Campo As String, Optional Retorno As String = "") As String + Dim o As System.Xml.XmlNode = n.Attributes.Cast(Of System.Xml.XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) + If o Is Nothing Then + Return Retorno + Else + Return o.Value + End If + End Function + Public Sub GenerarFacturaVenta(CveVenta As Integer) + Dim ObjVentas As New ClsVentas + Dim Vta As Modelos.Factura = Nothing + Dim TmpDTImpuestos = New DataTable + TmpDTImpuestos.Columns.Add("ImpuestoLocal", GetType(String)) + TmpDTImpuestos.Columns.Add("Importe", GetType(Double)) + TmpDTImpuestos.Columns.Add("Orden", GetType(Integer)) + If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa, False) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then + Dim dtVentas As DataTable = ObjVentas.DtResultados + ' se rellenan los campos de la factura + Vta = ObjVentas.DtResultados.Rows(0).DataRowToObject(Of Modelos.Factura) + Vta.MonedaAbreviatura = dtVentas(0)("Abreviatura").ToString + 'se rellena la sucursal + Vta.SubProyecto = ObjVentas.DtResultados.Rows(0).DataRowToObject(Of Modelos.SubProyectoModel) + Vta.Cliente = New Modelos.ClienteModel + Vta.Cliente.Nombre = dtVentas(0)("ClienteNombre").ToString + Vta.Cliente.Telefono = dtVentas(0)("Telefono").ToString + Vta.Cliente.Direccion = dtVentas(0)("ClienteDireccion").ToString + Vta.Cliente.CP = dtVentas(0)("CPCliente").ToString + Vta.Cliente.Ciudad = dtVentas(0)("ClienteCiudad").ToString + Vta.Cliente.Localidad = dtVentas(0)("ClienteLocalidad").ToString + Vta.Cliente.Estado = dtVentas(0)("ClienteEstado").ToString + Vta.Cliente.Pais = dtVentas(0)("ClientePais").ToString + Vta.Cliente.RFC = dtVentas(0)("ClienteRFC").ToString + Vta.Cliente.Colonia = dtVentas(0)("ColoniaCliente").ToString + Vta.AtencionA = dtVentas(0)("AtencionA").ToString + Vta.TelefonoGenerico = dtVentas(0)("TelefonoGenerico").ToString + Vta.Cliente.NoExt = dtVentas(0)("ClienteNoExt").ToString + Vta.Cliente.NoInt = dtVentas(0)("ClienteNoInt").ToString + Vta.Cliente.Codigo = dtVentas(0)("ClienteCodigo").ToString + Vta.Cliente.Mail = dtVentas(0)("Mail").ToString + Vta.RefDocto = dtVentas(0)("Ref").ToString + Vta.CveVenta = dtVentas(0)("CveVenta").ToString.ToEntero + Vta.Version = dtVentas(0)("Version").ToString + Vta.ClienteSucursal = New Modelos.SucursalModel + Vta.ClienteSucursal.Direccion = dtVentas(0)("SucClienteDireccion").ToString + Vta.ClienteSucursal.NoExt = dtVentas(0)("SucClienteNoExt").ToString + Vta.ClienteSucursal.NoInt = dtVentas(0)("SucClienteNoInt").ToString + Vta.ClienteSucursal.Colonia = dtVentas(0)("SucClienteColonia").ToString + Vta.ClienteSucursal.CP = dtVentas(0)("SucClienteCP").ToString + Vta.ClienteSucursal.Municipio = dtVentas(0)("SucClienteCiudad").ToString + Vta.ClienteSucursal.Estado = dtVentas(0)("SucClienteEstado").ToString + Vta.ClienteSucursal.Pais = dtVentas(0)("SucClientePais").ToString + Vta.ClienteSucursal.Localidad = dtVentas(0)("SucClienteLocalidad").ToString + Vta.ClienteSucursal.CorreoSucursal = dtVentas(0)("SucClienteCorreo").ToString + Vta.ClienteSucursal.TelefonoSucursal = dtVentas(0)("SucClienteTelefono").ToString + Vta.ClienteSucursal.Sucursal = dtVentas(0)("SucursalCliente").ToString + Vta.EnviarA = New Modelos.EnviarAModel + Vta.EnviarA.CveDireccionEnvio = dtVentas(0)("CveDireccionEnvio").ToString.ToEntero + Vta.EnviarA.EnvioDireccion = dtVentas(0)("EnvioDireccion").ToString + Vta.EnviarA.EnvioColonia = dtVentas(0)("EnvioColonia").ToString + Vta.EnviarA.EnvioCiudad = dtVentas(0)("EnvioCiudad").ToString + Vta.EnviarA.EnvioEstado = dtVentas(0)("EnvioEstado").ToString + Vta.EnviarA.EnvioCP = dtVentas(0)("EnvioCP").ToString + Dim DR As DataRow = TmpDTImpuestos.NewRow() + If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then + If dtVentas(0)("SubTotal").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Subtotal" : DR("Importe") = dtVentas(0)("SubTotal").ToString.ToDouble : DR("Orden") = 10 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("Descuento").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Descuentos" : DR("Importe") = dtVentas(0)("Descuento").ToString.ToDouble : DR("Orden") = 20 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("Amortizacion").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Amort.Ant" : DR("Importe") = dtVentas(0)("Amortizacion").ToString.ToDouble : DR("Orden") = 30 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("SubTotal").ToString.ToDouble <> (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) Then DR("ImpuestoLocal") = "SubTotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) : DR("Orden") = 40 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("IVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "IVA" : DR("Importe") = dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 50 : TmpDTImpuestos.Rows.Add(DR) + 'solo para eclipse, que muesre un subtotal debajo de IVA + If UsuarioActual.CveEmpresa = 15 Then DR = TmpDTImpuestos.NewRow() : DR("ImpuestoLocal") = "Subtotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) + dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 51 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("RetIVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.IVA" : DR("Importe") = dtVentas(0)("RetIVA").ToString.ToDouble : DR("Orden") = 60 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("RetISR").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.ISR" : DR("Importe") = dtVentas(0)("RetISR").ToString.ToDouble : DR("Orden") = 70 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + If dtVentas(0)("Total").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Total" : DR("Importe") = dtVentas(0)("Total").ToString.ToDouble : DR("Orden") = 1000 : TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + End If + If ObjVentas.GetVentaDetalle(CveVenta) Then 'Obtenemos el Detalle de la Oorden de Compra + Vta.DtDetalle = ObjVentas.DtResultados + End If + If ObjVentas.GetVentaImpuestosLocales(CveVenta) Then + If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then + Dim dtImpuesto As DataTable = ObjVentas.DtResultados + If dtImpuesto.Rows.Count > 0 Then + For Each Row As DataRow In dtImpuesto.Rows + Dim Orden = 80 + If Row("Importe").ToString.ToDouble <> 0 Then + DR("ImpuestoLocal") = Row("ImpuestoLocal").ToString + DR("Importe") = Row("Importe").ToString.ToDouble + DR("Orden") = Orden + TmpDTImpuestos.Rows.Add(DR) + DR = TmpDTImpuestos.NewRow() + Orden = Orden + 1 + End If + Next + End If + Vta.DtDeduccion = TmpDTImpuestos.FiltraParametros("", Orderby:="Orden ASC") + Else + Vta.DtDeduccion = ObjVentas.DtResultados + End If + End If + If ObjVentas.GetVentasFirmas(CveVenta) Then + Vta.DtFirmas = ObjVentas.DtResultados + End If + End If + ObjVentas.Dispose() + If Not IsNothing(Vta) Then + PdfFactura(Vta) + Vta = Nothing + End If + End Sub +#End Region +#Region "PDF OC NEW 3.0" + Public Function NewGeneraBytesOC(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() + Dim bytes As Byte() = Nothing + Dim CveEmpresaActual As Integer + Dim TmpDTEnvioDireccion As DataTable + Dim params As New List(Of ReportParameter) + Try + Dim DtDetalle As DataTable = Nothing + Dim ObjOC As New ClsOC + If ObjOC.GetOC(tCveOrdenCompra, UsuarioActual.CveEmpresa, CveUsuario:=UsuarioActual.CveUsuario) Then + CveEmpresaActual = ObjOC.CveEmpresa + Dim ObjEmpresa As New ClsSisEmpresas() + Dim EmpresaActual As New Empresa + If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then + 'Session("Empresa") = ObjEmpresa + If ObjEmpresa.GetEmpresasFuncionalidades(CveEmpresaActual) Then + Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados + Dim EmpresasFuncionalidades As New HybridDictionary + For Each Row As Data.DataRow In dttmp.Rows + EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) + Next + ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) + End If + EmpresaActual = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + Dim dtOC As DataTable = ObjOC.DtResultados + If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra) Then 'Obtenemos el Detalle de la Oorden de Compra + DtDetalle = ObjOC.DtResultados + End If + + 'Obtenemos la sucursal de la OC PARA COMPU PROVEEDORES + Dim DomicilioSucursal As String = "" + If UsuarioActual.CveEmpresa.Contiene(72, 80) Then + Dim SBDomicilioSucursal As New StringBuilder() + Dim CiudadSucursal As String = "" + Dim ObjClientes As New ClsClientes + If ObjOC.GetSucursalOC(ObjOC.CveOrdenCompra) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then + CiudadSucursal = String.Format("{0},{1}", ObjOC.SucMunicipio, ObjOC.SucEstado) + SBDomicilioSucursal.AppendFormat("{0}", ObjOC.SucCalle) + If ObjOC.SucNoExt.Length > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", ObjOC.SucNoExt) + If ObjOC.SucNoInt.Length > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", ObjOC.SucNoInt) + If ObjOC.SucColonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", ObjOC.SucColonia) + If ObjOC.SucCP.Length > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", ObjOC.SucCP) + If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) + If ObjOC.SucPais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", ObjOC.SucPais) + DomicilioSucursal = SBDomicilioSucursal.ToString + params.Add(New ReportParameter("Proyecto", ObjOC.SucSubProyecto.ToString)) + params.Add(New ReportParameter("Telefono", ObjOC.SucTelefono.ToString)) + 'Obtenemos la direccion envio PARA COMPU PROVEEDORES + If ObjOC.CveDireccionEnvio > 0 Then + Dim StrEnvioDi As New StringBuilder + If ObjClientes.DireccionEnvioGet(ObjOC.CveDireccionEnvio, ObjOC.CveCliente, -1) Then + TmpDTEnvioDireccion = ObjClientes.DtResultados + Else + TmpDTEnvioDireccion = Nothing + End If + ObjClientes.Dispose() + + If TmpDTEnvioDireccion IsNot Nothing AndAlso TmpDTEnvioDireccion.FiltraParametros(String.Format("CveDireccionEnvio = {0}", ObjOC.CveDireccionEnvio)).Rows.Count > 0 Then + StrEnvioDi.AppendFormat("{0}", TmpDTEnvioDireccion(0)("EnvioDireccion")) + If TmpDTEnvioDireccion(0)("EnvioNoExt") IsNot Nothing AndAlso TmpDTEnvioDireccion(0)("EnvioNoExt").ToString.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", TmpDTEnvioDireccion(0)("EnvioNoExt")) + If TmpDTEnvioDireccion(0)("EnvioNoInt") IsNot Nothing AndAlso TmpDTEnvioDireccion(0)("EnvioNoInt").ToString.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", TmpDTEnvioDireccion(0)("EnvioNoInt")) + params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) + params.Add(New ReportParameter("EnvioNoExt", TmpDTEnvioDireccion(0)("EnvioNoExt").ToString)) + params.Add(New ReportParameter("EnvioNoInt", TmpDTEnvioDireccion(0)("EnvioNoInt").ToString)) + params.Add(New ReportParameter("EnvioColonia", TmpDTEnvioDireccion(0)("EnvioColonia").ToString)) + params.Add(New ReportParameter("EnvioCiudad", TmpDTEnvioDireccion(0)("EnvioCiudad").ToString)) + params.Add(New ReportParameter("EnvioEstado", TmpDTEnvioDireccion(0)("EnvioEstado").ToString)) + params.Add(New ReportParameter("EnvioContacto", TmpDTEnvioDireccion(0)("EnvioContacto").ToString)) + params.Add(New ReportParameter("EnvioDepartamento", TmpDTEnvioDireccion(0)("EnvioDepartamento").ToString)) + params.Add(New ReportParameter("EnvioCP", TmpDTEnvioDireccion(0)("EnvioCP").ToString)) + params.Add(New ReportParameter("EnvioTel", TmpDTEnvioDireccion(0)("EnvioTel").ToString)) + End If + Else + If ObjOC.LugarEntrega.ToString IsNot Nothing AndAlso ObjOC.LugarEntrega.ToString = "" Then + Dim StrEnvioDi As New StringBuilder + StrEnvioDi.AppendFormat("{0}", ObjOC.SucCalle) + If ObjOC.SucNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", ObjOC.SucNoExt) + If ObjOC.SucNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", ObjOC.SucNoInt) + params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) + params.Add(New ReportParameter("EnvioColonia", If(ObjOC.SucColonia.Length > 0, ObjOC.SucColonia, ""))) + params.Add(New ReportParameter("EnvioCiudad", If(ObjOC.SucMunicipio.Length > 0, ObjOC.SucMunicipio, ""))) + params.Add(New ReportParameter("EnvioEstado", If(ObjOC.SucEstado.Length > 0, ObjOC.SucEstado, ""))) + params.Add(New ReportParameter("EnvioCP", If(ObjOC.SucCP.Length > 0, ObjOC.SucCP, ""))) + Else + params.Add(New ReportParameter("EnvioDireccion", ObjOC.LugarEntrega)) + params.Add(New ReportParameter("LugarEntrega", ObjOC.LugarEntrega)) + End If + params.Add(New ReportParameter("EnvioTel", ObjOC.SucTelefono.ToString)) + + End If + End If + End If + + Dim CveUsuarioSol As Integer = dtOC(0)("CveUsuarioSolicito").ToString.ToEntero + Dim CveUsuarioAut As Integer = dtOC(0)("CveUsuarioAutorizo").ToString.ToEntero + Dim drSol As DataRow = GlobalDTUsuarios(CveUsuarioSol, EmpresaActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien SOLICITÓ la OC) + Dim drAut As DataRow = GlobalDTUsuarios(CveUsuarioAut, EmpresaActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien AUTORIZÓ la OC) + Dim CvePersonalSol, CvePersonalAut As Integer + Dim PuestoSol As String = "" + Dim PuestoAut As String = "" + If drSol IsNot Nothing AndAlso drSol("CvePersonal").ToString.ToEntero > 0 Then CvePersonalSol = drSol("CvePersonal").ToString.ToEntero + If drAut IsNot Nothing AndAlso drAut("CvePersonal").ToString.ToEntero > 0 Then CvePersonalAut = drAut("CvePersonal").ToString.ToEntero + Dim ObjRH As New ClsRH() + If ObjRH.GetPersonal(CvePersonalSol, EmpresaActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then + PuestoSol = ObjRH.DtResultados(0)("Puesto").ToString + End If + If ObjRH.GetPersonal(CvePersonalAut, EmpresaActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then + PuestoAut = ObjRH.DtResultados(0)("Puesto").ToString + End If + ObjRH.Dispose() + Dim TipoCambio As String + If ObjOC.CveMoneda = 1 Then + TipoCambio = "1.00" + Else + TipoCambio = GlobalTipoCambio.ToString() + End If + + Dim nombreautorizo As String = dtOC(0)("UsuarioAutorizo").ToString + 'If EmpresaActual = 48 Then + ' nombreautorizo = "Lic. LUIS JORGE CONTRERAS LANDGRAVE" + 'End If + Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta)) + If Not Archivo.Exists OrElse EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 13, 72, 80, 83, 122, 126, 158) Then + params.Add(New ReportParameter("Descuento", DtDetalle.SUM("Descuento").ToString.FormatoNumero(2))) + End If + 'DATOS PARA DESCUENTO + If EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 13, 72, 80, 83, 119, 122, 126, 158) Then 'EMPRESAS QUE YA TIENEN EL AJUSTE EN EL FORMATO + params.Add(New ReportParameter("SubTotal", ObjOC.SubTotal.ToString)) + params.Add(New ReportParameter("SubTotal2", DtDetalle.SUM("Total").ToString)) + Else + params.Add(New ReportParameter("SubTotal", DtDetalle.SUM("Total").ToString)) + End If + If EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 122) Then + params.Add(New ReportParameter("ReferenciaBancaria", dtOC(0)("BancoCuenta").ToString)) + params.Add(New ReportParameter("ReferenciaBanco", dtOC(0)("BancoNombre").ToString)) + params.Add(New ReportParameter("Justificacion", dtOC(0)("Justificacion").ToString)) + params.Add(New ReportParameter("TipoTermino", ObjOC.TipoTermino.ToString)) + params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("SubProyecto").ToString, ""))) + Else + params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) + End If + params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) + params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) + params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial)) + params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega)) + params.Add(New ReportParameter("Estatus", ObjOC.Estatus)) + params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion)) + params.Add(New ReportParameter("Asunto", ObjOC.Justificacion)) + params.Add(New ReportParameter("FechaEntrega", ObjOC.FechaEstimadaEntrega.ToString("dd/MM/yyyy"))) + params.Add(New ReportParameter("FechaSolicitud", String.Format("{0}T{1}", ObjOC.Fecha.ToString("dd/MM/yyyy"), ObjOC.HoraElaboracion.ToString))) + params.Add(New ReportParameter("ProveedorDireccion", If(ObjOC.CveProveedorSucursal > 0, ObjOC.SucursalDireccion, ObjOC.Direccion))) + params.Add(New ReportParameter("ProveedorTel", If(ObjOC.CveProveedorSucursal > 0, ObjOC.SucursalTelefono, ObjOC.Telefono))) + If UsuarioActual.CveEmpresa = 119 Then + params.Add(New ReportParameter("TipoProveedor", ObjOC.TipoProveedor)) + End If + params.Add(New ReportParameter("ProveedorRFC", ObjOC.RFC)) + params.Add(New ReportParameter("IVA", ObjOC.IVA.ToString)) + params.Add(New ReportParameter("RetIVA", ObjOC.RetIVA.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("RetISR", ObjOC.RetISR.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("IEPS", ObjOC.IEPS.ToString.FormatoNumero(2))) + params.Add(New ReportParameter("Total", ObjOC.Total.ToString)) + params.Add(New ReportParameter("ImporteLetra", (ObjOC.Total).ToString.ToDouble.Texto2Letras(ObjOC.CveMoneda))) + params.Add(New ReportParameter("CorreoControl", If(drAut IsNot Nothing, drAut("Correo").ToString, ""))) + params.Add(New ReportParameter("Moneda", ObjOC.Moneda)) + params.Add(New ReportParameter("TipoCambio", TipoCambio)) + params.Add(New ReportParameter("NombreSolicito", dtOC(0)("UsuarioSolicito").ToString)) 'drSol("Nombre").ToString)) + params.Add(New ReportParameter("PuestoSolicito", PuestoSol)) 'drPuestoSol("Puesto").ToString + params.Add(New ReportParameter("NombreAutorizo", nombreautorizo)) + params.Add(New ReportParameter("PuestoAutorizo", PuestoAut)) 'drPuestoAut("Puesto").ToString + params.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) + params.Add(New ReportParameter("UsoCFDI", ObjOC.UsoCFDI)) + + If UsuarioActual.CveEmpresa.Contiene(72, 80, 172) Then + params.Add(New ReportParameter("FolioAdicional", dtOC(0)("FolioAdicional").ToString)) + params.Add(New ReportParameter("Vendedor", dtOC(0)("Vendedor").ToString)) + params.Add(New ReportParameter("Observacion", dtOC(0)("PrioridadObservacion").ToString)) + params.Add(New ReportParameter("EntregarA", ObjOC.LugarEntrega)) + params.Add(New ReportParameter("EntregaDirecta", ObjOC.EntregaDirecta.ToString)) + params.Add(New ReportParameter("NombreCliente", ObjOC.NombreCliente.ToString)) + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) + params.Add(New ReportParameter("DomicilioSucursal", DomicilioSucursal)) + params.Add(New ReportParameter("ProveedorContacto", ObjOC.ProveedorContacto)) + params.Add(New ReportParameter("Comprador", ObjOC.UsuarioAsignado)) + End If + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then + Dim ObjCuentasBancos As New ClsGenerales() + If ObjCuentasBancos.GetCuentasDepositos(CveProveedor:=ObjOC.CveProveedor) Then + Dim CuentasActivas As DataTable = ObjCuentasBancos.DtResultados.FiltraParametros("EstatusTexto = 'Activo'") + Dim CuentasStr As New StringBuilder("") + For Each CuentasBancarios As DataRow In CuentasActivas.Rows + Dim CuentaClabe As String = If(CuentasBancarios.Item("BancoNombre").ToString.Contains("BBVA") Or CuentasBancarios.Item("BancoNombre").ToString.Contains("BANCOMER"), CuentasBancarios.Item("Cuenta").ToString, CuentasBancarios.Item("CLABE").ToString) + Dim infoCuenta As String = String.Format("
{0} {1}: {2}", CuentasBancarios.Item("BancoNombre").ToString, CuentasBancarios.Item("Abreviatura").ToString, CuentaClabe) + CuentasStr.AppendFormat(infoCuenta) + Next + params.Add(New ReportParameter("Cuentas", CuentasStr.ToString)) + End If + ObjCuentasBancos.Dispose() + End If + 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString)) + Dim RutaFisicaSol As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol) + Dim RutaVirtuaSol As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaSol)) + Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol)) + 'params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, RutaVirtuaSol, ""))) + params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, ImageToBase64(Drawing.Image.FromFile(FirmaSol.FullName), Drawing.Imaging.ImageFormat.Png), ""))) + Dim RutaFisicaAut As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut) + Dim RutaVirtuaAut As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaAut)) + Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut)) + 'params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, RutaVirtuaAut, ""))) + params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, ImageToBase64(Drawing.Image.FromFile(FirmaAut.FullName), Drawing.Imaging.ImageFormat.Png), ""))) + If Archivo.Exists Then + bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) + Else + params.Add(New ReportParameter("Empresa", EmpresaActual.Empresa)) + bytes = StreamPDF("Empresas\Grales\Formatos\OC.rdlc", DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) + End If + If ConBitacora Then + Dim dttemp As New DataTable + Dim ObjEventoBitacora As New ClsOIEventos() + If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, EmpresaActual.CveEmpresa, CveOC:=tCveOrdenCompra) Then + dttemp = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") + End If + ObjEventoBitacora.Dispose() + If Not IsNothing(dttemp) AndAlso dttemp.Rows.Count > 0 Then + Dim paramsest As New List(Of ReportParameter) + paramsest.Add(New ReportParameter("Empresa", EmpresaActual.Empresa)) + paramsest.Add(New ReportParameter("Titulo", "Bitácora de órdenes de compra")) + paramsest.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) + paramsest.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) + Dim bytes2 As Byte() + bytes2 = StreamPDF("Empresas\Grales\Formatos\Bitacora.rdlc", dttemp, paramsest, $"OC_{ObjOC.Folio.ToString}", MR:=MR) + Using ms As New MemoryStream() + Using pdfdoc As New PdfDocument(New PdfReader(ms)) + pdfdoc.InitializeOutlines() + Dim addedDoc As New PdfDocument(New PdfReader(New MemoryStream(bytes))) + addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) + addedDoc.Close() + addedDoc = New PdfDocument(New PdfReader(New MemoryStream(bytes2))) + addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) + addedDoc.Close() + End Using + bytes = ms.ToArray() + End Using + End If + dttemp.Dispose() + End If + End If + ObjOC.Dispose() + DtDetalle.Dispose() + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message)) + End Try + Return bytes + End Function + Public Function ImageToBase64(ByVal image As System.Drawing.Image, ByVal format As System.Drawing.Imaging.ImageFormat) As String + Dim base64String As String = "" + Try + Using ms As New System.IO.MemoryStream() + image.Save(ms, format) + Dim imageBytes As Byte() = ms.ToArray() + base64String = Convert.ToBase64String(imageBytes) + End Using + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar convertir la imagen a Base64 {0}", ex.Message)) + End Try + Return base64String + End Function + Public Function NewGeneraOCCotizacion(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() + Dim bytes As Byte() = Nothing + Dim CveEmpresaActual As Integer + Try + Dim DtDetalle As DataTable = Nothing + Dim ObjOC As New ClsOC + If ObjOC.GetOC(tCveOrdenCompra, UsuarioActual.CveEmpresa, CveUsuario:=UsuarioActual.CveUsuario) Then + CveEmpresaActual = ObjOC.CveEmpresa + Dim ObjEmpresa As New ClsSisEmpresas() + Dim EmpresaActual As New Empresa + If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then + EmpresaActual = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + '----------------------- COTIZACIONES -------------------------- + Dim params As New List(Of ReportParameter) + Dim NumCotizaciones = 0 + Dim DtCotizaciones As New DataTable + Dim ProveedoresCotizacion = New ArrayList + Dim Ds As DataSet = ObjOC.GetCotizacionesTabla(tCveOrdenCompra) + If Ds IsNot Nothing AndAlso Ds.Tables.Count = 2 Then + For Each Dr2 As DataRow In Ds.Tables(1).Rows + ProveedoresCotizacion.Add(Dr2("RazonSocial")) + Next + NumCotizaciones = Ds.Tables(1).Rows.Count + DtCotizaciones = Ds.Tables(0) + If Not DtCotizaciones.Columns.Contains("PU1") Then DtCotizaciones.Columns.Add("PU1", GetType(String)) + If Not DtCotizaciones.Columns.Contains("PU2") Then DtCotizaciones.Columns.Add("PU2", GetType(String)) + If Not DtCotizaciones.Columns.Contains("PU3") Then DtCotizaciones.Columns.Add("PU3", GetType(String)) + If Not DtCotizaciones.Columns.Contains("PU4") Then DtCotizaciones.Columns.Add("PU4", GetType(String)) + If Not DtCotizaciones.Columns.Contains("PU5") Then DtCotizaciones.Columns.Add("PU5", GetType(String)) + End If + 'COTIZACION + For Index = 1 To 5 + Try + params.Add(New ReportParameter($"Cotizacion{Index.ToString}", ProveedoresCotizacion(Index - 1).ToString)) + Catch ex As Exception + params.Add(New ReportParameter($"Cotizacion{Index.ToString}", "")) + End Try + Next + params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) + params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) + params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial)) + params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega)) + params.Add(New ReportParameter("Estatus", ObjOC.Estatus)) + params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion)) + params.Add(New ReportParameter("Asunto", ObjOC.Justificacion)) + params.Add(New ReportParameter("FechaEntrega", ObjOC.FechaEstimadaEntrega.ToShortDateString)) + params.Add(New ReportParameter("FechaSolicitud", ObjOC.Fecha.ToShortDateString)) + Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\CotizacionOC.rdlc", EmpresaActual.Ruta)) + If Archivo.Exists Then + bytes = StreamPDF(String.Format("{0}Formatos\CotizacionOC.rdlc", EmpresaActual.Ruta), DtCotizaciones, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) + End If + End If + ObjOC.Dispose() + DtDetalle.Dispose() + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message)) + End Try + Return bytes + End Function +#End Region +#Region "NEW RepProveedorCxP.rpt" + Public Function NewGeneraBytesCxP(CveProveedor As Integer, UsuarioActual As String, Optional MR As ReportViewer = Nothing) As Byte() + Dim bytes As Byte() = Nothing + Dim CveEmpresaActual As Integer + 'Dim TmpDTEnvioDireccion As DataTable + Dim params As New List(Of ReportParameter) + Try + Dim DTCxPTempral As DataTable = Nothing + Dim ObjMovtos As New ClsMovimientos() + If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, "-1", "-1") Then + DTCxPTempral = ObjMovtos.DtResultados + End If + If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then + Dim dr As DataRow = DTCxPTempral.Rows(0) + Dim NombreProv = "" + Dim Direccion = "" + Dim RFC = "" + Dim Tel = "" + Dim DiasCredito = "" + Dim LimCredito As Double + CveEmpresaActual = dr("CveEmpresa").ToString.ToEntero + Dim ObjEmpresa As New ClsSisEmpresas() + Dim EmpresaActual As New Empresa + If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then + EmpresaActual = ObjEmpresa.Empresa + End If + ObjEmpresa.Dispose() + Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepProveedorCxP.rpt", EmpresaActual.Ruta)) + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", EmpresaActual.Ruta)) + Dim logouri = String.Format("{0}Logo.png", EmpresaActual.Ruta) 'String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, CveEmpresaActual) + Dim ObjProveedor As New ClsCompProveedores() + If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, EmpresaActual.CveEmpresa) Then + If ObjProveedor.DtResultados.Rows.Count > 0 Then + NombreProv = ObjProveedor.RazonSocial + Direccion = ObjProveedor.Direccion + RFC = ObjProveedor.RFC + Tel = ObjProveedor.Telefono + DiasCredito = ObjProveedor.PlazoPago.ToString + LimCredito = ObjProveedor.LimiteCredito.ToEntero + End If + End If + ObjProveedor.Dispose() + Dim lista = New List(Of CrystalParametro) + lista.Add(New CrystalParametro("Empresa", EmpresaActual.Empresa)) + lista.Add(New CrystalParametro("TipoCuentas", "Todas")) + lista.Add(New CrystalParametro("FechaInicio", "-")) + lista.Add(New CrystalParametro("FechaFin", DateTime.Now.ToShortDateString)) + lista.Add(New CrystalParametro("NombreProveedor", NombreProv)) + lista.Add(New CrystalParametro("DireccionProveedor", Direccion)) + lista.Add(New CrystalParametro("ProveedorRFC", RFC)) + lista.Add(New CrystalParametro("ProveedorTelefono", Tel)) + lista.Add(New CrystalParametro("DiasCredito", DiasCredito)) + lista.Add(New CrystalParametro("LimiteCredito", LimCredito)) + lista.Add(New CrystalParametro("SaldoDisponible", (LimCredito - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) + lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual)) + If Imagen.Exists Then + lista.Add(New CrystalParametro("LogoPath", logouri)) + Else + lista.Add(New CrystalParametro("LogoPath", "")) + End If + If Archivo.Exists Then + bytes = ImprimirPDFCrystal(String.Format("{0}Formatos/RepProveedorCxP.rpt", EmpresaActual.Ruta), DTCxPTempral, lista, "EstadoCuentaCxP") + Else + bytes = ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepProveedorCxP.rpt"), DTCxPTempral, lista, "EstadoCuentaCxP") + End If + End If + ObjMovtos.Dispose() + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", CveProveedor, ex.Message)) + End Try + Return bytes + End Function +#End Region +#Region "PDF NOMINA" + Public Function GeneraPDFNomina(CvePersonal As Integer, CvePeriodo As Integer, CveEmpresa As Integer, RutaEmpresa As String, Optional indemnizacion As Boolean = False) As Byte() + Dim ObjNomina As New ClsNominas + Dim ObjPersonal As New ClsRH + Dim TieneError = False + Dim Retorno As Byte() = Nothing + If Not ObjNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodo, -1, CveEmpresa) Then + Alert("Ocurrio un erro al obtener datos de la nomina", TipoMensaje.MsgError) + ObjPersonal.Dispose() + ObjNomina.Dispose() + Return Nothing + End If + Dim CveNomina = ObjNomina.CveNomina + Dim DTPercepciones As Data.DataTable + Dim DTDeducciones As Data.DataTable + Dim DTDeducciones2 As New Data.DataTable + Dim Ruta As String = UsuarioActual.Empresa.Ruta + Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.Serie }{If(indemnizacion, "F", "")}-{ObjNomina.Folio}.xml" + Dim FechaEmision, FechaCertificacion As DateTime + Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String + FolioFiscal = "" + NoSerieCertificado = "" + SelloCFDi = "" + SelloSAT = "" + NoSerieCertificadoContribuyente = "" + Dim RutaCBB As String = String.Format("{0}CBB\Nomina\{1}.jpg", RutaEmpresa, ObjNomina.SerieFolio) + Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) + Dim ImgCBB As String + Dim RutaFormato As String = String.Format("{0}Formatos\Nomina.rdlc", RutaEmpresa) + Dim RutaFormatoDefault As String = String.Format("Empresas\Grales\Formatos\Nomina.rdlc") + 'SI ESTA TIMBRADA - CON XML + If System.IO.File.Exists(PathXML) Then + Dim XmlDoc As New System.Xml.XmlDocument + 'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml") + XmlDoc.Load(PathXML) + If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then + FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate + NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then + FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText + FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate + SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText + SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText + End If + Next + Else + FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate + NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText + For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 + If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:timbreFiscalDigital" Then + FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText + NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText + FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("fechaTimbrado").InnerText.ToDate + SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText + SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText + End If + Next + End If + + 'SIN TIMBRAR - SIN XML + Else + FolioFiscal = "Sin Timbrar" + NoSerieCertificado = "Sin Timbrar" + SelloCFDi = "Sin Timbrar" + SelloSAT = "Sin Timbrar" + End If + 'Si no tiene CBB, SE GENERA + If Not ImagenCBB.Exists Then + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then + CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaCBB) + End If + End If + ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio) + Dim cQr As Byte() = Nothing + Try + Dim CadenaOriginalCFD As String = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||" + Dim RptParametro As New List(Of ReportParameter) + + 'Datos Empresa + RptParametro.Add(New ReportParameter("RegistroPatronal", ObjNomina.RegistroPatronal)) + Dim ajusteindemnizacion As Double = 0 + 'PERCECIONES - DEDUCCIONES + If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then + Dim filtrop As String = " AND CveSistema NOT IN(10,11,32)" + Dim friltrod As String = " AND CveSistema <>47" + If indemnizacion Then + filtrop = "AND CveSistema IN(10,11,32)" + friltrod = " AND CveSistema =47" + End If + DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) {filtrop}") + DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) {friltrod}") + DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveSistema IN (20,21) OR CveConcepto =4714){friltrod}") + ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") - + ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema =47").SUM("Importe") + For Each row As DataRow In DTPercepciones.Rows + If row("Tipo").ToString() = "D" Then + row("Codigo") = row("Codigo").ToString().Replace("D", "OP") + row("Importe") = row("Importe").ToString().ToDecimal() * -1 + End If + Next + Else + DTPercepciones = Nothing + DTDeducciones = Nothing + End If + 'DATOS DEL EMPLEADO + If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then + RptParametro.Add(New ReportParameter("NoEmpleado", ObjPersonal.Codigo)) + RptParametro.Add(New ReportParameter("RFC", ObjPersonal.RFC)) + RptParametro.Add(New ReportParameter("CURP", ObjPersonal.CURP)) + RptParametro.Add(New ReportParameter("NombreCompleto", String.Format("{0} {1} {2}", ObjPersonal.Nombres, ObjPersonal.APaterno, ObjPersonal.AMaterno).Trim())) + RptParametro.Add(New ReportParameter("Regimen", ObjPersonal.RegimenContratacion)) + RptParametro.Add(New ReportParameter("RiesgoPuesto", ObjPersonal.RiesgoPuesto)) + RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS)) + RptParametro.Add(New ReportParameter("Departamento", ObjPersonal.Departamento)) + RptParametro.Add(New ReportParameter("Puesto", ObjPersonal.Puesto.ToString())) + RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy"))) + RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString)) + RptParametro.Add(New ReportParameter("Jornada", ObjPersonal.Jornada)) + RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) + RptParametro.Add(New ReportParameter("SalarioBase", ObjPersonal.SalarioDiario.ToString)) + RptParametro.Add(New ReportParameter("SalarioDiarioInt", ObjPersonal.SDI.ToString)) + RptParametro.Add(New ReportParameter("Banco", ObjPersonal.Banco)) + RptParametro.Add(New ReportParameter("CLABE", ObjPersonal.CLABE)) + + 'DATOS NOMINA + If ObjNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) Then + RptParametro.Add(New ReportParameter("ReciboNomina", ObjNomina.Folio.ToString)) + RptParametro.Add(New ReportParameter("Serie", ObjNomina.Serie)) + RptParametro.Add(New ReportParameter("Fecha", ObjNomina.Fecha.ToString)) + RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) + RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString)) + RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)" + RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)")) + RptParametro.Add(New ReportParameter("Cantidad", "1")) + RptParametro.Add(New ReportParameter("Unidad", "ACT")) + RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA")) + RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString())) + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + cQr = CBB.GenerarCBBBytes(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal) + RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDouble.Texto2Letras)) + RptParametro.Add(New ReportParameter("Clave", "84111505")) + Else + TieneError = True + End If + Else + TieneError = True + End If + If Not TieneError Then + If ObjNomina.GetPeriodos(-1, CveEmpresa, -1, -1, CvePeriodo) Then + RptParametro.Add(New ReportParameter("FechaInicio", ObjNomina.FechaInicio.ToString("dd/MM/yyyy"))) + RptParametro.Add(New ReportParameter("FechaFin", ObjNomina.FechaFin.ToString("dd/MM/yyyy"))) + Else + TieneError = True + End If + End If + + RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString())) + RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString())) + RptParametro.Add(New ReportParameter("ISR", DTDeducciones.SUM("Importe", "SATCveConcepto = '002'").ToString())) + 'Timbrado + RptParametro.Add(New ReportParameter("FolioFiscal", FolioFiscal)) + RptParametro.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado)) + RptParametro.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString)) + RptParametro.Add(New ReportParameter("SelloDigitalEmisor", SelloCFDi)) + RptParametro.Add(New ReportParameter("SelloDigitalSAT", SelloSAT)) + RptParametro.Add(New ReportParameter("CadenaOriginal", CadenaOriginalCFD)) + RptParametro.Add(New ReportParameter("QR", ImgCBB.ToString)) + + Dim LSRds As New List(Of ReportDataSource) + + Dim rds2 = New ReportDataSource() + Dim dtqr As New DataTable + Dim column As DataColumn = New DataColumn("ImagenByte") + column.DataType = System.Type.[GetType]("System.Byte[]") + column.AllowDBNull = True + column.Caption = "ImagenByte" + dtqr.Columns.Add(column) + Dim rowqr As DataRow = dtqr.NewRow() + rowqr("ImagenByte") = cQr + dtqr.Rows.Add(rowqr) + rds2.Name = "dsImagenes" + rds2.Value = dtqr + LSRds.Add(rds2) + Dim numnewfiles As Integer = 0 + If DTPercepciones.Rows.Count > DTDeducciones2.Rows.Count Then + numnewfiles = DTPercepciones.Rows.Count - DTDeducciones2.Rows.Count + For index = 1 To numnewfiles + DTDeducciones2.Rows.Add(DTDeducciones2.NewRow) + Next + Else + If DTDeducciones2.Rows.Count > DTPercepciones.Rows.Count Then + numnewfiles = DTDeducciones2.Rows.Count - DTPercepciones.Rows.Count + For index = 1 To numnewfiles + DTPercepciones.Rows.Add(DTPercepciones.NewRow) + Next + End If + End If + Dim RptDS As New ReportDataSource + RptDS.Name = "DsOC" + RptDS.Value = DTPercepciones + LSRds.Add(RptDS) + Dim RDS As New ReportDataSource + RDS.Name = "DataSet1" + RDS.Value = DTDeducciones2 + LSRds.Add(RDS) + Dim Archivo As New System.IO.FileInfo(RutaFormato) + If Not TieneError Then + If Archivo.Exists Then + Retorno = StreamPDF(RutaFormato, LSRds, RptParametro, ObjNomina.SerieFolio, "PDF", MR:=Nothing) + Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio)) + If Not ArchivoPDF.Exists Then + Try + DirectoryExistsCreate(String.Format("{0}PDF", RutaEmpresa)) + DirectoryExistsCreate(String.Format("{0}PDF\{1}", RutaEmpresa, "Nomina")) + File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex)) + End Try + End If + Else + 'ImprimirPDF(String.Format("{0}\Formatos\Nomina.rdlc", RutaEmpresa), LSRds, RptParametro, ObjNomina.SerieFolio) + End If + Else + Alert("Ocurrio un error al obtener los datos de la Nomina") + End If + Catch ex As Exception + GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) + End Try + + ObjNomina.Dispose() + ObjPersonal.Dispose() + Return Retorno + End Function +#End Region +#Region "PDF PAGOS" + Private Function ValorXML(n As XmlNode, Campo As String, Optional Retorno As String = "") As String + Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) + If o Is Nothing Then + Return Retorno + Else + Return o.Value + End If + End Function + Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True, Optional SobreescribirPDF As Boolean = False) + Dim params As New List(Of ReportParameter) + Dim SerieFolio As String = "" + Dim Serie = "" + Dim Folio = "" + Dim CveCliente = -1 + Dim RFCOrdenante = "" + Dim CveMoneda As Integer = 1 + Dim FolioFiscal = "" + Dim NoSerieCertificado = "" + Dim FechaCertificacion = "" + Dim SelloCFDi = "" + Dim SelloSAT = "" + Dim CertificadoSAT = "" + Dim FechaComprobante As Date + Dim CveUnidad = "" + Dim Descripcion = "" + Dim Cantidad = "" + Dim CvePS = "" + Dim PU = "" + Dim Importe = "" + Dim TotalLetra = "" + Dim FechaRecibo = "" + Dim RegimenFiscalCodigo As String = "" + Dim CFDIVersion As String = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", "4.0", "3.3") + + 'DT PAGO + Dim DTConceptosPago As New DataTable + DTConceptosPago.Columns.Add("CtaOrdenante", GetType(String)) + DTConceptosPago.Columns.Add("Monto", GetType(Decimal)) + DTConceptosPago.Columns.Add("MonedaP", GetType(String)) + DTConceptosPago.Columns.Add("FormaDePagoP", GetType(String)) + DTConceptosPago.Columns.Add("FechaPago", GetType(String)) + DTConceptosPago.Columns.Add("TipoCambioP", GetType(String)) + DTConceptosPago.Columns.Add("RfcEmisorCtaOrd", GetType(String)) + 'DT DOCUMENTOS RELACIONADOS + Dim DTConceptosPagoRelacionado As New DataTable + DTConceptosPagoRelacionado.Columns.Add("IdDocumento", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Folio", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Serie", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("ImpPagado", GetType(Decimal)) + DTConceptosPagoRelacionado.Columns.Add("ImpSaldoAnt", GetType(Decimal)) + DTConceptosPagoRelacionado.Columns.Add("NumParcialidad", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("ObjetoImpDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra001BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra001ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra001TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra001TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra001ImporteDR", GetType(Decimal)) + + DTConceptosPagoRelacionado.Columns.Add("Tra002BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra002ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra002TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra002TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra002ImporteDR", GetType(Decimal)) + DTConceptosPagoRelacionado.Columns.Add("Tra003BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra003ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra003TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra003TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Tra003ImporteDR", GetType(Decimal)) + + DTConceptosPagoRelacionado.Columns.Add("Ret001BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret001ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret001TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret001TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret001ImporteDR", GetType(Decimal)) + DTConceptosPagoRelacionado.Columns.Add("Ret002BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret002ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret002TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret002TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret002ImporteDR", GetType(Decimal)) + DTConceptosPagoRelacionado.Columns.Add("Ret003BaseDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret003ImpuestoDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret003TipoFactorDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret003TasaOCuotaDR", GetType(String)) + DTConceptosPagoRelacionado.Columns.Add("Ret003ImporteDR", GetType(Decimal)) + + Dim ObjBancos As New ClsBancos + If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then + Serie = ObjBancos.DtResultados.FiltroPrimeroValor("Serie") + Folio = ObjBancos.DtResultados.FiltroPrimeroValor("Folio") + CveCliente = ObjBancos.DtResultados.FiltroPrimeroValor("CveCliente").ToEntero + CveMoneda = ObjBancos.DtResultados.FiltroPrimeroValor("CveMoneda").ToEntero + FechaComprobante = ObjBancos.DtResultados.FiltroPrimeroValor("Fecha").ToDate + SerieFolio = $"{Serie}-{Folio}" + End If + ObjBancos.Dispose() + If Not SobreescribirPDF Then + Dim rutapdf As String = $"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf" + Dim Archivo As New System.IO.FileInfo(rutapdf) + If (Archivo.Exists) Then + HttpContext.Current.Response.Clear() + HttpContext.Current.Response.ClearContent() + HttpContext.Current.Response.ContentType = If(IO.Path.GetExtension(Archivo.Name) = ".txt", "text/plain", "application/pdf") + HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" & Archivo.Name) + HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) + HttpContext.Current.Response.TransmitFile(rutapdf) + 'HttpContext.Current.Response.Flush() + HttpContext.Current.Response.End() + Archivo = Nothing + End If + End If + 'CLIENTE + Dim ObjClientes As New ClsClientes + If ObjClientes.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, Estatus:=-1) Then + RFCOrdenante = ObjClientes.RFC + params.Add(New ReportParameter("Cliente", ObjClientes.Nombre)) + params.Add(New ReportParameter("ClienteDireccion", ObjClientes.Direccion)) + params.Add(New ReportParameter("ClienteColonia", ObjClientes.Colonia)) + params.Add(New ReportParameter("ClienteCiudad", ObjClientes.Ciudad)) + params.Add(New ReportParameter("ClienteEstado", ObjClientes.Estado)) + params.Add(New ReportParameter("ClienteCP", ObjClientes.CP)) + params.Add(New ReportParameter("ClienteRFC", ObjClientes.RFC)) + + If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + If ObjClientes.CodigoRegimenFiscal.ToString.Length > 0 Then + RegimenFiscalCodigo = $"{ObjClientes.CodigoRegimenFiscal}-{ObjClientes.RegimenFiscal}" + End If + End If + End If + ObjClientes.Dispose() + 'DATOS DE EMPRESA + params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) + params.Add(New ReportParameter("EmpresaDireccion", UsuarioActual.Empresa.Direccion)) + params.Add(New ReportParameter("EmpresaColonia", UsuarioActual.Empresa.Colonia)) + params.Add(New ReportParameter("EmpresaCiudad", UsuarioActual.Empresa.Ciudad)) + params.Add(New ReportParameter("EmpresaEstado", UsuarioActual.Empresa.Estado)) + params.Add(New ReportParameter("EmpresaCP", UsuarioActual.Empresa.CP.ToString())) + params.Add(New ReportParameter("EmpresaRFC", UsuarioActual.Empresa.RFC)) + params.Add(New ReportParameter("EmpresaNoExt", UsuarioActual.Empresa.NoExt)) + params.Add(New ReportParameter("EmpresaNoInt", UsuarioActual.Empresa.NoInt)) + 'DATOS IMPRESION + params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) + params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) + 'DATOS GENERALES + Dim Ruta As String = UsuarioActual.Empresa.Ruta + Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml" + Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf" + Dim ImagenCBB As String = $"{Ruta}CBB\{Serie}-{Folio}.jpg" + If File.Exists(PathXML) Then + Dim XmlDoc As New System.Xml.XmlDocument + XmlDoc.Load(PathXML) + Dim Version = ValorXML(XmlDoc.DocumentElement, "version") + Dim namespaces As New XmlNamespaceManager(XmlDoc.NameTable) + Dim Prefijo As String = If(XmlDoc.DocumentElement.Prefix = "", "cfd", XmlDoc.DocumentElement.Prefix) + Dim cfdVer As String = "" + Dim PagoVersion As String = "pago20" + Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") + Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos") + If Version = "3.3" Then + cfdVer = "http://www.sat.gob.mx/cfd/3" + PagoVersion = "pago10" + Else ' se considera que es la version 4.0 + cfdVer = "http://www.sat.gob.mx/cfd/4" + End If + If Version = "4.0" Then + If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + params.Add(New ReportParameter("CFDIVersion", Version)) + If ObjClientes.CodigoRegimenFiscal.ToString.Length > 0 Then + params.Add(New ReportParameter("RegimenFiscalCodigo", RegimenFiscalCodigo)) + End If + End If + End If + namespaces.AddNamespace(Prefijo, cfdVer) + namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") + namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") + namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal") + namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos") + namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20") + 'Datos Fiscales + If Not IsNothing(validaElemento) Then + Dim nodetfd As XmlNode = XmlDoc.SelectSingleNode(String.Format("{0}:Comprobante/{0}:Complemento/tfd:TimbreFiscalDigital", Prefijo), namespaces) + If nodetfd IsNot Nothing Then + FolioFiscal = nodetfd.Attributes("UUID").InnerText + NoSerieCertificado = nodetfd.Attributes("NoCertificadoSAT").InnerText + FechaCertificacion = nodetfd.Attributes("FechaTimbrado").InnerText + SelloCFDi = nodetfd.Attributes("SelloCFD").InnerText + SelloSAT = nodetfd.Attributes("SelloSAT").InnerText + End If + End If + Dim nodePagos As XmlNodeList + nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/{1}:Pagos/{1}:Pago", Prefijo, PagoVersion), namespaces) + For Each Pagos As XmlNode In nodePagos + If Version = "4.0" AndAlso Pagos.Name = "pago20:Totales" Then + Dim a As String = "a" + Else + Dim Dr As DataRow = DTConceptosPago.NewRow + If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = "" + If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = "" + If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then + Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value + RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value + Else + Dr("RfcEmisorCtaOrd") = "" + End If + Dr("Monto") = Pagos.Attributes("Monto").Value + Dr("MonedaP") = Pagos.Attributes("MonedaP").Value + Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'") + Dr("FechaPago") = Pagos.Attributes("FechaPago").Value + FechaRecibo = Pagos.Attributes("FechaPago").Value + TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda) + DTConceptosPago.Rows.Add(Dr) + For Each Relacionado As XmlNode In Pagos.SelectNodes(String.Format("//{0}:DoctoRelacionado", PagoVersion), namespaces) + Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow + If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = "" + If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = "" + If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = "" + DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value + DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value + DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value + DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value + If Version = "3.3" Then DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value + If Version = "4.0" Then DrRelacionado("ObjetoImpDR") = Relacionado.Attributes("ObjetoImpDR").Value + DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value + If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso Version = "4.0" Then + Dim NodosTraslados = Relacionado.SelectNodes($"{PagoVersion}:ImpuestosDR/{PagoVersion}:TrasladosDR/{PagoVersion}:TrasladoDR", namespaces) + For Each NodoTraslados As XmlNode In NodosTraslados + Dim BaseDR As String = ValorXML(NodoTraslados, "BaseDR") + Dim ImpuestoDR As String = ValorXML(NodoTraslados, "ImpuestoDR") ' ImpuestoDR + Dim TipoFactor As String = ValorXML(NodoTraslados, "TipoFactorDR") + Dim TasaOCuotaDR As String = ValorXML(NodoTraslados, "TasaOCuotaDR") + Dim ImporteDR As Decimal = ValorXML(NodoTraslados, "ImporteDR").ToDecimal + If ImpuestoDR = "001" Then + DrRelacionado("Tra001BaseDR") = BaseDR + DrRelacionado("Tra001ImpuestoDR") = ImpuestoDR + DrRelacionado("Tra001TipoFactorDR") = TipoFactor + DrRelacionado("Tra001TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Tra001ImporteDR") = ImporteDR + End If + If ImpuestoDR = "002" Then + DrRelacionado("Tra002BaseDR") = BaseDR + DrRelacionado("Tra002ImpuestoDR") = ImpuestoDR + DrRelacionado("Tra002TipoFactorDR") = TipoFactor + DrRelacionado("Tra002TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Tra002ImporteDR") = ImporteDR + End If + If ImpuestoDR = "003" Then + DrRelacionado("Tra003BaseDR") = BaseDR + DrRelacionado("Tra003ImpuestoDR") = ImpuestoDR + DrRelacionado("Tra003TipoFactorDR") = TipoFactor + DrRelacionado("Tra003TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Tra003ImporteDR") = ImporteDR + End If + Next + For Each NodoRetenciiones As XmlNode In Relacionado.SelectNodes($"{PagoVersion}:ImpuestosDR/{PagoVersion}:RetencionesDR/{PagoVersion}:RetencionDR", namespaces) + Dim BaseDR As String = ValorXML(NodoRetenciiones, "BaseDR") + Dim ImpuestoDR As String = ValorXML(NodoRetenciiones, "ImpuestoDR") ' ImpuestoDR + Dim TipoFactor As String = ValorXML(NodoRetenciiones, "TipoFactorDR") + Dim TasaOCuotaDR As String = ValorXML(NodoRetenciiones, "TasaOCuotaDR") + Dim ImporteDR As Decimal = ValorXML(NodoRetenciiones, "ImporteDR").ToDecimal + If ImpuestoDR = "001" Then + DrRelacionado("Ret001BaseDR") = BaseDR + DrRelacionado("Ret001ImpuestoDR") = ImpuestoDR + DrRelacionado("Ret001TipoFactorDR") = TipoFactor + DrRelacionado("Ret001TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Ret001ImporteDR") = ImporteDR + End If + If ImpuestoDR = "002" Then + DrRelacionado("Ret002BaseDR") = BaseDR + DrRelacionado("Ret002ImpuestoDR") = ImpuestoDR + DrRelacionado("Ret002TipoFactorDR") = TipoFactor + DrRelacionado("Ret002TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Ret002ImporteDR") = ImporteDR + End If + If ImpuestoDR = "003" Then + DrRelacionado("Ret003BaseDR") = BaseDR + DrRelacionado("Ret003ImpuestoDR") = ImpuestoDR + DrRelacionado("Ret003TipoFactorDR") = TipoFactor + DrRelacionado("Ret003TasaOCuotaDR") = TasaOCuotaDR + DrRelacionado("Ret003ImporteDR") = ImporteDR + End If + Next + End If + DTConceptosPagoRelacionado.Rows.Add(DrRelacionado) + Next + End If + Next + If Not IsNothing(validaElementoPago) Then + Dim nodeconceptos As XmlNode = XmlDoc.SelectSingleNode(String.Format("//{0}:Comprobante/{0}:Conceptos", Prefijo), namespaces) + If nodeconceptos.HasChildNodes Then + Dim nodeconcepto As XmlNode = nodeconceptos.ChildNodes(0) + Importe = nodeconcepto.Attributes("Importe").InnerText + PU = nodeconcepto.Attributes("ValorUnitario").InnerText + Descripcion = nodeconcepto.Attributes("Descripcion").InnerText + CveUnidad = nodeconcepto.Attributes("ClaveUnidad").InnerText + Cantidad = nodeconcepto.Attributes("Cantidad").InnerText + CvePS = nodeconcepto.Attributes("ClaveProdServ").InnerText + End If + End If + Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||" + If Not File.Exists(ImagenCBB) AndAlso FolioFiscal <> "" Then + Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() + CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, ImagenCBB) + End If + + ' PARAMETROS DEL REPORTE + params.Add(New ReportParameter("SerieFolio", SerieFolio)) + params.Add(New ReportParameter("RFCOrdenante", RFCOrdenante)) + params.Add(New ReportParameter("FechaRecibo", FechaRecibo)) + params.Add(New ReportParameter("Cantidad", Cantidad)) + params.Add(New ReportParameter("Descripcion", Descripcion)) + params.Add(New ReportParameter("UnidadMedida", CveUnidad)) + params.Add(New ReportParameter("PU", PU)) + params.Add(New ReportParameter("Importe", Importe)) + params.Add(New ReportParameter("CantidadLetra", TotalLetra.ToUpper())) + params.Add(New ReportParameter("UUIDPago", FolioFiscal)) + params.Add(New ReportParameter("NoCertificado", NoSerieCertificado)) + params.Add(New ReportParameter("FechaTimbre", FechaComprobante.ToShortDateString)) + params.Add(New ReportParameter("Sello", SelloCFDi)) + params.Add(New ReportParameter("SelloSAT", SelloSAT)) + params.Add(New ReportParameter("CadenaOriginal", CadenaOriginal)) + params.Add(New ReportParameter("CertificadoSAT", CertificadoSAT)) + params.Add(New ReportParameter("QR", $"file://{ImagenCBB}")) + Dim lrds As New List(Of ReportDataSource) + Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = If(DTConceptosPago IsNot Nothing, DTConceptosPago, New DataTable)} + Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(DTConceptosPagoRelacionado IsNot Nothing, DTConceptosPagoRelacionado, New DataTable)} + lrds.Add(rds) + lrds.Add(rds2) + Dim rutaArchivo As String = "" + 'LOGO + Dim LogoRuta As String = "" + Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) + If Imagen.Exists Then ''POR EMPRESA + params.Add(New ReportParameter("LogoPath", $"file://{Imagen.FullName}")) + Else + params.Add(New ReportParameter("LogoPath", "")) + End If + If File.Exists($"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc") Then + rutaArchivo = $"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc" + Else + rutaArchivo = " \Empresas\Grales\Formatos\ReciboDePago.rdlc" + End If + If Not Directory.Exists($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") Then Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") + Dim ArchivoPDF As New System.IO.FileInfo($"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf") + If ArchivoPDF.Exists Then + Try + ArchivoPDF.Delete() + File.WriteAllBytes($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf", StreamPDF(rutaArchivo, lrds, params, "Pago", "PDF")) + Catch ex As Exception + Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) + End Try + Else + File.WriteAllBytes($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf", StreamPDF(rutaArchivo, lrds, params, "Pago", "PDF")) + End If + If imprimir Then + ImprimirPDF(rutaArchivo, lrds, params, SerieFolio, "PDF") + End If + End If + End Sub +#End Region +#End Region + +#Region "P A G O D E C O M P R A S " + Public Function AplicaPrePolizaPagoCompra(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean + Dim ErrorMovtos As Boolean = False + Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total + Dim ImporteMovimiento As Decimal = 0 + Dim ImporteMN As Decimal = 0 + Dim ImporteME As Decimal = 0 + Dim TCValuacion As Decimal + Dim TCValuacionCompra As Decimal = CompraActual.TC + Dim TCValuacionPago As Decimal = Pago.TCPago + Dim tFechaUltimaFluctuacion As Date + Dim tImportePago As Decimal + Dim tImporteCompra As Decimal = Pago.ImportePago + Dim CveConceptoContableComplementaria As Integer = 206 + Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 17, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 17 + If CompraActual.CveTipoConceptoProveedor = 2 Then Pago.CveConceptoPago = 308 'cuando es acreedor + ' + If Pago.CveConceptoPago = 272 And CompraActual.CveMoneda = 2 Then Pago.CveConceptoPago = 304 'pago nota de crédito ME + If CompraActual.CveMoneda <> 1 Then + Select Case Pago.CveConceptoPago + Case 17 : Pago.CveConceptoPago = 312 + Case 308 : Pago.CveConceptoPago = 309 : CveConceptoContableComplementaria = 310 + Case Else + End Select + End If + Dim Concepto As String = String.Format("{0} F:{1}", CompraActual.ProveedorNombre, CompraActual.SerieFolio) + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + Dim tFecha As Date = Pago.Fecha + If CompraActual.CveMoneda > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then + Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) + If UltimaFluctuacion IsNot Nothing Then + If UltimaFluctuacion.FechaFluctuacion < tFecha Then + tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion + TCValuacion = UltimaFluctuacion.TCFluctuacion + End If + If CompraActual.Fecha < tFechaUltimaFluctuacion Then TCValuacionCompra = TCValuacion + If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion + End If + End If + If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares + tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL + tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares + tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL + tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL + tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL + End If + Dim ImportePagoMN As Decimal = Pago.ImportePago + Dim UsaComplementaria As Boolean = True + If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePago + If UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'caso excepcional de complementarias + UsaComplementaria = False + ImportePagoMN = (Pago.ImportePago * TCValuacionCompra).RoundSQL + End If + 'movimiento de pago proveedor + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImportePagoMN, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + 'movimiento de pago proveedor Complementaria + If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + If Pago.AplicaAcreditable Then + 'si tiene iva y su proporcion + If Not ErrorMovtos AndAlso CompraActual.IVA <> 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaIVA + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + If CompraActual.IVADeducible > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVADeducible).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento.RoundSQL * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + If CompraActual.IVANoDeducible > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IVANoDeducible).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 280, CompraActual.SerieFolio, Concepto, Ret.IdCtaContIVANoAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + End If + 'si tiene RET IVA y su proporcion + If Not ErrorMovtos AndAlso CompraActual.RetIVA > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.RetIVA).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetIVA + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + 'si tiene Ret ISR y su proporcion + If Not ErrorMovtos AndAlso CompraActual.RetISR > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.RetISR).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim ContabilizableISR As Boolean = False + If UsuarioActual.CveEmpresa.Contiene(140, 7, 11, 12, 122, 145, 172, 173) Then + ContabilizableISR = True + End If + Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetISR + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, Contabilizable:=ContabilizableISR, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, Contabilizable:=ContabilizableISR, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + 'si tiene IEPS y su proporcion + If Not ErrorMovtos AndAlso CompraActual.IEPS > 0 Then + ImporteMovimiento = (PorcentajePago * CompraActual.IEPS).RoundSQL + ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL + If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As New ConceptosRetenciones + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero + If ObjConta.GetRetCuenta(25, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + End If + 'si tiene otros gastos/ingresos + ImporteMovimiento = Pago.OtroGastoIngreso + If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then + Dim tOtCveCon As Integer = 211 + Dim tOtTipoMovto As Boolean = False + Dim IdCta As Integer = If(UsuarioActual.Empresa.TipoContabilidad = 2, UsuarioActual.Empresa.Funcionalidad(266).ToEntero(), 0) + If ImporteMovimiento < 0 Then + tOtTipoMovto = True : tOtCveCon = 78 + ImporteMovimiento = Math.Abs(ImporteMovimiento) + IdCta = If(UsuarioActual.Empresa.TipoContabilidad = 2, UsuarioActual.Empresa.IdCuentaOtrosIngresos, 0) + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, CompraActual.SerieFolio, Concepto, IdCta, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + End If + 'concepto pago + Concepto = String.Format("{0} NC:{1}", CompraActual.ProveedorNombre, Pago.Referencia) + If Pago.TipoPago = "Egsc" AndAlso Not ErrorMovtos Then ' A N T I C I P O / E G R E S O S X C O M P R O B A R + Dim Ret As New ConceptosRetenciones + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 266, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True + End If + End If + If Pago.TipoPago.Contiene("NC", "DEV") AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O + Dim Ret As New ConceptosRetenciones + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 342, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 235, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 60, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + End If + End If + If Pago.TipoPago = "DD" AndAlso Not ErrorMovtos Then ' D E U D O R D I V E R S O + Dim Ret As New ConceptosRetenciones + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero + If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + End If + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveVenta:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + End If + End If + 'If Pago.TipoPago = "Egsc" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R + ' Dim Ret As New ConceptosRetenciones + ' If UsuarioActual.Empresa.TipoContabilidad = 2 Then + ' If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero + ' If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + ' End If + ' If Pago.CveMonedaPago > 1 Then + ' 'Agregamos la Extranjera + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ' ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ' Else + ' 'Agregamos Nacional + ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ' End If + 'End If + If Not ErrorMovtos AndAlso TCValuacionCompra <> TCValuacionPago Then + Dim ConceptoContable, IdCtaContable As Integer + Dim TipoMovimiento As Boolean + Dim Diferencia As Decimal = 0 + If tImporteCompra <> tImportePago Then + If tImporteCompra > tImportePago Then + ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria + TipoMovimiento = True + Else + ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria + TipoMovimiento = False + End If + Diferencia = (tImporteCompra - tImportePago).Abs.RoundSQL + End If + If FuncionalidadFluctuacionImpuestos Then + Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, CompraActual.TC) + Diferencia = (Pago.ImportePago * CompraActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta + Diferencia -= ((CompraActual.IVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA + Diferencia += ((CompraActual.RetIVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA + Diferencia += ((CompraActual.RetISR * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR + Diferencia -= ((CompraActual.IEPS * PorcentajePago) * CompraActual.TC) - ((CompraActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS + Diferencia = Diferencia.Abs.RoundSQL + End If + If Diferencia <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveCompra:=CompraActual.CveCompra, CveSubProyecto:=CompraActual.CveSubProyecto, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE) Then + ErrorMovtos = True + End If + End If + End If + Return ErrorMovtos + End Function + + Public Class CompraPago + Public Property TipoPago As String = "B" ' B - Bancos, A - Anticipos, E - ExC, NC - Nota de crédito + Public Fecha As Date + Public Property CveIE As Integer = -1 + Public Property CvePersonal As Integer = -1 + Public Property ImportePago As Decimal = 0 + Public Property CveMonedaPago As Integer = 1 + Public Property TCPago As Decimal = 1 + Public Property CveCompraAmortizacion As Integer = 0 + Public Property OtroGastoIngreso As Decimal = 0 + Public Property CveConceptoPago As Integer = -1 'no definido de inicio + Public Property CveCreditoDetalle As Integer = -1 + Public Property Referencia As String = "" + Public Property AplicaAcreditable As Boolean = True + End Class + Public Class Compra + Public Property CveCompra As Integer = -1 + Public Property CveProveedor As Integer + Public Property CveTipoConceptoProveedor As Integer + Public Property CveMoneda As Integer + Public Property Fecha As Date + Public Property SerieFolio As String = "" + Public Property ProveedorNombre As String = "" + Public Property EsImportacion As Boolean = False + Public Property TC As Decimal = 1 + Public Property Total As Decimal + Public Property IVA As Decimal + Public Property IVADeducible As Decimal + Public Property IVANoDeducible As Decimal = 0 + Public Property IEPS As Decimal + Public Property RetIVA As Decimal + Public Property RetISR As Decimal + Public Property PorcentajeIVA As Decimal + Public Property CveConceptoRetIVA As Integer + Public Property CveConceptoRetISR As Integer + Public Property CveSubProyecto As Integer + Public Property UsuarioActual As Usuario + Public Property IdCtaContableProv As Integer + Public Property IdCtaContableProvComplementaria As Integer + Public Property IdCtaContableAnticipoProv As Integer + Public Property IdCtaContableAnticipoProvComplementaria As Integer + Public ReadOnly Property ConceptoPrePolizaIVA As ConceptosRetenciones + Get + Dim Ret As New ConceptosRetenciones + If EsImportacion Then + Ret.CveConceptoAcreditable = 288 + Ret.CveConceptoxAcreditar = 287 + Else + Ret.CveConceptoAcreditable = 19 + Ret.CveConceptoxAcreditar = 14 + End If + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + Dim IdCtaIVAXAcreditar, IdCtaIVAAcreditable, IdCtaIVANOAcreditable As Integer + Dim dt As DataTable = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA) + If dt.Rows.Count > 0 Then + IdCtaIVAXAcreditar = dt.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero + IdCtaIVAAcreditable = dt.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero + IdCtaIVANOAcreditable = dt.Rows(0)("IdCtaIVANoAcreditable").ToString.ToEntero + End If + Ret.IdCtaContableAcreditable = IdCtaIVAAcreditable + Ret.IdCtaContablexAcreditar = IdCtaIVAXAcreditar + Ret.IdCtaContIVANoAcreditable = IdCtaIVANOAcreditable + End If + Return Ret + End Get + End Property + Public ReadOnly Property ConceptoPrePolizaRetIVA As ConceptosRetenciones + Get + Dim Ret As New ConceptosRetenciones + Dim Funcionalidad, FuncionalidadxAcred As Integer + If CveConceptoRetIVA = 1 Then + Funcionalidad = 308 : FuncionalidadxAcred = 307 + Ret.CveConceptoAcreditable = 22 + Ret.CveConceptoxAcreditar = 15 + ElseIf CveConceptoRetIVA = 2 Then + Funcionalidad = 310 : FuncionalidadxAcred = 309 + Ret.CveConceptoAcreditable = 184 + Ret.CveConceptoxAcreditar = 183 + ElseIf CveConceptoRetIVA = 3 Then + Funcionalidad = 312 : FuncionalidadxAcred = 311 + Ret.CveConceptoAcreditable = 186 + Ret.CveConceptoxAcreditar = 185 + ElseIf CveConceptoRetIVA = 4 Then + Funcionalidad = 314 : FuncionalidadxAcred = 313 + Ret.CveConceptoAcreditable = 249 + Ret.CveConceptoxAcreditar = 248 + ElseIf CveConceptoRetIVA = 5 Then + Funcionalidad = 578 : FuncionalidadxAcred = 578 + Ret.CveConceptoAcreditable = 286 + Ret.CveConceptoxAcreditar = 285 + ElseIf CveConceptoRetIVA = 6 Then + Funcionalidad = 578 : FuncionalidadxAcred = 578 + Ret.CveConceptoAcreditable = 333 + Ret.CveConceptoxAcreditar = 334 + End If + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + Dim ObjConta As New ClsContabilidad + If UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero > 0 Then + Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero + Else + If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + End If + End If + If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then + Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero + Else + If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero + End If + End If + ObjConta.Dispose() + End If + Return Ret + End Get + End Property + Public ReadOnly Property ConceptoPrePolizaRetISR As ConceptosRetenciones + Get + Dim Ret As New ConceptosRetenciones + Dim Funcionalidad, FuncionalidadxAcred As Integer + If CveConceptoRetISR = 1 Then + Funcionalidad = 316 : FuncionalidadxAcred = 315 + Ret.CveConceptoAcreditable = 23 + Ret.CveConceptoxAcreditar = 16 + ElseIf CveConceptoRetISR = 2 Then + Funcionalidad = 318 : FuncionalidadxAcred = 317 + Ret.CveConceptoAcreditable = 244 + Ret.CveConceptoxAcreditar = 243 + ElseIf CveConceptoRetISR = 3 Then + Funcionalidad = 349 : FuncionalidadxAcred = 348 + Ret.CveConceptoAcreditable = 328 + Ret.CveConceptoxAcreditar = 327 + End If + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + Dim ObjConta As New ClsContabilidad + If UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero > 0 Then + Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero + Else + If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero + End If + End If + If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then + Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero + Else + If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then + If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero + End If + End If + ObjConta.Dispose() + End If + Return Ret + End Get + End Property + End Class + Public Class ConceptosRetenciones + Public Property CveConceptoxAcreditar As Integer + Public Property CveConceptoAcreditable As Integer + Public Property IdCtaContablexAcreditar As Integer + Public Property IdCtaContableAcreditable As Integer + Public Property IdCtaContIVANoAcreditable As Integer + End Class +#End Region + +#Region "P A G O D E V E N T A S " + Public Function AplicaPrePolizaPagoVenta(VentaActual As Venta, Pago As VentaPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean + Dim ErrorMovtos As Boolean = False + Dim PorcentajePago As Decimal = Pago.ImportePagoVenta / VentaActual.Total + Dim ImporteMovimiento As Decimal = 0 + Dim ImporteMN As Decimal = 0 + Dim ImporteME As Decimal = 0 + Dim TCValuacion As Decimal + Dim TCValuacionVenta As Decimal = VentaActual.TC + Dim TCValuacionPago As Decimal = Pago.TCPago + Dim tFechaUltimaFluctuacion As Date + Dim tImportePago, tImporteVenta As Decimal + Dim CveConceptoContableComplementaria As Integer = 207 + If PorcentajePago > 1 Then PorcentajePago = 1 + Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 2, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 2 + If VentaActual.CveMoneda <> 1 Then + If Pago.TipoPago = "NC" Then Pago.CveConceptoPago = 301 Else Pago.CveConceptoPago = 292 + End If + Dim Concepto As String = String.Format("{0} F:{1}", VentaActual.ClienteNombre, VentaActual.SerieFolio) + Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) + Dim tFecha As Date = Pago.Fecha + If VentaActual.CveMoneda > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then + Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) + If UltimaFluctuacion IsNot Nothing Then + If UltimaFluctuacion.FechaFluctuacion < tFecha Then + tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion + TCValuacion = UltimaFluctuacion.TCFluctuacion + End If + If VentaActual.Fecha < tFechaUltimaFluctuacion Then TCValuacionVenta = TCValuacion + If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion + End If + End If + If VentaActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares + tImportePago = ((Pago.ImportePago * TCValuacionVenta / Pago.TCPago) * Pago.TCPago).RoundSQL + tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL + ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares + tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL + tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL + ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos + tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL + tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL + End If + If VentaActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoVenta + 'movimiento de pago cliente + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, Pago.ImportePagoVenta, Pago.CveConceptoPago, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'movimiento de pago cliente Complementaria + If Not ErrorMovtos AndAlso VentaActual.CveMoneda > 1 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, (ImporteME * TCValuacionVenta - ImporteME).RoundSQL, CveConceptoContableComplementaria, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + If Pago.AplicaTraslado Then + 'si tiene iva y su proporcion + If Not ErrorMovtos AndAlso VentaActual.IVA <> 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.IVA).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 13, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 61, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + End If + 'si tiene RET IVA y su proporcion + If Not ErrorMovtos AndAlso VentaActual.RetIVA > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.RetIVA).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 8, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 62, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + 'si tiene Ret ISR y su proporcion + If Not ErrorMovtos AndAlso VentaActual.RetISR > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.RetISR).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 9, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 63, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + 'si tiene IEPS y su proporcion + If Not ErrorMovtos AndAlso VentaActual.IEPS > 0 Then + ImporteMovimiento = (PorcentajePago * VentaActual.IEPS).RoundSQL + ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL + If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento + Dim Ret As New ConceptosRetenciones + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + If ObjConta.GetRetCuenta(38, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero + If ObjConta.GetRetCuenta(39, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 38, VentaActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe + If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 39, VentaActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + 'concepto pago + Concepto = String.Format("{0} NC:{1}", VentaActual.ClienteNombre, Pago.Referencia) + If Pago.TipoPago = "A" AndAlso Not ErrorMovtos Then ' A N T I C I P O + Dim Ret As New ConceptosRetenciones + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 296, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 227, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 11, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True + End If + End If + If Pago.TipoPago = "NC" AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O + Dim Ret As New ConceptosRetenciones + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 294, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 91, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + End If + End If + If Pago.TipoPago = "I" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R + Dim Ret As New ConceptosRetenciones + If UsuarioActual.Empresa.TipoContabilidad = 2 Then + 'If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero + 'If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero + If UsuarioActual.CveEmpresa.Contiene(119) Then + If Pago.FechaDocumentoRelacionado.Year <= 2017 Then + Dim ObjCliente As New ClsClientes(ObjConta.IniciaTransacSQL()) + If ObjCliente.GetClientes(VentaActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then + If Pago.CveMonedaPago > 1 Then VentaActual.IdCtaContableClienteAnticipoExtranjera = ObjCliente.IdCtaContMonedaExtranjera Else VentaActual.IdCtaContableClienteAnticipo = ObjCliente.IdCtaContClientes + End If + End If + End If + End If + If Pago.CveMonedaPago > 1 Then + 'Agregamos la Extranjera + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 332, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + Else + 'Agregamos Nacional + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True + End If + End If + 'si tiene otros gastos/ingresos + ImporteMovimiento = Pago.OtroGastoIngreso + If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then + Dim tOtCveCon As Integer = 78 + Dim tOtTipoMovto As Boolean = True + If ImporteMovimiento < 0 Then + tOtTipoMovto = False : tOtCveCon = 211 + ImporteMovimiento = Math.Abs(ImporteMovimiento) + End If + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=VentaActual.CveSubProyecto, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True + End If + If Not ErrorMovtos AndAlso TCValuacionVenta <> TCValuacionPago Then + Dim ConceptoContable, IdCtaContable As Integer + Dim TipoMovimiento As Boolean + Dim Diferencia As Decimal = 0 + tImportePago += Pago.ImporteFluctuacionAdicional 'para los casos de aplicación de + If tImporteVenta <> tImportePago Then + If tImporteVenta < tImportePago Then + ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria + TipoMovimiento = True + Else + ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria + TipoMovimiento = False + End If + Diferencia = (tImporteVenta - tImportePago).Abs.RoundSQL + End If + If FuncionalidadFluctuacionImpuestos Then + Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, VentaActual.TC) + Diferencia = (Pago.ImportePago * VentaActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta + Diferencia -= ((VentaActual.IVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA + Diferencia += ((VentaActual.RetIVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA + Diferencia += ((VentaActual.RetISR * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR + Diferencia -= ((VentaActual.IEPS * PorcentajePago) * VentaActual.TC) - ((VentaActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS + Diferencia = Diferencia.Abs.RoundSQL + End If + If Diferencia <> 0 Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveVenta:=VentaActual.CveVenta, CveSubProyecto:=VentaActual.CveSubProyecto, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE) Then + ErrorMovtos = True + End If + End If + End If + Return ErrorMovtos + End Function + + Public Class VentaPago + Public Property TipoPago As String = "B" ' B - Bancos, A - Anticipos, I - IxC, NC - Nota de crédito + Public FechaDocumentoRelacionado As Date + Public Fecha As Date + Public Property CveIE As Integer = -1 + Public Property CvePersonal As Integer = -1 + Public Property ImportePagoVenta As Decimal = 0 + Public Property ImportePago As Decimal = 0 + Public Property CveMonedaPago As Integer = 1 + Public Property TCPago As Decimal = 1 + Public Property CveVentaAmortizacion As Integer = 0 + Public Property OtroGastoIngreso As Decimal = 0 + Public Property CveConceptoPago As Integer = -1 'no definido de inicio + Public Property CveCreditoDetalle As Integer = -1 + Public Property AplicaTraslado As Boolean = True + Public Property Referencia As String + Public Property ImporteFluctuacionAdicional As Decimal = 0 + End Class + Public Class Venta + Public Property CveVenta As Integer = -1 + Public Property CveCliente As Integer + Public Property CveMoneda As Integer + Public Property Fecha As Date + Public Property SerieFolio As String = "" + Public Property ClienteNombre As String = "" + Public Property TC As Decimal = 1 + Public Property Total As Decimal + Public Property IVA As Decimal + Public Property IEPS As Decimal + Public Property RetIVA As Decimal + Public Property RetISR As Decimal + Public Property PorcentajeIVA As Decimal + Public Property CveSubProyecto As Integer + Public Property UsuarioActual As Usuario + Public Property IdCtaContableCliente As Integer + Public Property IdCtaContableClienteComplementaria As Integer + Public Property IdCtaContableClienteAnticipo As Integer + Public Property IdCtaContableClienteAnticipoExtranjera As Integer + Public Property IdCtaContableClienteAnticipoComplementaria As Integer + End Class +#End Region + +#Region "GlobalSIGAppPaginas" Private Function Obt_ClavePagina(Pagina As String) As Integer Dim Retorno As Integer - Dim PaginaDict As System.Collections.Hashtable - If Application("GlobalSIGAppPaginas") Is Nothing Then PaginaDict = New System.Collections.Hashtable - PaginaDict.Add("/Nomina/ChecadorAsistencia.aspx".ToUpper(), 921) PaginaDict.Add("/Nomina/ISRCalculoAnual.aspx".ToUpper(), 918) PaginaDict.Add("/Nomina/MovimientosSUA.aspx".ToUpper(), 919) @@ -4622,9 +8089,7 @@ Public Class ClsPaginas PaginaDict.Add("/reporteador.aspx".ToUpper(), -1) PaginaDict.Add("/General/CATIEPSxEntidadFed.aspx".ToUpper(), 719) PaginaDict.Add("/GPS/ReporteUnidadesnoTransmiten.aspx".ToUpper(), 917) - PaginaDict.Add("/GPS/RepArrastre.aspx".ToUpper(), 718) - PaginaDict.Add("/Nomina/CatConceptos2.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/NomTimbrados.aspx".ToUpper(), 920) PaginaDict.Add("/Nomina/Aguinaldo.aspx".ToUpper(), -1) @@ -4636,8 +8101,7 @@ Public Class ClsPaginas PaginaDict.Add("/RH/DiasFestivos.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/FiniquitoB.aspx".ToUpper(), -1) - - 'Páginas agregadas recientemente (Implementación Metronic) + '------------ Páginas agregadas recientemente (Implementación Metronic) ------------ PaginaDict.Add("/Default2.aspx".ToUpper(), -1) PaginaDict.Add("/CargaCuentas.aspx".ToUpper(), -1) PaginaDict.Add("/OI/Tareas.aspx".ToUpper(), -1) @@ -4665,10 +8129,7 @@ Public Class ClsPaginas PaginaDict.Add("/Inventarios/PaqueteDetalles.aspx".ToUpper(), -1) PaginaDict.Add("/Inventarios/RepProductosPorCaducar.aspx".ToUpper(), 693) - - - - 'Cargo las páginas que NO deben tener restricción + '--------------------- Páginas que NO deben tener restricción --------------------- PaginaDict.Add("/Pruebas.aspx".ToUpper(), -1) PaginaDict.Add("/Sistemas/PopUpSeleccionarEmpresa.aspx".ToUpper(), -1) PaginaDict.Add("/Sistemas/PopUpPerfil.aspx".ToUpper(), -1) @@ -4683,7 +8144,6 @@ Public Class ClsPaginas PaginaDict.Add("/UploadFile.aspx".ToUpper(), -1) PaginaDict.Add("/Compras/RepProveedorFacturas.aspx".ToUpper(), -1) PaginaDict.Add("/Bancos/Reportes.aspx".ToUpper(), -1) - PaginaDict.Add("/Prospectos/PopUpBuscarProspectos.aspx".ToUpper(), -1) PaginaDict.Add("/Sistemas/PopUpCambiaUsuario.aspx".ToUpper(), -1) PaginaDict.Add("/Sistemas/PopUpCambiaUsuarioEmpresa.aspx".ToUpper(), -1) @@ -4692,43 +8152,30 @@ Public Class ClsPaginas PaginaDict.Add("/Sistemas/PopUpAddUsuario.aspx".ToUpper(), -1) PaginaDict.Add("/General/JAMComparativos.aspx".ToUpper(), 643) PaginaDict.Add("/General/CatMotivoRechazoGuias.aspx".ToUpper(), 729) - PaginaDict.Add("/General/FolioFechaCancelacion.aspx".ToUpper(), -1) - - - - '-------------------------------------------Q U I T A R---------------------------------- -#Region "Q U I T A R" - - +#Region "####### Q U I T A R #######" PaginaDict.Add("/Contratos/Estimaciones.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/RepContratos.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/RepContratosDetalle.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/RepContratosAvances.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/RepContratosPresupuesto.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/CatContratosTipos.aspx".ToUpper(), -1) - - PaginaDict.Add("/SCT/RepGISSucesos.aspx".ToUpper(), -1) PaginaDict.Add("/SCT/RepLicencias.aspx".ToUpper(), -1) PaginaDict.Add("/SCT/Licencias.aspx".ToUpper(), -1) PaginaDict.Add("/SCT/LicenciasDetalle.aspx".ToUpper(), -1) - PaginaDict.Add("/Prospectos/Prospectos.aspx".ToUpper(), -1) PaginaDict.Add("/XXXEjemplosPaola/Agenda/page_calendar.aspx".ToUpper(), -1) PaginaDict.Add("/Orlando/Default.aspx".ToUpper(), -1) PaginaDict.Add("/Orlando/Ventas.aspx".ToUpper(), -1) - PaginaDict.Add("/Armonizacion/RepPresupuesto.aspx".ToUpper(), -1) PaginaDict.Add("/Armonizacion/PresupuestoIngreso.aspx".ToUpper(), -1) PaginaDict.Add("/Armonizacion/PresupuestoEgresos.aspx".ToUpper(), -1) PaginaDict.Add("/Compras/CatProveedoresCuentas.aspx".ToUpper(), -1) - PaginaDict.Add("/123/DefaultGrid.aspx".ToUpper(), -1) PaginaDict.Add("/123/Default.aspx".ToUpper(), -1) PaginaDict.Add("/Ventas/EnviarCorreosPrueba.aspx".ToUpper(), -1) - PaginaDict.Add("/Daniel/index.aspx".ToUpper(), -1) PaginaDict.Add("/Daniel/CatCiudades.aspx".ToUpper(), -1) PaginaDict.Add("/Daniel/Rodolfo.aspx".ToUpper(), -1) @@ -4748,11 +8195,7 @@ Public Class ClsPaginas PaginaDict.Add("/Bancos/SaldarCajaChica.aspx".ToUpper(), -1) PaginaDict.Add("/Bancos/IngresosEgresosPorComprobar.aspx".ToUpper(), -1) PaginaDict.Add("/Bancos/ClientesAbonar.aspx".ToUpper(), -1) - #End Region - '-------------------------------------------F I N - Q U I T A R---------------------------------- - - 'AMORTIZACIÓN CONTABLE #Region "AC" PaginaDict.Add("/AC/CatFuentesRecaudacion.aspx".ToUpper(), 268) PaginaDict.Add("/AC/CatRubrosIngreso.aspx".ToUpper(), 265) @@ -4799,7 +8242,6 @@ Public Class ClsPaginas PaginaDict.Add("/AC/RepPresupuestoIngresosDetalle.aspx".ToUpper(), 299) PaginaDict.Add("/AC/CatClasificacionAdministrativa.aspx.aspx".ToUpper(), -1) 'ELIMINAR ??? #End Region - ' AC2 #Region "AC2" PaginaDict.Add("/AC2/CatPresupuestoEgresos.aspx".ToUpper(), 598) PaginaDict.Add("/AC2/CatPresupuestoIngresos.aspx".ToUpper(), 599) @@ -4819,7 +8261,6 @@ Public Class ClsPaginas PaginaDict.Add("/AC2/RepPresupuestoIngresosDetalle.aspx".ToUpper(), 613) PaginaDict.Add("/AC2/ProgramaOperativo.aspx".ToUpper(), 608) #End Region - 'ACARREOS' #Region "Acarreos" PaginaDict.Add("/Acarreos/CatChoferes.aspx".ToUpper(), 467) PaginaDict.Add("/Acarreos/CatTransportistas.aspx".ToUpper(), 465) @@ -4840,15 +8281,14 @@ Public Class ClsPaginas PaginaDict.Add("/Acarreos/RepContratosAcarreosDetalle.aspx".ToUpper(), 482) PaginaDict.Add("/Acarreos/RepPreEstimacionDetalle.aspx".ToUpper(), 482) #End Region - 'ACTIVOS FIJOS -#Region "AF" +#Region "ACTIVOS FIJOS" PaginaDict.Add("/AF/ValesCombustible.aspx".ToUpper(), 384) PaginaDict.Add("/AF/PopUpBuscarAF.aspx".ToUpper(), 62) PaginaDict.Add("/AF/CatAF.aspx".ToUpper(), 63) PaginaDict.Add("/AF/AF.aspx".ToUpper(), 63) PaginaDict.Add("/AF/RepAF.aspx".ToUpper(), 403) PaginaDict.Add("/AF/BitacoraAF.aspx".ToUpper(), 2043) - '-------------HIJOS DE 57 + '--------------------- HIJOS DE 57 --------------------- PaginaDict.Add("/AF/CatTipos.aspx".ToUpper(), 138) PaginaDict.Add("/AF/CatSubTipos.aspx".ToUpper(), 139) PaginaDict.Add("/AF/CatModelos.aspx".ToUpper(), 140) @@ -4863,7 +8303,6 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatCombustibles.aspx".ToUpper(), -1) PaginaDict.Add("/AF/CatCargasCombustible.aspx".ToUpper(), -1) PaginaDict.Add("/AF/RepFlotillas.aspx".ToUpper(), -1) - PaginaDict.Add("/AF/RepDepreciacion.aspx".ToUpper(), -1) PaginaDict.Add("/AF/RepEventosProgramados.aspx".ToUpper(), 656) PaginaDict.Add("/AF/RegistroRevision.aspx".ToUpper(), 1251) @@ -4876,18 +8315,11 @@ Public Class ClsPaginas PaginaDict.Add("/AF/CatCheckListTipo.aspx".ToUpper(), 770) PaginaDict.Add("/AF/CatCheckListActividades.aspx".ToUpper(), 771) PaginaDict.Add("/AF/CatCheckList.aspx".ToUpper(), 772) - PaginaDict.Add("/AF/TipoOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/RepOrdenTrabajo.aspx".ToUpper(), -1) PaginaDict.Add("/AF/OrdenTrabajoAsignacion.aspx".ToUpper(), -1) - - - - - #End Region - 'AIMMGM #Region "AIMMGM" PaginaDict.Add("/AIMMGM/Registro.aspx".ToUpper(), -1) PaginaDict.Add("/AIMMGM/PopRegistro.aspx".ToUpper(), -1) @@ -4897,8 +8329,6 @@ Public Class ClsPaginas PaginaDict.Add("/AIMMGM/Saldos.aspx".ToUpper(), 239) PaginaDict.Add("/AIMMGM/VentasPS.aspx".ToUpper(), 240) #End Region - - 'BANCOS #Region "Bancos" PaginaDict.Add("/Bancos/ProveedoresAbonarH.aspx".ToUpper(), 84) PaginaDict.Add("/Bancos/RepProveedoresPagosH.aspx".ToUpper(), 84) @@ -4927,7 +8357,6 @@ Public Class ClsPaginas PaginaDict.Add("/Bancos/PagoElectronico.aspx".ToUpper(), 324) PaginaDict.Add("/Bancos/RepProgramaciones.aspx".ToUpper(), 323) PaginaDict.Add("/Bancos/PagoElectronicoGrupos.aspx".ToUpper(), 1318) - PaginaDict.Add("/Bancos/PopIE.aspx".ToUpper(), 153) PaginaDict.Add("/Bancos/PopIEVentas.aspx".ToUpper(), 153) PaginaDict.Add("/Bancos/PopIECompras.aspx".ToUpper(), 153) @@ -4971,13 +8400,11 @@ Public Class ClsPaginas PaginaDict.Add("/Bancos/PrestamoPersonal.aspx".ToUpper(), 890) PaginaDict.Add("/Bancos/PopUpBuscarCuentasProveedor.aspx".ToUpper(), 679) #End Region - #Region "CGame" PaginaDict.Add("/CGame/OrdenProduccion.aspx".ToUpper(), 815) PaginaDict.Add("/CGame/PopUpBuscarOrdenProduccion.aspx".ToUpper(), 816) PaginaDict.Add("/CGame/RepOrdenProduccion.aspx".ToUpper(), 824) PaginaDict.Add("/CGame/RepAvance.aspx".ToUpper(), 844) - 'Reportes de Gastos PaginaDict.Add("/CGame/RepPreEnfriado.aspx".ToUpper(), 855) PaginaDict.Add("/CGame/RepCorte.aspx".ToUpper(), 857) @@ -4985,18 +8412,14 @@ Public Class ClsPaginas PaginaDict.Add("/CGame/RepOtrosGastos.aspx".ToUpper(), 859) PaginaDict.Add("/CGame/RepMateriales.aspx".ToUpper(), 860) PaginaDict.Add("/CGame/RepMaquila.aspx".ToUpper(), 862) - 'Reportes de Ingresos PaginaDict.Add("/CGame/RepIngresos.aspx".ToUpper(), 861) - 'Estado de Cuenta PaginaDict.Add("/CGame/EstadoCuenta.aspx".ToUpper(), 851) PaginaDict.Add("/CGame/EstadoCuentaDetalle.aspx".ToUpper(), 851) - 'Liquidacion PaginaDict.Add("/CGame/Liquidacion.aspx".ToUpper(), 853) - - 'Orden Corte' + 'Orden Corte PaginaDict.Add("/CGame/EntradaMateriaPrima.aspx".ToUpper(), 820) PaginaDict.Add("/CGame/RepOrdenCorte.aspx".ToUpper(), 842) PaginaDict.Add("/CGame/RepOrdenCorteDetalle.aspx".ToUpper(), 842) @@ -5005,16 +8428,14 @@ Public Class ClsPaginas PaginaDict.Add("/CGame/PopUpBuscarCorteGasto.aspx".ToUpper(), 836) PaginaDict.Add("/CGame/RepCorteGasto.aspx".ToUpper(), 850) PaginaDict.Add("/CGame/RepOrdenProduccionXHuerta.aspx".ToUpper(), 856) - - 'Empaque' + 'Empaque PaginaDict.Add("/CGame/Empaque.aspx".ToUpper(), 822) PaginaDict.Add("/CGame/PopUpBuscarEmpaque.aspx".ToUpper(), 823) PaginaDict.Add("/CGame/RepEmpaque.aspx".ToUpper(), 825) PaginaDict.Add("/CGame/AsignacionEmpaque.aspx".ToUpper(), 826) PaginaDict.Add("/CGame/RepEmpaqueDetalle.aspx".ToUpper(), 825) PaginaDict.Add("/CGame/AsignacionEmpaque2.aspx".ToUpper(), 826) - - 'Fletes' + 'Fletes PaginaDict.Add("/CGame/Fletes.aspx".ToUpper(), 830) PaginaDict.Add("/CGame/RepFletesPendientes.aspx".ToUpper(), 847) 'Configuración @@ -5036,7 +8457,6 @@ Public Class ClsPaginas PaginaDict.Add("/CGame/CatConceptoGastoCorte.aspx".ToUpper(), 848) PaginaDict.Add("/CGame/CatCargosFijos.aspx".ToUpper(), 852) #End Region - 'COMPRAS #Region "Compras" PaginaDict.Add("/Compras/RepTopCompras.aspx".ToUpper(), -1) PaginaDict.Add("/Compras/CatProveedores.aspx".ToUpper(), 37) @@ -5067,7 +8487,6 @@ Public Class ClsPaginas PaginaDict.Add("/Compras/RepNotasCredito.aspx".ToUpper(), 337) PaginaDict.Add("/Compras/ReembolsosComprobaciones.aspx".ToUpper(), 350) PaginaDict.Add("/Compras/RepProductosServicios.aspx".ToUpper(), 97) - PaginaDict.Add("/Compras/RepEvaluacionProveedor.aspx".ToUpper(), 564) PaginaDict.Add("/Compras/RepRembolsoComprobaciones.aspx".ToUpper(), 591) PaginaDict.Add("/Compras/ComprasO.aspx".ToUpper(), -1) @@ -5080,7 +8499,6 @@ Public Class ClsPaginas PaginaDict.Add("/Compras/RepComprasPersonal.aspx".ToUpper(), 637) PaginaDict.Add("/Compras/RepComprasPersonalDetalle.aspx".ToUpper(), 637) PaginaDict.Add("/Compras/RepComplementoPago.aspx".ToUpper(), 657) - PaginaDict.Add("/Compras/RepProductosServiciosPeriodo.aspx".ToUpper(), 866) PaginaDict.Add("/Compras/RepGastosFijos.aspx".ToUpper(), 661) PaginaDict.Add("/Compras/RepPagado.aspx".ToUpper(), 872) @@ -5104,13 +8522,8 @@ Public Class ClsPaginas PaginaDict.Add("/OI/CircularDetalle.aspx".ToUpper(), 757) PaginaDict.Add("/OI/CircularDetalleB.aspx".ToUpper(), 757) PaginaDict.Add("/Compras/CatTipoGasto.aspx".ToUpper(), 759) - - #End Region - - 'CONTABILIDAD #Region "Contabilidad" - 'CONTABILIDAD ELECTRONICA PaginaDict.Add("/Contabilidad/ContabilidadElectronica.aspx".ToUpper(), 566) PaginaDict.Add("/Contabilidad/RepGastosCC.aspx".ToUpper(), 535) PaginaDict.Add("/Contabilidad/ContabilizarPagosCliente.aspx".ToUpper(), 52) @@ -5123,14 +8536,12 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad/DiarioAmortizaciones.aspx".ToUpper(), 119) PaginaDict.Add("/Contabilidad/Poliza.aspx".ToUpper(), 54) PaginaDict.Add("/Contabilidad/RegPoliza.aspx".ToUpper(), 54) - PaginaDict.Add("/Contabilidad/TiposPoliza.aspx".ToUpper(), 165) PaginaDict.Add("/Contabilidad/PlantillasPolizas.aspx".ToUpper(), 304) PaginaDict.Add("/Contabilidad/PlantillasPolizasDetalle.aspx".ToUpper(), 304) PaginaDict.Add("/Contabilidad/ConceptosContables.aspx".ToUpper(), 166) PaginaDict.Add("/Contabilidad/RepAuxiliar.aspx".ToUpper(), 133) PaginaDict.Add("/Contabilidad/RepPolizasCuadre.aspx".ToUpper(), 386) - PaginaDict.Add("/Contabilidad/RepBalanceGeneralMensual.aspx".ToUpper(), 123) PaginaDict.Add("/Contabilidad/RepEstadoResultadosMensual.aspx".ToUpper(), 124) 'PaginaDict.Add("/Contabilidad/RepBalanceGeneralAnual.aspx".ToUpper(), 126) @@ -5164,7 +8575,6 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad/RepIVA.aspx".ToUpper(), 658) PaginaDict.Add("/Contabilidad/AuxiliarPrePolizas.aspx".ToUpper(), 871) PaginaDict.Add("/Contabilidad/RepEstadoResultadosPorSegmento.aspx".ToUpper(), 1317) - PaginaDict.Add("/Contabilidad/RepAnexoCatalogoMes.aspx".ToUpper(), -1) PaginaDict.Add("/Contabilidad/RepAnexoCatalogoSegmento.aspx".ToUpper(), -1) PaginaDict.Add("/Contabilidad/RepAnexoCatalogo.aspx".ToUpper(), 341) @@ -5175,10 +8585,7 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad/CatPeriodosBloqueo.aspx".ToUpper(), 677) PaginaDict.Add("/Contabilidad/CatClasificacionPorcentaje.aspx".ToUpper(), 752) PaginaDict.Add("/Contabilidad/RepFlujoEfectivo.aspx".ToUpper(), 783) - - #End Region - 'CONTABILIDAD2 #Region "Contabilidad2" PaginaDict.Add("/Contabilidad2/RepAnexoCatalogo.aspx".ToUpper(), 580) PaginaDict.Add("/Contabilidad2/RepBalanzaComprobacion.aspx".ToUpper(), 582) @@ -5187,16 +8594,12 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad2/RepCambiosSituacionFinanciera.aspx".ToUpper(), 585) PaginaDict.Add("/Contabilidad2/RepSituacionFinanciera.aspx".ToUpper(), 586) PaginaDict.Add("/Contabilidad2/RepMovimientosAuxiliaresCatalogo.aspx".ToUpper(), 587) - - - PaginaDict.Add("/Contabilidad2/RepAnexoCatalogoMensual.aspx".ToUpper(), 589) PaginaDict.Add("/Contabilidad2/RepAnexoCatalogoAnual.aspx".ToUpper(), 593) PaginaDict.Add("/Contabilidad2/RepAnexoCatalogoCC.aspx".ToUpper(), 594) PaginaDict.Add("/Contabilidad2/RepVariacionHaciendaPublica.aspx".ToUpper(), 595) PaginaDict.Add("/Contabilidad2/CatCuentas.aspx".ToUpper(), 596) PaginaDict.Add("/Contabilidad2/RepLibroDiario.aspx".ToUpper(), 544) - 'PaginaDict.Add("/Contabilidad2/RepSituacionFinancieraSAT.aspx".ToUpper(), 615) 'PaginaDict.Add("/Contabilidad2/RepEstadoActividadesSAT.aspx".ToUpper(), 616) 'PaginaDict.Add("/Contabilidad2/RepBalanzaComprobacionSAT.aspx".ToUpper(), 617) @@ -5206,16 +8609,10 @@ Public Class ClsPaginas PaginaDict.Add("/Contabilidad2/CatCuentasAsignaciones.aspx".ToUpper(), 724) PaginaDict.Add("/Contabilidad2/CatContaEjercicios.aspx".ToUpper(), 725) PaginaDict.Add("/Contabilidad2/RepEstadoResultadosHorizontal.aspx".ToUpper(), 420) - PaginaDict.Add("/Contabilidad2/RepAnexoCatalogoMensualHorizontal.aspx".ToUpper(), -1) - - - #End Region - 'CONTRATOS #Region "Contratos" - - '------------------------------ C O N T R A T O S - P R E S U P U E S T O S --------------------- + '--------------------- C O N T R A T O S - P R E S U P U E S T O S --------------------- PaginaDict.Add("/Contratos/Presupuestos.aspx".ToUpper(), 901) PaginaDict.Add("/Contratos/ModificarPresupuesto.aspx".ToUpper(), 902) PaginaDict.Add("/Contratos/CatPresupuestos.aspx".ToUpper(), 903) @@ -5224,8 +8621,6 @@ Public Class ClsPaginas PaginaDict.Add("/Contratos/RepPresupuestosDetalleCompras.aspx".ToUpper(), 905) PaginaDict.Add("/Contratos/FacturacionMasiva.aspx".ToUpper(), 454) PaginaDict.Add("/Contratos/CatContratosPlantillas.aspx".ToUpper(), 455) - - PaginaDict.Add("/Contratos/CatSecciones.aspx".ToUpper(), -1) '152 PaginaDict.Add("/Contratos/ContratosSecciones.aspx".ToUpper(), -1) PaginaDict.Add("/Contratos/Contratos.aspx".ToUpper(), -1) '154 @@ -5244,9 +8639,7 @@ Public Class ClsPaginas PaginaDict.Add("/Contratos/RepContratosFianzas.aspx".ToUpper(), 646) PaginaDict.Add("/Contratos/RepPedidosDevolucionesXContrato.aspx".ToUpper(), 705) #End Region - 'CONTABILIDAD2 - Finanzas #Region "CrM" - 'CRM PaginaDict.Add("/CRM/CatTipoProceso.aspx".ToUpper(), 1301) PaginaDict.Add("/CRM/CatMediosCaptacion.aspx".ToUpper(), 1302) PaginaDict.Add("/CRM/CatRechazoMotivo.aspx".ToUpper(), 1303) @@ -5266,8 +8659,6 @@ Public Class ClsPaginas PaginaDict.Add("/CRM/AsignarVendedorEnProspectos.aspx".ToUpper(), 695) #End Region #Region "CxC" - - 'CxC PaginaDict.Add("/CxC/RepCxC.aspx".ToUpper(), 8) PaginaDict.Add("/CxC/RepCxCDetalle.aspx".ToUpper(), 565) PaginaDict.Add("/CxC/RepCxCSemanal.aspx".ToUpper(), 31) @@ -5275,7 +8666,6 @@ Public Class ClsPaginas PaginaDict.Add("/CxC/RepCxCPeriodo.aspx".ToUpper(), 887) #End Region #Region "Finanzas" - 'Finanzas PaginaDict.Add("/Finanzas/RepRazonesFinancieras.aspx".ToUpper(), 592) PaginaDict.Add("/Finanzas/FinanMetas.aspx".ToUpper(), 361) PaginaDict.Add("/Finanzas/FinanVentasProyecciones.aspx".ToUpper(), 360) @@ -5290,13 +8680,9 @@ Public Class ClsPaginas PaginaDict.Add("/Finanzas/RazonesFinancierasCuentas.aspx".ToUpper(), -1) PaginaDict.Add("/Finanzas/RepRotacionCartera.aspx".ToUpper(), 649) PaginaDict.Add("/Finanzas/RepRotacionCarteraDetalle.aspx".ToUpper(), 649) - - PaginaDict.Add("/Finanzas/RepBalanceGeneralHorizontal2.aspx".ToUpper(), -1) #End Region #Region "Flotillas" - - 'FLOTILLAS PaginaDict.Add("/Flotillas/CatCombustibles.aspx".ToUpper(), 284) PaginaDict.Add("/Flotillas/RepIncidentes.aspx".ToUpper(), 497) PaginaDict.Add("/Flotillas/RepLicencias.aspx".ToUpper(), 498) @@ -5304,7 +8690,6 @@ Public Class ClsPaginas PaginaDict.Add("/Flotillas/RepPolizaSeguro.aspx".ToUpper(), 500) PaginaDict.Add("/Flotillas/RepServicios.aspx".ToUpper(), 501) #End Region - 'GENERAL #Region "General" PaginaDict.Add("/General/CatClasificaciones.aspx".ToUpper(), 425) PaginaDict.Add("/General/CatClasificacionesComprobaciones.aspx".ToUpper(), 1308) @@ -5329,8 +8714,6 @@ Public Class ClsPaginas PaginaDict.Add("/General/CatSatListado69B.aspx".ToUpper, 1038) PaginaDict.Add("/General/CatMedidaEquivalencia.aspx".ToUpper(), 773) PaginaDict.Add("/General/RepIndicadorResumen.aspx".ToUpper(), 110) - - #End Region #Region "GPS" PaginaDict.Add("/GPS/RepTemperatura.aspx".ToUpper(), 681) @@ -5392,7 +8775,6 @@ Public Class ClsPaginas PaginaDict.Add("/GPS/KimberlyClarkTracking.aspx".ToUpper(), -1) PaginaDict.Add("/GPS/RepUnidades.aspx".ToUpper(), 780) #End Region - 'INVENTARIOS #Region "Inventarios" PaginaDict.Add("/Inventarios/Fletes.aspx".ToUpper(), 550) PaginaDict.Add("/Inventarios/RepFletes.aspx".ToUpper(), 551) @@ -5462,21 +8844,15 @@ Public Class ClsPaginas PaginaDict.Add("/Inventarios/AjustesSeccionAlmacen.aspx".ToUpper(), 892) PaginaDict.Add("/Inventarios/RepTraspasoAlmacen.aspx".ToUpper(), 688) PaginaDict.Add("/Inventarios/EntregasPorRealizar.aspx".ToUpper(), 728) - PaginaDict.Add("/Inventarios/CatAlmacenClasificacionSecciones.aspx".ToUpper(), 764) PaginaDict.Add("/Inventarios/ReconstruirCostos.aspx".ToUpper(), 764) PaginaDict.Add("/Inventarios/RecepcionDevolucion.aspx".ToUpper(), 696) PaginaDict.Add("/Inventarios/RepExistenciaLote.aspx".ToUpper(), 109) - PaginaDict.Add("/Inventarios/CatUnidades.aspx".ToUpper(), 2056) PaginaDict.Add("/Inventarios/EntregaAlmacenRuta.aspx".ToUpper(), 1320) PaginaDict.Add("/Inventarios/RepEntregaAlmacenRuta.aspx".ToUpper(), 1319) PaginaDict.Add("/Inventarios/CartaPorteManual.aspx".ToUpper(), 1321) - PaginaDict.Add("/Inventarios/EntradasSalidas.aspx?AL=1".ToUpper(), 1334) - - - #End Region #Region "MF" PaginaDict.Add("/MF/BitacoraDiaria.aspx".ToUpper(), 801) @@ -5487,8 +8863,6 @@ Public Class ClsPaginas PaginaDict.Add("/MF/RepConsumoCombustible.aspx".ToUpper(), 864) #End Region #Region "Nomina" - - 'NÓMINA PaginaDict.Add("/Nomina/Calculo.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/SobreRecibo.aspx".ToUpper(), -1) PaginaDict.Add("/Nomina/SobreReciboCharlie.aspx".ToUpper(), -1) @@ -5513,14 +8887,12 @@ Public Class ClsPaginas PaginaDict.Add("/Nomina/CatSatRiesgoPuesto.aspx".ToUpper(), 259) PaginaDict.Add("/Nomina/ReportePTU.aspx".ToUpper(), 870) #End Region - 'Ordenes de Servicios -#Region "OS" +#Region "Ordenes de Servicios" PaginaDict.Add("/OS/PopUpBuscarOS.aspx".ToUpper(), 80) PaginaDict.Add("/OS/CatEstatusOrdenServicio.aspx".ToUpper(), 99) PaginaDict.Add("/OS/PopUpBuscarCuentasEquipos.aspx".ToUpper(), 100) PaginaDict.Add("/OS/PopUpCuentasEquipos.aspx".ToUpper(), -1) 'PaginaDict.Add("/OS/CatSubTiposOrdenesServicios.aspx".ToUpper(), 101) - 'PaginaDict.Add("/OS/CatCaracteristicasOrdenServicio.aspx".ToUpper(), 131) 'PaginaDict.Add("/OS/CatOSCaracteristicasOpciones.aspx".ToUpper(), 132) PaginaDict.Add("/OS/RepOrdenesServicios.aspx".ToUpper(), 134) @@ -5532,11 +8904,9 @@ Public Class ClsPaginas PaginaDict.Add("/OS/Asignaciones.aspx".ToUpper(), 125) PaginaDict.Add("/OS/RepServicioDomicilio.aspx".ToUpper(), 1330) #End Region - 'OC #Region "OC" PaginaDict.Add("/OC/OC.aspx".ToUpper(), 155) PaginaDict.Add("/OC/OC2.aspx".ToUpper(), -1) - PaginaDict.Add("/OC/OCCompras.aspx".ToUpper(), 158) 'PaginaDict.Add("/OC/CatEstatusOrdenCompra.aspx".ToUpper(), 156) 'PaginaDict.Add("/OC/CatEstatusUsuarios.aspx".ToUpper(), 156) @@ -5560,7 +8930,6 @@ Public Class ClsPaginas PaginaDict.Add("/OC/RepOCAnticiposPtes.aspx".ToUpper(), 506) PaginaDict.Add("/OC/RepSolicitudesAnticipo.aspx".ToUpper(), 529) #End Region - 'OI #Region "OI" PaginaDict.Add("/OI/EventoDetalle.aspx".ToUpper(), -1) PaginaDict.Add("/OI/TareaDetalle.aspx".ToUpper(), -1) @@ -5570,7 +8939,6 @@ Public Class ClsPaginas PaginaDict.Add("/OI/MinutaDetalle.aspx".ToUpper(), -1) PaginaDict.Add("/OI/RepDocumentos.aspx".ToUpper(), -1) PaginaDict.Add("/OI/EventoComentario.aspx".ToUpper(), -1) - PaginaDict.Add("/OI/RepEventos.aspx".ToUpper(), -1) PaginaDict.Add("/OI/RepTareas.aspx".ToUpper(), 293) PaginaDict.Add("/OI/RepTareas2.aspx".ToUpper(), 293) @@ -5582,7 +8950,6 @@ Public Class ClsPaginas PaginaDict.Add("/OI/RepDesarrollo.aspx".ToUpper(), 475) PaginaDict.Add("/OI/DesarrolloWizard.aspx".ToUpper(), 474) PaginaDict.Add("/OI/SubidasADS.aspx".ToUpper(), 476) - 'PaginaDict.Add("/OI/CatDocumentoCategoria.aspx".ToUpper(), 760) 'PaginaDict.Add("/OI/CatDocumentoSubCategoria.aspx".ToUpper(), 761) 'PaginaDict.Add("/OI/Documentos.aspx".ToUpper(), 762) @@ -5592,7 +8959,6 @@ Public Class ClsPaginas PaginaDict.Add("/OI/DocumentoDetalle.aspx".ToUpper(), -1) #End Region #Region "Planeacion" - 'PLANEACIÓN PaginaDict.Add("/Planeacion/CatSucursales.aspx".ToUpper(), 17) PaginaDict.Add("/Planeacion/Sucursal.aspx".ToUpper(), 17) PaginaDict.Add("/Planeacion/CatProyectos.aspx".ToUpper(), 34) @@ -5604,24 +8970,20 @@ Public Class ClsPaginas 'PaginaDict.Add("/123/TablaBD.aspx".ToUpper(), 5) 'PaginaDict.Add("/123/CatClientes.aspx".ToUpper(), 5) #End Region - 'PRESUPUESTOS #Region "Presupuestos" PaginaDict.Add("/Presupuestos/GenerarPresupuestos.aspx".ToUpper(), 242) PaginaDict.Add("/Presupuestos/GenerarPresupuestos2.aspx".ToUpper(), 247) PaginaDict.Add("/Presupuestos/RepPresupuestos.aspx".ToUpper(), 118) PaginaDict.Add("/Presupuestos/Presupuesto.aspx".ToUpper(), 369) #End Region - 'Prospeccion #Region "Prospeccion" PaginaDict.Add("/Prospeccion/Prospectos.aspx".ToUpper(), 392) PaginaDict.Add("/Prospeccion/PopUpBuscarProspectos.aspx".ToUpper(), 392) PaginaDict.Add("/Prospeccion/RepProspeccion.aspx".ToUpper(), 395) PaginaDict.Add("/Prospeccion/RepProspeccionDetalle.aspx".ToUpper(), 395) PaginaDict.Add("/Prospeccion/RepProspectosGIS.aspx".ToUpper(), 390) - #End Region #Region "Prospectos" - 'PROSPECTOS PaginaDict.Add("/Prospectos/CatClasificacionesCaracteristicas.aspx".ToUpper(), 180) PaginaDict.Add("/Prospectos/ProspectoExpediente.aspx".ToUpper(), 181) PaginaDict.Add("/Prospectos/CatProspectos.aspx".ToUpper(), 182) @@ -5671,8 +9033,7 @@ Public Class ClsPaginas PaginaDict.Add("/Prospectos/CatEventosTipos.aspx".ToUpper(), 245) PaginaDict.Add("/Prospectos/RepProspectos.aspx".ToUpper(), 208) #End Region - 'RECURSOS HUMANOS -#Region "RH" +#Region "RECURSOS HUMANOS" PaginaDict.Add("/RH/CatDepartamentos.aspx".ToUpper(), 40) PaginaDict.Add("/RH/CatEscolaridad.aspx".ToUpper(), 41) PaginaDict.Add("/RH/CatEstadoCivil.aspx".ToUpper(), 42) @@ -5713,13 +9074,10 @@ Public Class ClsPaginas PaginaDict.Add("/RH/RepVacaciones.aspx".ToUpper(), 422) PaginaDict.Add("/RH/CatChecadorTipo.aspx".ToUpper(), 427) PaginaDict.Add("/RH/CatChecadorHorarios.aspx".ToUpper(), 428) - - PaginaDict.Add("/RH/RepChecadorPreAsistencia.aspx".ToUpper(), 628) PaginaDict.Add("/RH/CatCaptaciones.aspx".ToUpper(), 629) PaginaDict.Add("/RH/RepUniformes.aspx".ToUpper(), 630) PaginaDict.Add("/RH/RepUniformesResguardo.aspx".ToUpper(), 666) - 'PaginaDict.Add("/RH/ListaAsistenciaRH.aspx".ToUpper(), 631) PaginaDict.Add("/RH/CatUniformes.aspx".ToUpper(), 632) PaginaDict.Add("/RH/CatUniformesDetalle.aspx".ToUpper(), 633) @@ -5729,12 +9087,11 @@ Public Class ClsPaginas PaginaDict.Add("/RH/MiPerfil.aspx".ToUpper(), -1) ' se dejará libre el módulo para que cualquier que tenga cvepersonal, pueda acceder PaginaDict.Add("/RH/CatChecadores.aspx".ToUpper(), 694) PaginaDict.Add("/RH/CatRegistroPatronal.aspx".ToUpper(), 1324) - PaginaDict.Add("/SAT/SolicitudesNominaSat.aspx".ToUpper(), 545) PaginaDict.Add("/SAT/SolicitudesIngresoSat.aspx".ToUpper(), 1329) #End Region #Region "Sistema" - 'Cargo las páginas que deben tener restricción + '--------------------- Páginas que deben tener restricción --------------------- 'PaginaDict.Add("/Sistemas/CatEmpresas.aspx".ToUpper(), 2) PaginaDict.Add("/Sistemas/CatEmpresas.aspx".ToUpper(), 24) PaginaDict.Add("/Sistemas/Empresa.aspx".ToUpper(), 2) @@ -5760,7 +9117,6 @@ Public Class ClsPaginas PaginaDict.Add("/Sistemas/ConfiguracionEmpresa.aspx".ToUpper(), 683) #End Region #Region "Ventas" - 'VENTAS PaginaDict.Add("/Ventas/RepIngresosDetalle.aspx".ToUpper(), 540) PaginaDict.Add("/Ventas/Clientes.aspx".ToUpper(), 5) PaginaDict.Add("/Ventas/CatClientes.aspx".ToUpper(), 5) @@ -5804,8 +9160,6 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/CatImpuestosLocales.aspx".ToUpper(), 394) PaginaDict.Add("/Ventas/ActualizarPrecios.aspx".ToUpper(), 397) PaginaDict.Add("/Ventas/ClientesAbonar.aspx".ToUpper(), 321) - - PaginaDict.Add("/Ventas/PopUpBuscarPs.aspx".ToUpper(), 13) PaginaDict.Add("/Ventas/RepVentasUtilidadPadre.aspx".ToUpper(), 590) PaginaDict.Add("/Ventas/RepVentasUtilidad.aspx".ToUpper(), 590) @@ -5834,18 +9188,15 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/RepTopVentas.aspx".ToUpper(), -1) PaginaDict.Add("/Ventas/RepSolicitudesCancelacion.aspx".ToUpper(), -1) PaginaDict.Add("/Ventas/RepCanceladasPendientes.aspx".ToUpper(), -1) - PaginaDict.Add("/Ventas/RepCancelacionesPorAtender.aspx".ToUpper(), 750) PaginaDict.Add("/Ventas/RepCancelacionesPorRespuesta.aspx".ToUpper(), 751) - - 'Reportes de Anticipos-NC-IXC' + 'Reportes de Anticipos-NC-IXC PaginaDict.Add("/Ventas/RepAnticipo-NC-IXC.aspx".ToUpper(), 869) PaginaDict.Add("/Ventas/RepAnticipo-NC-IXCDetalle.aspx".ToUpper(), 869) PaginaDict.Add("/Ventas/CatAutorizacionDescuentos.aspx".ToUpper(), 1037) PaginaDict.Add("/Ventas/RepPUESinPago.aspx".ToUpper(), 672) PaginaDict.Add("/Ventas/RepVentasResumen.aspx".ToUpper(), 674) PaginaDict.Add("/Ventas/RepAnticiposEspeciales.aspx".ToUpper(), 678) - PaginaDict.Add("/Ventas/RepCotizacionesxFacturar.aspx".ToUpper(), 686) PaginaDict.Add("/Ventas/RepRemisionesNC.aspx".ToUpper(), 687) PaginaDict.Add("/Ventas/CatCobranzaEstatus.aspx".ToUpper(), 7003) @@ -5860,16 +9211,13 @@ Public Class ClsPaginas PaginaDict.Add("/Ventas/RepComisionesServec.aspx".ToUpper(), 782) PaginaDict.Add("/Ventas/RepComisionesServecDetalle.aspx".ToUpper(), 782) PaginaDict.Add("/Ventas/RepCancelacionesVentas.aspx".ToUpper(), 1325) - PaginaDict.Add("/Ventas/RepLineasAdicionales.aspx".ToUpper(), 1331) PaginaDict.Add("/Ventas/RepLineasAdicionales.aspx?OP=OP".ToUpper(), 1332) - #End Region - +#Region "Varios" 'Portal Cliente/Proveedor PaginaDict.Add("/PortalCliente/PortalCliente.aspx".ToUpper(), 1101) PaginaDict.Add("/PortalProveedor/PortalProveedor.aspx".ToUpper(), 1201) - PaginaDict.Add("/Edoc/CatDocumentos.aspx".ToUpper(), 1205) PaginaDict.Add("/Edoc/CatTipoContratos.aspx".ToUpper(), 1207) PaginaDict.Add("/Edoc/CatDocumentosContratos.aspx".ToUpper(), 1208) @@ -5880,22 +9228,18 @@ Public Class ClsPaginas PaginaDict.Add("/Portal/ConsultaCliente.aspx".ToUpper(), -1) PaginaDict.Add("/Proveedores/PortalProveedor.aspx".ToUpper(), -1) PaginaDict.Add("/Proveedores/LogInProveedores.aspx".ToUpper(), -1) - PaginaDict.Add("/Contratos/ContratoObra.aspx".ToUpper(), 911) PaginaDict.Add("/Contratos/RepContratosObraAvances.aspx".ToUpper(), 914) PaginaDict.Add("/Contratos/RepContratosObraAvancesDetalle.aspx".ToUpper(), 914) PaginaDict.Add("/Contratos/RepContratosObraAvancesPartida.aspx".ToUpper(), 914) PaginaDict.Add("/Contratos/ContratoObraAutorizacion.aspx".ToUpper(), 913) - - 'Orden Produccion' + 'Orden Produccion 'RMA PaginaDict.Add("/RMA/Garantias.aspx".ToUpper(), 175) - 'IMPUESTOS PaginaDict.Add("/Impuestos/RepIVAACreditable.aspx".ToUpper(), 563) - 'DG2016 'PaginaDict.Add("/ZDG/RepGeneral.aspx".ToUpper(), -1) 'PaginaDict.Add("/ZDG/RepMunicipios.aspx".ToUpper(), -1) @@ -5908,19 +9252,15 @@ Public Class ClsPaginas 'PaginaDict.Add("/ZDG/CapturaManual.aspx".ToUpper(), -1) 'PaginaDict.Add("/ZDG/MensajeManual.aspx".ToUpper(), -1) 'PaginaDict.Add("/ZDG/MensajeAutomatico.aspx".ToUpper(), -1) - PaginaDict.Add("/Planeacion/Presupuestos.aspx".ToUpper(), -1) PaginaDict.Add("/Contabilidad/OCDetalleAlmacen.aspx".ToUpper(), -1) PaginaDict.Add("/Contabilidad2/RepBalanceGeneralHorizontal.aspx".ToUpper(), -1) - PaginaDict.Add("/Agropecuaria/CierreCultivo.aspx".ToUpper(), 1326) PaginaDict.Add("/Inventarios/RepRSCO.aspx".ToUpper(), 1328) PaginaDict.Add("/testApi.aspx".ToUpper(), -1) - 'ECOMMERCE PaginaDict.Add("/Ecommerce/Insignias.aspx".ToUpper(), 7002) - PaginaDict.Add("/Acumuladores/Tamaños.aspx".ToUpper(), 1031) PaginaDict.Add("/Acumuladores/RepUsados.aspx".ToUpper(), 1032) PaginaDict.Add("/Acumuladores/CatTiposDefecto.aspx".ToUpper(), 1033) @@ -5932,20 +9272,16 @@ Public Class ClsPaginas PaginaDict.Add("/Acumuladores/RepEntradasUsadosClientes.aspx".ToUpper(), 543) PaginaDict.Add("/Acumuladores/EntradasUsadosResumenRep.aspx".ToUpper(), 1032) PaginaDict.Add("/Acumuladores/RepPolizasVirtuales.aspx".ToUpper(), 1322) - - +#End Region 'Antes de aquí. Application("GlobalSIGAppPaginas") = PaginaDict - Else PaginaDict = DirectCast(Application("GlobalSIGAppPaginas"), Hashtable) End If - Retorno = Convert.ToInt32(PaginaDict.Item(Pagina.ToUpper())) - ' If Retorno = 0 Then 'No lo encontró en la lista General de Página y busca en los que son temporales 'Dim PaginaDictTemp As New HybridDictionary - ' + If Pagina.ToUpper() = ("/Bancos/IE.aspx").ToUpper() Then Select Case Request("Opcion") Case "EGSSINFACT" : Retorno = 176 @@ -5955,7 +9291,6 @@ Public Class ClsPaginas Case Else : Retorno = 153 End Select End If - If Pagina.ToUpper() = ("/Bancos/IE2.aspx").ToUpper() Then Select Case Request("Opcion") Case "EGSSINFACT" : Retorno = 176 @@ -5964,57 +9299,48 @@ Public Class ClsPaginas Case Else : Retorno = 153 End Select End If - If Pagina.ToUpper() = ("/Bancos/RepIE.aspx").ToUpper() Then Select Case Request("Tipo") Case "Conciliaciones" : Retorno = 83 Case Else : Retorno = 82 End Select End If - - If Pagina.ToUpper() = ("/Bancos/PolizaCheque.aspx").ToUpper() Then Select Case Request("Tipo") Case "Ing" : Retorno = 161 Case Else : Retorno = 171 End Select End If - ' If Pagina.ToUpper() = "/AC/RegComprometido.aspx".ToUpper() Then Select Case Request("Opc") Case "NOM" : Retorno = 295 Case Else : Retorno = 296 End Select End If - If Pagina.ToUpper() = ("/Temporal/RegBoletas.aspx").ToUpper() Then Select Case Request("Tipo") Case "E" : Retorno = 1026 Case "N" : Retorno = 1028 End Select End If - If Pagina.ToUpper() = ("/Temporal/RepVotos.aspx").ToUpper() Then Select Case Request("Tipo") Case "E" : Retorno = 1027 Case "N" : Retorno = 1029 End Select End If - If Pagina.ToUpper() = ("/Inventarios/EntradasSalidas.aspx").ToUpper() Then Select Case Request("CI") Case "1" : Retorno = 452 Case Else : Retorno = 219 End Select End If - If Pagina.ToUpper() = ("/Inventarios/RecepcionUsados.aspx").ToUpper() Then Select Case Request("Opc") Case "S" : Retorno = 1203 Case Else : Retorno = 1202 End Select End If - If Pagina.ToUpper() = ("/Ventas/Ventas.aspx").ToUpper() Then Select Case Request("Op") Case "Cot" : Retorno = 366 @@ -6022,4682 +9348,14 @@ Public Class ClsPaginas Case Else : Retorno = 6 End Select End If - If Pagina.ToUpper() = ("/Ventas/RepVentas.aspx").ToUpper() Then Select Case Request("Op") Case "Cot" : Retorno = 367 Case Else : Retorno = 9 End Select End If - Return Retorno End Function - - Public Sub CerrarSession() - Usuario.CerrarSession() - End Sub - - Private Shared Function GetCurrentPageViewState() As System.Web.UI.StateBag - Dim page As Page = TryCast(HttpContext.Current.CurrentHandler, Page) - Dim viewStateProp = page?.[GetType]().GetProperty("ViewState", Reflection.BindingFlags.FlattenHierarchy Or Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic) - Return CType(viewStateProp?.GetValue(page), System.Web.UI.StateBag) - End Function - Public Shared Sub Alert(Mensaje As String, Optional pOpcion As TipoMensaje = TipoMensaje.MsgInformacion, Optional JSBtnAceptar As String = "", Optional timeout As Integer = 5, Optional ShowCloseButton As Boolean = True, Optional TextoConfirmacion As String = "", Optional TextoSegundoBoton As String = "", Optional JSBtn2 As String = "") - If DirectCast(pOpcion, Integer).Contiene(5, 7, 6, 8) Then - Mensaje = Mensaje.Replace("'"c, "\'").Replace(vbCrLf, "").Replace("""", "\'").Replace(vbLf, " ") - JSBtnAceptar = JSBtnAceptar.Replace("'"c, "\'") - Dim toastscript As String = String.Format("alertatoast({3},'{0}',function(){{{1}}},{2});", Mensaje, JSBtnAceptar, timeout, DirectCast(pOpcion, Integer)) - GetCurrentPageViewState()("strToastMsglargonoreplace") = String.Format("{0}{1}", If(Not IsNothing(GetCurrentPageViewState()("strToastMsglargonoreplace")) AndAlso GetCurrentPageViewState()("strToastMsglargonoreplace").ToString().Length > 0, GetCurrentPageViewState()("strToastMsglargonoreplace").ToString(), ""), toastscript) - Else - Mensaje.Alert(Mensaje, pOpcion, JSBtnAceptar, TimeoutToast:=timeout, ShowCloseButton:=ShowCloseButton, TextoConfirmacion:=TextoConfirmacion, TextoSegundoBoton:=TextoSegundoBoton, JSBtn2:=JSBtn2) - End If - End Sub - Protected Overridable Sub Page_PreRender(sender As Object, e As EventArgs) Handles Me.PreRender - If sw IsNot Nothing AndAlso Not (Not User.Identity.IsAuthenticated OrElse UsuarioActual Is Nothing) Then - - sw.Stop() - If Not Page.IsPostBack Then - Using ObjUsuario As New ClsSisUsuarios - ObjUsuario.AddBitacora(CveModulo, "", "", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, Request.Url.PathAndQuery.ToString(), sw.ElapsedMilliseconds) - End Using - End If - - End If - If Not IsNothing(ViewState("strToastMsglargonoreplace")) AndAlso ViewState("strToastMsglargonoreplace").ToString.Length > 0 Then - RegistraScript(ViewState("strToastMsglargonoreplace").ToString(), "esteseraunticklargoparaquenosesobrescribaconotro") - ViewState("strToastMsglargonoreplace") = Nothing - End If - End Sub - Protected Overrides Sub SavePageStateToPersistenceMedium(pviewState As Object) - 'If Request.Form("__VIEWSTATE_KEY") IsNot Nothing Then Cache.Remove(Request.Form("__VIEWSTATE_KEY")) 'elimino la cachado anteriormente - Dim VSKey As String = String.Format("VIEWSTATE_{0}_{1}_{2}", Session.SessionID, Request.Path, Date.Now.Ticks) - Cache.Add(VSKey, pviewState, Nothing, Date.Now.AddMinutes(40), Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing) 'Store the ViewState on Cache - 'Session.Add(VSKey, pviewState) 'Store the ViewState on Cache - ClientScript.RegisterHiddenField("__VIEWSTATE_KEY", VSKey) - End Sub - Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object - Dim VSKey As String = Request.Form("__VIEWSTATE_KEY") - If Not VSKey.StartsWith("VIEWSTATE_") Then 'Request the Key from the page and validade it. - Throw New Exception(String.Format("Invalid VIEWSTATE Key: {0}", VSKey)) - End If - If Cache(VSKey) Is Nothing Then 'si por algún motivo, el caché expiró, le dice a la página que se recargue y obtenga los datos de nuevo, y así evitar errores al obtener el viewstate vacío - Response.Redirect(Request.RawUrl) - Return Nothing - Else - Return Cache(VSKey) - End If - End Function - Public Shared Sub CargaParametros(Parametros As String) - Dim P1() As String = Parametros.Split("&"c) - Dim Tmp As String - Dim P2() As String - - UrlParametros = New Hashtable - - For Each Tmp In P1 - P2 = Tmp.Split("="c) - UrlParametros.Add(P2(0).ToString.ToUpper(), P2(1)) - Next - End Sub - Shared Sub RegeneraImagen(ByVal Ruta As String) - Dim BM As New Drawing.Bitmap(Ruta) - Dim Width As Integer = BM.Width - Dim Height As Integer = BM.Height - Dim Thumb As New Drawing.Bitmap(Width, Height) - Dim G As Drawing.Graphics = Drawing.Graphics.FromImage(Thumb) - - G.InterpolationMode = Drawing.Drawing2D.InterpolationMode.HighQualityBicubic - G.DrawImage(BM, New Drawing.Rectangle(0, 0, Width, Height), New Drawing.Rectangle(0, 0, BM.Width, BM.Height), Drawing.GraphicsUnit.Pixel) - - BM.Dispose() - G.Dispose() - - 'image path. - Thumb.Save(Ruta, Drawing.Imaging.ImageFormat.Jpeg) 'can use any image format - Thumb.Dispose() - End Sub - Public Shared Sub RegistraScript(Script As String, Optional valuetick As String = "") - Dim page As Page = TryCast(HttpContext.Current.CurrentHandler, Page) - Script = $"{Script.TrimEnd(";"c)};" 'sino trae ";" al final, se lo agregamos - ScriptManager.RegisterStartupScript(page, page.GetType(), $"{DateTime.Now.Ticks + 1}{ThreadSafeRandom.Next()}{valuetick}", Script, True) - End Sub - Public Sub TabEnabled(Tab As System.Web.UI.HtmlControls.HtmlAnchor, Valor As Boolean) - If Valor Then - 'RegistraScript(String.Format("$( ""#{0}"" ).removeClass( ""linkdesactive"" );", tab.ClientID)) - Try - Tab.Attributes("class") = Tab.Attributes("class").Replace("linkdesactive", "") - Catch ex As Exception - Tab.Attributes("class") = "" - End Try - Else - Tab.Attributes.Add("class", "linkdesactive") - End If - End Sub - Public Sub TabActive(Tab As System.Web.UI.HtmlControls.HtmlAnchor) - RegistraScript(String.Format("$( ""#{0}"" ).Click( );", Tab.ClientID)) - End Sub - Public Sub Alerta(Mensaje As String, Tipo As String, Funcion As String) - RegistraScript(String.Format("bootbox.alert('{0}', function() {{{2}}} );", Mensaje, Tipo, Funcion)) - End Sub - Public Sub NotificacionesPendientes(Nota As String) - 'incremento el contador de alertas - Dim Type = Master.GetType - Dim Prop = Type.GetProperty("countNotificaciones") - Prop.SetValue(Master, 1 + CInt(Prop.GetValue(Master))) - 'end incremento contador de alertas - - Dim ltl = DirectCast(Master.FindControl("LtlMNotificaciones"), Literal) - - ltl.Text = String.Format(" {0} {1}", ltl.Text, Nota) - End Sub - Public Sub Confirmacion(Mensaje As String, Tipo As String, FuncionOK As String, FuncionCancel As String) - RegistraScript(String.Format("bootbox.confirm('{0}', function(result) {{if (result){{ {2} }}else{{ {3} }} }}); ", Mensaje, Tipo, FuncionOK, FuncionCancel)) - End Sub - Public Function AddBitacoraUsuario(CveModulo As Integer, Accion As String, Resultado As String, CveUsuario As Integer, CveEmpresa As Integer) As Boolean - Dim Retorno As Boolean = False - Dim ObjUsuario As New ClsSisUsuarios - Retorno = ObjUsuario.AddBitacora(CveModulo, Accion, Resultado, CveUsuario, CveEmpresa) - ObjUsuario.Dispose() - Return Retorno - End Function - -#Region " IMPRIMIR PDF " - ''' - ''' Genera documento PDF o Excel - ''' - ''' Directorio donde se ubica el archivo - ''' Datatable - ''' Listado de parametros para el reporte - ''' Opcional Nombre del archivo que se descarga - ''' Optional, Formato de Generacion PDF o Excel - ''' - Public Sub ImprimirPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment") - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource - rds.Name = RDSName - rds.Value = DtDatos - lrds.Add(rds) - ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR, Content_Disposition) - End Sub - - Public Sub ImprimirPDFStimulsoft(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "Datos", Optional Content_Disposition As String = "attachment") - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource - rds.Name = RDSName - rds.Value = DtDatos - lrds.Add(rds) - - Dim Extension = "pdf" - If Formato.ToLower() = "excel" Then - Extension = "xlsx" - End If - - ImprimirbytesPDF(StreamBytesStimulsoft("Facturas", RutaReporte, lrds, Parametros, NombreArchivo:=NombreArchivo, Formato:=Formato), NombreArchivo, Formato, Content_Disposition:=Content_Disposition, Extension:=Extension) - End Sub - Public Sub ImprimirPDFMultiDS(RutaReporte As String, lrds As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) - ImprimirPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) - End Sub - - ''' - ''' Genera documento PDF o Excel - ''' - ''' Directorio donde se ubica el archivo - ''' Contenedor de Datatables - ''' Listado de parametros para el reporte - ''' Opcional Nombre del archivo que se descarga - ''' Optional, Formato de Generacion PDF o Excel - ''' - Public Sub ImprimirPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing, Optional Content_Disposition As String = "attachment", Optional SubReportData As Modelos.MSubReportData = Nothing) - 'limpio ReportViwer - ImprimirbytesPDF(StreamPDF(RutaReporte, DataSource, Parametros, NombreArchivo, Formato, MR, SubReportData), NombreArchivo, Formato, Content_Disposition:=Content_Disposition) - End Sub - Public Function StreamPDF(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing, Optional SubReportData As Modelos.MSubReportData = Nothing) As Byte() - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource - rds.Name = RDSName - rds.Value = DtDatos - lrds.Add(rds) - Return StreamPDF(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR, SubReportData) - End Function - 'Public Function StreamPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte() - ' 'limpio ReportViwer - ' Dim sw As New System.Diagnostics.Stopwatch() - ' sw.Start() - - ' If IsNothing(MR) Then MR = New ReportViewer - ' Dim Bytes As Byte() = Nothing - ' Try - ' ' MasterReporteador.LocalReport.DataSources.Clear() - ' For Each RDS As ReportDataSource In DataSource - ' MR.LocalReport.DataSources.Add(RDS) - ' Next - - ' MR.LocalReport.ReportPath = RutaReporte - ' MR.ProcessingMode = ProcessingMode.Local - ' MR.LocalReport.EnableExternalImages = True - ' MR.LocalReport.SetParameters(Parametros) - ' MR.LocalReport.Refresh() - ' Dim Warnings As Warning() = Nothing - ' Dim StreamIds As String() = Nothing - ' Dim MimeType As String = Nothing - ' Dim Encoding As String = Nothing - ' Dim Extension As String = Nothing - ' Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) - ' Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException - ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - ' 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - ' Catch ex As Exception - ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - ' End Try - - ' sw.Stop() - ' If sw.Elapsed.TotalSeconds > 10 Then - ' GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - ' End If - - ' Return Bytes - 'End Function - - Public Function StreamPDF(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing, Optional SubReportData As Modelos.MSubReportData = Nothing) As Byte() - 'limpio ReportViwer - Dim sw As New System.Diagnostics.Stopwatch() - sw.Start() - - Me.SubReportData = Nothing - - Dim Bytes As Byte() = Nothing - - Dim CveUsuario As Integer = 0 - Dim CveEmpresa As Integer = 0 - Dim RutaEmpresa As String = "" - - If Context.Session("UsuarioSIG") IsNot Nothing Then - CveUsuario = UsuarioActual.CveUsuario - CveEmpresa = UsuarioActual.CveEmpresa - RutaEmpresa = UsuarioActual.Empresa.RutaArchivos - End If - - Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) - - 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA - If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") AndAlso Not RutaReporte.Contains("Contabilidad2/Reportes/") AndAlso Not RutaReporte.Contains("AC/Reportes/") Then - bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "") - End If - - RutaReporte.Replace("/", "\") - - If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then - RutaReporte = String.Format("{0}{1}", bdir, RutaReporte) - End If - - If EsProduccion Then - - Dim wsreport As New WSRDLC2.WebServiceSoapClient - Dim params As New List(Of WSRDLC2.ReportParameter) - Dim reportobjects As New List(Of WSRDLC2.ReportObjects) - - Dim jsonData As String = Nothing - - If SubReportData IsNot Nothing Then - jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(SubReportData) - End If - - Dim ds As New DataSet - For Each rpds As ReportDataSource In DataSource - If rpds.Value IsNot Nothing Then - If rpds.Value.GetType().ToString() = "System.Data.DataTable" Then - Dim dt As DataTable = DirectCast(rpds.Value, Data.DataTable) - dt = dt.Copy() - dt.TableName = rpds.Name - ds.Tables.Add(dt) - Else - Dim ojext As New WSRDLC2.ReportObjects - ojext.Name = rpds.Name - ojext.Value = rpds.Value - reportobjects.Add(ojext) - End If - Else - Dim dt = New DataTable() - dt.TableName = If(String.IsNullOrEmpty(rpds.Name), "DataTable1", rpds.Name) - ds.Tables.Add(dt) - End If - Next - - For Each rpds As ReportParameter In Parametros - Dim param As New WSRDLC2.ReportParameter - param.Name = rpds.Name - - 'SI ES TEXTO, QUITAR TABS Y OTROS ESPACIOS QUE DEN PROBLEMAS AL MANDAR LA PETICION - If rpds IsNot Nothing AndAlso rpds.Values IsNot Nothing AndAlso rpds.Values.Count > 0 AndAlso rpds.Values(0) IsNot Nothing AndAlso rpds.Values(0).GetType() = GetType(String) Then - param.Values = {rpds.Values(0).Replace(vbVerticalTab, "")} - Else - param.Values = {rpds.Values(0)} - End If - - params.Add(param) - Next - - Bytes = wsreport.StreamNEWPDFBytes(RutaReporte, ds, reportobjects.ToArray(), params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario, jsonData) - wsreport = Nothing - params = Nothing - ds.Dispose() : ds = Nothing - Else - If IsNothing(MR) Then MR = New ReportViewer - Try - ' MasterReporteador.LocalReport.DataSources.Clear() - For Each RDS As ReportDataSource In DataSource - MR.LocalReport.DataSources.Add(RDS) - Next - - MR.LocalReport.ReportPath = RutaReporte - MR.ProcessingMode = ProcessingMode.Local - - If SubReportData IsNot Nothing Then - Me.SubReportData = SubReportData - AddHandler MR.LocalReport.SubreportProcessing, AddressOf LocalReport_SubreportProcessing - End If - - MR.LocalReport.EnableExternalImages = True - MR.LocalReport.SetParameters(Parametros) - MR.LocalReport.Refresh() - - Dim Warnings As Warning() = Nothing - Dim StreamIds As String() = Nothing - Dim MimeType As String = Nothing - Dim Encoding As String = Nothing - Dim Extension As String = Nothing - Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) - Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException - GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - Catch ex As Exception - GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - End Try - MR.Dispose() - MR = Nothing - 'Dim ruta = wsreport.StreamPDF(RutaReporte, ds, params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario) - 'If File.Exists(ruta) Then - ' Bytes = File.ReadAllBytes(ruta) - ' File.Delete(ruta) - 'End If - 'Dim setup As AppDomainSetup = New AppDomainSetup - 'With setup - ' .ApplicationBase = Environment.CurrentDirectory - ' .LoaderOptimization = LoaderOptimization.MultiDomainHost - 'End With - 'setup.SetCompatibilitySwitches({"NetFx40_LegacySecurityPolicy"}) - 'Dim _casPolicyEnabledDomain As AppDomain = AppDomain.CreateDomain("Full Trust", Nothing, setup) - 'Dim fllreport As ADSReportLib.FullTrustReportviewer = Nothing - 'Try - - ' fllreport = CType(_casPolicyEnabledDomain.CreateInstanceFromAndUnwrap(GetType(ADSReportLib.FullTrustReportviewer).Assembly.CodeBase, GetType(ADSReportLib.FullTrustReportviewer).FullName), ADSReportLib.FullTrustReportviewer) - - ' fllreport.Initialize("DisplayName", RutaReporte, Parametros.AsEnumerable(), New List(Of String()), True) - ' For Each RDS As ReportDataSource In DataSource - ' fllreport.AddDataSources(RDS.Name, DirectCast(RDS.Value, DataTable)) - ' Next - ' Dim Warnings As Warning() = Nothing - ' Dim StreamIds As String() = Nothing - ' Dim MimeType As String = Nothing - ' Dim Encoding As String = Nothing - ' Dim Extension As String = Nothing - ' Bytes = fllreport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds) - ' fllreport = Nothing - 'Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException - ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - ' 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - 'Catch ex As Exception - ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - 'Finally - ' AppDomain.Unload(_casPolicyEnabledDomain) - 'End Try - 'If fllreport IsNot Nothing Then fllreport.liberarecursos() - - End If - sw.Stop() - - If sw.Elapsed.TotalSeconds > 5 Then - GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - End If - - Return Bytes - End Function - - Private Sub LocalReport_SubreportProcessing(ByVal sender As Object, ByVal e As SubreportProcessingEventArgs) - If SubReportData IsNot Nothing Then - For Each ds In SubReportData.DataSources - e.DataSources.Add(ds) - Next - End If - End Sub - - Public Function ImprimirPDFCrystal(RutaReporte As String, DataSource As DataTable, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportDocument = Nothing) As Byte() - 'limpio ReportViwer - Dim sw As New System.Diagnostics.Stopwatch() - sw.Start() - If IsNothing(MR) Then MR = New ReportDocument() - Dim Bytes As Byte() = Nothing - Dim formatType As ExportFormatType = ExportFormatType.NoFormat - Try - MR.Load(RutaReporte) - MR.SetDataSource(DataSource) - - For Each item As CrystalParametro In Parametros - MR.SetParameterValue(item.Nombre, item.Valor) - Next - - Select Case Formato - Case "PDF" - formatType = ExportFormatType.PortableDocFormat - 'Format = "Application/pdf" - Case "EXCEL" - formatType = ExportFormatType.Excel - 'Format = "application/ms-excel" - End Select - Dim Stream As IO.Stream = MR.ExportToStream(formatType) - Dim BD As New BinaryReader(MR.ExportToStream(formatType)) - Bytes = BD.ReadBytes(CInt(MR.ExportToStream(formatType).Length)) - BD.Dispose() - Stream.Dispose() - 'Dim Buffer(CInt(Stream.Length)) As Byte - 'Bytes = Buffer - 'MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo) - Catch ex As CrystalReportsException - GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, - $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, - ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - Catch ex As Exception - GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, - $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, - ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) - - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - End Try - sw.Stop() - If sw.Elapsed.TotalSeconds > 10 Then - GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - End If - If MR IsNot Nothing Then MR.Dispose() - Return Bytes - End Function - - Public Function ImprimirSubRepPDFCrystal(RutaReporte As String, DataSource As DataTable, Parametros As List(Of CrystalParametro), DataSource1 As DataTable, DataSource2 As DataTable, SubRep1 As String, SubRep2 As String, Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportDocument = Nothing) As Byte() - 'limpio ReportViwer - Dim sw As New System.Diagnostics.Stopwatch() - - sw.Start() - If IsNothing(MR) Then MR = New ReportDocument() - - Dim SR1 As New ReportDocument - Dim SR2 As New ReportDocument - - Dim Bytes As Byte() = Nothing - Dim formatType As ExportFormatType = ExportFormatType.NoFormat - Try - - MR.Load(RutaReporte) - - SR1 = MR.OpenSubreport(SubRep1) - SR2 = MR.OpenSubreport(SubRep2) - - MR.SetDataSource(DataSource) - - SR1.SetDataSource(DataSource1) - SR2.SetDataSource(DataSource2) - - For Each item As CrystalParametro In Parametros - MR.SetParameterValue(item.Nombre, item.Valor) - Next - - Select Case Formato - Case "PDF" - formatType = ExportFormatType.PortableDocFormat - 'Format = "Application/pdf" - Case "EXCEL" - formatType = ExportFormatType.Excel - 'Format = "application/ms-excel" - End Select - Dim Stream As IO.Stream = MR.ExportToStream(formatType) - Dim BD As New BinaryReader(MR.ExportToStream(formatType)) - Bytes = BD.ReadBytes(CInt(MR.ExportToStream(formatType).Length)) - BD.Dispose() - Stream.Dispose() - 'Dim Buffer(CInt(Stream.Length)) As Byte - 'Bytes = Buffer - 'MR.ExportToHttpResponse(formatType, Response, True, NombreArchivo) - Catch ex As CrystalReportsException - GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, - $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, - ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - Catch ex As Exception - GuardaLog(If(ex.InnerException IsNot Nothing AndAlso ex.Message IsNot Nothing, - $"Error: {If(ex.InnerException.Message, ex.Message)} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, - ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} Ruta {RutaReporte}", $"Sin descripción - Ruta {RutaReporte}")) - - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - End Try - sw.Stop() - If sw.Elapsed.TotalSeconds > 10 Then - GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - End If - If MR IsNot Nothing Then MR.Dispose() - Return Bytes - End Function - - 'Public Function ImprimirPDFPyME(RutaReporte As String, DataSource As DataSet, Parametros As List(Of CrystalParametro), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As StiReport = Nothing) As Byte() - - ' If IsNothing(MR) Then MR = New Stimulsoft.Report.StiReport() - ' Dim Bytes As Byte() = Nothing - ' Try - ' MR.Load(RutaReporte) - ' MR.Dictionary.DataSources.Clear() - ' MR.RegData(DataSource) - ' Dim Lista = MR.Dictionary.Variables.ToList() - ' For Each item As CrystalParametro In Parametros - ' If Lista.Exists(Function(a) a.Name = item.Nombre) Then - ' MR.Dictionary.Variables(item.Nombre).Value = item.Valor.ToString - ' End If - ' Next - - ' MR.Dictionary.Synchronize() - ' MR.IsRendered = False - ' MR.Render(False) - ' Dim pdfSettings As New Stimulsoft.Report.Export.StiPdfExportSettings() - ' Dim MemoryStream As New MemoryStream - ' Select Case Formato - ' Case "PDF" - ' MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Pdf, MemoryStream, pdfSettings) - ' Case "EXCEL" - ' MR.ExportDocument(Stimulsoft.Report.StiExportFormat.Excel2007, MemoryStream, pdfSettings) - ' End Select - - ' Bytes = MemoryStream.ToArray - ' MR.RenderedPages.Clear() - ' MR.Dispose() - ' MemoryStream.Dispose() - ' Catch ex As Exception - ' GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - ' 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - ' 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - ' End Try - ' Return Bytes - 'End Function - - Public Function StreamPDFTest(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) As Byte() - 'limpio ReportViwer - - Dim sw As New System.Diagnostics.Stopwatch() - sw.Start() - - If IsNothing(MR) Then MR = New ReportViewer - Dim Bytes As Byte() = Nothing - Try - - ' MR.LocalReport.ReportPath = RutaReporte - MR.ProcessingMode = ProcessingMode.Local - - Using rdlcR As New StreamReader(RutaReporte) - MR.LocalReport.LoadReportDefinition(rdlcR) - MR.LocalReport.EnableExternalImages = True - MR.LocalReport.SetParameters(Parametros) - MR.LocalReport.Refresh() - End Using - - For Each RDS As ReportDataSource In DataSource - MR.LocalReport.DataSources.Add(RDS) - Next - - Dim Warnings As Warning() = Nothing - Dim StreamIds As String() = Nothing - Dim MimeType As String = Nothing - Dim Encoding As String = Nothing - Dim Extension As String = Nothing - - Bytes = MR.LocalReport.Render(Formato, Nothing, MimeType, Encoding, Extension, StreamIds, Warnings) - Catch ex As Microsoft.Reporting.WebForms.ScriptManagerNotFoundException - GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error: {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - Catch ex As Exception - GuardaLog($"Error: { If(ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, ex.Message) } | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))} - Ruta {RutaReporte}") - 'HAY QUE VALIDAR QUE LOS OBJETOS QUE SE USAN PARA GUARDAR LOG EXISTEN!!! IPP 14 AGOSTO 2017 - 'GuardaLog($"Error {ex.InnerException.Message} | Descripcion: {If(ex.InnerException.InnerException IsNot Nothing, ex.InnerException.InnerException.Message, "Sin descripcion")} - Ruta {RutaReporte}") - End Try - - sw.Stop() - If sw.Elapsed.TotalSeconds > 10 Then - GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - 'GuardaLog($"Tiempo Renderizado Milisegundos {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - End If - - Return Bytes - End Function - - - ''' - ''' Genera documento PDF o Excel - ''' - ''' - ''' - ''' - ''' - Public Sub ImprimirbytesPDF(bytes As Byte(), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional Descarga As Boolean = False, Optional Content_Disposition As String = "attachment", Optional Extension As String = "") - 'limpio ReportViwer - Dim mimeType As String = Nothing - - 'If Descarga Then - ' Try - ' bytes = bytes - ' File.WriteAllBytes(String.Format("{0}PDF/whatever.gif", UsuarioActual.Empresa.Ruta), img) - ' Catch ex As Exception - ' If UsuarioActual.CveRol = 1 Then - ' Alert(ex.Message, TipoMensaje.MsgAdvertencia) - ' Else - ' Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod'IMPDFclspag'", TipoMensaje.MsgAdvertencia) - ' End If - ' End Try - 'End If - - Try - bytes = bytes - Response.Buffer = True - Response.Clear() - If Formato = "PDF" Then - Response.ContentType = "application/pdf" - Else - Response.ContentType = mimeType - End If - Response.ClearHeaders() - - Dim fileExtension As String = "" - If Not String.IsNullOrEmpty(extension) Then - fileExtension = extension - Else - fileExtension = If(Formato = "PDF", "pdf", "xls") - End If - - Response.AddHeader("content-disposition", String.Format("{0}; filename=""{1}.{2}""", Content_Disposition, NombreArchivo, fileExtension)) - Response.BinaryWrite(bytes) ' create the file - Response.Flush() ' send it to the client to download - bytes = Nothing - HttpContext.Current.Response.SuppressContent = True - HttpContext.Current.ApplicationInstance.CompleteRequest() - 'HttpContext.Current.Response.End() - Catch ex As Exception - - If UsuarioActual.CveRol = 1 Then - Alert($"Error: {ex.Message} | Descripcion: {If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException IsNot Nothing AndAlso ex.InnerException.InnerException.Message IsNot Nothing, ex.InnerException.InnerException.Message, If(ex.InnerException IsNot Nothing AndAlso ex.InnerException.Message IsNot Nothing, ex.InnerException.Message, "Sin descripcion"))}", TipoMensaje.MsgAdvertencia) - Else - Alert("Ocurrió un error al generar la descarga. Favor de contactar a soporte tecnico cod:'IMPDFclspag'", TipoMensaje.MsgAdvertencia) - End If - End Try - End Sub - Public Sub ImprimirPDFview(RutaReporte As String, DtDatos As DataTable, Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional RDSName As String = "DataSet1", Optional MR As ReportViewer = Nothing) - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource - rds.Name = RDSName - rds.Value = DtDatos - lrds.Add(rds) - ImprimirPDFview(RutaReporte, lrds, Parametros, NombreArchivo, Formato, MR) - End Sub - Public Sub ImprimirPDFview(RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional MR As ReportViewer = Nothing) - 'limpio ReportViwer - If IsNothing(MR) Then - MR = New ReportViewer - End If - ' MasterReporteador.LocalReport.DataSources.Clear() - For Each rds As ReportDataSource In DataSource - MR.LocalReport.DataSources.Add(rds) - Next - MR.LocalReport.ReportPath = RutaReporte - MR.ProcessingMode = ProcessingMode.Local - MR.LocalReport.EnableExternalImages = True - MR.LocalReport.SetParameters(Parametros) - MR.LocalReport.Refresh() - - End Sub #End Region -#Region "IMPRIMIR FACTURA" - 'Public Sub PdfFacturaPyME(ByRef Vta As Modelos.Factura, DT As DataTable, Optional Guardar As Boolean = True) - ' Dim retorno As Byte() = Nothing - - ' 'DATOS GENERALES - ' Dim Ruta As String = UsuarioActual.Empresa.Ruta - ' Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" - ' Dim NombreArchivo As String = "" - ' Dim NombreArchivoDescarga As String = "" - ' Dim TipoDocumento As String = "" - ' Dim TipoDocumentoRef As String = "" - ' Dim AplicaPagare As String = "1" - - ' Dim RFCReceptor As String = "" - - ' If String.IsNullOrEmpty(Vta.RFCReceptor) Then - ' RFCReceptor = Vta.Cliente.RFC - ' If Vta.FacturarSucursal Then - ' If Vta.ClienteSucursal IsNot Nothing Then - ' RFCReceptor = Vta.ClienteSucursal.RFC - ' End If - ' End If - ' Else - ' RFCReceptor = Vta.RFCReceptor - ' End If - - ' Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio) - ' Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) - ' Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) - - ' Dim ImagenPath = String.Format("{0}Formatos\Suc{1}\logo.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - ' Dim Logo As New System.IO.FileInfo(ImagenPath) - ' Dim ImgLogo = New Uri(String.Format("{0}Empresas/{1}/Formatos/Suc{2}.png", UrlSitio, UsuarioActual.CveEmpresa, Vta.CveSucursal)).AbsoluteUri - - ' Dim SBDomicilioSucursal As New StringBuilder() - ' Dim CiudadSucursal As String = String.Format("{0},{1}", Vta.SubProyecto.Municipio, Vta.SubProyecto.Estado) - ' Dim DomicilioSucursal As String = "" - - ' SBDomicilioSucursal.AppendFormat("{0}", Vta.SubProyecto.Calle) - ' If Vta.SubProyecto.NoExt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", Vta.SubProyecto.NoExt) - ' If Vta.SubProyecto.NoInt.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", Vta.SubProyecto.NoInt) - ' If Vta.SubProyecto.Colonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", Vta.SubProyecto.Colonia) - ' If Vta.SubProyecto.CP.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", Vta.SubProyecto.CP) - ' If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) - ' If Vta.SubProyecto.Pais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", Vta.SubProyecto.Pais) - - ' DomicilioSucursal = SBDomicilioSucursal.ToString - - ' Dim Fecha As String = Vta.Fecha.ToShortDateString - - ' Dim SBDireccion As New StringBuilder() - ' Dim SBLugar As New StringBuilder() - ' Dim ClienteDireccion As String - ' Dim ClienteLugar As String - - ' 'SI ESTA TIMBRADA - CON XML - ' If File.Exists(PathXML) AndAlso Vta.Serie <> "VistaPrevia" Then 'Cuando es vista previe y coincide la serie y folio se ponen los datos fiscales - ' Dim XmlDoc As New System.Xml.XmlDocument - ' XmlDoc.Load(PathXML) - - ' Dim TC As Decimal = 1 - ' Try - ' TC = XmlDoc.DocumentElement.Attributes("TipoCambio").InnerText.ToDecimal - ' Catch ex As Exception - ' TC = 1 - ' End Try - - ' Vta.FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate - ' Vta.NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText - - ' Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") - - ' If Not IsNothing(validaElemento) Then - ' For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 - ' If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then - ' Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText - ' Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText - ' Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate - ' Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText - ' Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText - - ' End If - ' Next - ' Else - ' Vta.FolioFiscal = "Sin Timbrar" - ' Vta.NoSerieCertificado = "Sin Timbrar" - ' Vta.SelloCFDi = "Sin Timbrar" - ' Vta.SelloSAT = "Sin Timbrar" - ' End If - - ' 'SIN TIMBRAR - SIN XML - ' Else - ' Vta.FolioFiscal = "Sin Timbrar" - ' Vta.NoSerieCertificado = "Sin Timbrar" - ' Vta.SelloCFDi = "Sin Timbrar" - ' Vta.SelloSAT = "Sin Timbrar" - ' End If - - ' 'DIRECCION CLIENTE - ' If Vta.CveClienteSucursal.ToEntero > 0 Then - ' 'Si cliente tiene Noint, NoExt, CP - ' SBDireccion.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) - ' If Vta.ClienteSucursal.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) - ' If Vta.ClienteSucursal.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) - ' If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.ClienteSucursal.Colonia) - - ' If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then - ' If Vta.ClienteSucursal.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.ClienteSucursal.CP.Trim) - ' End If - - ' 'Si cliente tiene Local, CD, Edo, Pais - ' If Vta.ClienteSucursal.Localidad IsNot Nothing AndAlso Vta.ClienteSucursal.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.ClienteSucursal.Localidad) - ' If Vta.ClienteSucursal.Municipio IsNot Nothing AndAlso Vta.ClienteSucursal.Municipio.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.ClienteSucursal.Municipio) - ' If Vta.ClienteSucursal.Estado IsNot Nothing AndAlso Vta.ClienteSucursal.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.ClienteSucursal.Estado) - ' If Vta.ClienteSucursal.Pais IsNot Nothing AndAlso Vta.ClienteSucursal.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.ClienteSucursal.Pais) - ' Else - ' SBDireccion.AppendFormat("{0}", Vta.Cliente.Direccion) - ' If Vta.Cliente.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) - ' If Vta.Cliente.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) - ' If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.Cliente.Colonia) - - ' If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then - ' If Vta.Cliente.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.Cliente.CP.Trim) - ' End If - - ' 'Si cliente tiene Local, CD, Edo, Pais - ' If Vta.Cliente.Localidad IsNot Nothing AndAlso Vta.Cliente.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.Cliente.Localidad) - ' If Vta.Cliente.Ciudad IsNot Nothing AndAlso Vta.Cliente.Ciudad.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.Cliente.Ciudad) - ' If Vta.Cliente.Estado IsNot Nothing AndAlso Vta.Cliente.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.Cliente.Estado) - ' If Vta.Cliente.Pais IsNot Nothing AndAlso Vta.Cliente.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.Cliente.Pais) - - ' End If - - ' ClienteDireccion = SBDireccion.ToString - ' ClienteLugar = SBLugar.ToString - ' SBDireccion.Clear() - ' SBLugar.Clear() - - ' 'LOGO - ' Dim LogoRuta As String = "" - ' 'POR SUCURSAL - ' LogoRuta = String.Format("{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - ' If File.Exists(LogoRuta) Then - ' LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - ' 'POR EMPRESA - ' Else - ' LogoRuta = String.Format("{0}Formatos\Logo.png", UsuarioActual.Empresa.Ruta) - ' If File.Exists(LogoRuta) Then - ' 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - ' LogoRuta = String.Format("{0}", LogoRuta) - ' End If - ' End If - ' 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - ' LogoRuta = String.Format("{0}", LogoRuta) - ' 'Si no tiene CBB, SE GENERA - ' If Not ImagenCBB.Exists Then - ' Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - ' CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB) - ' End If - ' ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) - - ' Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||" - ' If Not ImagenCBB.Exists Then ImgCBB = "" - ' Dim RutaFormato As String = "" - - - ' 'AQUI EMPIEZA LOS PARAMETROS - ' Try - ' Dim params = New List(Of CrystalParametro) - - ' 'CLIENTE - ' params.Add(New CrystalParametro("ClienteCodigo", Vta.Cliente.Codigo)) - ' params.Add(New CrystalParametro("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre)))) - ' params.Add(New CrystalParametro("ClienteDireccion", ClienteDireccion)) - ' params.Add(New CrystalParametro("ClienteLugar", ClienteLugar)) - - - ' 'TOTALES - ' params.Add(New CrystalParametro("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("Descuento", Vta.Descuento.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("Amortizacion", Vta.Amortizacion.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("SubTotal2", (Vta.SubTotal - Vta.Descuento - Vta.Amortizacion).ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("IVA", Vta.IVA.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("RetIVA", Vta.RetIVA.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("RetISR", Vta.RetISR.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("Total", Vta.Total.ToString.FormatoNumero(2))) - ' params.Add(New CrystalParametro("ImporteLetra", Vta.Total.ToString.ToDouble.Texto2Letras(Vta.CveMoneda))) - - ' 'DATOS GENERALES - ' params.Add(New CrystalParametro("Observaciones", Vta.Observaciones)) - ' params.Add(New CrystalParametro("CveVendedor", Vta.CveVendedor.ToString)) - ' 'params.Add(New CrystalParametro("Status", Vta.EstatusFactura)) - ' params.Add(New CrystalParametro("FechaSolicitud", Vta.Fecha.ToString("dd/MMMM/yyyy"))) ' se puede omitir - ' params.Add(New CrystalParametro("Serie", Vta.Serie)) - ' params.Add(New CrystalParametro("Folio", Vta.Folio.ToString)) - ' params.Add(New CrystalParametro("DomicilioSucursal", DomicilioSucursal)) - ' params.Add(New CrystalParametro("Vencimiento", Vta.FechaVencimiento.ToString("dd/MM/yyyy"))) - ' params.Add(New CrystalParametro("FolioFiscal", Vta.FolioFiscal)) - ' params.Add(New CrystalParametro("FechaCertificacion", String.Format("{0}T{1}", Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss")))) - ' params.Add(New CrystalParametro("SelloCFDI", Vta.SelloCFDi)) - ' params.Add(New CrystalParametro("CadenaSAT", CadenaOriginals)) - ' params.Add(New CrystalParametro("SelloSAT", Vta.SelloSAT)) - - ' params.Add(New CrystalParametro("QR", ImgCBB)) - ' params.Add(New CrystalParametro("ClienteRFC", RFCReceptor)) - ' params.Add(New CrystalParametro("FormaPago", Vta.FormaPagoText)) - ' params.Add(New CrystalParametro("Moneda", Vta.Moneda)) - ' params.Add(New CrystalParametro("TipoCambio", Vta.TipoCambio.ToString)) - ' params.Add(New CrystalParametro("CondicionPago", Vta.CondicionesPagoText)) - ' params.Add(New CrystalParametro("CadenaOriginal", CadenaOriginals)) - ' params.Add(New CrystalParametro("SerieCertificadoSAT", Vta.NoSerieCertificado)) - ' params.Add(New CrystalParametro("CertificadoContribuyente", Vta.NoSerieCertificadoContribuyente)) - ' params.Add(New CrystalParametro("NumCta", Vta.NumeroCuenta)) - ' params.Add(New CrystalParametro("LogoPath", LogoRuta)) - - ' 'VENDEDOR - ' Dim RowVendedor As DataRow = GlobalDTVendedores(-1).FiltroPrimero(String.Format("CveVendedor = {0}", Vta.CveVendedor.ToString)) - ' If Not IsNothing(RowVendedor) Then - ' params.Add(New CrystalParametro("VendedorNombre", RowVendedor("Vendedor").ToString)) - ' params.Add(New CrystalParametro("VendedorMail", RowVendedor("Correo").ToString)) - ' params.Add(New CrystalParametro("VendedorTelefono", RowVendedor("Telefono").ToString)) - ' params.Add(New CrystalParametro("VendedorCelular", RowVendedor("Celular").ToString)) - - ' End If - - ' params.Add(New CrystalParametro("CiudadSucursal", CiudadSucursal)) - ' params.Add(New CrystalParametro("OC", Vta.Det_OrdenCompra.ToString)) - - ' If UsuarioActual.Empresa.Funcionalidad(508) = "1" Then - ' params.Add(New CrystalParametro("IEPS", Vta.IEPS.ToString.FormatoNumero(2))) - ' End If - - ' If Vta.CveClienteSucursal > 0 Then - ' params.Add(New CrystalParametro("ClienteContactoMail", Vta.ClienteSucursal.CorreoSucursal)) - ' params.Add(New CrystalParametro("ClienteTelefono", Vta.ClienteSucursal.TelefonoSucursal)) - ' Else - ' params.Add(New CrystalParametro("ClienteContactoMail", Vta.Cliente.MailCotizacion)) - ' params.Add(New CrystalParametro("ClienteTelefono", If(Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso Vta.Cliente.Telefono.Length > 6, Vta.Cliente.Telefono, Vta.TelefonoGenerico))) - ' End If - - ' If UsuarioActual.CveEmpresa.Contiene(17) Then - ' params.Add(New CrystalParametro("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString)) - ' Else - ' params.Add(New CrystalParametro("MetodoPago", Vta.MetodoPago.ToString)) - ' End If - - - ' Select Case Vta.TipoDocto - ' Case "Ing" - ' NombreArchivo = "Factura" - ' NombreArchivoDescarga = "Factura" - ' TipoDocumento = "INGRESO" - - ' 'GENERAL - ' params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga)) - ' params.Add(New CrystalParametro("Tipo", TipoDocumento)) - ' params.Add(New CrystalParametro("Ref", TipoDocumentoRef)) - ' params.Add(New CrystalParametro("AplicaPagare", AplicaPagare)) - - ' 'VSH - ' If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then - ' 'DATOS CLIENTES - ' Dim ClienteRow = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCliente = {0}", Vta.CveCliente.ToString)) - ' Dim DatosCliente = "" - ' If ClienteRow IsNot Nothing Then - ' DatosCliente = String.Format("{0} | {1} | {2}", Vta.SubProyecto.Municipio, ClienteRow("CuentaContable"), ClienteRow("Codigo")) - ' End If - ' params.Add(New CrystalParametro("DatosClientes", DatosCliente)) - ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) - ' End If - - ' 'COMPU, DN DIFUSA - ' If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then - ' params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) - ' params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) - ' params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato)) - ' params.Add(New CrystalParametro("DescripcionContrato", Vta.NumeroDescripcionContrato)) - - ' params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) - ' params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) - ' params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString)) - ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) - - ' 'INE COMPLEMENTOS - ' If UsuarioActual.CveEmpresa.Contiene(72) Then - ' Dim INETipoProceso As String = "" - ' Dim INETipoComite As String = "" - ' Dim INEIdContabilidad As Integer = 0 - ' If Vta.ComplementoINE IsNot Nothing Then - ' INETipoProceso = Vta.ComplementoINE.INETipoProceso - ' INETipoComite = Vta.ComplementoINE.INETipoComite - ' INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad - ' End If - ' params.Add(New CrystalParametro("INETipoProceso", INETipoProceso)) - ' params.Add(New CrystalParametro("INETipoComite", INETipoComite)) - ' params.Add(New CrystalParametro("INEIdContabilidad", INEIdContabilidad)) - ' params.Add(New CrystalParametro("Referencia", Vta.Cliente.ReferenciaFiscal)) - ' params.Add(New CrystalParametro("ClienteContacto", Vta.AtencionA)) - ' End If - - ' 'DIRECCION ENVIO - ' If Vta.EnviarA.CveDireccionEnvio > 0 Then - ' Dim StrEnvioDi As New StringBuilder - ' StrEnvioDi.AppendFormat("{0}", Vta.EnviarA.EnvioDireccion) - ' If Vta.EnviarA.EnvioNoExt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.EnviarA.EnvioNoExt) - ' If Vta.EnviarA.EnvioNoInt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.EnviarA.EnvioNoInt) - - ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) - ' params.Add(New CrystalParametro("EnvioNoExt", Vta.EnviarA.EnvioNoExt)) - ' params.Add(New CrystalParametro("EnvioNoInt", Vta.EnviarA.EnvioNoInt)) - ' params.Add(New CrystalParametro("EnvioColonia", Vta.EnviarA.EnvioColonia)) - ' params.Add(New CrystalParametro("EnvioCiudad", Vta.EnviarA.EnvioCiudad)) - ' params.Add(New CrystalParametro("EnvioEstado", Vta.EnviarA.EnvioEstado)) - ' params.Add(New CrystalParametro("EnvioContacto", Vta.EnviarA.EnvioContacto)) - ' params.Add(New CrystalParametro("EnvioDepartamento", Vta.EnviarA.EnvioDepartamento)) - ' params.Add(New CrystalParametro("EnvioCP", Vta.EnviarA.EnvioCP)) - ' Else - ' If Vta.CveClienteSucursal.ToEntero > 0 Then - ' Dim StrEnvioDi As New StringBuilder - ' StrEnvioDi.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) - ' If Vta.ClienteSucursal.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) - ' If Vta.ClienteSucursal.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) - ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) - ' params.Add(New CrystalParametro("EnvioColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) - ' params.Add(New CrystalParametro("EnvioCiudad", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) - ' params.Add(New CrystalParametro("EnvioEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) - ' params.Add(New CrystalParametro("EnvioCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) - ' Else - ' Dim StrEnvioDi As New StringBuilder - ' StrEnvioDi.AppendFormat("{0}", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")) - ' If Vta.Cliente.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) - ' If Vta.Cliente.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) - ' params.Add(New CrystalParametro("EnvioDireccion", StrEnvioDi.ToString)) - ' params.Add(New CrystalParametro("EnvioColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) - ' params.Add(New CrystalParametro("EnvioCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) - ' params.Add(New CrystalParametro("EnvioEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) - ' params.Add(New CrystalParametro("EnvioCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) - ' End If - - ' End If - - ' 'CLIENTE SUCURSAL - ' If Vta.CveClienteSucursal.ToEntero > 0 Then - ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) - ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) - ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) - ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) - ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) - ' params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) - ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) - ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) - ' params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) - ' Else - ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) - ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) - ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) - ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) - ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) - ' params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) - ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) - ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) - ' params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) - ' End If - ' End If - - ' RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, NombreArchivo) - - ' Case "Egs" - ' If UsuarioActual.CveEmpresa.Contiene(72, 80) Then - ' NombreArchivo = "NotaCredito" - ' Else - ' NombreArchivo = "Factura" - ' End If - ' NombreArchivoDescarga = "Nota de Crédito" - ' TipoDocumento = "EGRESO" - ' TipoDocumentoRef = String.Format(": Ref.:{0}", Vta.RefDocto) - ' AplicaPagare = "0" - - ' 'GENERAL - ' params.Add(New CrystalParametro("TipoDocumento", NombreArchivoDescarga)) - ' params.Add(New CrystalParametro("Tipo", TipoDocumento)) - ' params.Add(New CrystalParametro("Ref", TipoDocumentoRef)) - ' params.Add(New CrystalParametro("AplicaPagare", AplicaPagare)) - ' params.Add(New CrystalParametro("Fecha", String.Format("{0}T{1}", Vta.Fecha.ToString("yyyy-MM-dd"), Vta.Fecha.ToString("HH:mm:ss")))) - - ' 'ALAN YEPIZ - ' If UsuarioActual.CveEmpresa.Contiene(123) Then - ' params.Add(New CrystalParametro("DiaExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Day))) - ' params.Add(New CrystalParametro("MesExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Month))) - ' params.Add(New CrystalParametro("AñoExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Year))) - ' End If - - ' 'COMPU, DN DIFUSA - ' If UsuarioActual.CveEmpresa.Contiene(72, 80, 119) Then - ' params.Add(New CrystalParametro("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) - ' params.Add(New CrystalParametro("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) - ' params.Add(New CrystalParametro("PedidoContrato", Vta.PedidoContrato)) - - ' params.Add(New CrystalParametro("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) - ' params.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual.Nombre)) - ' params.Add(New CrystalParametro("FechaImpresion", Now.ToDateTime.ToString)) - ' params.Add(New CrystalParametro("Sucursal", Vta.SubProyecto.SubProyecto)) - - ' 'CLIENTE SUCURSAL - ' If Vta.CveClienteSucursal.ToEntero > 0 Then - ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) - ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) - ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) - ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) - ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) - ' params.Add(New CrystalParametro("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) - ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) - ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) - ' params.Add(New CrystalParametro("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) - ' Else - ' params.Add(New CrystalParametro("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) - ' params.Add(New CrystalParametro("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) - ' params.Add(New CrystalParametro("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) - ' params.Add(New CrystalParametro("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) - ' params.Add(New CrystalParametro("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) - ' params.Add(New CrystalParametro("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) - ' params.Add(New CrystalParametro("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) - ' params.Add(New CrystalParametro("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) - ' params.Add(New CrystalParametro("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) - ' End If - ' End If - - - ' RutaFormato = String.Format("{0}Formatos\{1}.mrt", UsuarioActual.Empresa.Ruta, "Factura") - ' Case Else - ' NombreArchivo = "" - ' TipoDocumento = "" - ' End Select - ' If NombreArchivo = "" Then - ' GuardaLog("No se especifico el tipo de Impresion de venta (Venta, Remision, Cotización, Nota de Crédito).") - ' Exit Sub - ' End If - ' 'TERMINA REGION PARAMETROS - - ' Dim lrds As New List(Of ReportDataSource) - ' 'Si es ECLIPSE CREAR COLUMAS PARA FIRMAS EN DtDetalle. - ' If UsuarioActual.CveEmpresa.Contiene(1, 15, 17, 71, 76, 125) Then - ' Dim DtDetalleFirmas As New DataTable - ' DtDetalleFirmas.TableName = "DetalleFirma" - ' DtDetalleFirmas = Vta.DtDetalle.Copy() - - ' 'SI NO TIENE LAS COLUMNAS DE FIRMAS LAS CREA. - ' If Not DtDetalleFirmas.Columns.Contains("Titulo") Then - ' DtDetalleFirmas.Columns.Add("Titulo", GetType(String)) - ' DtDetalleFirmas.Columns.Add("Nombre", GetType(String)) - ' DtDetalleFirmas.Columns.Add("Puesto", GetType(String)) - ' DtDetalleFirmas.Columns.Add("Lado", GetType(Integer)) - ' End If - - ' 'Se llenan los Rows de las columnas con los datos del DtFirmas - ' For i As Integer = 0 To Vta.DtFirmas.Rows.Count - 1 - ' 'Si DtDetalle es menor al DtFirmas, crea un nuevo Row en DtDetalle y le asigna valor, Si no solo asigna valor - ' If DtDetalleFirmas.Rows.Count < i + 1 Then - ' Dim Dr = DtDetalleFirmas.NewRow - ' Dr("Titulo") = Vta.DtFirmas(i)("Titulo").ToString - ' Dr("Nombre") = Vta.DtFirmas(i)("Nombre").ToString - ' Dr("Puesto") = Vta.DtFirmas(i)("Puesto").ToString - ' Dr("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero - ' DtDetalleFirmas.Rows.Add(Dr) - ' Else - ' DtDetalleFirmas(i)("Titulo") = Vta.DtFirmas(i)("Titulo").ToString - ' DtDetalleFirmas(i)("Nombre") = Vta.DtFirmas(i)("Nombre").ToString - ' DtDetalleFirmas(i)("Puesto") = Vta.DtFirmas(i)("Puesto").ToString - ' DtDetalleFirmas(i)("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero - ' End If - ' Next i - - ' Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = DtDetalleFirmas} - ' lrds.Add(rds) - ' Else - ' Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = Vta.DtDetalle} - ' lrds.Add(rds) - ' End If - - ' Dim rds1 As New ReportDataSource With {.Name = "DataSet1", .Value = If(Vta.DtDeduccion IsNot Nothing, Vta.DtDeduccion, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - ' lrds.Add(rds1) - - ' 'DETALLE FIRMAS - - ' Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(Vta.DtFirmas IsNot Nothing, Vta.DtFirmas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - ' lrds.Add(rds2) - - ' Dim Archivo As New System.IO.FileInfo(RutaFormato) - - ' Dim DataSet As New DataSet - ' Vta.DtDetalle.TableName = "Datos" - ' Vta.DtDeduccion.TableName = "Deduccion" - ' DataSet.Tables.Add(Vta.DtDetalle.Copy) - ' DataSet.Tables.Add(Vta.DtDeduccion.Copy) - - ' If Archivo.Exists Then - ' ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura") - ' If Guardar Then - ' Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) - ' If Not ArchivoPDF.Exists Then - ' Try - ' DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) - ' DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) - ' File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - ' Catch ex As Exception - ' Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - ' End Try - ' Else - ' Try - ' ArchivoPDF.Delete() - ' File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - ' Catch ex As Exception - ' Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - ' End Try - ' End If - ' End If - - ' Else - ' params.Add(New CrystalParametro("Empresa", UsuarioActual.Empresa.Empresa)) - ' params.Add(New CrystalParametro("RFC", UsuarioActual.Empresa.RFC)) - ' ImprimirbytesPDF(ImprimirPDFPyME(RutaFormato, DataSet, params, NombreArchivo, "PDF", MR:=Nothing), "Factura") - ' End If - - - ' Catch ex As Exception - ' GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) - ' End Try - 'End Sub - - Public Function PdfFactura(ByRef Vta As Modelos.Factura, Optional AplicaPagare As String = "0", Optional Guardar As Boolean = True, Optional SubReportData As Modelos.MSubReportData = Nothing, Optional UsarStimulsoft As Boolean = False) As Byte() - Dim retorno As Byte() = Nothing - - ' Dim ObjVentas As New ClsVentas - - 'DATOS GENERALES - Dim Ruta As String = UsuarioActual.Empresa.Ruta - Dim PathXML As String = $"{Ruta}XML\{Vta.TipoDocto}\{Vta.SerieFolio}.xml" - Dim NombreArchivo As String = "" - Dim NombreArchivoDescarga As String = "" - Dim TipoDocumento As String = "" - Dim TipoDocumentoRef As String = "" - Dim RFCReceptor As String = "" - Dim XmlVersion As String = "" - - If String.IsNullOrEmpty(Vta.RFCReceptor) Then - RFCReceptor = Vta.Cliente.RFC - If Vta.FacturarSucursal Then - If Vta.ClienteSucursal IsNot Nothing Then - RFCReceptor = Vta.ClienteSucursal.RFC - End If - End If - Else - RFCReceptor = Vta.RFCReceptor - End If - - - Dim RutaCarpetaCBB As String = String.Format("{0}CBB\", Ruta) - Dim FinfoCarpetaCBB As New IO.DirectoryInfo(RutaCarpetaCBB) - - If Not FinfoCarpetaCBB.Exists Then - Try - IO.Directory.CreateDirectory(RutaCarpetaCBB) - Catch ex As Exception - GuardaLogAD($"CveEmpresa {UsuarioActual.CveEmpresa} Vta {Vta.SerieFolio} Error al crear directorio CBB {ex.Message}") - - End Try - End If - - - Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio) - - Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) - Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) - - Dim ImagenPath = String.Format("{0}Formatos\Suc{1}\logo.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - Dim Logo As New System.IO.FileInfo(ImagenPath) - Dim ImgLogo = New Uri(String.Format("{0}Empresas/{1}/Formatos/Suc{2}.png", UrlSitio, UsuarioActual.CveEmpresa, Vta.CveSucursal)).AbsoluteUri - - Dim SBDomicilioSucursal As New StringBuilder() - Dim CiudadSucursal As String = String.Format("{0},{1}", Vta.SubProyecto.Municipio, Vta.SubProyecto.Estado) - Dim DomicilioSucursal As String = "" - - SBDomicilioSucursal.AppendFormat("{0}", Vta.SubProyecto.Calle) - If Vta.SubProyecto.NoExt.Length > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", Vta.SubProyecto.NoExt) - If Vta.SubProyecto.NoInt.Length > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", Vta.SubProyecto.NoInt) - If Vta.SubProyecto.Colonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", Vta.SubProyecto.Colonia) - If Vta.SubProyecto.CP.ToEntero > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", Vta.SubProyecto.CP) - If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) - If Vta.SubProyecto.Pais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", Vta.SubProyecto.Pais) - If Not String.IsNullOrEmpty(Vta.SubProyecto.Telefono) AndAlso UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162) Then SBDomicilioSucursal.AppendFormat(", Tel: {0}", Vta.SubProyecto.Telefono) - - DomicilioSucursal = SBDomicilioSucursal.ToString - - Dim Fecha As String = Vta.Fecha.ToShortDateString - - Dim SBDireccion As New StringBuilder() - Dim SBLugar As New StringBuilder() - Dim ClienteDireccion As String - Dim ClienteLugar As String - Vta.FolioFiscal = "Sin Timbrar" - Vta.NoSerieCertificado = "Sin Timbrar" - Vta.SelloCFDi = "Sin Timbrar" - Vta.SelloSAT = "Sin Timbrar" - - -#Region "COMERCIO EXTERIOR VARIABLES Y TABLAS" - - Dim CETipoOperacion = "", CEClavePedimento As String = "", CEIncoterm As String = "", CEId As String = "", CEMotivoTraslado As String = "", CETipoCambio As String = "" - Dim RCETipoOperacion As String = "", RCEClavePedimento As String = "", RCEIncoterm As String = "", RCEMotivoTraslado As String = "" - - - Dim CE_DT_Cabecera As New DataTable - - - CE_DT_Cabecera.Columns.Add("Version") - CE_DT_Cabecera.Columns.Add("MotivoTraslado") - CE_DT_Cabecera.Columns.Add("TipoOperacion") - CE_DT_Cabecera.Columns.Add("ClaveDePedimento") - CE_DT_Cabecera.Columns.Add("CertificadoOrigen") - CE_DT_Cabecera.Columns.Add("Incoterm") - CE_DT_Cabecera.Columns.Add("Subdivision") - CE_DT_Cabecera.Columns.Add("TipoCambioUSD", GetType(Decimal)) - CE_DT_Cabecera.Columns.Add("TotalUSD", GetType(Decimal)) - - - Dim CE_DT_Emisor As New DataTable - CE_DT_Emisor.Columns.Add("Calle") - CE_DT_Emisor.Columns.Add("NumeroExterior") - CE_DT_Emisor.Columns.Add("Colonia") - CE_DT_Emisor.Columns.Add("Municipio") - CE_DT_Emisor.Columns.Add("Estado") - CE_DT_Emisor.Columns.Add("Pais") - CE_DT_Emisor.Columns.Add("CodigoPostal") - CE_DT_Emisor.Columns.Add("Tipo", GetType(Integer)) - - Dim CE_DT_Receptor As New DataTable - Dim CE_DT_Destinatario As New DataTable - - CE_DT_Receptor = CE_DT_Emisor.Copy - CE_DT_Destinatario = CE_DT_Emisor.Copy - - - Dim CE_DT_Mercancias As New DataTable - CE_DT_Mercancias.Columns.Add("NoIdentificacion") - CE_DT_Mercancias.Columns.Add("FraccionArancelaria") - CE_DT_Mercancias.Columns.Add("CantidadAduana") - CE_DT_Mercancias.Columns.Add("UnidadAduana") - CE_DT_Mercancias.Columns.Add("ValorUnitarioAduana", GetType(Decimal)) - CE_DT_Mercancias.Columns.Add("ValorDolares", GetType(Decimal)) -#End Region - - - 'SI ESTA TIMBRADA - CON XML - If File.Exists(PathXML) AndAlso Vta.Serie <> "VistaPrevia" Then 'Cuando es vista previe y coincide la serie y folio se ponen los datos fiscales - Dim XmlDoc As New System.Xml.XmlDocument - - Dim EsXMLValido = False - Try - XmlDoc.Load(PathXML) - EsXMLValido = True - Catch ex As Exception - GuardaLog(" --- *** Impresion ventas - ClsPaginas LN#5016 (Aprox) - EXISTE EL XML PERO NO SE PUEDE LEER. *** --- ") - End Try - - - - - If EsXMLValido Then - Dim TC As Decimal = ValorNodoXML(XmlDoc.DocumentElement, "TC").ToDecimal - If TC <= 0 Then TC = 1 - - XmlVersion = ValorNodoXML(XmlDoc.DocumentElement, "version") - - If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then - Vta.FechaEmision = ValorNodoXML(XmlDoc.DocumentElement, "fecha").ToDate - Vta.NoSerieCertificadoContribuyente = ValorNodoXML(XmlDoc.DocumentElement, "NoCertificado") - - Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") - - If Not IsNothing(validaElemento) Then - For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then - Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText - Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText - Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate - Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText - Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText - End If - - -#Region "COMERCIO EXTERIOR LECTURA DATOS XML" - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "cce11:ComercioExterior" Then - - Dim nRowCECabecera As DataRow = CE_DT_Cabecera.NewRow - - CETipoOperacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoOperacion").InnerText - CEClavePedimento = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("ClaveDePedimento").InnerText - CEIncoterm = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Incoterm").InnerText - - - nRowCECabecera("Version") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Version").InnerText - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado") IsNot Nothing Then - nRowCECabecera("MotivoTraslado") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado").InnerText - End If - - nRowCECabecera("TipoOperacion") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoOperacion").InnerText - nRowCECabecera("ClaveDePedimento") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("ClaveDePedimento").InnerText - nRowCECabecera("CertificadoOrigen") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("CertificadoOrigen").InnerText - nRowCECabecera("Incoterm") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Incoterm").InnerText - nRowCECabecera("Subdivision") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("Subdivision").InnerText - nRowCECabecera("TipoCambioUSD") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoCambioUSD").InnerText.ToDecimal - nRowCECabecera("TotalUSD") = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TotalUSD").InnerText.ToDecimal - - CE_DT_Cabecera.Rows.Add(nRowCECabecera) - - Dim nodo As XmlNode = XmlDoc.DocumentElement - Dim VersionCFDI As String = ValorXML(nodo, "version") - - Dim cfdVer As String = "" - If VersionCFDI = "3.2" Then - cfdVer = "http://www.sat.gob.mx/cfd/2" - ElseIf VersionCFDI = "3.3" Then - cfdVer = "http://www.sat.gob.mx/cfd/3" - Else ' se considera que es la version 4.0 - cfdVer = "http://www.sat.gob.mx/cfd/4" - End If - - Dim namespaces As XmlNamespaceManager = New XmlNamespaceManager(XmlDoc.NameTable) - - namespaces.AddNamespace("cfdi", cfdVer) - namespaces.AddNamespace("cce11", "http://www.sat.gob.mx/ComercioExterior11") - - CEId = "" - Try - CEId = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).SelectSingleNode("//cce11:Receptor", namespaces).Attributes("NumRegIdTrib").InnerText 'XmlDoc.SelectNodes("//cfdi:Complemento/tfd:TimbreFiscalDigital/cce11:Destinatario") - Catch ex As Exception - - End Try - - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado") IsNot Nothing Then - CEMotivoTraslado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("MotivoTraslado").InnerText - End If - - CETipoCambio = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("TipoCambioUSD").InnerText - - - RCETipoOperacion = GlobalDTTipoOperacion.FiltroPrimeroValor("Descripcion", $"ClaveSATTipoOperacion = '{CETipoOperacion}'") - RCEClavePedimento = GlobalDTClavePedimento.FiltroPrimeroValor("Descripcion", $"ClaveSATPedimento = '{CEClavePedimento}'") - RCEIncoterm = GlobalDTIncoterm.FiltroPrimeroValor("Descripcion", $"ClaveSATIncoterm = '{CEIncoterm}'") - RCEMotivoTraslado = GlobalDTSATMotivoTraslado.FiltroPrimeroValor("MotivoTraslado", $"ClaveSATMotivoTraslado = '{CEMotivoTraslado}'") - - - Dim CENodosEmisor As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Emisor", namespaces) 'XmlDoc.SelectNodes("cfdi:Complemento/{0}:Traslados", "") - Dim CENodosReceptor As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Receptor", namespaces) - Dim CEnodosDestinatario As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Destinatario", namespaces) - Dim CEnodosMercancias As XmlNodeList = XmlDoc.DocumentElement.SelectNodes("//cfdi:Complemento/cce11:ComercioExterior/cce11:Mercancias", namespaces) - - - For Each node As XmlNode In CENodosEmisor - Dim nRowEmisor As DataRow = CE_DT_Emisor.NewRow - nRowEmisor("Calle") = ValorNodoXML(node.FirstChild, "Calle") - nRowEmisor("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") - nRowEmisor("Colonia") = ValorXML(node.FirstChild, "Colonia") - nRowEmisor("Municipio") = ValorXML(node.FirstChild, "Municipio") - nRowEmisor("Estado") = ValorXML(node.FirstChild, "Estado") - nRowEmisor("Pais") = ValorXML(node.FirstChild, "Pais") - nRowEmisor("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") - nRowEmisor("Tipo") = 1 - CE_DT_Emisor.Rows.Add(nRowEmisor) - Exit For - Next - - For Each node As XmlNode In CENodosReceptor - Dim nRowReceptor As DataRow = CE_DT_Receptor.NewRow - nRowReceptor("Calle") = ValorXML(node.FirstChild, "Calle") - nRowReceptor("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") - nRowReceptor("Colonia") = ValorXML(node.FirstChild, "Colonia") - nRowReceptor("Municipio") = ValorXML(node.FirstChild, "Municipio") - nRowReceptor("Estado") = ValorXML(node.FirstChild, "Estado") - nRowReceptor("Pais") = ValorXML(node.FirstChild, "Pais") - nRowReceptor("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") - nRowReceptor("Tipo") = 2 - CE_DT_Receptor.Rows.Add(nRowReceptor) - Exit For - Next - - For Each node As XmlNode In CEnodosDestinatario - Dim nRowDestinatario As DataRow = CE_DT_Destinatario.NewRow - nRowDestinatario("Calle") = ValorXML(node.FirstChild, "Calle") - nRowDestinatario("NumeroExterior") = ValorXML(node.FirstChild, "NumeroExterior") - nRowDestinatario("Colonia") = ValorXML(node.FirstChild, "Colonia") - nRowDestinatario("Municipio") = ValorXML(node.FirstChild, "Municipio") - nRowDestinatario("Estado") = ValorXML(node.FirstChild, "Estado") - nRowDestinatario("Pais") = ValorXML(node.FirstChild, "Pais") - nRowDestinatario("CodigoPostal") = ValorXML(node.FirstChild, "CodigoPostal") - nRowDestinatario("Tipo") = 3 - CE_DT_Destinatario.Rows.Add(nRowDestinatario) - Exit For - Next - - For Each node As XmlNode In CEnodosMercancias - Dim nRowMercancias As DataRow = CE_DT_Mercancias.NewRow - nRowMercancias("NoIdentificacion") = ValorXML(node.FirstChild, "NoIdentificacion") - nRowMercancias("FraccionArancelaria") = ValorXML(node.FirstChild, "FraccionArancelaria") - nRowMercancias("CantidadAduana") = ValorXML(node.FirstChild, "CantidadAduana") - nRowMercancias("UnidadAduana") = ValorXML(node.FirstChild, "UnidadAduana") - nRowMercancias("ValorUnitarioAduana") = ValorXML(node.FirstChild, "ValorUnitarioAduana").ToDecimal - nRowMercancias("ValorDolares") = ValorXML(node.FirstChild, "ValorDolares").ToDecimal - CE_DT_Mercancias.Rows.Add(nRowMercancias) - Next - Dim asddd As String = "" - - End If -#End Region - - - - Next - - End If - Else - Vta.FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate - Vta.NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText - - Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") - - If Not IsNothing(validaElemento) Then - For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then - Vta.FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText - Vta.NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText - Vta.FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate - Vta.SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText - Vta.SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText - - End If - Next - End If - - End If - End If - - - End If - - - - If Vta.Version.Length = 0 AndAlso XmlVersion.Length > 0 Then - Vta.Version = XmlVersion - End If - - 'DIRECCION CLIENTE - If Vta.CveClienteSucursal.ToEntero > 0 Then - 'Si cliente tiene Noint, NoExt, CP - SBDireccion.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) - If Vta.ClienteSucursal.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) - If Vta.ClienteSucursal.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) - If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.ClienteSucursal.Colonia) - - If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then - If Vta.ClienteSucursal.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.ClienteSucursal.CP.Trim) - End If - - 'Si cliente tiene Local, CD, Edo, Pais - If Vta.ClienteSucursal.Localidad IsNot Nothing AndAlso Vta.ClienteSucursal.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.ClienteSucursal.Localidad) - If Vta.ClienteSucursal.Municipio IsNot Nothing AndAlso Vta.ClienteSucursal.Municipio.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.ClienteSucursal.Municipio) - If Vta.ClienteSucursal.Estado IsNot Nothing AndAlso Vta.ClienteSucursal.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.ClienteSucursal.Estado) - If Vta.ClienteSucursal.Pais IsNot Nothing AndAlso Vta.ClienteSucursal.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.ClienteSucursal.Pais) - ElseIf Vta.CveCliente.ToEntero > 0 Then - SBDireccion.AppendFormat("{0}", Vta.Cliente.Direccion) - If Vta.Cliente.NoExt.Length > 0 Then SBDireccion.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) - If Vta.Cliente.NoInt.Length > 0 Then SBDireccion.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) - If UsuarioActual.CveEmpresa <> 66 Then SBDireccion.AppendFormat(", Col: {0}", Vta.Cliente.Colonia) - - If Not (UsuarioActual.CveEmpresa.Contiene(66, 81, 109) AndAlso Vta.TipoDocto = "Cot") Then - If Vta.Cliente.CP.Length > 0 Then SBDireccion.AppendFormat(", CP: {0} ", Vta.Cliente.CP.Trim) - End If - - 'Si cliente tiene Local, CD, Edo, Pais - If Vta.Cliente.Localidad IsNot Nothing AndAlso Vta.Cliente.Localidad.Length > 0 Then SBLugar.AppendFormat("Loc: {0}, ", Vta.Cliente.Localidad) - If Vta.Cliente.Ciudad IsNot Nothing AndAlso Vta.Cliente.Ciudad.Length > 0 Then SBLugar.AppendFormat("Cd: {0}, ", Vta.Cliente.Ciudad) - If Vta.Cliente.Estado IsNot Nothing AndAlso Vta.Cliente.Estado.Length > 0 Then SBLugar.AppendFormat(" Edo: {0}, ", Vta.Cliente.Estado) - If Vta.Cliente.Pais IsNot Nothing AndAlso Vta.Cliente.Pais.Length > 0 Then SBLugar.AppendFormat(" País: {0} ", Vta.Cliente.Pais) - - End If - - ClienteDireccion = SBDireccion.ToString - ClienteLugar = SBLugar.ToString - SBDireccion.Clear() - SBLugar.Clear() - - 'LOGO - Dim LogoRuta As String = "" - 'POR SUCURSAL - LogoRuta = String.Format("{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - If File.Exists(LogoRuta) Then - LogoRuta = String.Format("file://{0}Formatos\Suc{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveSucursal) - 'POR EMPRESA - Else - LogoRuta = String.Format("{0}Formatos\Logo.png", UsuarioActual.Empresa.Ruta) - If File.Exists(LogoRuta) Then - 'LogoRuta = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa) - LogoRuta = String.Format("{0}", LogoRuta) - - End If - End If - - 'Si no tiene CBB, SE GENERA - If Not ImagenCBB.Exists AndAlso Vta.FolioFiscal <> "" Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total, Vta.FolioFiscal, RutaCBB) - End If - 'ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme.Replace("https", "http"), Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio) - - - 'Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||" - Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version.Contiene("3.3", "4.0"), "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado) - If Not ImagenCBB.Exists Then ImgCBB = "" - Dim RutaFormato As String = "" - Dim RutaFormatoDefault As String = "" - - - ImgCBB = $"file://{ImagenCBB.FullName}" - - - - 'AQUI EMPIEZA LOS PARAMETROS - Try - Dim params As New List(Of ReportParameter) - - - - If RCETipoOperacion.Trim.Length > 0 Then - params.Add(New ReportParameter("CETipoOperacion", RCETipoOperacion)) - params.Add(New ReportParameter("CEClavePedimento", RCEClavePedimento)) - params.Add(New ReportParameter("CEIncoterm", RCEIncoterm)) - params.Add(New ReportParameter("CEId", CEId)) - params.Add(New ReportParameter("CEMotivoTraslado", RCEMotivoTraslado)) - params.Add(New ReportParameter("CETipoCambio", CETipoCambio)) - End If - - - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - params.Add(New ReportParameter("CFDIVersion", Vta.Version)) - If Vta.Cliente.CodigoRegimenFiscal.ToString.Length > 0 Then - params.Add(New ReportParameter("RegimenFiscalCodigo", $"{Vta.Cliente.CodigoRegimenFiscal}-{Vta.Cliente.RegimenFiscal}")) - End If - End If - - - 'CLIENTE - If Vta.CveCliente.ToEntero > 0 Or Vta.CveEmpresaCRM.ToEntero > 0 Then - params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo)) - params.Add(New ReportParameter("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre)))) - params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion)) - params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) - params.Add(New ReportParameter("ClienteRFC", RFCReceptor)) - End If - If Vta.CveEmpresaCRM.ToEntero > 0 Then - params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo)) - params.Add(New ReportParameter("ClienteNombre", Vta.Cliente.Nombre)) - params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion)) - params.Add(New ReportParameter("ClienteLugar", ClienteLugar)) - params.Add(New ReportParameter("ClienteRFC", RFCReceptor)) - End If - - - 'TOTALES - params.Add(New ReportParameter("SubTotal", Vta.SubTotal.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("Descuento", Vta.Descuento.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("Amortizacion", Vta.Amortizacion.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("SubTotal2", (Vta.SubTotal - Vta.Descuento - Vta.Amortizacion).ToString.FormatoNumero(2))) - params.Add(New ReportParameter("IVA", Vta.IVA.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("RetIVA", Vta.RetIVA.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("RetISR", Vta.RetISR.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("Total", Vta.Total.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("ImporteLetra", Vta.Total.ToString.ToDouble.Texto2Letras(Vta.CveMoneda))) - - 'DATOS GENERALES - - - If UsuarioActual.CveEmpresa.Contiene(15) Then - params.Add(New ReportParameter("CP", UsuarioActual.Empresa.CP.ToString)) - End If - - - params.Add(New ReportParameter("Observaciones", Vta.Observaciones)) - params.Add(New ReportParameter("CveVendedor", Vta.CveVendedor.ToString)) - params.Add(New ReportParameter("Status", Vta.EstatusFactura)) - params.Add(New ReportParameter("FechaSolicitud", Vta.Fecha.ToString("dd/MMMM/yyyy"))) ' se puede omitir - params.Add(New ReportParameter("Serie", Vta.Serie)) - params.Add(New ReportParameter("Folio", Vta.Folio.ToString)) - params.Add(New ReportParameter("DomicilioSucursal", DomicilioSucursal)) - params.Add(New ReportParameter("Vencimiento", Vta.FechaVencimiento.ToString("dd/MM/yyyy"))) - params.Add(New ReportParameter("FolioFiscal", Vta.FolioFiscal)) - params.Add(New ReportParameter("FechaCertificacion", String.Format("{0}T{1}", Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss")))) - params.Add(New ReportParameter("SelloCFDI", Vta.SelloCFDi)) - params.Add(New ReportParameter("CadenaSAT", CadenaOriginals)) - params.Add(New ReportParameter("SelloSAT", Vta.SelloSAT)) - - 'Net.ServicePointManager.SecurityProtocol = Net.ServicePointManager.SecurityProtocol Or Net.SecurityProtocolType.Tls Or Net.SecurityProtocolType.Tls11 Or Net.SecurityProtocolType.Tls12 - - params.Add(New ReportParameter("QR", ImgCBB)) - params.Add(New ReportParameter("Moneda", Vta.Moneda)) - params.Add(New ReportParameter("TipoCambio", Vta.TipoCambio.ToString)) - params.Add(New ReportParameter("CondicionPago", Vta.CondicionesPagoText)) - params.Add(New ReportParameter("CadenaOriginal", CadenaOriginals)) - params.Add(New ReportParameter("SerieCertificadoSAT", Vta.NoSerieCertificado)) - params.Add(New ReportParameter("CertificadoContribuyente", Vta.NoSerieCertificadoContribuyente)) - params.Add(New ReportParameter("NumCta", Vta.NumeroCuenta)) - params.Add(New ReportParameter("LogoPath", LogoRuta)) - params.Add(New ReportParameter("CiudadSucursal", CiudadSucursal)) - params.Add(New ReportParameter("OC", Vta.Det_OrdenCompra.ToString)) - params.Add(New ReportParameter("ClienteDiasCredito", "0")) - params.Add(New ReportParameter("MonedaAbreviatura", If(Vta.MonedaAbreviatura.ToString IsNot Nothing, Vta.MonedaAbreviatura.ToString, ""))) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) - params.Add(New ReportParameter("Sucursal", Vta.SubProyecto.SubProyecto)) - params.Add(New ReportParameter("EstatusFactura", If(Vta.TipoEstatus = 5, Vta.EstatusFactura, ""))) - params.Add(New ReportParameter("EstatusEntrega", If(Vta.Inv_CveEstatusEntrega = 1, Vta.Inv_EstatusEntrega, ""))) - params.Add(New ReportParameter("PedidoContrato", Vta.PedidoContrato)) - params.Add(New ReportParameter("OrdenCompra", Vta.OrdenCompra)) - params.Add(New ReportParameter("DescripcionContrato", Vta.NumeroDescripcionContrato)) - params.Add(New ReportParameter("Contrato", Vta.NumeroContrato)) - params.Add(New ReportParameter("Fecha", String.Format("{0}T{1}", Vta.Fecha.ToString("yyyy-MM-dd"), Vta.Fecha.ToString("HH:mm:ss")))) - - 'VENDEDOR - Dim VendedorNombre As String = "" - Dim VendedorMail As String = "" - Dim VendedorTelefono As String = "" - Dim VendedorCelular As String = "" - - Dim RowVendedor As DataRow = GlobalDTVendedores(-1).FiltroPrimero(String.Format("CveVendedor = {0}", Vta.CveVendedor.ToString)) - - If Not IsNothing(RowVendedor) Then - VendedorNombre = RowVendedor("Vendedor").ToString - VendedorMail = RowVendedor("Correo").ToString - VendedorTelefono = RowVendedor("Telefono").ToString - VendedorCelular = RowVendedor("Celular").ToString - End If - - params.Add(New ReportParameter("VendedorNombre", VendedorNombre)) - params.Add(New ReportParameter("VendedorMail", VendedorMail)) - params.Add(New ReportParameter("VendedorTelefono", VendedorTelefono)) - params.Add(New ReportParameter("VendedorCelular", VendedorCelular)) - - If UsuarioActual.Empresa.Funcionalidad(508) = "1" Then - params.Add(New ReportParameter("IEPS", Vta.IEPS.ToString.FormatoNumero(2))) - End If - - If Vta.CveClienteSucursal > 0 Then - params.Add(New ReportParameter("ClienteContactoMail", Vta.ClienteSucursal.CorreoSucursal)) - params.Add(New ReportParameter("ClienteTelefono", Vta.ClienteSucursal.TelefonoSucursal)) - ElseIf Vta.CveCliente.ToEntero > 0 Then - params.Add(New ReportParameter("ClienteContactoMail", Vta.Cliente.MailCotizacion)) - params.Add(New ReportParameter("ClienteTelefono", If(Vta.TelefonoGenerico <> "", Vta.TelefonoGenerico, Vta.Cliente.Telefono))) - End If - - If UsuarioActual.CveEmpresa.Contiene(17) Then - params.Add(New ReportParameter("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString)) - End If - - If Vta.Version.Contiene("3.3", "4.0") Then - params.Add(New ReportParameter("FormaPago", Vta.FormaPago33.ToString)) - params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago33.ToString)) - params.Add(New ReportParameter("UsoCFDI", Vta.UsoCFDI)) - If Vta.TipoDocto.Contiene("Ing", "Egs", "Ant", "Dev") Then - params.Add(New ReportParameter("TipoRelacionTexto", If(Vta.Timbre.CFDIRelacionados.TipoRelacionTexto Is Nothing, "", Vta.Timbre.CFDIRelacionados.TipoRelacionTexto))) - params.Add(New ReportParameter("FolioFiscalRelacionado", If(Vta.Timbre.CFDIRelacionados.UUID.Count = 0, "", Vta.Timbre.CFDIRelacionados.UUID.Item(0)))) - End If - Else - params.Add(New ReportParameter("FormaPago", Vta.FormaPagoText)) - params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago.ToString)) - End If - - 'DIRECCION ENVIO - If Vta.EnviarA IsNot Nothing AndAlso Vta.EnviarA.CveDireccionEnvio > 0 Then - Dim StrEnvioDi As New StringBuilder - StrEnvioDi.AppendFormat("{0}", Vta.EnviarA.EnvioDireccion) - If Vta.EnviarA.EnvioNoExt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.EnviarA.EnvioNoExt) - If Vta.EnviarA.EnvioNoInt IsNot Nothing AndAlso Vta.EnviarA.EnvioNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.EnviarA.EnvioNoInt) - - params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) - params.Add(New ReportParameter("EnvioNoExt", Vta.EnviarA.EnvioNoExt)) - params.Add(New ReportParameter("EnvioNoInt", Vta.EnviarA.EnvioNoInt)) - params.Add(New ReportParameter("EnvioColonia", Vta.EnviarA.EnvioColonia)) - params.Add(New ReportParameter("EnvioCiudad", Vta.EnviarA.EnvioCiudad)) - params.Add(New ReportParameter("EnvioEstado", Vta.EnviarA.EnvioEstado)) - params.Add(New ReportParameter("EnvioContacto", Vta.EnviarA.EnvioContacto)) - params.Add(New ReportParameter("EnvioDepartamento", Vta.EnviarA.EnvioDepartamento)) - params.Add(New ReportParameter("EnvioCP", Vta.EnviarA.EnvioCP)) - If Vta.CveEmpresa = 72 Then - params.Add(New ReportParameter("EnvioTel", Vta.EnviarA.EnvioTel)) - End If - ElseIf Vta.CveCliente.ToEntero > 0 Then - If Vta.CveClienteSucursal.ToEntero > 0 Then - Dim StrEnvioDi As New StringBuilder - StrEnvioDi.AppendFormat("{0}", Vta.ClienteSucursal.Direccion) - If Vta.ClienteSucursal.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.ClienteSucursal.NoExt) - If Vta.ClienteSucursal.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.ClienteSucursal.NoInt) - params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) - params.Add(New ReportParameter("EnvioNoExt", Vta.ClienteSucursal.NoExt)) - params.Add(New ReportParameter("EnvioNoInt", Vta.ClienteSucursal.NoInt)) - params.Add(New ReportParameter("EnvioColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) - params.Add(New ReportParameter("EnvioCiudad", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) - params.Add(New ReportParameter("EnvioEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) - params.Add(New ReportParameter("EnvioCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) - Else - Dim StrEnvioDi As New StringBuilder - StrEnvioDi.AppendFormat("{0}", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, "")) - If Vta.Cliente.NoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", Vta.Cliente.NoExt) - If Vta.Cliente.NoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", Vta.Cliente.NoInt) - params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) - params.Add(New ReportParameter("EnvioNoExt", Vta.Cliente.NoExt)) - params.Add(New ReportParameter("EnvioNoInt", Vta.Cliente.NoInt)) - params.Add(New ReportParameter("EnvioColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) - params.Add(New ReportParameter("EnvioCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) - params.Add(New ReportParameter("EnvioEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) - params.Add(New ReportParameter("EnvioCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) - End If - params.Add(New ReportParameter("EnvioContacto", "")) - params.Add(New ReportParameter("EnvioDepartamento", "")) - End If - - 'CLIENTE SUCURSAL - If Vta.CveClienteSucursal.ToEntero > 0 Then - params.Add(New ReportParameter("ClienteCalle", If(Vta.ClienteSucursal.Direccion.Length > 0, Vta.ClienteSucursal.Direccion, ""))) - params.Add(New ReportParameter("ClienteColonia", If(Vta.ClienteSucursal.Colonia.Length > 0, Vta.ClienteSucursal.Colonia, ""))) - params.Add(New ReportParameter("ClienteCiudad", If(Vta.ClienteSucursal.Localidad IsNot Nothing And Vta.ClienteSucursal.Localidad.Length > 0, Vta.ClienteSucursal.Localidad, ""))) - params.Add(New ReportParameter("ClienteMunicipio", If(Vta.ClienteSucursal.Municipio.Length > 0, Vta.ClienteSucursal.Municipio, ""))) - params.Add(New ReportParameter("ClienteEstado", If(Vta.ClienteSucursal.Estado.Length > 0, Vta.ClienteSucursal.Estado, ""))) - params.Add(New ReportParameter("ClienteCP", If(Vta.ClienteSucursal.CP.Length > 0, Vta.ClienteSucursal.CP, ""))) - params.Add(New ReportParameter("ClienteNoInt", If(Vta.ClienteSucursal.NoInt.Length > 0, Vta.ClienteSucursal.NoInt, ""))) - params.Add(New ReportParameter("ClienteNoExt", If(Vta.ClienteSucursal.NoExt.Length > 0, Vta.ClienteSucursal.NoExt, ""))) - params.Add(New ReportParameter("ClientePais", If(Vta.ClienteSucursal.Pais.Length > 0, Vta.ClienteSucursal.Pais, ""))) - params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) - ElseIf Vta.CveCliente.ToEntero > 0 Then - params.Add(New ReportParameter("ClienteCalle", If(Vta.Cliente.Direccion.Length > 0, Vta.Cliente.Direccion, ""))) - params.Add(New ReportParameter("ClienteColonia", If(Vta.Cliente.Colonia.Length > 0, Vta.Cliente.Colonia, ""))) - params.Add(New ReportParameter("ClienteCiudad", If(Vta.Cliente.Localidad IsNot Nothing And Vta.Cliente.Localidad.Length > 0, Vta.Cliente.Localidad, ""))) - params.Add(New ReportParameter("ClienteMunicipio", If(Vta.Cliente.Ciudad.Length > 0, Vta.Cliente.Ciudad, ""))) - params.Add(New ReportParameter("ClienteEstado", If(Vta.Cliente.Estado.Length > 0, Vta.Cliente.Estado, ""))) - params.Add(New ReportParameter("ClienteCP", If(Vta.Cliente.CP.Length > 0, Vta.Cliente.CP, ""))) - params.Add(New ReportParameter("ClienteNoInt", If(Vta.Cliente.NoInt.Length > 0, Vta.Cliente.NoInt, ""))) - params.Add(New ReportParameter("ClienteNoExt", If(Vta.Cliente.NoExt.Length > 0, Vta.Cliente.NoExt, ""))) - params.Add(New ReportParameter("ClientePais", If(Vta.Cliente.Pais.Length > 0, Vta.Cliente.Pais, ""))) - params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) - End If - - 'PARAMETROS SEGUN TIPO DOCUMENTO - Select Case Vta.TipoDocto - Case "Ing" - NombreArchivo = "Factura" - NombreArchivoDescarga = "Factura" - TipoDocumento = "INGRESO" - - If UsuarioActual.CveEmpresa.Contiene(137) Then - params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) - End If - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - 'VSH - If UsuarioActual.CveEmpresa.Contiene(4, 7, 11, 12, 122, 145) Then - 'DATOS CLIENTES - Dim ClienteRow = GlobalDTCliente(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveCliente = {0}", Vta.CveCliente.ToString)) - Dim DatosCliente = "" - If ClienteRow IsNot Nothing Then - DatosCliente = String.Format("{0} | {1} | {2}", Vta.SubProyecto.Municipio, ClienteRow("CuentaContable"), ClienteRow("Codigo")) - End If - params.Add(New ReportParameter("ClienteDatoExtra1", DatosCliente)) - End If - - 'ECONOLLANTAS - AGREGAR QR DE DESCARGA - If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) Then - Dim QRDescarga As String = "" - - Dim cfdi As New RVCFDI33.GeneraCFDI() - Dim b As Byte() = cfdi.ConvertirQrCode($"http://econollantas.adssistemas.mx/Ashx/E141.ashx?P={Encripta($"File={Vta.SerieFolio}.pdf")}") - QRDescarga = Convert.ToBase64String(b) - - params.Add(New ReportParameter("QRDescarga", QRDescarga)) - End If - - 'INE COMPLEMENTOS - If UsuarioActual.CveEmpresa.Contiene(72, 1) Then - Dim INETipoProceso As String = "" - Dim INETipoComite As String = "" - Dim INEIdContabilidad As Integer = 0 - If Vta.ComplementoINE IsNot Nothing Then - INETipoProceso = Vta.ComplementoINE.INETipoProceso - INETipoComite = Vta.ComplementoINE.INETipoComite - INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad - End If - params.Add(New ReportParameter("INETipoProceso", INETipoProceso)) - params.Add(New ReportParameter("INETipoComite", INETipoComite)) - params.Add(New ReportParameter("INEIdContabilidad", INEIdContabilidad.ToString)) - params.Add(New ReportParameter("Referencia", Vta.Cliente.ReferenciaFiscal)) - - End If - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Rem" - NombreArchivo = "Remision" - NombreArchivoDescarga = "Remisión" - TipoDocumento = "REMISION" - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Cot" - NombreArchivo = "Cotizacion" - NombreArchivoDescarga = "Cotización" - TipoDocumento = "COTIZACIÓN" - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) - - If UsuarioActual.CveEmpresa.Contiene(137, 132, 144) Then - params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) - End If - - 'COMPU DN DIFUSA - If UsuarioActual.CveEmpresa.Contiene(1, 72, 80, 119, 137, 132, 144, 177) Then - - Dim FirmaVendedor As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", UsuarioActual.Empresa.Ruta, Vta.CveVendedor)) - - params.Add(New ReportParameter("FirmaVendedor", If(FirmaVendedor.Exists, New Uri(Server.MapPath(String.Format("~/Empresas/{0}/Firmas/{1}.png", UsuarioActual.CveEmpresa, Vta.CveVendedor))).AbsoluteUri, ""))) - params.Add(New ReportParameter("Entrega", Vta.Entrega)) - params.Add(New ReportParameter("Vigencia", Vta.Vigencia.ToString("dd/MMMM/yyyy"))) - params.Add(New ReportParameter("Sucursal", Vta.SubProyecto.SubProyecto)) - params.Add(New ReportParameter("SucursalCliente", If(Vta.ClienteSucursal.Sucursal Is Nothing, "", Vta.ClienteSucursal.Sucursal.ToString))) - params.Add(New ReportParameter("CveMoneda", Vta.CveMoneda.ToString)) - params.Add(New ReportParameter("FormaEntrega", Vta.CondicionEntrega)) - - If Not IsNothing(RowVendedor) Then - params.Add(New ReportParameter("TituloVendedor", RowVendedor("TituloDocumentos").ToString)) - Else - params.Add(New ReportParameter("TituloVendedor", "")) - End If - - End If - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Egs" - If UsuarioActual.CveEmpresa.Contiene(72, 80) Then - NombreArchivo = "NotaCredito" - Else - NombreArchivo = "Factura" - End If - NombreArchivoDescarga = "Nota de Crédito" - TipoDocumento = "EGRESO" - TipoDocumentoRef = String.Format(": Ref.:{0}", Vta.RefDocto) - AplicaPagare = "0" - - If UsuarioActual.CveEmpresa.Contiene(137) Then - params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) - End If - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Ant" - NombreArchivo = "Factura" - NombreArchivoDescarga = "Anticipo" - TipoDocumento = "INGRESO" - - If UsuarioActual.CveEmpresa.Contiene(137) Then - params.Add(New ReportParameter("CveVenta", Vta.CveVenta.ToString)) - End If - - 'GENERAL - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - 'INE COMPLEMENTOS - If UsuarioActual.CveEmpresa.Contiene(72) Then - Dim INETipoProceso As String = "" - Dim INETipoComite As String = "" - Dim INEIdContabilidad As Integer = 0 - If Vta.ComplementoINE IsNot Nothing Then - INETipoProceso = Vta.ComplementoINE.INETipoProceso - INETipoComite = Vta.ComplementoINE.INETipoComite - INEIdContabilidad = Vta.ComplementoINE.INEIdContabilidad - End If - params.Add(New ReportParameter("INETipoProceso", INETipoProceso)) - params.Add(New ReportParameter("INETipoComite", INETipoComite)) - params.Add(New ReportParameter("INEIdContabilidad", INEIdContabilidad.ToString)) - params.Add(New ReportParameter("Referencia", Vta.Cliente.ReferenciaFiscal)) - params.Add(New ReportParameter("ClienteContacto", Vta.AtencionA)) - End If - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Ped" - NombreArchivo = "Pedido" - NombreArchivoDescarga = "Pedido" - TipoDocumento = "INGRESO" - - 'GENERAL - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - params.Add(New ReportParameter("CveAlmacenTraspasoOrigen", Vta.CveAlmacenTraspasoOrigen.ToString)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Pd2" - NombreArchivo = "Pedido2" - NombreArchivoDescarga = "Pedido2" - TipoDocumento = "INGRESO" - - 'GENERAL - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Dev" - NombreArchivo = "NotaDevolucion" - NombreArchivoDescarga = "NotaDevolucion" - TipoDocumento = "DEVOLUCION" - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "DPe" - NombreArchivo = "DevolucionPedido" - NombreArchivoDescarga = "DevolucionPedido" - TipoDocumento = "INGRESO" - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "PeC" - NombreArchivo = "PedidoConsignacion" - NombreArchivoDescarga = "Pedido Consignación" - TipoDocumento = "INGRESO" - - 'GENERAL - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - Case "Tra" - NombreArchivo = "Traspaso" - NombreArchivoDescarga = "Traslado" - TipoDocumento = "Traslado" - - Dim ObjInv As New ClsInventarios - Dim AlmOrigen As String = "" - Dim AlmDestino As String = "" - - Dim SBDireccionO As New StringBuilder() - Dim SBDireccionD As New StringBuilder() - - If ObjInv.GetMovimientos(Vta.Inv_CveMovimiento.ToEntero, -1, -1, UsuarioActual.CveEmpresa) Then - If ObjInv.DtResultados.Rows.Count > 0 Then - - Dim Dr As DataRow = ObjInv.DtResultados.Rows(0) - If Dr IsNot Nothing Then - AlmOrigen = Dr("AlmacenOrigen").ToString - AlmDestino = Dr("AlmacenDestino").ToString - - If Dr("CalleOrigen").ToString.Length > 0 Then - SBDireccionO.AppendFormat("{0}", Dr("CalleOrigen").ToString) - If Dr("NoExtOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", No.Ext: {0}", Dr("NoExtOrigen").ToString) - If Dr("ColoniaOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Col: {0}", Dr("ColoniaOrigen").ToString) - If Dr("CPOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", CP: {0}", Dr("CPOrigen").ToString) - If Dr("LocalidadOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Loc: {0}", Dr("LocalidadOrigen").ToString) - If Dr("MunicipioOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Cd: {0}", Dr("MunicipioOrigen").ToString) - If Dr("EstadoOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", Edo: {0}", Dr("EstadoOrigen").ToString) - If Dr("PaisOrigen").ToString.Length > 0 Then SBDireccionO.AppendFormat(", País: {0}", Dr("PaisOrigen").ToString) - End If - If Dr("CalleDestino").ToString.Length > 0 Then - SBDireccionD.AppendFormat("{0}", Dr("CalleDestino").ToString) - If Dr("NoExtDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", No.Ext: {0}", Dr("NoExtDestino").ToString) - If Dr("ColoniaDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Col: {0}", Dr("ColoniaDestino").ToString) - If Dr("CPDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", CP: {0}", Dr("CPDestino").ToString) - If Dr("LocalidadDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Loc: {0}", Dr("LocalidadDestino").ToString) - If Dr("MunicipioDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Cd: {0}", Dr("MunicipioDestino").ToString) - If Dr("EstadoDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", Edo: {0}", Dr("EstadoDestino").ToString) - If Dr("PaisDestino").ToString.Length > 0 Then SBDireccionD.AppendFormat(", País: {0}", Dr("PaisDestino").ToString) - End If - - - - End If - - - - End If - End If - - 'GENERAL - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - params.Add(New ReportParameter("AlmOrigen", AlmOrigen)) - params.Add(New ReportParameter("AlmDestino", AlmDestino)) - params.Add(New ReportParameter("DireccionOrigen", SBDireccionO.ToString)) - params.Add(New ReportParameter("DireccionDestino", SBDireccionD.ToString)) - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - - Case "RNC" - - NombreArchivo = "RemisionNC" - NombreArchivoDescarga = "RemisionNC" - TipoDocumento = "REMISION" - - params.Add(New ReportParameter("TipoDocumento", NombreArchivoDescarga)) - params.Add(New ReportParameter("Tipo", TipoDocumento)) - params.Add(New ReportParameter("Ref", TipoDocumentoRef)) - params.Add(New ReportParameter("AplicaPagare", AplicaPagare)) - - 'ALAN YEPIZ - If UsuarioActual.CveEmpresa.Contiene(123) Then - params.Add(New ReportParameter("DiaExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Day))) - params.Add(New ReportParameter("MesExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Month))) - params.Add(New ReportParameter("AñoExpedicion", String.Format("{0}", Vta.Fecha.ToDate.Year))) - End If - - RutaFormato = String.Format("{0}Formatos\{1}.rdlc", UsuarioActual.Empresa.Ruta, NombreArchivo) - RutaFormatoDefault = String.Format("Empresas\Grales\Formatos\{0}.rdlc", NombreArchivo) - - Case Else - NombreArchivo = "" - TipoDocumento = "" - End Select - - If NombreArchivo = "" Then - GuardaLog("No se especifico el tipo de Impresion de venta (Venta, Remision, Cotización, Nota de Crédito).") - Return Nothing - End If - 'TERMINA REGION PARAMETROS - - Dim lrds As New List(Of ReportDataSource) - 'Si es ECLIPSE CREAR COLUMAS PARA FIRMAS EN DtDetalle. - If UsuarioActual.CveEmpresa.Contiene(1, 15, 17, 71, 76, 126) AndAlso Vta.DtFirmas IsNot Nothing Then - Dim DtDetalleFirmas As New DataTable - DtDetalleFirmas.TableName = "DetalleFirma" - DtDetalleFirmas = Vta.DtDetalle.Copy() - - 'SI NO TIENE LAS COLUMNAS DE FIRMAS LAS CREA. - If Not DtDetalleFirmas.Columns.Contains("Titulo") Then - DtDetalleFirmas.Columns.Add("Titulo", GetType(String)) - DtDetalleFirmas.Columns.Add("Nombre", GetType(String)) - DtDetalleFirmas.Columns.Add("Puesto", GetType(String)) - DtDetalleFirmas.Columns.Add("Lado", GetType(Integer)) - End If - - 'Se llenan los Rows de las columnas con los datos del DtFirmas - For i As Integer = 0 To Vta.DtFirmas.Rows.Count - 1 - 'Si DtDetalle es menor al DtFirmas, crea un nuevo Row en DtDetalle y le asigna valor, Si no solo asigna valor - If DtDetalleFirmas.Rows.Count < i + 1 Then - Dim Dr = DtDetalleFirmas.NewRow - Dr("Titulo") = Vta.DtFirmas(i)("Titulo").ToString - Dr("Nombre") = Vta.DtFirmas(i)("Nombre").ToString - Dr("Puesto") = Vta.DtFirmas(i)("Puesto").ToString - Dr("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero - DtDetalleFirmas.Rows.Add(Dr) - Else - DtDetalleFirmas(i)("Titulo") = Vta.DtFirmas(i)("Titulo").ToString - DtDetalleFirmas(i)("Nombre") = Vta.DtFirmas(i)("Nombre").ToString - DtDetalleFirmas(i)("Puesto") = Vta.DtFirmas(i)("Puesto").ToString - DtDetalleFirmas(i)("Lado") = Vta.DtFirmas(i)("Lado").ToString.ToEntero - End If - Next i - - Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = DtDetalleFirmas} - lrds.Add(rds) - Else - Dim rds As New ReportDataSource With {.Name = "DsOC", .Value = Vta.DtDetalle} - lrds.Add(rds) - End If - - Dim rds1 As New ReportDataSource With {.Name = "DataSet1", .Value = If(Vta.DtDeduccion IsNot Nothing, Vta.DtDeduccion, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - lrds.Add(rds1) - - 'DETALLE FIRMAS - Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(Vta.DtFirmas IsNot Nothing, Vta.DtFirmas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - lrds.Add(rds2) - - Dim rds3 As New ReportDataSource With {.Name = "DataSet3", .Value = If(Vta.DtDesgloseImpuestos IsNot Nothing, Vta.DtDesgloseImpuestos, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - lrds.Add(rds3) - - Dim rds4 As New ReportDataSource With {.Name = "DataSet4", .Value = If(Vta.DtDocumentosRelacionados IsNot Nothing, Vta.DtDocumentosRelacionados, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - lrds.Add(rds4) - - If UsuarioActual.Empresa.Funcionalidad(707) = "1" OrElse UsarStimulsoft Then - If Vta.DtDocumentosRelacionados IsNot Nothing AndAlso Vta.DtDocumentosRelacionados.Rows.Count > 0 Then - params.Add(New ReportParameter("TieneDocumentosRelacionados", "True")) - Else - params.Add(New ReportParameter("TieneDocumentosRelacionados", "False")) - End If - End If - - Dim rds5 As New ReportDataSource With {.Name = "DataSet5", .Value = If(Vta.DtNCVinculadas IsNot Nothing, Vta.DtNCVinculadas, New DataTable)} ' sino esta creado el objeto, lo creamos, para que no truene el reporte - lrds.Add(rds5) - - - If RCETipoOperacion.Trim.Length > 0 Then - Dim rds6 As New ReportDataSource With {.Name = "CE_DT_Emisor", .Value = CE_DT_Emisor} - lrds.Add(rds6) - - Dim rds7 As New ReportDataSource With {.Name = "CE_DT_Receptor", .Value = CE_DT_Receptor} - lrds.Add(rds7) - - Dim rds8 As New ReportDataSource With {.Name = "CE_DT_Destinatario", .Value = CE_DT_Destinatario} - lrds.Add(rds8) - - Dim rds9 As New ReportDataSource With {.Name = "CE_DT_Mercancias", .Value = CE_DT_Mercancias} - lrds.Add(rds9) - - Dim rds10 As New ReportDataSource With {.Name = "CE_DT_Cabecera", .Value = CE_DT_Cabecera} - lrds.Add(rds10) - - End If - - - If UsuarioActual.CveEmpresa.Contiene(141, 152, 159, 160, 161, 162, 163) AndAlso (RutaFormato.Contains("Factura") Or RutaFormato.Contains("Cotizacion")) Then - params.Add(New ReportParameter("Kilometraje", Vta.Kilometraje.ToString)) - End If - 'Imprime los parametros - 'Dim ast As New StringBuilder - 'For Each par As ReportParameter In params - ' ast.AppendFormat("{0}{1}", par.Name, vbCrLf) - 'Next - 'ast.ToString.GuardaLog() - - 'PASAR LOS PARAMETROS SI TIENE SUBREPORTE - If SubReportData IsNot Nothing Then - For Each parametro As ReportParameter In SubReportData.Parametros - params.Add(parametro) - Next - End If - - 'TEMPORAL, DEBE CAMBIARSE A FUNCIONALIDAD - If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then - Dim ArchivoStimulsfot As New System.IO.FileInfo(RutaFormato.Replace(".rdlc", ".mrt")) - If ArchivoStimulsfot.Exists Then - UsarStimulsoft = True - - params.Add(New ReportParameter("RegimenFiscalEmpresa", String.Format("{0} - {1}", UsuarioActual.Empresa.CodigoRegimenFiscal, UsuarioActual.Empresa.RegimenFiscal))) - End If - End If - - If Not UsarStimulsoft Then - Dim Archivo As New System.IO.FileInfo(RutaFormato) - If Archivo.Exists Then - 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") - ' retorno = StreamBytesStimulsoft("Facturas", RutaFormato, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") - 'Else - ' retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing) - 'End If - retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing, SubReportData:=SubReportData) - - Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) - If Guardar Then - If Not ArchivoPDF.Exists Then - Try - DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) - DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) - File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - End Try - Else - Try - ArchivoPDF.Delete() - File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - End Try - End If - End If - Else - params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) - 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") - ' retorno = StreamBytesStimulsoft("Facturas", RutaFormatoDefault, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") - 'Else - ' retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing) - 'End If - retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing, SubReportData:=SubReportData) - End If - Else - RutaFormato = RutaFormato.Replace(".rdlc", ".mrt") - retorno = StreamBytesStimulsoft("Facturas", RutaFormato, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF") - - If UsuarioActual.Empresa.Funcionalidad(707) = "1" Then - Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio)) - If Guardar Then - If Not ArchivoPDF.Exists Then - Try - DirectoryExistsCreate(String.Format("{0}PDF", UsuarioActual.Empresa.Ruta)) - DirectoryExistsCreate(String.Format("{0}PDF\{1}", UsuarioActual.Empresa.Ruta, Vta.TipoDocto)) - File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - End Try - Else - Try - ArchivoPDF.Delete() - File.WriteAllBytes(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio), retorno) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - End Try - End If - End If - End If - - End If - - Catch ex As Exception - GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) - End Try - - Return retorno - End Function - - Protected Function StreamBytesStimulsoft(Opcion As String, RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF", Optional NombreDataSource As String = "Datos") As Byte() - 'limpio ReportViwer - Dim sw As New System.Diagnostics.Stopwatch() - sw.Start() - Dim Bytes As Byte() = Nothing - - Dim CveUsuario As Integer = 0 - Dim CveEmpresa As Integer = 0 - Dim RutaEmpresa As String = "" - - If Context.Session("UsuarioSIG") IsNot Nothing Then - CveUsuario = UsuarioActual.CveUsuario - CveEmpresa = UsuarioActual.CveEmpresa - RutaEmpresa = UsuarioActual.Empresa.RutaArchivos - End If - - Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory) - - 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA - If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") Then - bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "") - End If - - RutaReporte.Replace("/", "\") - - If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then - RutaReporte = String.Format("{0}{1}", bdir, RutaReporte) - End If - Dim urlHost As String = "http://localhost:2202/" - If EsProduccion Then - urlHost = "http://sig.adssistemas.mx:6599/" - End If - 'SITIO DE PRUEBA EN IIS - Dim Url = New Uri(String.Format("{0}{1}", urlHost, Opcion)) - - Try - Dim dataSourceArray As New JArray() - Dim paramsArray As New JArray() - - For Each rds As ReportDataSource In DataSource - Dim Nombre As String = rds.Name - - If RutaReporte.Contains("Factura.mrt") OrElse RutaReporte.Contains("Remision.mrt") OrElse RutaReporte.Contains("Cotizacion.mrt") OrElse RutaReporte.Contains("NotaDevolucion.mrt") Then - Select Case rds.Name - Case "DsOC" - Nombre = "DtDetalle" - Case "DataSet1" - Nombre = "DtTotales" - Case "DataSet2" - Nombre = "DtFirmas" - Case "DataSet3" - Nombre = "DtImpuestos" - Case "DataSet4" - Nombre = "DtDocumentosRelacionados" - Case "DataSet5" - Nombre = "DtNCVinculadas" - End Select - End If - - dataSourceArray.Add(New JObject(New JProperty("Nombre", Nombre), New JProperty("Valor", JArray.Parse(JsonConvert.SerializeObject(rds.Value))))) - Next - - For Each param As ReportParameter In Parametros - paramsArray.Add(New JObject(New JProperty("Nombre", param.Name), New JProperty("Valor", param.Values.Item(0)))) - Next - - Dim payload As New JObject( - New JProperty("formato", Formato), - New JProperty("ruta", RutaReporte), - New JProperty("nombreDataSource", NombreDataSource), - New JProperty("UsarFormatoCompilado", False), - New JProperty("parametros", paramsArray), - New JProperty("dataSource", dataSourceArray) - ) - - Dim data = New StringContent(payload.ToString(), Encoding.UTF8, "application/json") - - Using httpClient = New HttpClient() - Using request = New HttpRequestMessage(HttpMethod.Post, Url) - 'request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks))) - request.Content = New StringContent(payload.ToString(), Encoding.UTF8, "application/json") - Dim response = httpClient.SendAsync(request).Result - If response.StatusCode = Net.HttpStatusCode.OK Then - Bytes = response.Content.ReadAsByteArrayAsync().Result - End If - End Using - End Using - Catch ex As Exception - OnError("Ocurrió un error al descargar la factura", ex) - End Try - - sw.Stop() - - If sw.Elapsed.TotalSeconds > 5 Then - GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ") - End If - - Return Bytes - End Function - Private Function ValorNodoXML(n As System.Xml.XmlNode, Campo As String, Optional Retorno As String = "") As String - Dim o As System.Xml.XmlNode = n.Attributes.Cast(Of System.Xml.XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) - If o Is Nothing Then - Return Retorno - Else - Return o.Value - End If - End Function - Public Sub GenerarFacturaVenta(CveVenta As Integer) - Dim ObjVentas As New ClsVentas - Dim Vta As Modelos.Factura = Nothing - - Dim TmpDTImpuestos = New DataTable - TmpDTImpuestos.Columns.Add("ImpuestoLocal", GetType(String)) - TmpDTImpuestos.Columns.Add("Importe", GetType(Double)) - TmpDTImpuestos.Columns.Add("Orden", GetType(Integer)) - - If ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa, False) AndAlso ObjVentas.DtResultados.Rows.Count > 0 Then - Dim dtVentas As DataTable = ObjVentas.DtResultados - - ' se rellenan los campos de la factura - Vta = ObjVentas.DtResultados.Rows(0).DataRowToObject(Of Modelos.Factura) - - Vta.MonedaAbreviatura = dtVentas(0)("Abreviatura").ToString - 'se rellena la sucursal - Vta.SubProyecto = ObjVentas.DtResultados.Rows(0).DataRowToObject(Of Modelos.SubProyectoModel) - Vta.Cliente = New Modelos.ClienteModel - Vta.Cliente.Nombre = dtVentas(0)("ClienteNombre").ToString - Vta.Cliente.Telefono = dtVentas(0)("Telefono").ToString - Vta.Cliente.Direccion = dtVentas(0)("ClienteDireccion").ToString - Vta.Cliente.CP = dtVentas(0)("CPCliente").ToString - Vta.Cliente.Ciudad = dtVentas(0)("ClienteCiudad").ToString - Vta.Cliente.Localidad = dtVentas(0)("ClienteLocalidad").ToString - Vta.Cliente.Estado = dtVentas(0)("ClienteEstado").ToString - Vta.Cliente.Pais = dtVentas(0)("ClientePais").ToString - Vta.Cliente.RFC = dtVentas(0)("ClienteRFC").ToString - Vta.Cliente.Colonia = dtVentas(0)("ColoniaCliente").ToString - Vta.AtencionA = dtVentas(0)("AtencionA").ToString - Vta.TelefonoGenerico = dtVentas(0)("TelefonoGenerico").ToString - Vta.Cliente.NoExt = dtVentas(0)("ClienteNoExt").ToString - Vta.Cliente.NoInt = dtVentas(0)("ClienteNoInt").ToString - Vta.Cliente.Codigo = dtVentas(0)("ClienteCodigo").ToString - Vta.Cliente.Mail = dtVentas(0)("Mail").ToString - Vta.RefDocto = dtVentas(0)("Ref").ToString - Vta.CveVenta = dtVentas(0)("CveVenta").ToString.ToEntero - Vta.Version = dtVentas(0)("Version").ToString - - Vta.ClienteSucursal = New Modelos.SucursalModel - Vta.ClienteSucursal.Direccion = dtVentas(0)("SucClienteDireccion").ToString - Vta.ClienteSucursal.NoExt = dtVentas(0)("SucClienteNoExt").ToString - Vta.ClienteSucursal.NoInt = dtVentas(0)("SucClienteNoInt").ToString - Vta.ClienteSucursal.Colonia = dtVentas(0)("SucClienteColonia").ToString - Vta.ClienteSucursal.CP = dtVentas(0)("SucClienteCP").ToString - Vta.ClienteSucursal.Municipio = dtVentas(0)("SucClienteCiudad").ToString - Vta.ClienteSucursal.Estado = dtVentas(0)("SucClienteEstado").ToString - Vta.ClienteSucursal.Pais = dtVentas(0)("SucClientePais").ToString - Vta.ClienteSucursal.Localidad = dtVentas(0)("SucClienteLocalidad").ToString - Vta.ClienteSucursal.CorreoSucursal = dtVentas(0)("SucClienteCorreo").ToString - Vta.ClienteSucursal.TelefonoSucursal = dtVentas(0)("SucClienteTelefono").ToString - Vta.ClienteSucursal.Sucursal = dtVentas(0)("SucursalCliente").ToString - - Vta.EnviarA = New Modelos.EnviarAModel - Vta.EnviarA.CveDireccionEnvio = dtVentas(0)("CveDireccionEnvio").ToString.ToEntero - Vta.EnviarA.EnvioDireccion = dtVentas(0)("EnvioDireccion").ToString - Vta.EnviarA.EnvioColonia = dtVentas(0)("EnvioColonia").ToString - Vta.EnviarA.EnvioCiudad = dtVentas(0)("EnvioCiudad").ToString - Vta.EnviarA.EnvioEstado = dtVentas(0)("EnvioEstado").ToString - Vta.EnviarA.EnvioCP = dtVentas(0)("EnvioCP").ToString - - Dim DR As DataRow = TmpDTImpuestos.NewRow() - If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then - If dtVentas(0)("SubTotal").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Subtotal" : DR("Importe") = dtVentas(0)("SubTotal").ToString.ToDouble : DR("Orden") = 10 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("Descuento").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Descuentos" : DR("Importe") = dtVentas(0)("Descuento").ToString.ToDouble : DR("Orden") = 20 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("Amortizacion").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Amort.Ant" : DR("Importe") = dtVentas(0)("Amortizacion").ToString.ToDouble : DR("Orden") = 30 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("SubTotal").ToString.ToDouble <> (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) Then DR("ImpuestoLocal") = "SubTotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) : DR("Orden") = 40 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("IVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "IVA" : DR("Importe") = dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 50 : TmpDTImpuestos.Rows.Add(DR) - - 'solo para eclipse, que muesre un subtotal debajo de IVA - If UsuarioActual.CveEmpresa = 15 Then DR = TmpDTImpuestos.NewRow() : DR("ImpuestoLocal") = "Subtotal2" : DR("Importe") = (dtVentas(0)("SubTotal").ToString.ToDouble - dtVentas(0)("Descuento").ToString.ToDouble - dtVentas(0)("Amortizacion").ToString.ToDouble) + dtVentas(0)("IVA").ToString.ToDouble : DR("Orden") = 51 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("RetIVA").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.IVA" : DR("Importe") = dtVentas(0)("RetIVA").ToString.ToDouble : DR("Orden") = 60 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("RetISR").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Ret.ISR" : DR("Importe") = dtVentas(0)("RetISR").ToString.ToDouble : DR("Orden") = 70 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - If dtVentas(0)("Total").ToString.ToDouble <> 0 Then DR("ImpuestoLocal") = "Total" : DR("Importe") = dtVentas(0)("Total").ToString.ToDouble : DR("Orden") = 1000 : TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - End If - - If ObjVentas.GetVentaDetalle(CveVenta) Then 'Obtenemos el Detalle de la Oorden de Compra - Vta.DtDetalle = ObjVentas.DtResultados - End If - - If ObjVentas.GetVentaImpuestosLocales(CveVenta) Then - If UsuarioActual.CveEmpresa.Contiene(1, 5, 15, 17, 72, 66, 79, 81, 109, 110, 111, 76) Then - Dim dtImpuesto As DataTable = ObjVentas.DtResultados - If dtImpuesto.Rows.Count > 0 Then - For Each Row As DataRow In dtImpuesto.Rows - Dim Orden = 80 - If Row("Importe").ToString.ToDouble <> 0 Then - DR("ImpuestoLocal") = Row("ImpuestoLocal").ToString - DR("Importe") = Row("Importe").ToString.ToDouble - DR("Orden") = Orden - TmpDTImpuestos.Rows.Add(DR) - DR = TmpDTImpuestos.NewRow() - Orden = Orden + 1 - End If - Next - End If - Vta.DtDeduccion = TmpDTImpuestos.FiltraParametros("", Orderby:="Orden ASC") - Else - Vta.DtDeduccion = ObjVentas.DtResultados - End If - End If - - If ObjVentas.GetVentasFirmas(CveVenta) Then - Vta.DtFirmas = ObjVentas.DtResultados - End If - End If - ObjVentas.Dispose() - - If Not IsNothing(Vta) Then - PdfFactura(Vta) - Vta = Nothing - End If - - End Sub -#End Region - -#Region " PDF OC NEW 3.0" - Public Function NewGeneraBytesOC(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() - Dim bytes As Byte() = Nothing - Dim CveEmpresaActual As Integer - Dim TmpDTEnvioDireccion As DataTable - Dim params As New List(Of ReportParameter) - - Try - - Dim DtDetalle As DataTable = Nothing - Dim ObjOC As New ClsOC - - If ObjOC.GetOC(tCveOrdenCompra, UsuarioActual.CveEmpresa, CveUsuario:=UsuarioActual.CveUsuario) Then - CveEmpresaActual = ObjOC.CveEmpresa - - Dim ObjEmpresa As New ClsSisEmpresas() - Dim EmpresaActual As New Empresa - If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then - 'Session("Empresa") = ObjEmpresa - If ObjEmpresa.GetEmpresasFuncionalidades(CveEmpresaActual) Then - Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados - - Dim EmpresasFuncionalidades As New HybridDictionary - For Each Row As Data.DataRow In dttmp.Rows - EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString) - Next - ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades) - End If - - EmpresaActual = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - - Dim dtOC As DataTable = ObjOC.DtResultados - If ObjOC.GetOrdenesDetalle(ObjOC.CveOrdenCompra) Then 'Obtenemos el Detalle de la Oorden de Compra - DtDetalle = ObjOC.DtResultados - End If - - - 'Obtenemos la sucursal de la OC PARA COMPU PROVEEDORES - Dim DomicilioSucursal As String = "" - - If UsuarioActual.CveEmpresa.Contiene(72, 80) Then - Dim SBDomicilioSucursal As New StringBuilder() - Dim CiudadSucursal As String = "" - Dim ObjClientes As New ClsClientes - - If ObjOC.GetSucursalOC(ObjOC.CveOrdenCompra) AndAlso ObjOC.DtResultados.Rows.Count > 0 Then - - CiudadSucursal = String.Format("{0},{1}", ObjOC.SucMunicipio, ObjOC.SucEstado) - - SBDomicilioSucursal.AppendFormat("{0}", ObjOC.SucCalle) - If ObjOC.SucNoExt.Length > 0 Then SBDomicilioSucursal.AppendFormat(" No.Ext: {0}", ObjOC.SucNoExt) - If ObjOC.SucNoInt.Length > 0 Then SBDomicilioSucursal.AppendFormat(", No.Int: {0}", ObjOC.SucNoInt) - If ObjOC.SucColonia.Length > 0 Then SBDomicilioSucursal.AppendFormat(", Col: {0}", ObjOC.SucColonia) - If ObjOC.SucCP.Length > 0 Then SBDomicilioSucursal.AppendFormat(", CP: {0}", ObjOC.SucCP) - If CiudadSucursal.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", CiudadSucursal) - If ObjOC.SucPais.Length > 0 Then SBDomicilioSucursal.AppendFormat(", {0}", ObjOC.SucPais) - - DomicilioSucursal = SBDomicilioSucursal.ToString - params.Add(New ReportParameter("Proyecto", ObjOC.SucSubProyecto.ToString)) - params.Add(New ReportParameter("Telefono", ObjOC.SucTelefono.ToString)) - - 'Obtenemos la direccion envio PARA COMPU PROVEEDORES - If ObjOC.CveDireccionEnvio > 0 Then - Dim StrEnvioDi As New StringBuilder - - If ObjClientes.DireccionEnvioGet(ObjOC.CveDireccionEnvio, ObjOC.CveCliente, -1) Then - TmpDTEnvioDireccion = ObjClientes.DtResultados - Else - TmpDTEnvioDireccion = Nothing - End If - ObjClientes.Dispose() - - - If TmpDTEnvioDireccion IsNot Nothing AndAlso TmpDTEnvioDireccion.FiltraParametros(String.Format("CveDireccionEnvio = {0}", ObjOC.CveDireccionEnvio)).Rows.Count > 0 Then - StrEnvioDi.AppendFormat("{0}", TmpDTEnvioDireccion(0)("EnvioDireccion")) - If TmpDTEnvioDireccion(0)("EnvioNoExt") IsNot Nothing AndAlso TmpDTEnvioDireccion(0)("EnvioNoExt").ToString.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", TmpDTEnvioDireccion(0)("EnvioNoExt")) - If TmpDTEnvioDireccion(0)("EnvioNoInt") IsNot Nothing AndAlso TmpDTEnvioDireccion(0)("EnvioNoInt").ToString.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", TmpDTEnvioDireccion(0)("EnvioNoInt")) - - params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) - params.Add(New ReportParameter("EnvioNoExt", TmpDTEnvioDireccion(0)("EnvioNoExt").ToString)) - params.Add(New ReportParameter("EnvioNoInt", TmpDTEnvioDireccion(0)("EnvioNoInt").ToString)) - params.Add(New ReportParameter("EnvioColonia", TmpDTEnvioDireccion(0)("EnvioColonia").ToString)) - params.Add(New ReportParameter("EnvioCiudad", TmpDTEnvioDireccion(0)("EnvioCiudad").ToString)) - params.Add(New ReportParameter("EnvioEstado", TmpDTEnvioDireccion(0)("EnvioEstado").ToString)) - params.Add(New ReportParameter("EnvioContacto", TmpDTEnvioDireccion(0)("EnvioContacto").ToString)) - params.Add(New ReportParameter("EnvioDepartamento", TmpDTEnvioDireccion(0)("EnvioDepartamento").ToString)) - params.Add(New ReportParameter("EnvioCP", TmpDTEnvioDireccion(0)("EnvioCP").ToString)) - params.Add(New ReportParameter("EnvioTel", TmpDTEnvioDireccion(0)("EnvioTel").ToString)) - End If - - Else - - If ObjOC.LugarEntrega.ToString IsNot Nothing AndAlso ObjOC.LugarEntrega.ToString = "" Then - Dim StrEnvioDi As New StringBuilder - StrEnvioDi.AppendFormat("{0}", ObjOC.SucCalle) - If ObjOC.SucNoExt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Ext: {0}", ObjOC.SucNoExt) - If ObjOC.SucNoInt.Length > 0 Then StrEnvioDi.AppendFormat(", No.Int: {0}", ObjOC.SucNoInt) - params.Add(New ReportParameter("EnvioDireccion", StrEnvioDi.ToString)) - params.Add(New ReportParameter("EnvioColonia", If(ObjOC.SucColonia.Length > 0, ObjOC.SucColonia, ""))) - params.Add(New ReportParameter("EnvioCiudad", If(ObjOC.SucMunicipio.Length > 0, ObjOC.SucMunicipio, ""))) - params.Add(New ReportParameter("EnvioEstado", If(ObjOC.SucEstado.Length > 0, ObjOC.SucEstado, ""))) - params.Add(New ReportParameter("EnvioCP", If(ObjOC.SucCP.Length > 0, ObjOC.SucCP, ""))) - Else - params.Add(New ReportParameter("EnvioDireccion", ObjOC.LugarEntrega)) - params.Add(New ReportParameter("LugarEntrega", ObjOC.LugarEntrega)) - End If - params.Add(New ReportParameter("EnvioTel", ObjOC.SucTelefono.ToString)) - - - End If - - End If - End If - - - Dim CveUsuarioSol As Integer = dtOC(0)("CveUsuarioSolicito").ToString.ToEntero - Dim CveUsuarioAut As Integer = dtOC(0)("CveUsuarioAutorizo").ToString.ToEntero - Dim drSol As DataRow = GlobalDTUsuarios(CveUsuarioSol, EmpresaActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien SOLICITÓ la OC) - Dim drAut As DataRow = GlobalDTUsuarios(CveUsuarioAut, EmpresaActual.CveEmpresa).FiltroPrimero("") 'DataRow (incluye el NOMBRE de quien AUTORIZÓ la OC) - - Dim CvePersonalSol, CvePersonalAut As Integer - - Dim PuestoSol As String = "" - Dim PuestoAut As String = "" - - If drSol IsNot Nothing AndAlso drSol("CvePersonal").ToString.ToEntero > 0 Then CvePersonalSol = drSol("CvePersonal").ToString.ToEntero - If drAut IsNot Nothing AndAlso drAut("CvePersonal").ToString.ToEntero > 0 Then CvePersonalAut = drAut("CvePersonal").ToString.ToEntero - - Dim ObjRH As New ClsRH() - If ObjRH.GetPersonal(CvePersonalSol, EmpresaActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then - PuestoSol = ObjRH.DtResultados(0)("Puesto").ToString - End If - If ObjRH.GetPersonal(CvePersonalAut, EmpresaActual.CveEmpresa) AndAlso ObjRH.DtResultados.Rows.Count > 0 Then - PuestoAut = ObjRH.DtResultados(0)("Puesto").ToString - End If - ObjRH.Dispose() - - Dim TipoCambio As String - If ObjOC.CveMoneda = 1 Then - TipoCambio = "1.00" - Else - TipoCambio = GlobalTipoCambio.ToString() - End If - - - - Dim nombreautorizo As String = dtOC(0)("UsuarioAutorizo").ToString - - 'If EmpresaActual = 48 Then - ' nombreautorizo = "Lic. LUIS JORGE CONTRERAS LANDGRAVE" - 'End If - Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta)) - If Not Archivo.Exists OrElse EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 13, 72, 80, 83, 122, 126, 158) Then - params.Add(New ReportParameter("Descuento", DtDetalle.SUM("Descuento").ToString.FormatoNumero(2))) - End If - 'DATOS PARA DESCUENTO - If EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 13, 72, 80, 83, 119, 122, 126, 158) Then 'EMPRESAS QUE YA TIENEN EL AJUSTE EN EL FORMATO - params.Add(New ReportParameter("SubTotal", ObjOC.SubTotal.ToString)) - params.Add(New ReportParameter("SubTotal2", DtDetalle.SUM("Total").ToString)) - Else - params.Add(New ReportParameter("SubTotal", DtDetalle.SUM("Total").ToString)) - End If - - If EmpresaActual.CveEmpresa.Contiene(4, 145, 7, 11, 12, 122) Then - - params.Add(New ReportParameter("ReferenciaBancaria", dtOC(0)("BancoCuenta").ToString)) - params.Add(New ReportParameter("ReferenciaBanco", dtOC(0)("BancoNombre").ToString)) - params.Add(New ReportParameter("Justificacion", dtOC(0)("Justificacion").ToString)) - params.Add(New ReportParameter("TipoTermino", ObjOC.TipoTermino.ToString)) - params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("SubProyecto").ToString, ""))) - Else - params.Add(New ReportParameter("Proyecto", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) - End If - params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) - - params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) - params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial)) - params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega)) - params.Add(New ReportParameter("Estatus", ObjOC.Estatus)) - params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion)) - params.Add(New ReportParameter("Asunto", ObjOC.Justificacion)) - params.Add(New ReportParameter("FechaEntrega", ObjOC.FechaEstimadaEntrega.ToString("dd/MM/yyyy"))) - params.Add(New ReportParameter("FechaSolicitud", String.Format("{0}T{1}", ObjOC.Fecha.ToString("dd/MM/yyyy"), ObjOC.HoraElaboracion.ToString))) - - params.Add(New ReportParameter("ProveedorDireccion", If(ObjOC.CveProveedorSucursal > 0, ObjOC.SucursalDireccion, ObjOC.Direccion))) - params.Add(New ReportParameter("ProveedorTel", If(ObjOC.CveProveedorSucursal > 0, ObjOC.SucursalTelefono, ObjOC.Telefono))) - If UsuarioActual.CveEmpresa = 119 Then - params.Add(New ReportParameter("TipoProveedor", ObjOC.TipoProveedor)) - End If - params.Add(New ReportParameter("ProveedorRFC", ObjOC.RFC)) - params.Add(New ReportParameter("IVA", ObjOC.IVA.ToString)) - params.Add(New ReportParameter("RetIVA", ObjOC.RetIVA.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("RetISR", ObjOC.RetISR.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("IEPS", ObjOC.IEPS.ToString.FormatoNumero(2))) - params.Add(New ReportParameter("Total", ObjOC.Total.ToString)) - params.Add(New ReportParameter("ImporteLetra", (ObjOC.Total).ToString.ToDouble.Texto2Letras(ObjOC.CveMoneda))) - params.Add(New ReportParameter("CorreoControl", If(drAut IsNot Nothing, drAut("Correo").ToString, ""))) - params.Add(New ReportParameter("Moneda", ObjOC.Moneda)) - params.Add(New ReportParameter("TipoCambio", TipoCambio)) - params.Add(New ReportParameter("NombreSolicito", dtOC(0)("UsuarioSolicito").ToString)) 'drSol("Nombre").ToString)) - params.Add(New ReportParameter("PuestoSolicito", PuestoSol)) 'drPuestoSol("Puesto").ToString - params.Add(New ReportParameter("NombreAutorizo", nombreautorizo)) - params.Add(New ReportParameter("PuestoAutorizo", PuestoAut)) 'drPuestoAut("Puesto").ToString - params.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) - params.Add(New ReportParameter("UsoCFDI", ObjOC.UsoCFDI)) - - - If UsuarioActual.CveEmpresa.Contiene(72, 80, 172) Then - - params.Add(New ReportParameter("FolioAdicional", dtOC(0)("FolioAdicional").ToString)) - params.Add(New ReportParameter("Vendedor", dtOC(0)("Vendedor").ToString)) - params.Add(New ReportParameter("Observacion", dtOC(0)("PrioridadObservacion").ToString)) - params.Add(New ReportParameter("EntregarA", ObjOC.LugarEntrega)) - params.Add(New ReportParameter("EntregaDirecta", ObjOC.EntregaDirecta.ToString)) - params.Add(New ReportParameter("NombreCliente", ObjOC.NombreCliente.ToString)) - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) - params.Add(New ReportParameter("DomicilioSucursal", DomicilioSucursal)) - params.Add(New ReportParameter("ProveedorContacto", ObjOC.ProveedorContacto)) - params.Add(New ReportParameter("Comprador", ObjOC.UsuarioAsignado)) - End If - - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then - Dim ObjCuentasBancos As New ClsGenerales() - If ObjCuentasBancos.GetCuentasDepositos(CveProveedor:=ObjOC.CveProveedor) Then - Dim CuentasActivas As DataTable = ObjCuentasBancos.DtResultados.FiltraParametros("EstatusTexto = 'Activo'") - Dim CuentasStr As New StringBuilder("") - For Each CuentasBancarios As DataRow In CuentasActivas.Rows - Dim CuentaClabe As String = If(CuentasBancarios.Item("BancoNombre").ToString.Contains("BBVA") Or CuentasBancarios.Item("BancoNombre").ToString.Contains("BANCOMER"), CuentasBancarios.Item("Cuenta").ToString, CuentasBancarios.Item("CLABE").ToString) - Dim infoCuenta As String = String.Format("
{0} {1}: {2}", CuentasBancarios.Item("BancoNombre").ToString, CuentasBancarios.Item("Abreviatura").ToString, CuentaClabe) - CuentasStr.AppendFormat(infoCuenta) - Next - params.Add(New ReportParameter("Cuentas", CuentasStr.ToString)) - End If - ObjCuentasBancos.Dispose() - End If - 'params.Add(New ReportParameter("FechaOC", ObjOC.Fecha.ToShortDateString)) - Dim RutaFisicaSol As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioSol) - Dim RutaVirtuaSol As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaSol)) - Dim FirmaSol As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioSol)) - 'params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, RutaVirtuaSol, ""))) - params.Add(New ReportParameter("FirmaSolicito", If(FirmaSol.Exists, ImageToBase64(Drawing.Image.FromFile(FirmaSol.FullName), Drawing.Imaging.ImageFormat.Png), ""))) - - Dim RutaFisicaAut As String = String.Format("Empresas\{0}\Firmas\{1}.png", EmpresaActual.CveEmpresa, CveUsuarioAut) - Dim RutaVirtuaAut As String = String.Format("{0}://{1}:{2}/ashx/sigfiles.ashx?P={3}", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, Encripta(RutaFisicaAut)) - Dim FirmaAut As New System.IO.FileInfo(String.Format("{0}Firmas\{1}.png", EmpresaActual.Ruta, CveUsuarioAut)) - 'params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, RutaVirtuaAut, ""))) - params.Add(New ReportParameter("FirmaAutorizo", If(FirmaAut.Exists, ImageToBase64(Drawing.Image.FromFile(FirmaAut.FullName), Drawing.Imaging.ImageFormat.Png), ""))) - - - - - If Archivo.Exists Then - bytes = StreamPDF(String.Format("{0}Formatos\OC.rdlc", EmpresaActual.Ruta), DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) - Else - params.Add(New ReportParameter("Empresa", EmpresaActual.Empresa)) - bytes = StreamPDF("Empresas\Grales\Formatos\OC.rdlc", DtDetalle, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) - End If - - If ConBitacora Then - Dim dttemp As New DataTable - Dim ObjEventoBitacora As New ClsOIEventos() - If ObjEventoBitacora.GetAgendaBitacora(UsuarioActual.CveUsuario, EmpresaActual.CveEmpresa, CveOC:=tCveOrdenCompra) Then - dttemp = ObjEventoBitacora.DtResultados.FiltraParametros("CveTipoEvento = 6 OR CveTipoEvento = 2") - End If - ObjEventoBitacora.Dispose() - If Not IsNothing(dttemp) AndAlso dttemp.Rows.Count > 0 Then - - Dim paramsest As New List(Of ReportParameter) - paramsest.Add(New ReportParameter("Empresa", EmpresaActual.Empresa)) - paramsest.Add(New ReportParameter("Titulo", "Bitácora de órdenes de compra")) - paramsest.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) - paramsest.Add(New ReportParameter("TipoOC", If(ObjOC.Tipo = "OC", "Orden de Compra", "Requisición"))) - Dim bytes2 As Byte() - bytes2 = StreamPDF("Empresas\Grales\Formatos\Bitacora.rdlc", dttemp, paramsest, $"OC_{ObjOC.Folio.ToString}", MR:=MR) - Using ms As New MemoryStream() - Using pdfdoc As New PdfDocument(New PdfReader(ms)) - pdfdoc.InitializeOutlines() - - Dim addedDoc As New PdfDocument(New PdfReader(New MemoryStream(bytes))) - - addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) - addedDoc.Close() - - addedDoc = New PdfDocument(New PdfReader(New MemoryStream(bytes2))) - - addedDoc.CopyPagesTo(1, addedDoc.GetNumberOfPages(), pdfdoc) - addedDoc.Close() - - End Using - bytes = ms.ToArray() - End Using - End If - dttemp.Dispose() - End If - - End If - ObjOC.Dispose() - - DtDetalle.Dispose() - - Catch ex As Exception - GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message)) - End Try - - Return bytes - End Function - - - - Public Function ImageToBase64(ByVal image As System.Drawing.Image, ByVal format As System.Drawing.Imaging.ImageFormat) As String - Dim base64String As String = "" - - - Try - Using ms As New System.IO.MemoryStream() - image.Save(ms, format) - Dim imageBytes As Byte() = ms.ToArray() - base64String = Convert.ToBase64String(imageBytes) - End Using - Catch ex As Exception - GuardaLog(String.Format("Ocurrio un error al generar convertir la imagen a Base64 {0}", ex.Message)) - End Try - - Return base64String - End Function - - - Public Function NewGeneraOCCotizacion(tCveOrdenCompra As Integer, Optional MR As ReportViewer = Nothing, Optional ConBitacora As Boolean = False) As Byte() - Dim bytes As Byte() = Nothing - Dim CveEmpresaActual As Integer - - Try - Dim DtDetalle As DataTable = Nothing - Dim ObjOC As New ClsOC - - If ObjOC.GetOC(tCveOrdenCompra, UsuarioActual.CveEmpresa, CveUsuario:=UsuarioActual.CveUsuario) Then - CveEmpresaActual = ObjOC.CveEmpresa - - Dim ObjEmpresa As New ClsSisEmpresas() - Dim EmpresaActual As New Empresa - If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then - EmpresaActual = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - - '-----------------------COTIZACIONES-------------------------- - Dim params As New List(Of ReportParameter) - Dim NumCotizaciones = 0 - Dim DtCotizaciones As New DataTable - Dim ProveedoresCotizacion = New ArrayList - Dim Ds As DataSet = ObjOC.GetCotizacionesTabla(tCveOrdenCompra) - If Ds IsNot Nothing AndAlso Ds.Tables.Count = 2 Then - For Each Dr2 As DataRow In Ds.Tables(1).Rows - ProveedoresCotizacion.Add(Dr2("RazonSocial")) - Next - NumCotizaciones = Ds.Tables(1).Rows.Count - DtCotizaciones = Ds.Tables(0) - - If Not DtCotizaciones.Columns.Contains("PU1") Then DtCotizaciones.Columns.Add("PU1", GetType(String)) - If Not DtCotizaciones.Columns.Contains("PU2") Then DtCotizaciones.Columns.Add("PU2", GetType(String)) - If Not DtCotizaciones.Columns.Contains("PU3") Then DtCotizaciones.Columns.Add("PU3", GetType(String)) - If Not DtCotizaciones.Columns.Contains("PU4") Then DtCotizaciones.Columns.Add("PU4", GetType(String)) - If Not DtCotizaciones.Columns.Contains("PU5") Then DtCotizaciones.Columns.Add("PU5", GetType(String)) - - End If - - 'COTIZACION - For Index = 1 To 5 - Try - params.Add(New ReportParameter($"Cotizacion{Index.ToString}", ProveedoresCotizacion(Index - 1).ToString)) - Catch ex As Exception - params.Add(New ReportParameter($"Cotizacion{Index.ToString}", "")) - End Try - Next - - params.Add(New ReportParameter("CentroCostos", If(DtDetalle IsNot Nothing AndAlso DtDetalle.Rows.Count > 0, DtDetalle.MAX("Proyecto").ToString, ""))) - params.Add(New ReportParameter("Folio", ObjOC.Folio.ToString)) - params.Add(New ReportParameter("ProveedorNombre", ObjOC.RazonSocial)) - params.Add(New ReportParameter("ProveedorLugar", ObjOC.LugarEntrega)) - params.Add(New ReportParameter("Estatus", ObjOC.Estatus)) - params.Add(New ReportParameter("Descripcion", ObjOC.Descripcion)) - params.Add(New ReportParameter("Asunto", ObjOC.Justificacion)) - params.Add(New ReportParameter("FechaEntrega", ObjOC.FechaEstimadaEntrega.ToShortDateString)) - params.Add(New ReportParameter("FechaSolicitud", ObjOC.Fecha.ToShortDateString)) - - Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos\CotizacionOC.rdlc", EmpresaActual.Ruta)) - If Archivo.Exists Then - bytes = StreamPDF(String.Format("{0}Formatos\CotizacionOC.rdlc", EmpresaActual.Ruta), DtCotizaciones, params, $"OC_{ObjOC.Folio.ToString}", RDSName:="DsOC", MR:=MR) - End If - End If - ObjOC.Dispose() - DtDetalle.Dispose() - Catch ex As Exception - GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", tCveOrdenCompra, ex.Message)) - End Try - Return bytes - End Function -#End Region - -#Region "NEW RepProveedorCxP.rpt" - Public Function NewGeneraBytesCxP(CveProveedor As Integer, UsuarioActual As String, Optional MR As ReportViewer = Nothing) As Byte() - Dim bytes As Byte() = Nothing - Dim CveEmpresaActual As Integer - 'Dim TmpDTEnvioDireccion As DataTable - Dim params As New List(Of ReportParameter) - - Try - Dim DTCxPTempral As DataTable = Nothing - - Dim ObjMovtos As New ClsMovimientos() - If ObjMovtos.GetCxPProveedor(CveProveedor, "-1", "-1", -1, -1, -1, -1, -1, -1, -1, -1, "-1", "-1") Then - DTCxPTempral = ObjMovtos.DtResultados - End If - - If DTCxPTempral IsNot Nothing AndAlso DTCxPTempral.Rows.Count > 0 Then - Dim dr As DataRow = DTCxPTempral.Rows(0) - Dim NombreProv = "" - Dim Direccion = "" - Dim RFC = "" - Dim Tel = "" - Dim DiasCredito = "" - Dim LimCredito As Double - - CveEmpresaActual = dr("CveEmpresa").ToString.ToEntero - Dim ObjEmpresa As New ClsSisEmpresas() - Dim EmpresaActual As New Empresa - If ObjEmpresa.GetEmpresas(CveEmpresaActual, "-1", "-1", "-1", "-1") Then - EmpresaActual = ObjEmpresa.Empresa - End If - ObjEmpresa.Dispose() - - Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/RepProveedorCxP.rpt", EmpresaActual.Ruta)) - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", EmpresaActual.Ruta)) - Dim logouri = String.Format("{0}Logo.png", EmpresaActual.Ruta) 'String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, CveEmpresaActual) - - Dim ObjProveedor As New ClsCompProveedores() - If ObjProveedor.GetProveedores(ClsCompProveedores.TipoConsulta.ParaUsoEnEmpresa, CveProveedor, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, EmpresaActual.CveEmpresa) Then - If ObjProveedor.DtResultados.Rows.Count > 0 Then - NombreProv = ObjProveedor.RazonSocial - Direccion = ObjProveedor.Direccion - RFC = ObjProveedor.RFC - Tel = ObjProveedor.Telefono - DiasCredito = ObjProveedor.PlazoPago.ToString - LimCredito = ObjProveedor.LimiteCredito.ToEntero - End If - End If - ObjProveedor.Dispose() - - Dim lista = New List(Of CrystalParametro) - lista.Add(New CrystalParametro("Empresa", EmpresaActual.Empresa)) - lista.Add(New CrystalParametro("TipoCuentas", "Todas")) - lista.Add(New CrystalParametro("FechaInicio", "-")) - lista.Add(New CrystalParametro("FechaFin", DateTime.Now.ToShortDateString)) - lista.Add(New CrystalParametro("NombreProveedor", NombreProv)) - lista.Add(New CrystalParametro("DireccionProveedor", Direccion)) - lista.Add(New CrystalParametro("ProveedorRFC", RFC)) - lista.Add(New CrystalParametro("ProveedorTelefono", Tel)) - lista.Add(New CrystalParametro("DiasCredito", DiasCredito)) - lista.Add(New CrystalParametro("LimiteCredito", LimCredito)) - lista.Add(New CrystalParametro("SaldoDisponible", (LimCredito - dr("Saldo").ToString.ToDouble).ToString.FormatoNumero)) - lista.Add(New CrystalParametro("UsuarioImprimio", UsuarioActual)) - - If Imagen.Exists Then - lista.Add(New CrystalParametro("LogoPath", logouri)) - Else - lista.Add(New CrystalParametro("LogoPath", "")) - End If - - If Archivo.Exists Then - bytes = ImprimirPDFCrystal(String.Format("{0}Formatos/RepProveedorCxP.rpt", EmpresaActual.Ruta), DTCxPTempral, lista, "EstadoCuentaCxP") - Else - bytes = ImprimirPDFCrystal(Server.MapPath("~/Empresas/Grales/Formatos/RepProveedorCxP.rpt"), DTCxPTempral, lista, "EstadoCuentaCxP") - End If - - End If - - ObjMovtos.Dispose() - - Catch ex As Exception - GuardaLog(String.Format("Ocurrio un error al generar el strem de la oc={0}. {1}", CveProveedor, ex.Message)) - End Try - - Return bytes - End Function -#End Region - -#Region "PDF NOMINA" - - Public Function GeneraPDFNomina(CvePersonal As Integer, CvePeriodo As Integer, CveEmpresa As Integer, RutaEmpresa As String, Optional indemnizacion As Boolean = False) As Byte() - - Dim ObjNomina As New ClsNominas - Dim ObjPersonal As New ClsRH - Dim TieneError = False - Dim Retorno As Byte() = Nothing - - If Not ObjNomina.GetNom_Nominas(-1, CvePersonal, CvePeriodo, -1, CveEmpresa) Then - Alert("Ocurrio un erro al obtener datos de la nomina", TipoMensaje.MsgError) - ObjPersonal.Dispose() - ObjNomina.Dispose() - Return Nothing - End If - - Dim CveNomina = ObjNomina.CveNomina - Dim DTPercepciones As Data.DataTable - Dim DTDeducciones As Data.DataTable - Dim DTDeducciones2 As New Data.DataTable - - Dim Ruta As String = UsuarioActual.Empresa.Ruta - Dim PathXML As String = $"{Ruta}XML\Nomina\{ObjNomina.Serie }{If(indemnizacion, "F", "")}-{ObjNomina.Folio}.xml" - Dim FechaEmision, FechaCertificacion As DateTime - Dim FolioFiscal, NoSerieCertificado, NoSerieCertificadoContribuyente, SelloCFDi, SelloSAT As String - FolioFiscal = "" - NoSerieCertificado = "" - SelloCFDi = "" - SelloSAT = "" - NoSerieCertificadoContribuyente = "" - - Dim RutaCBB As String = String.Format("{0}CBB\Nomina\{1}.jpg", RutaEmpresa, ObjNomina.SerieFolio) - Dim ImagenCBB As New System.IO.FileInfo(RutaCBB) - Dim ImgCBB As String - - Dim RutaFormato As String = String.Format("{0}Formatos\Nomina.rdlc", RutaEmpresa) - Dim RutaFormatoDefault As String = String.Format("Empresas\Grales\Formatos\Nomina.rdlc") - - 'SI ESTA TIMBRADA - CON XML - - If System.IO.File.Exists(PathXML) Then - - Dim XmlDoc As New System.Xml.XmlDocument - 'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml") - XmlDoc.Load(PathXML) - - If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then - FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate - NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText - - For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:TimbreFiscalDigital" Then - FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText - NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("NoCertificadoSAT").InnerText - FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("FechaTimbrado").InnerText.ToDate - SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloCFD").InnerText - SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("SelloSAT").InnerText - End If - Next - Else - FechaEmision = XmlDoc.DocumentElement.Attributes("fecha").InnerText.ToDate - NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("noCertificado").InnerText - - For i As Integer = 0 To XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes.Count - 1 - If XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Name = "tfd:timbreFiscalDigital" Then - FolioFiscal = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("UUID").InnerText - NoSerieCertificado = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("noCertificadoSAT").InnerText - FechaCertificacion = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("fechaTimbrado").InnerText.ToDate - SelloCFDi = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloCFD").InnerText - SelloSAT = XmlDoc.DocumentElement("cfdi:Complemento").ChildNodes(i).Attributes("selloSAT").InnerText - End If - Next - End If - - - 'SIN TIMBRAR - SIN XML - Else - FolioFiscal = "Sin Timbrar" - NoSerieCertificado = "Sin Timbrar" - SelloCFDi = "Sin Timbrar" - SelloSAT = "Sin Timbrar" - End If - - 'Si no tiene CBB, SE GENERA - If Not ImagenCBB.Exists Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString.ToDecimal, FolioFiscal, RutaCBB) - End If - End If - - ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/Nomina/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, ObjNomina.SerieFolio) - - Dim cQr As Byte() = Nothing - Try - Dim CadenaOriginalCFD As String = "||1.0|" + FolioFiscal + "|" + FechaCertificacion.ToString("yyyy-MM-dd") + "T" + FechaCertificacion.ToString("HH:mm:ss") + "|" + SelloCFDi + "|" + NoSerieCertificado + "||" - - Dim RptParametro As New List(Of ReportParameter) - - - 'Datos Empresa - RptParametro.Add(New ReportParameter("RegistroPatronal", ObjNomina.RegistroPatronal)) - Dim ajusteindemnizacion As Double = 0 - 'PERCECIONES - DEDUCCIONES - If ObjNomina.GetNom_NominasDetalles(CveNomina, CvePersonal, CvePeriodo, "-1") Then - Dim filtrop As String = " AND CveSistema NOT IN(10,11,32)" - Dim friltrod As String = " AND CveSistema <>47" - If indemnizacion Then - filtrop = "AND CveSistema IN(10,11,32)" - friltrod = " AND CveSistema =47" - End If - DTPercepciones = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) {filtrop}") - DTDeducciones = ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) {friltrod}") - DTDeducciones2 = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) OR CveSistema IN (20,21) OR CveConcepto =4714){friltrod}") - - ajusteindemnizacion = ObjNomina.DtResultados.FiltraParametros($"((Tipo = 'P' OR (Tipo = 'D' AND Importe <0)) AND Importe <>0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema IN(10,11,32)").SUM("Importe") - - ObjNomina.DtResultados.FiltraParametros($"(Tipo = 'D' AND Importe >0 AND EsPadre = 1 AND SoloVisible =0) AND CveSistema =47").SUM("Importe") - For Each row As DataRow In DTPercepciones.Rows - If row("Tipo").ToString() = "D" Then - row("Codigo") = row("Codigo").ToString().Replace("D", "OP") - row("Importe") = row("Importe").ToString().ToDecimal() * -1 - End If - Next - - Else - DTPercepciones = Nothing - DTDeducciones = Nothing - End If - 'DATOS DEL EMPLEADO - If ObjPersonal.GetPersonal(CvePersonal, CveEmpresa) Then - - RptParametro.Add(New ReportParameter("NoEmpleado", ObjPersonal.Codigo)) - RptParametro.Add(New ReportParameter("RFC", ObjPersonal.RFC)) - RptParametro.Add(New ReportParameter("CURP", ObjPersonal.CURP)) - - RptParametro.Add(New ReportParameter("NombreCompleto", String.Format("{0} {1} {2}", ObjPersonal.Nombres, ObjPersonal.APaterno, ObjPersonal.AMaterno).Trim())) - RptParametro.Add(New ReportParameter("Regimen", ObjPersonal.RegimenContratacion)) - RptParametro.Add(New ReportParameter("RiesgoPuesto", ObjPersonal.RiesgoPuesto)) - - RptParametro.Add(New ReportParameter("NSS", ObjPersonal.NumeroSS)) - RptParametro.Add(New ReportParameter("Departamento", ObjPersonal.Departamento)) - RptParametro.Add(New ReportParameter("Puesto", ObjPersonal.Puesto.ToString())) - RptParametro.Add(New ReportParameter("FechaIngreso", ObjPersonal.FechaIngreso.ToString("dd/MM/yyyy"))) - - RptParametro.Add(New ReportParameter("Contrato", ObjPersonal.TipoContrato.ToString)) - - RptParametro.Add(New ReportParameter("Jornada", ObjPersonal.Jornada)) - RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) - RptParametro.Add(New ReportParameter("SalarioBase", ObjPersonal.SalarioDiario.ToString)) - RptParametro.Add(New ReportParameter("SalarioDiarioInt", ObjPersonal.SDI.ToString)) - - RptParametro.Add(New ReportParameter("Banco", ObjPersonal.Banco)) - RptParametro.Add(New ReportParameter("CLABE", ObjPersonal.CLABE)) - - - 'DATOS NOMINA - If ObjNomina.GetNom_Nominas(CveNomina, CvePersonal, CvePeriodo, 1, CveEmpresa) Then - RptParametro.Add(New ReportParameter("ReciboNomina", ObjNomina.Folio.ToString)) - RptParametro.Add(New ReportParameter("Serie", ObjNomina.Serie)) - RptParametro.Add(New ReportParameter("Fecha", ObjNomina.Fecha.ToString)) - RptParametro.Add(New ReportParameter("Periodo", ObjNomina.TipoPeriodo)) - - RptParametro.Add(New ReportParameter("DiasPagados", ObjNomina.DiasPagados.ToString)) - RptParametro.Add(New ReportParameter("MetodoPago", ObjNomina.MetodoPago)) '"""PUE"" (Pago en una sola exhibición)" - RptParametro.Add(New ReportParameter("FormaPago", """99"" (Por definir)")) - - RptParametro.Add(New ReportParameter("Cantidad", "1")) - RptParametro.Add(New ReportParameter("Unidad", "ACT")) - RptParametro.Add(New ReportParameter("Descripcion", "PAGO DE NÓMINA")) - RptParametro.Add(New ReportParameter("Total", If(indemnizacion, ajusteindemnizacion, ObjNomina.Total - ajusteindemnizacion).ToString())) - - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - cQr = CBB.GenerarCBBBytes(UsuarioActual.Empresa.RFC, ObjPersonal.RFC, ObjNomina.Total.ToString().ToDecimal(), FolioFiscal) - RptParametro.Add(New ReportParameter("ImporteLetra", ObjNomina.Total.ToString.ToDouble.Texto2Letras)) - RptParametro.Add(New ReportParameter("Clave", "84111505")) - Else - TieneError = True - End If - Else - TieneError = True - End If - - If Not TieneError Then - If ObjNomina.GetPeriodos(-1, CveEmpresa, -1, -1, CvePeriodo) Then - RptParametro.Add(New ReportParameter("FechaInicio", ObjNomina.FechaInicio.ToString("dd/MM/yyyy"))) - RptParametro.Add(New ReportParameter("FechaFin", ObjNomina.FechaFin.ToString("dd/MM/yyyy"))) - Else - TieneError = True - End If - End If - - - RptParametro.Add(New ReportParameter("PU", DTPercepciones.SUM("Importe").ToString())) - RptParametro.Add(New ReportParameter("Importe", DTPercepciones.SUM("Importe").ToString())) - RptParametro.Add(New ReportParameter("ImporteDeducciones", DTDeducciones.SUM("Importe").ToString())) - - RptParametro.Add(New ReportParameter("SubTotal", DTPercepciones.SUM("Importe").ToString())) - RptParametro.Add(New ReportParameter("Descuentos", DTDeducciones.SUM("Importe", "SATCveConcepto <> '002'").ToString())) - RptParametro.Add(New ReportParameter("ISR", DTDeducciones.SUM("Importe", "SATCveConcepto = '002'").ToString())) - 'Timbrado - RptParametro.Add(New ReportParameter("FolioFiscal", FolioFiscal)) - RptParametro.Add(New ReportParameter("CertificadoSAT", NoSerieCertificado)) - RptParametro.Add(New ReportParameter("FechaCertificacion", FechaCertificacion.ToString)) - RptParametro.Add(New ReportParameter("SelloDigitalEmisor", SelloCFDi)) - RptParametro.Add(New ReportParameter("SelloDigitalSAT", SelloSAT)) - RptParametro.Add(New ReportParameter("CadenaOriginal", CadenaOriginalCFD)) - RptParametro.Add(New ReportParameter("QR", ImgCBB.ToString)) - - - Dim LSRds As New List(Of ReportDataSource) - - - Dim rds2 = New ReportDataSource() - - Dim dtqr As New DataTable - - Dim column As DataColumn = New DataColumn("ImagenByte") - column.DataType = System.Type.[GetType]("System.Byte[]") - column.AllowDBNull = True - column.Caption = "ImagenByte" - dtqr.Columns.Add(column) - Dim rowqr As DataRow = dtqr.NewRow() - rowqr("ImagenByte") = cQr - - dtqr.Rows.Add(rowqr) - rds2.Name = "dsImagenes" - rds2.Value = dtqr - LSRds.Add(rds2) - Dim numnewfiles As Integer = 0 - If DTPercepciones.Rows.Count > DTDeducciones2.Rows.Count Then - - numnewfiles = DTPercepciones.Rows.Count - DTDeducciones2.Rows.Count - For index = 1 To numnewfiles - - DTDeducciones2.Rows.Add(DTDeducciones2.NewRow) - Next - Else - - If DTDeducciones2.Rows.Count > DTPercepciones.Rows.Count Then - numnewfiles = DTDeducciones2.Rows.Count - DTPercepciones.Rows.Count - For index = 1 To numnewfiles - - DTPercepciones.Rows.Add(DTPercepciones.NewRow) - Next - - End If - End If - - Dim RptDS As New ReportDataSource - RptDS.Name = "DsOC" - RptDS.Value = DTPercepciones - LSRds.Add(RptDS) - - Dim RDS As New ReportDataSource - RDS.Name = "DataSet1" - RDS.Value = DTDeducciones2 - LSRds.Add(RDS) - Dim Archivo As New System.IO.FileInfo(RutaFormato) - - If Not TieneError Then - If Archivo.Exists Then - Retorno = StreamPDF(RutaFormato, LSRds, RptParametro, ObjNomina.SerieFolio, "PDF", MR:=Nothing) - Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio)) - If Not ArchivoPDF.Exists Then - Try - DirectoryExistsCreate(String.Format("{0}PDF", RutaEmpresa)) - DirectoryExistsCreate(String.Format("{0}PDF\{1}", RutaEmpresa, "Nomina")) - File.WriteAllBytes(String.Format("{0}PDF\Nomina\{1}.pdf", RutaEmpresa, ObjNomina.SerieFolio), Retorno) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - GuardaLog(String.Format("Ocurrió un error al generar el PDF {0}", ex)) - End Try - End If - Else - 'ImprimirPDF(String.Format("{0}\Formatos\Nomina.rdlc", RutaEmpresa), LSRds, RptParametro, ObjNomina.SerieFolio) - End If - Else - Alert("Ocurrio un error al obtener los datos de la Nomina") - End If - Catch ex As Exception - - GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex)) - End Try - - - ObjNomina.Dispose() - ObjPersonal.Dispose() - - Return Retorno - End Function - -#End Region - -#Region "PDF PAGOS" - - Private Function ValorXML(n As XmlNode, Campo As String, Optional Retorno As String = "") As String - Dim o As XmlNode = n.Attributes.Cast(Of XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0) - If o Is Nothing Then - Return Retorno - Else - Return o.Value - End If - End Function - - Public Sub PDFReciboDePagos(CveVenta As Integer, CveIE As Integer, CveComplementoPago As Integer, Optional imprimir As Boolean = True, Optional SobreescribirPDF As Boolean = False) - - Dim params As New List(Of ReportParameter) - Dim SerieFolio As String = "" - Dim Serie = "" - Dim Folio = "" - Dim CveCliente = -1 - Dim RFCOrdenante = "" - Dim CveMoneda As Integer = 1 - - Dim FolioFiscal = "" - Dim NoSerieCertificado = "" - Dim FechaCertificacion = "" - Dim SelloCFDi = "" - Dim SelloSAT = "" - Dim CertificadoSAT = "" - Dim FechaComprobante As Date - - Dim CveUnidad = "" - Dim Descripcion = "" - Dim Cantidad = "" - Dim CvePS = "" - Dim PU = "" - Dim Importe = "" - Dim TotalLetra = "" - - Dim FechaRecibo = "" - Dim RegimenFiscalCodigo As String = "" - Dim CFDIVersion As String = If(UsuarioActual.Empresa.Funcionalidad(350) = "1", "4.0", "3.3") - - - - - 'DT PAGO - Dim DTConceptosPago As New DataTable - DTConceptosPago.Columns.Add("CtaOrdenante", GetType(String)) - DTConceptosPago.Columns.Add("Monto", GetType(Decimal)) - DTConceptosPago.Columns.Add("MonedaP", GetType(String)) - DTConceptosPago.Columns.Add("FormaDePagoP", GetType(String)) - DTConceptosPago.Columns.Add("FechaPago", GetType(String)) - DTConceptosPago.Columns.Add("TipoCambioP", GetType(String)) - DTConceptosPago.Columns.Add("RfcEmisorCtaOrd", GetType(String)) - - 'DT DOCUMENTOS RELACIONADOS - Dim DTConceptosPagoRelacionado As New DataTable - DTConceptosPagoRelacionado.Columns.Add("IdDocumento", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Folio", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Serie", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("ImpPagado", GetType(Decimal)) - DTConceptosPagoRelacionado.Columns.Add("ImpSaldoAnt", GetType(Decimal)) - DTConceptosPagoRelacionado.Columns.Add("NumParcialidad", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("MetodoDePagoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("MonedaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("TipoCambioDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("ObjetoImpDR", GetType(String)) - - DTConceptosPagoRelacionado.Columns.Add("Tra001BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra001ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra001TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra001TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra001ImporteDR", GetType(Decimal)) - - - DTConceptosPagoRelacionado.Columns.Add("Tra002BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra002ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra002TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra002TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra002ImporteDR", GetType(Decimal)) - - DTConceptosPagoRelacionado.Columns.Add("Tra003BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra003ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra003TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra003TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Tra003ImporteDR", GetType(Decimal)) - - - DTConceptosPagoRelacionado.Columns.Add("Ret001BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret001ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret001TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret001TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret001ImporteDR", GetType(Decimal)) - - DTConceptosPagoRelacionado.Columns.Add("Ret002BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret002ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret002TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret002TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret002ImporteDR", GetType(Decimal)) - - DTConceptosPagoRelacionado.Columns.Add("Ret003BaseDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret003ImpuestoDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret003TipoFactorDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret003TasaOCuotaDR", GetType(String)) - DTConceptosPagoRelacionado.Columns.Add("Ret003ImporteDR", GetType(Decimal)) - - - - Dim ObjBancos As New ClsBancos - If ObjBancos.GetComplementoPagos(CveComplementoPago, CveIE, CveVenta, UsuarioActual.CveEmpresa) Then - Serie = ObjBancos.DtResultados.FiltroPrimeroValor("Serie") - Folio = ObjBancos.DtResultados.FiltroPrimeroValor("Folio") - CveCliente = ObjBancos.DtResultados.FiltroPrimeroValor("CveCliente").ToEntero - CveMoneda = ObjBancos.DtResultados.FiltroPrimeroValor("CveMoneda").ToEntero - FechaComprobante = ObjBancos.DtResultados.FiltroPrimeroValor("Fecha").ToDate - SerieFolio = $"{Serie}-{Folio}" - End If - ObjBancos.Dispose() - - If Not SobreescribirPDF Then - Dim rutapdf As String = $"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf" - Dim Archivo As New System.IO.FileInfo(rutapdf) - If (Archivo.Exists) Then - - HttpContext.Current.Response.Clear() - HttpContext.Current.Response.ClearContent() - HttpContext.Current.Response.ContentType = If(IO.Path.GetExtension(Archivo.Name) = ".txt", "text/plain", "application/pdf") - HttpContext.Current.Response.AppendHeader("Content-disposition", "attachment; filename=" & Archivo.Name) - HttpContext.Current.Response.AddHeader("Content-Length", Archivo.Length.ToString()) - HttpContext.Current.Response.TransmitFile(rutapdf) - 'HttpContext.Current.Response.Flush() - HttpContext.Current.Response.End() - Archivo = Nothing - - End If - - End If - - 'CLIENTE - Dim ObjClientes As New ClsClientes - If ObjClientes.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, Estatus:=-1) Then - RFCOrdenante = ObjClientes.RFC - - params.Add(New ReportParameter("Cliente", ObjClientes.Nombre)) - params.Add(New ReportParameter("ClienteDireccion", ObjClientes.Direccion)) - params.Add(New ReportParameter("ClienteColonia", ObjClientes.Colonia)) - params.Add(New ReportParameter("ClienteCiudad", ObjClientes.Ciudad)) - params.Add(New ReportParameter("ClienteEstado", ObjClientes.Estado)) - params.Add(New ReportParameter("ClienteCP", ObjClientes.CP)) - params.Add(New ReportParameter("ClienteRFC", ObjClientes.RFC)) - - - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - If ObjClientes.CodigoRegimenFiscal.ToString.Length > 0 Then - RegimenFiscalCodigo = $"{ObjClientes.CodigoRegimenFiscal}-{ObjClientes.RegimenFiscal}" - End If - End If - - End If - - ObjClientes.Dispose() - - 'DATOS DE EMPRESA - params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) - params.Add(New ReportParameter("EmpresaDireccion", UsuarioActual.Empresa.Direccion)) - params.Add(New ReportParameter("EmpresaColonia", UsuarioActual.Empresa.Colonia)) - params.Add(New ReportParameter("EmpresaCiudad", UsuarioActual.Empresa.Ciudad)) - params.Add(New ReportParameter("EmpresaEstado", UsuarioActual.Empresa.Estado)) - params.Add(New ReportParameter("EmpresaCP", UsuarioActual.Empresa.CP.ToString())) - params.Add(New ReportParameter("EmpresaRFC", UsuarioActual.Empresa.RFC)) - params.Add(New ReportParameter("EmpresaNoExt", UsuarioActual.Empresa.NoExt)) - params.Add(New ReportParameter("EmpresaNoInt", UsuarioActual.Empresa.NoInt)) - - 'DATOS IMPRESION - params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Nombre)) - params.Add(New ReportParameter("FechaImpresion", Now.ToDateTime.ToString)) - - 'DATOS GENERALES - Dim Ruta As String = UsuarioActual.Empresa.Ruta - Dim PathXML As String = $"{Ruta}XML\Pag\{Serie}-{Folio}.xml" - Dim PathPDF As String = $"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf" - Dim ImagenCBB As String = $"{Ruta}CBB\{Serie}-{Folio}.jpg" - - If File.Exists(PathXML) Then - Dim XmlDoc As New System.Xml.XmlDocument - XmlDoc.Load(PathXML) - Dim Version = ValorXML(XmlDoc.DocumentElement, "version") - Dim namespaces As New XmlNamespaceManager(XmlDoc.NameTable) - Dim Prefijo As String = If(XmlDoc.DocumentElement.Prefix = "", "cfd", XmlDoc.DocumentElement.Prefix) - Dim cfdVer As String = "" - Dim PagoVersion As String = "pago20" - - Dim validaElemento = XmlDoc.DocumentElement("cfdi:Complemento") - Dim validaElementoPago = XmlDoc.DocumentElement("cfdi:Conceptos") - - If Version = "3.3" Then - cfdVer = "http://www.sat.gob.mx/cfd/3" - PagoVersion = "pago10" - Else ' se considera que es la version 4.0 - cfdVer = "http://www.sat.gob.mx/cfd/4" - End If - If Version = "4.0" Then - - If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then - params.Add(New ReportParameter("CFDIVersion", Version)) - If ObjClientes.CodigoRegimenFiscal.ToString.Length > 0 Then - params.Add(New ReportParameter("RegimenFiscalCodigo", RegimenFiscalCodigo)) - End If - End If - End If - - namespaces.AddNamespace(Prefijo, cfdVer) - namespaces.AddNamespace("tfd", "http://www.sat.gob.mx/TimbreFiscalDigital") - namespaces.AddNamespace("implocal", "http://www.sat.gob.mx/implocal") - namespaces.AddNamespace("registrofiscal", "http://www.sat.gob.mx/registrofiscal") - namespaces.AddNamespace("pago10", "http://www.sat.gob.mx/Pagos") - namespaces.AddNamespace("pago20", "http://www.sat.gob.mx/Pagos20") - - 'Datos Fiscales - If Not IsNothing(validaElemento) Then - Dim nodetfd As XmlNode = XmlDoc.SelectSingleNode(String.Format("{0}:Comprobante/{0}:Complemento/tfd:TimbreFiscalDigital", Prefijo), namespaces) - If nodetfd IsNot Nothing Then - FolioFiscal = nodetfd.Attributes("UUID").InnerText - NoSerieCertificado = nodetfd.Attributes("NoCertificadoSAT").InnerText - FechaCertificacion = nodetfd.Attributes("FechaTimbrado").InnerText - SelloCFDi = nodetfd.Attributes("SelloCFD").InnerText - SelloSAT = nodetfd.Attributes("SelloSAT").InnerText - End If - End If - - Dim nodePagos As XmlNodeList - nodePagos = XmlDoc.SelectNodes(String.Format("//{0}:Comprobante/{0}:Complemento/{1}:Pagos/{1}:Pago", Prefijo, PagoVersion), namespaces) - - For Each Pagos As XmlNode In nodePagos - If Version = "4.0" AndAlso Pagos.Name = "pago20:Totales" Then - Dim a As String = "a" - Else - Dim Dr As DataRow = DTConceptosPago.NewRow - - If Not Pagos.Attributes("CtaOrdenante") Is Nothing Then Dr("CtaOrdenante") = Pagos.Attributes("CtaOrdenante").Value Else Dr("CtaOrdenante") = "" - If Not Pagos.Attributes("TipoCambioP") Is Nothing Then Dr("TipoCambioP") = Pagos.Attributes("TipoCambioP").Value Else Dr("TipoCambioP") = "" - - If Not Pagos.Attributes("RfcEmisorCtaOrd") Is Nothing Then - Dr("RfcEmisorCtaOrd") = Pagos.Attributes("RfcEmisorCtaOrd").Value - RFCOrdenante = Pagos.Attributes("RfcEmisorCtaOrd").Value - Else - Dr("RfcEmisorCtaOrd") = "" - End If - - Dr("Monto") = Pagos.Attributes("Monto").Value - Dr("MonedaP") = Pagos.Attributes("MonedaP").Value - Dr("FormaDePagoP") = GlobalDTVtaFormaPago.FiltroPrimeroValor("FormaPagoSAT", $"ClaveFormaPagoSAT= '{Pagos.Attributes("FormaDePagoP").Value}'") - Dr("FechaPago") = Pagos.Attributes("FechaPago").Value - - FechaRecibo = Pagos.Attributes("FechaPago").Value - TotalLetra = Pagos.Attributes("Monto").Value.ToString.ToDouble.Texto2Letras(CveMoneda) - - DTConceptosPago.Rows.Add(Dr) - - For Each Relacionado As XmlNode In Pagos.SelectNodes(String.Format("//{0}:DoctoRelacionado", PagoVersion), namespaces) - Dim DrRelacionado As DataRow = DTConceptosPagoRelacionado.NewRow - - If Not Relacionado.Attributes("Folio") Is Nothing Then DrRelacionado("Folio") = Relacionado.Attributes("Folio").Value Else DrRelacionado("Folio") = "" - If Not Relacionado.Attributes("Serie") Is Nothing Then DrRelacionado("Serie") = Relacionado.Attributes("Serie").Value Else DrRelacionado("Serie") = "" - If Not Relacionado.Attributes("TipoCambioDR") Is Nothing Then DrRelacionado("TipoCambioDR") = Relacionado.Attributes("TipoCambioDR").Value Else DrRelacionado("TipoCambioDR") = "" - - DrRelacionado("IdDocumento") = Relacionado.Attributes("IdDocumento").Value - DrRelacionado("ImpPagado") = Relacionado.Attributes("ImpPagado").Value - DrRelacionado("ImpSaldoAnt") = Relacionado.Attributes("ImpSaldoAnt").Value - DrRelacionado("NumParcialidad") = Relacionado.Attributes("NumParcialidad").Value - If Version = "3.3" Then DrRelacionado("MetodoDePagoDR") = Relacionado.Attributes("MetodoDePagoDR").Value - If Version = "4.0" Then DrRelacionado("ObjetoImpDR") = Relacionado.Attributes("ObjetoImpDR").Value - - DrRelacionado("MonedaDR") = Relacionado.Attributes("MonedaDR").Value - - If UsuarioActual.Empresa.Funcionalidad(350) = "1" AndAlso Version = "4.0" Then - - Dim NodosTraslados = Relacionado.SelectNodes($"{PagoVersion}:ImpuestosDR/{PagoVersion}:TrasladosDR/{PagoVersion}:TrasladoDR", namespaces) - For Each NodoTraslados As XmlNode In NodosTraslados - - Dim BaseDR As String = ValorXML(NodoTraslados, "BaseDR") - Dim ImpuestoDR As String = ValorXML(NodoTraslados, "ImpuestoDR") ' ImpuestoDR - Dim TipoFactor As String = ValorXML(NodoTraslados, "TipoFactorDR") - Dim TasaOCuotaDR As String = ValorXML(NodoTraslados, "TasaOCuotaDR") - Dim ImporteDR As Decimal = ValorXML(NodoTraslados, "ImporteDR").ToDecimal - - If ImpuestoDR = "001" Then - - DrRelacionado("Tra001BaseDR") = BaseDR - DrRelacionado("Tra001ImpuestoDR") = ImpuestoDR - DrRelacionado("Tra001TipoFactorDR") = TipoFactor - DrRelacionado("Tra001TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Tra001ImporteDR") = ImporteDR - End If - - If ImpuestoDR = "002" Then - DrRelacionado("Tra002BaseDR") = BaseDR - DrRelacionado("Tra002ImpuestoDR") = ImpuestoDR - DrRelacionado("Tra002TipoFactorDR") = TipoFactor - DrRelacionado("Tra002TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Tra002ImporteDR") = ImporteDR - End If - - If ImpuestoDR = "003" Then - DrRelacionado("Tra003BaseDR") = BaseDR - DrRelacionado("Tra003ImpuestoDR") = ImpuestoDR - DrRelacionado("Tra003TipoFactorDR") = TipoFactor - DrRelacionado("Tra003TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Tra003ImporteDR") = ImporteDR - End If - Next - - For Each NodoRetenciiones As XmlNode In Relacionado.SelectNodes($"{PagoVersion}:ImpuestosDR/{PagoVersion}:RetencionesDR/{PagoVersion}:RetencionDR", namespaces) - - Dim BaseDR As String = ValorXML(NodoRetenciiones, "BaseDR") - Dim ImpuestoDR As String = ValorXML(NodoRetenciiones, "ImpuestoDR") ' ImpuestoDR - Dim TipoFactor As String = ValorXML(NodoRetenciiones, "TipoFactorDR") - Dim TasaOCuotaDR As String = ValorXML(NodoRetenciiones, "TasaOCuotaDR") - Dim ImporteDR As Decimal = ValorXML(NodoRetenciiones, "ImporteDR").ToDecimal - - If ImpuestoDR = "001" Then - DrRelacionado("Ret001BaseDR") = BaseDR - DrRelacionado("Ret001ImpuestoDR") = ImpuestoDR - DrRelacionado("Ret001TipoFactorDR") = TipoFactor - DrRelacionado("Ret001TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Ret001ImporteDR") = ImporteDR - End If - - If ImpuestoDR = "002" Then - DrRelacionado("Ret002BaseDR") = BaseDR - DrRelacionado("Ret002ImpuestoDR") = ImpuestoDR - DrRelacionado("Ret002TipoFactorDR") = TipoFactor - DrRelacionado("Ret002TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Ret002ImporteDR") = ImporteDR - End If - - If ImpuestoDR = "003" Then - DrRelacionado("Ret003BaseDR") = BaseDR - DrRelacionado("Ret003ImpuestoDR") = ImpuestoDR - DrRelacionado("Ret003TipoFactorDR") = TipoFactor - DrRelacionado("Ret003TasaOCuotaDR") = TasaOCuotaDR - DrRelacionado("Ret003ImporteDR") = ImporteDR - End If - Next - End If - DTConceptosPagoRelacionado.Rows.Add(DrRelacionado) - Next - End If - Next - - If Not IsNothing(validaElementoPago) Then - - Dim nodeconceptos As XmlNode = XmlDoc.SelectSingleNode(String.Format("//{0}:Comprobante/{0}:Conceptos", Prefijo), namespaces) - If nodeconceptos.HasChildNodes Then - Dim nodeconcepto As XmlNode = nodeconceptos.ChildNodes(0) - Importe = nodeconcepto.Attributes("Importe").InnerText - PU = nodeconcepto.Attributes("ValorUnitario").InnerText - Descripcion = nodeconcepto.Attributes("Descripcion").InnerText - CveUnidad = nodeconcepto.Attributes("ClaveUnidad").InnerText - Cantidad = nodeconcepto.Attributes("Cantidad").InnerText - CvePS = nodeconcepto.Attributes("ClaveProdServ").InnerText - End If - End If - - Dim CadenaOriginal As String = $"||1.0| {FolioFiscal} | {FechaCertificacion.ToDate.ToShortDateString} T {FechaCertificacion.ToDateTime.ToShortTimeString} | {SelloCFDi} | {NoSerieCertificado} ||" - - If Not File.Exists(ImagenCBB) AndAlso FolioFiscal <> "" Then - Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar() - CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCOrdenante, 1, FolioFiscal, ImagenCBB) - End If - - - ' PARAMETROS DEL REPORTE - params.Add(New ReportParameter("SerieFolio", SerieFolio)) - params.Add(New ReportParameter("RFCOrdenante", RFCOrdenante)) - params.Add(New ReportParameter("FechaRecibo", FechaRecibo)) - - params.Add(New ReportParameter("Cantidad", Cantidad)) - params.Add(New ReportParameter("Descripcion", Descripcion)) - params.Add(New ReportParameter("UnidadMedida", CveUnidad)) - params.Add(New ReportParameter("PU", PU)) - params.Add(New ReportParameter("Importe", Importe)) - - params.Add(New ReportParameter("CantidadLetra", TotalLetra.ToUpper())) - - params.Add(New ReportParameter("UUIDPago", FolioFiscal)) - params.Add(New ReportParameter("NoCertificado", NoSerieCertificado)) - params.Add(New ReportParameter("FechaTimbre", FechaComprobante.ToShortDateString)) - params.Add(New ReportParameter("Sello", SelloCFDi)) - params.Add(New ReportParameter("SelloSAT", SelloSAT)) - params.Add(New ReportParameter("CadenaOriginal", CadenaOriginal)) - params.Add(New ReportParameter("CertificadoSAT", CertificadoSAT)) - params.Add(New ReportParameter("QR", $"file://{ImagenCBB}")) - - Dim lrds As New List(Of ReportDataSource) - Dim rds As New ReportDataSource With {.Name = "DataSet1", .Value = If(DTConceptosPago IsNot Nothing, DTConceptosPago, New DataTable)} - Dim rds2 As New ReportDataSource With {.Name = "DataSet2", .Value = If(DTConceptosPagoRelacionado IsNot Nothing, DTConceptosPagoRelacionado, New DataTable)} - lrds.Add(rds) - lrds.Add(rds2) - - Dim rutaArchivo As String = "" - 'LOGO - Dim LogoRuta As String = "" - Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta)) - - If Imagen.Exists Then ''POR EMPRESA - params.Add(New ReportParameter("LogoPath", $"file://{Imagen.FullName}")) - Else - params.Add(New ReportParameter("LogoPath", "")) - End If - - If File.Exists($"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc") Then - rutaArchivo = $"{UsuarioActual.Empresa.Ruta}Formatos\ReciboDePago.rdlc" - Else - rutaArchivo = " \Empresas\Grales\Formatos\ReciboDePago.rdlc" - End If - - If Not Directory.Exists($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") Then Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\") - - Dim ArchivoPDF As New System.IO.FileInfo($"{Ruta}PDF\Pag\{Serie}-{Folio}.pdf") - If ArchivoPDF.Exists Then - Try - ArchivoPDF.Delete() - File.WriteAllBytes($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf", StreamPDF(rutaArchivo, lrds, params, "Pago", "PDF")) - Catch ex As Exception - Alert("Ocurrió un error al generar el PDF", TipoMensaje.MsgAdvertencia) - End Try - Else - File.WriteAllBytes($"{UsuarioActual.Empresa.Ruta}\PDF\Pag\{SerieFolio}.pdf", StreamPDF(rutaArchivo, lrds, params, "Pago", "PDF")) - End If - - If imprimir Then - ImprimirPDF(rutaArchivo, lrds, params, SerieFolio, "PDF") - End If - - End If - - End Sub - -#End Region - - Public Sub CargarCentrosDeCosto(DdlProyecto As DropDownList, DdlSubProyecto As DropDownList, LthProyectoP As Label, LblSubProyecto As Label, Optional AplicaTodos As String = "Todos", Optional DdlSubProyectoMultiple As ListBox = Nothing) - Select Case UsuarioActual.Empresa.Tipo_CentroCosto - Case 1 - If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False - If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False - If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Centro de costo" - Case 2 - If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False - If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False - If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Sucursal" - Case 3 - If DdlProyecto IsNot Nothing Then DdlProyecto.Visible = False - If LthProyectoP IsNot Nothing Then LthProyectoP.Visible = False - If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Proyecto" - Case 4 - If LthProyectoP IsNot Nothing Then LthProyectoP.Text = "Proyecto
" - If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Subproyecto" - Case 5 - If LthProyectoP IsNot Nothing Then LthProyectoP.Text = "Proyecto
" - If LblSubProyecto IsNot Nothing Then LblSubProyecto.Text = "Sucursal" - End Select - - If DdlProyecto IsNot Nothing Then - DdlProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})) - DdlProyecto.DataBind() - If AplicaTodos <> "" Then DdlProyecto.Items.Insert(0, New ListItem(AplicaTodos, "-1")) - End If - - If DdlSubProyectoMultiple IsNot Nothing Then - - DdlSubProyectoMultiple.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) - DdlSubProyectoMultiple.DataBind() - If AplicaTodos <> "" Then DdlSubProyectoMultiple.Items.Insert(0, New ListItem(AplicaTodos, "-1")) - End If - If DdlSubProyecto IsNot Nothing Then - DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) - DdlSubProyecto.DataBind() - If AplicaTodos <> "" Then DdlSubProyecto.Items.Insert(0, New ListItem(AplicaTodos, "-1")) - End If - End Sub - - Public Sub CargaSeccionesAlmacen(ByRef DdlSeccionAlmacen As DropDownList, CveAlmacen As Integer, CvePS As Integer, CveEmpresa As Integer, Optional IncluyeSeleccione As Boolean = False) - DdlSeccionAlmacen.Items.Clear() - DdlSeccionAlmacen.ClearSelection() - Dim dtsec As DataTable = GlobalDTInvPSSeccionesAlmacen(CveEmpresa, CveAlmacen, CvePS) - DdlSeccionAlmacen.DataSource = dtsec - DdlSeccionAlmacen.DataBind() - If dtsec Is Nothing Then Exit Sub - If dtsec.Rows.Count = 1 Then - DdlSeccionAlmacen.SelectedIndex = 0 - DdlSeccionAlmacen.Enabled = False - Else 'si es mayor a uno que por default seleccione el primero, que seria el predeterminado - DdlSeccionAlmacen.SelectedValueExist(dtsec.FiltroPrimeroValor("CveSeccionAlmacen", "Predeterminado = 1")) - If IncluyeSeleccione Then DdlSeccionAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) - End If - dtsec.Dispose() - End Sub - -#Region "P A G O D E C O M P R A S " - - Public Function AplicaPrePolizaPagoCompra(CompraActual As Compra, Pago As CompraPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean - Dim ErrorMovtos As Boolean = False - Dim PorcentajePago As Decimal = Pago.ImportePago / CompraActual.Total - Dim ImporteMovimiento As Decimal = 0 - Dim ImporteMN As Decimal = 0 - Dim ImporteME As Decimal = 0 - Dim TCValuacion As Decimal - Dim TCValuacionCompra As Decimal = CompraActual.TC - Dim TCValuacionPago As Decimal = Pago.TCPago - Dim tFechaUltimaFluctuacion As Date - Dim tImportePago As Decimal - Dim tImporteCompra As Decimal = Pago.ImportePago - Dim CveConceptoContableComplementaria As Integer = 206 - - Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 17, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 17 - If CompraActual.CveTipoConceptoProveedor = 2 Then Pago.CveConceptoPago = 308 'cuando es acreedor - ' - If Pago.CveConceptoPago = 272 And CompraActual.CveMoneda = 2 Then Pago.CveConceptoPago = 304 'pago nota de crédito ME - If CompraActual.CveMoneda <> 1 Then - Select Case Pago.CveConceptoPago - Case 17 : Pago.CveConceptoPago = 312 - Case 308 : Pago.CveConceptoPago = 309 : CveConceptoContableComplementaria = 310 - Case Else - End Select - End If - - Dim Concepto As String = String.Format("{0} F:{1}", CompraActual.ProveedorNombre, CompraActual.SerieFolio) - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) - - Dim tFecha As Date = Pago.Fecha - - If CompraActual.CveMoneda > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then - Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) - If UltimaFluctuacion IsNot Nothing Then - If UltimaFluctuacion.FechaFluctuacion <= tFecha Then - tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - TCValuacion = UltimaFluctuacion.TCFluctuacion - End If - If CompraActual.Fecha < tFechaUltimaFluctuacion Then TCValuacionCompra = TCValuacion - If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion - End If - End If - - If CompraActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares - tImportePago = ((Pago.ImportePago * TCValuacionCompra / Pago.TCPago).RoundSQL * Pago.TCPago).RoundSQL - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL - ElseIf CompraActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteCompra = (Pago.ImportePago * TCValuacionCompra).RoundSQL - tImportePago = (Pago.ImportePago * Pago.TCPago).RoundSQL - End If - Dim ImportePagoMN As Decimal = Pago.ImportePago - Dim UsaComplementaria As Boolean = True - If CompraActual.CveMoneda > 1 Then ImporteME = Pago.ImportePago - - If UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'caso excepcional de complementarias - UsaComplementaria = False - ImportePagoMN = (Pago.ImportePago * TCValuacionCompra).RoundSQL - End If - - 'movimiento de pago proveedor - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImportePagoMN, Pago.CveConceptoPago, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - 'movimiento de pago proveedor Complementaria - If Not ErrorMovtos AndAlso CompraActual.CveMoneda > 1 AndAlso UsaComplementaria Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, (ImporteME * TCValuacionCompra - ImporteME).RoundSQL, CveConceptoContableComplementaria, CompraActual.SerieFolio, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveCompraAmortizacion:=Pago.CveCompraAmortizacion, TipoCambio:=TCValuacionCompra, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - If Pago.AplicaAcreditable Then - - 'si tiene iva y su proporcion - If Not ErrorMovtos AndAlso CompraActual.IVA <> 0 Then - ImporteMovimiento = (PorcentajePago * CompraActual.IVA).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - If CompraActual.IVADeducible > 0 Then - - ImporteMovimiento = (PorcentajePago * CompraActual.IVADeducible).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento.RoundSQL * Pago.TCPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - End If - - If CompraActual.IVANoDeducible > 0 Then - - ImporteMovimiento = (PorcentajePago * CompraActual.IVANoDeducible).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 280, CompraActual.SerieFolio, Concepto, Ret.IdCtaContIVANoAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, PorcentajeImpuesto:=CompraActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - End If - - 'si tiene RET IVA y su proporcion - If Not ErrorMovtos AndAlso CompraActual.RetIVA > 0 Then - ImporteMovimiento = (PorcentajePago * CompraActual.RetIVA).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetIVA - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - 'si tiene Ret ISR y su proporcion - If Not ErrorMovtos AndAlso CompraActual.RetISR > 0 Then - ImporteMovimiento = (PorcentajePago * CompraActual.RetISR).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - Dim ContabilizableISR As Boolean = False - If UsuarioActual.CveEmpresa.Contiene(140, 7, 11, 12, 122, 145, 172, 173) Then - ContabilizableISR = True - End If - - Dim Ret As ConceptosRetenciones = CompraActual.ConceptoPrePolizaRetISR - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, Ret.CveConceptoxAcreditar, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, Contabilizable:=ContabilizableISR, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, Ret.CveConceptoAcreditable, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, Contabilizable:=ContabilizableISR, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - 'si tiene IEPS y su proporcion - If Not ErrorMovtos AndAlso CompraActual.IEPS > 0 Then - ImporteMovimiento = (PorcentajePago * CompraActual.IEPS).RoundSQL - ImporteMN = (ImporteMovimiento * CompraActual.TC).RoundSQL - If CompraActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(26, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - - If ObjConta.GetRetCuenta(25, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 25, CompraActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 26, CompraActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=CompraActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - End If - - 'si tiene otros gastos/ingresos - ImporteMovimiento = Pago.OtroGastoIngreso - If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then - Dim tOtCveCon As Integer = 211 - Dim tOtTipoMovto As Boolean = False - Dim IdCta As Integer = If(UsuarioActual.Empresa.TipoContabilidad = 2, UsuarioActual.Empresa.Funcionalidad(266).ToEntero(), 0) - If ImporteMovimiento < 0 Then - tOtTipoMovto = True : tOtCveCon = 78 - ImporteMovimiento = Math.Abs(ImporteMovimiento) - IdCta = If(UsuarioActual.Empresa.TipoContabilidad = 2, UsuarioActual.Empresa.IdCuentaOtrosIngresos, 0) - End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, CompraActual.SerieFolio, Concepto, IdCta, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - End If - - 'concepto pago - Concepto = String.Format("{0} NC:{1}", CompraActual.ProveedorNombre, Pago.Referencia) - - If Pago.TipoPago = "Egsc" AndAlso Not ErrorMovtos Then ' A N T I C I P O / E G R E S O S X C O M P R O B A R - Dim Ret As New ConceptosRetenciones - If Pago.CveMonedaPago > 1 Then - - Dim Importe21 As Decimal = Pago.ImportePago - If Not UsaComplementaria Then - Importe21 = (Importe21 + (Pago.ImportePago * TCValuacionPago - Pago.ImportePago)).RoundSQL - End If - - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Importe21, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - - If UsaComplementaria Then - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 266, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProvComplementaria, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - End If - - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 21, Pago.Referencia, Concepto, CompraActual.IdCtaContableAnticipoProv, CveCompra:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True - - End If - - End If - - If Pago.TipoPago.Contiene("NC", "DEV") AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O - Dim Ret As New ConceptosRetenciones - If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 342, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 235, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 60, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveVentaAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - End If - - End If - - If Pago.TipoPago = "DD" AndAlso Not ErrorMovtos Then ' D E U D O R D I V E R S O - Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - End If - - If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveCompra:=Pago.CveCompraAmortizacion, CveCompraAmortizacion:=CompraActual.CveCompra, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, CompraActual.IdCtaContableProvComplementaria, CveCompra:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, CompraActual.IdCtaContableProv, CveVenta:=Pago.CveCompraAmortizacion, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE, CveSubProyecto:=CompraActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - End If - End If - - 'If Pago.TipoPago = "Egsc" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R - ' Dim Ret As New ConceptosRetenciones - ' If UsuarioActual.Empresa.TipoContabilidad = 2 Then - ' If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - ' If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - - ' End If - - ' If Pago.CveMonedaPago > 1 Then - ' 'Agregamos la Extranjera - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - ' ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - ' Else - ' 'Agregamos Nacional - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - ' End If - 'End If - - If Not ErrorMovtos AndAlso TCValuacionCompra <> TCValuacionPago Then - Dim ConceptoContable, IdCtaContable As Integer - Dim TipoMovimiento As Boolean - Dim Diferencia As Decimal = 0 - - If tImporteCompra <> tImportePago Then - If tImporteCompra > tImportePago Then - ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria - TipoMovimiento = True - Else - ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - TipoMovimiento = False - End If - Diferencia = (tImporteCompra - tImportePago).Abs.RoundSQL - - End If - - If FuncionalidadFluctuacionImpuestos Then - Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, CompraActual.TC) - Diferencia = (Pago.ImportePago * CompraActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta - Diferencia -= ((CompraActual.IVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA - Diferencia += ((CompraActual.RetIVA * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA - Diferencia += ((CompraActual.RetISR * PorcentajePago) * CompraActual.TC) - ((CompraActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR - Diferencia -= ((CompraActual.IEPS * PorcentajePago) * CompraActual.TC) - ((CompraActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - Diferencia = Diferencia.Abs.RoundSQL - End If - - If Diferencia <> 0 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveCompra:=CompraActual.CveCompra, CveSubProyecto:=CompraActual.CveSubProyecto, CveProveedor:=CompraActual.CveProveedor, CveIE:=Pago.CveIE) Then - ErrorMovtos = True - End If - End If - End If - - Return ErrorMovtos - End Function - - - Public Class CompraPago - Public Property TipoPago As String = "B" ' B - Bancos, A - Anticipos, E - ExC, NC - Nota de crédito - Public Fecha As Date - Public Property CveIE As Integer = -1 - Public Property CvePersonal As Integer = -1 - Public Property ImportePago As Decimal = 0 - Public Property CveMonedaPago As Integer = 1 - Public Property TCPago As Decimal = 1 - Public Property CveCompraAmortizacion As Integer = 0 - Public Property OtroGastoIngreso As Decimal = 0 - Public Property CveConceptoPago As Integer = -1 'no definido de inicio - Public Property CveCreditoDetalle As Integer = -1 - Public Property Referencia As String = "" - Public Property AplicaAcreditable As Boolean = True - - End Class - - Public Class Compra - Public Property CveCompra As Integer = -1 - Public Property CveProveedor As Integer - Public Property CveTipoConceptoProveedor As Integer - Public Property CveMoneda As Integer - Public Property Fecha As Date - Public Property SerieFolio As String = "" - Public Property ProveedorNombre As String = "" - Public Property EsImportacion As Boolean = False - Public Property TC As Decimal = 1 - Public Property Total As Decimal - Public Property IVA As Decimal - Public Property IVADeducible As Decimal - Public Property IVANoDeducible As Decimal = 0 - Public Property IEPS As Decimal - Public Property RetIVA As Decimal - Public Property RetISR As Decimal - Public Property PorcentajeIVA As Decimal - Public Property CveConceptoRetIVA As Integer - Public Property CveConceptoRetISR As Integer - Public Property CveSubProyecto As Integer - Public Property UsuarioActual As Usuario - Public Property IdCtaContableProv As Integer - Public Property IdCtaContableProvComplementaria As Integer - Public Property IdCtaContableAnticipoProv As Integer - Public Property IdCtaContableAnticipoProvComplementaria As Integer - Public ReadOnly Property ConceptoPrePolizaIVA As ConceptosRetenciones - Get - Dim Ret As New ConceptosRetenciones - If EsImportacion Then - Ret.CveConceptoAcreditable = 288 - Ret.CveConceptoxAcreditar = 287 - Else - Ret.CveConceptoAcreditable = 19 - Ret.CveConceptoxAcreditar = 14 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - - Dim IdCtaIVAXAcreditar, IdCtaIVAAcreditable, IdCtaIVANOAcreditable As Integer - Dim dt As DataTable = ClsPaginas.GlobalDTClasificacionPorcentaje(UsuarioActual.CveEmpresa, PorcentajeIVA:=PorcentajeIVA) - If dt.Rows.Count > 0 Then - IdCtaIVAXAcreditar = dt.Rows(0)("IdCtaIVAXAcreditar").ToString.ToEntero - IdCtaIVAAcreditable = dt.Rows(0)("IdCtaIVAAcreditable").ToString.ToEntero - IdCtaIVANOAcreditable = dt.Rows(0)("IdCtaIVANoAcreditable").ToString.ToEntero - End If - - Ret.IdCtaContableAcreditable = IdCtaIVAAcreditable - Ret.IdCtaContablexAcreditar = IdCtaIVAXAcreditar - Ret.IdCtaContIVANoAcreditable = IdCtaIVANOAcreditable - End If - - Return Ret - End Get - End Property - - Public ReadOnly Property ConceptoPrePolizaRetIVA As ConceptosRetenciones - Get - Dim Ret As New ConceptosRetenciones - Dim Funcionalidad, FuncionalidadxAcred As Integer - If CveConceptoRetIVA = 1 Then - Funcionalidad = 308 : FuncionalidadxAcred = 307 - Ret.CveConceptoAcreditable = 22 - Ret.CveConceptoxAcreditar = 15 - ElseIf CveConceptoRetIVA = 2 Then - Funcionalidad = 310 : FuncionalidadxAcred = 309 - Ret.CveConceptoAcreditable = 184 - Ret.CveConceptoxAcreditar = 183 - ElseIf CveConceptoRetIVA = 3 Then - Funcionalidad = 312 : FuncionalidadxAcred = 311 - Ret.CveConceptoAcreditable = 186 - Ret.CveConceptoxAcreditar = 185 - ElseIf CveConceptoRetIVA = 4 Then - Funcionalidad = 314 : FuncionalidadxAcred = 313 - Ret.CveConceptoAcreditable = 249 - Ret.CveConceptoxAcreditar = 248 - ElseIf CveConceptoRetIVA = 5 Then - Funcionalidad = 578 : FuncionalidadxAcred = 578 - Ret.CveConceptoAcreditable = 286 - Ret.CveConceptoxAcreditar = 285 - ElseIf CveConceptoRetIVA = 6 Then - Funcionalidad = 578 : FuncionalidadxAcred = 578 - Ret.CveConceptoAcreditable = 333 - Ret.CveConceptoxAcreditar = 334 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - - Dim ObjConta As New ClsContabilidad - If UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero > 0 Then - Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero - Else - If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - - If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetIVACirculacion").ToString.ToEntero - End If - End If - ObjConta.Dispose() - End If - - Return Ret - End Get - End Property - Public ReadOnly Property ConceptoPrePolizaRetISR As ConceptosRetenciones - Get - Dim Ret As New ConceptosRetenciones - Dim Funcionalidad, FuncionalidadxAcred As Integer - If CveConceptoRetISR = 1 Then - Funcionalidad = 316 : FuncionalidadxAcred = 315 - Ret.CveConceptoAcreditable = 23 - Ret.CveConceptoxAcreditar = 16 - ElseIf CveConceptoRetISR = 2 Then - Funcionalidad = 318 : FuncionalidadxAcred = 317 - Ret.CveConceptoAcreditable = 244 - Ret.CveConceptoxAcreditar = 243 - ElseIf CveConceptoRetISR = 3 Then - Funcionalidad = 349 : FuncionalidadxAcred = 348 - Ret.CveConceptoAcreditable = 328 - Ret.CveConceptoxAcreditar = 327 - End If - - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - - Dim ObjConta As New ClsContabilidad - If UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero > 0 Then - Ret.IdCtaContablexAcreditar = UsuarioActual.Empresa.Funcionalidad(FuncionalidadxAcred).ToEntero - Else - If ObjConta.GetRetCuenta(Ret.CveConceptoxAcreditar, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - - If UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero > 0 Then - Ret.IdCtaContableAcreditable = UsuarioActual.Empresa.Funcionalidad(Funcionalidad).ToEntero - Else - If ObjConta.GetRetCuenta(Ret.CveConceptoAcreditable, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaRetISRCirculacion").ToString.ToEntero - End If - End If - ObjConta.Dispose() - - End If - - Return Ret - End Get - - End Property - - End Class - - Public Class ConceptosRetenciones - Public Property CveConceptoxAcreditar As Integer - Public Property CveConceptoAcreditable As Integer - Public Property IdCtaContablexAcreditar As Integer - Public Property IdCtaContableAcreditable As Integer - Public Property IdCtaContIVANoAcreditable As Integer - - End Class - - - -#End Region - - - -#Region "P A G O D E V E N T A S " - - - Public Function AplicaPrePolizaPagoVenta(VentaActual As Venta, Pago As VentaPago, CvePrePoliza As Integer, ByRef ObjConta As ClsContabilidad) As Boolean - Dim ErrorMovtos As Boolean = False - Dim PorcentajePago As Decimal = Pago.ImportePagoVenta / VentaActual.Total - Dim ImporteMovimiento As Decimal = 0 - Dim ImporteMN As Decimal = 0 - Dim ImporteME As Decimal = 0 - Dim TCValuacion As Decimal - Dim TCValuacionVenta As Decimal = VentaActual.TC - Dim TCValuacionPago As Decimal = Pago.TCPago - Dim tFechaUltimaFluctuacion As Date - Dim tImportePago, tImporteVenta As Decimal - Dim CveConceptoContableComplementaria As Integer = 207 - If PorcentajePago > 1 Then PorcentajePago = 1 - - Pago.CveConceptoPago = If(Pago.CveConceptoPago = -1, 2, Pago.CveConceptoPago) 'si viene en parametro lo toma com primera opcion, sino el 2 - - If VentaActual.CveMoneda <> 1 Then - If Pago.TipoPago = "NC" Then Pago.CveConceptoPago = 301 Else Pago.CveConceptoPago = 292 - End If - - Dim Concepto As String = String.Format("{0} F:{1}", VentaActual.ClienteNombre, VentaActual.SerieFolio) - Dim FuncionalidadFluctuacionImpuestos As Boolean = If(UsuarioActual.Empresa.Funcionalidad(159) = "1", True, False) - - Dim tFecha As Date = Pago.Fecha - - If VentaActual.CveMoneda > 1 AndAlso UsuarioActual.Empresa.Funcionalidad(703) = "1" Then - Dim UltimaFluctuacion As MTipoCambioFluctuacion = GlobalTipoCambioUltimaFluctuacion(tFecha) - If UltimaFluctuacion IsNot Nothing Then - If UltimaFluctuacion.FechaFluctuacion <= tFecha Then - tFechaUltimaFluctuacion = UltimaFluctuacion.FechaFluctuacion - TCValuacion = UltimaFluctuacion.TCFluctuacion - End If - If VentaActual.Fecha < tFechaUltimaFluctuacion Then TCValuacionVenta = TCValuacion - If Pago.Fecha < tFechaUltimaFluctuacion Then TCValuacionPago = TCValuacion - End If - End If - - If VentaActual.CveMoneda = 1 And Pago.CveMonedaPago <> 1 Then 'factura pesos, pago en dolares - tImportePago = ((Pago.ImportePago * TCValuacionVenta / Pago.TCPago) * Pago.TCPago).RoundSQL - tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL - ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago <> 1 Then 'factura dolares, pago en dolares - tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL - tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL - ElseIf VentaActual.CveMoneda <> 1 And Pago.CveMonedaPago = 1 Then 'factura dolares, pago en pesos - tImporteVenta = (Pago.ImportePago * TCValuacionVenta).RoundSQL - tImportePago = (Pago.ImportePago * TCValuacionPago).RoundSQL - End If - If VentaActual.CveMoneda > 1 Then ImporteME = Pago.ImportePagoVenta - - 'movimiento de pago cliente - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, Pago.ImportePagoVenta, Pago.CveConceptoPago, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - 'movimiento de pago cliente Complementaria - If Not ErrorMovtos AndAlso VentaActual.CveMoneda > 1 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, Pago.ImportePagoVenta, (ImporteME * TCValuacionVenta - ImporteME).RoundSQL, CveConceptoContableComplementaria, VentaActual.SerieFolio, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveVentaAmortizacion:=Pago.CveVentaAmortizacion, TipoCambio:=TCValuacionVenta, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - End If - - If Pago.AplicaTraslado Then - - 'si tiene iva y su proporcion - If Not ErrorMovtos AndAlso VentaActual.IVA <> 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.IVA).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 13, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 61, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, PorcentajeImpuesto:=VentaActual.PorcentajeIVA, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - End If - - End If - - 'si tiene RET IVA y su proporcion - If Not ErrorMovtos AndAlso VentaActual.RetIVA > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.RetIVA).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 8, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 62, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - End If - - 'si tiene Ret ISR y su proporcion - If Not ErrorMovtos AndAlso VentaActual.RetISR > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.RetISR).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 9, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * TCValuacionPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 63, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - End If - - 'si tiene IEPS y su proporcion - If Not ErrorMovtos AndAlso VentaActual.IEPS > 0 Then - ImporteMovimiento = (PorcentajePago * VentaActual.IEPS).RoundSQL - ImporteMN = (ImporteMovimiento * VentaActual.TC).RoundSQL - If VentaActual.CveMoneda > 1 Then ImporteME = ImporteMovimiento - - Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - If ObjConta.GetRetCuenta(38, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxTrasladar").ToString.ToEntero - - If ObjConta.GetRetCuenta(39, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSTrasladado").ToString.ToEntero - - End If - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ImporteMovimiento, ImporteMN, 38, VentaActual.SerieFolio, Concepto, Ret.IdCtaContablexAcreditar, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - 'si tiene funcionalidad para tomar el TC de pago. se recalcula el importe - If FuncionalidadFluctuacionImpuestos Then ImporteMN = (ImporteMovimiento * Pago.TCPago).RoundSQL - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMovimiento, ImporteMN, 39, VentaActual.SerieFolio, Concepto, Ret.IdCtaContableAcreditable, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambio:=VentaActual.TC, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - - End If - 'concepto pago - Concepto = String.Format("{0} NC:{1}", VentaActual.ClienteNombre, Pago.Referencia) - - If Pago.TipoPago = "A" AndAlso Not ErrorMovtos Then ' A N T I C I P O - Dim Ret As New ConceptosRetenciones - If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 296, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 227, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 11, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=Pago.CveVentaAmortizacion, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, TipoCambioPago:=Pago.TCPago) Then ErrorMovtos = True - - End If - - End If - - If Pago.TipoPago = "NC" AndAlso Not ErrorMovtos Then ' N O T A D E C R E D I T O - Dim Ret As New ConceptosRetenciones - If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 294, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 207, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteComplementaria, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 91, Pago.Referencia, Concepto, VentaActual.IdCtaContableCliente, CveVenta:=Pago.CveVentaAmortizacion, CveVentaAmortizacion:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - End If - - End If - - If Pago.TipoPago = "I" AndAlso Not ErrorMovtos Then ' I N G R E S O S X C O M P R O B A R - Dim Ret As New ConceptosRetenciones - If UsuarioActual.Empresa.TipoContabilidad = 2 Then - 'If ObjConta.GetRetCuenta(66, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContableAcreditable = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSAcreditable").ToString.ToEntero - 'If Pago.CveMonedaPago > 1 AndAlso ObjConta.GetRetCuenta(207, UsuarioActual.CveEmpresa) AndAlso ObjConta.DtResultados.Rows.Count > 0 Then Ret.IdCtaContablexAcreditar = ObjConta.DtResultados.Rows(0)("IdCuentaIEPSxAcreditar").ToString.ToEntero - - If UsuarioActual.CveEmpresa.Contiene(119) Then - If Pago.FechaDocumentoRelacionado.Year <= 2017 Then - Dim ObjCliente As New ClsClientes(ObjConta.IniciaTransacSQL()) - If ObjCliente.GetClientes(VentaActual.CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) AndAlso ObjCliente.DtResultados.Rows.Count > 0 Then - - If Pago.CveMonedaPago > 1 Then VentaActual.IdCtaContableClienteAnticipoExtranjera = ObjCliente.IdCtaContMonedaExtranjera Else VentaActual.IdCtaContableClienteAnticipo = ObjCliente.IdCtaContClientes - - End If - End If - End If - - End If - - If Pago.CveMonedaPago > 1 Then - 'Agregamos la Extranjera - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoExtranjera, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - ImporteMN = (Pago.ImportePago * TCValuacionPago - Pago.ImportePago).RoundSQL - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, ImporteMN, 332, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipoComplementaria, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, ImporteME:=Pago.ImportePago, TipoCambio:=TCValuacionPago, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - Else - 'Agregamos Nacional - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, Pago.ImportePago, Pago.ImportePago, 92, Pago.Referencia, Concepto, VentaActual.IdCtaContableClienteAnticipo, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CveSubProyecto:=VentaActual.CveSubProyecto, CvePersonal:=Pago.CvePersonal) Then ErrorMovtos = True - - End If - - End If - - 'si tiene otros gastos/ingresos - ImporteMovimiento = Pago.OtroGastoIngreso - If Not ErrorMovtos AndAlso ImporteMovimiento <> 0 Then - Dim tOtCveCon As Integer = 78 - Dim tOtTipoMovto As Boolean = True - If ImporteMovimiento < 0 Then - tOtTipoMovto = False : tOtCveCon = 211 - ImporteMovimiento = Math.Abs(ImporteMovimiento) - End If - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, tOtTipoMovto, ImporteMovimiento, ImporteMovimiento, tOtCveCon, VentaActual.SerieFolio, Concepto, 0, CveVenta:=VentaActual.CveVenta, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE, CvePersonal:=Pago.CvePersonal, CveSubProyecto:=VentaActual.CveSubProyecto, TipoCambioPago:=Pago.TCPago, ImporteME:=ImporteME) Then ErrorMovtos = True - End If - - If Not ErrorMovtos AndAlso TCValuacionVenta <> TCValuacionPago Then - Dim ConceptoContable, IdCtaContable As Integer - Dim TipoMovimiento As Boolean - Dim Diferencia As Decimal = 0 - tImportePago += Pago.ImporteFluctuacionAdicional 'para los casos de aplicación de - - If tImporteVenta <> tImportePago Then - If tImporteVenta < tImportePago Then - ConceptoContable = 64 : IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria - TipoMovimiento = True - Else - ConceptoContable = 65 : IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria - TipoMovimiento = False - End If - Diferencia = (tImporteVenta - tImportePago).Abs.RoundSQL - - End If - - If FuncionalidadFluctuacionImpuestos Then - Dim TCImpuestos As Decimal = If(FuncionalidadFluctuacionImpuestos, Pago.TCPago, VentaActual.TC) - Diferencia = (Pago.ImportePago * VentaActual.TC) - (Pago.ImportePago * Pago.TCPago) 'Añadimos la diferencia de perdida en la venta - Diferencia -= ((VentaActual.IVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.IVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IVA - Diferencia += ((VentaActual.RetIVA * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetIVA * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetIVA - Diferencia += ((VentaActual.RetISR * PorcentajePago) * VentaActual.TC) - ((VentaActual.RetISR * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el RetISR - Diferencia -= ((VentaActual.IEPS * PorcentajePago) * VentaActual.TC) - ((VentaActual.IEPS * PorcentajePago) * TCImpuestos) 'Añadimos la diferencia de ganancia en el IEPS - Diferencia = Diferencia.Abs.RoundSQL - End If - - If Diferencia <> 0 Then - - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, Diferencia, Diferencia, ConceptoContable, Concepto, Concepto, IdCtaContable, CveVenta:=VentaActual.CveVenta, CveSubProyecto:=VentaActual.CveSubProyecto, CveCliente:=VentaActual.CveCliente, CveIE:=Pago.CveIE) Then - ErrorMovtos = True - End If - End If - End If - - Return ErrorMovtos - End Function - - - Public Class VentaPago - Public Property TipoPago As String = "B" ' B - Bancos, A - Anticipos, I - IxC, NC - Nota de crédito - Public FechaDocumentoRelacionado As Date - Public Fecha As Date - Public Property CveIE As Integer = -1 - Public Property CvePersonal As Integer = -1 - Public Property ImportePagoVenta As Decimal = 0 - Public Property ImportePago As Decimal = 0 - Public Property CveMonedaPago As Integer = 1 - Public Property TCPago As Decimal = 1 - Public Property CveVentaAmortizacion As Integer = 0 - Public Property OtroGastoIngreso As Decimal = 0 - Public Property CveConceptoPago As Integer = -1 'no definido de inicio - Public Property CveCreditoDetalle As Integer = -1 - Public Property AplicaTraslado As Boolean = True - Public Property Referencia As String - Public Property ImporteFluctuacionAdicional As Decimal = 0 - - End Class - - Public Class Venta - Public Property CveVenta As Integer = -1 - Public Property CveCliente As Integer - Public Property CveMoneda As Integer - Public Property Fecha As Date - Public Property SerieFolio As String = "" - Public Property ClienteNombre As String = "" - Public Property TC As Decimal = 1 - Public Property Total As Decimal - Public Property IVA As Decimal - Public Property IEPS As Decimal - Public Property RetIVA As Decimal - Public Property RetISR As Decimal - Public Property PorcentajeIVA As Decimal - Public Property CveSubProyecto As Integer - Public Property UsuarioActual As Usuario - Public Property IdCtaContableCliente As Integer - Public Property IdCtaContableClienteComplementaria As Integer - Public Property IdCtaContableClienteAnticipo As Integer - Public Property IdCtaContableClienteAnticipoExtranjera As Integer - Public Property IdCtaContableClienteAnticipoComplementaria As Integer - - End Class - -#End Region - - End Class - diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index adb1dce73..f6fb9490b 100644 --- a/App_Code/LogicNominas.vb +++ b/App_Code/LogicNominas.vb @@ -346,8 +346,8 @@ Public Class LogicNominas 'Obtengo el desglose de horas extras Dim dr As DataRow = DtHorasExtras.FiltroPrimero("") If dr IsNot Nothing Then - If dr("HorasDobles").ToString().ToDouble > 0 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasDobles").ToString().ToEntero().ToString(), .TipoHoras = "01", .HorasExtra = dr("HorasDobles").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) - If dr("HorasTriples").ToString().ToDouble > 0 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasTriples").ToString().ToEntero().ToString(), .TipoHoras = "02", .HorasExtra = dr("HorasTriples").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) + If dr("HorasDobles").ToString().ToDouble > 0 And Row("CveSistema").ToString().ToEntero() = 12 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasDobles").ToString().ToEntero().ToString(), .TipoHoras = "01", .HorasExtra = dr("HorasDobles").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) + If dr("HorasTriples").ToString().ToDouble > 0 And Row("CveSistema").ToString().ToEntero() = 13 Then ObjHorasExtras.Add(New CFDINominaHorasExtras With {.Dias = dr("DiasHorasTriples").ToString().ToEntero().ToString(), .TipoHoras = "02", .HorasExtra = dr("HorasTriples").ToString().ToEntero(), .ImportePagado = Row("Importe").ToString().ToDecimal}) End If End If diff --git a/Bancos/ConciliacionesBancarias.aspx.vb b/Bancos/ConciliacionesBancarias.aspx.vb index 36c793a37..9c9dc72d7 100644 --- a/Bancos/ConciliacionesBancarias.aspx.vb +++ b/Bancos/ConciliacionesBancarias.aspx.vb @@ -630,7 +630,7 @@ Partial Class Bancos_ConciliacionesBancariasaspx Dim CveMoneda As Integer = GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveCuenta = {DdlCuenta.SelectedValue}").Rows(0)("CveMoneda").ToString.ToEntero Dim ObjConta As New ClsContabilidad If ObjConta.GetCuentas(-1, "-1", -1, UsuarioActual.CveEmpresa) Then - If ObjConta.DtResultados.FiltraParametros($"IdCompaq = {GlobalDTBancosCuentas(UsuarioActual.CveUsuario).FiltraParametros($"CveCuenta = {DdlCuenta.SelectedValue}").Rows(0)("IdCtaContable").ToString}").Rows.Count > 0 Then + If ObjConta.DtResultados.FiltraParametros($"IdCompaq = {GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveCuenta = {DdlCuenta.SelectedValue}").Rows(0)("IdCtaContable").ToString}").Rows.Count > 0 Then CveCuenta = ObjConta.DtResultados.FiltraParametros($"IdCompaq = {GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveCuenta = {DdlCuenta.SelectedValue}").Rows(0)("IdCtaContable").ToString}").Rows(0)("CveCuenta").ToString.ToEntero If CveMoneda > 1 Then CveCuentaComplementaria = ObjConta.DtResultados.FiltraParametros($"IdCompaq = {GlobalDTBancosCuentas(UsuarioActual.CveUsuario, CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros($"CveCuenta = {DdlCuenta.SelectedValue}").Rows(0)("IdCtaContableComplementaria").ToString}").Rows(0)("CveCuenta").ToString.ToEntero diff --git a/CRM/RepAcercamientosProcesos.aspx.cs b/CRM/RepAcercamientosProcesos.aspx.cs index 813966a56..49c73ae37 100644 --- a/CRM/RepAcercamientosProcesos.aspx.cs +++ b/CRM/RepAcercamientosProcesos.aspx.cs @@ -21,12 +21,6 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas set { ViewState["Agrupador"] = value; } } - private DataTable DtColor - { - get { return DtColor = (DataTable)ViewState["DtColor"]; } - set { ViewState["DtColor"] = value; } - } - private DataTable DtDatos { get { return DtDatos = (DataTable)ViewState["DtDatos"]; } @@ -69,7 +63,6 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas TxtFechaFin.Text = startOfWeek.AddDays(7).ToString("dd/MM/yyyy"); CargaDdl(); cargarDatos(); - CreaDtColor(); } } @@ -236,80 +229,6 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas cargarDatos(); } - private void CreaDtColor() - { - DtColor = new DataTable(); - DtColor.Columns.Add("Color"); - DataRow RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF0F00"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF6600"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF9E01"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FCD202"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#F8FF01"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#B0DE09"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#04D215"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#0D8ECF"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#0D52D1"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#2A0CD0"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#8A0CCF"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#CD0D74"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#754DEB"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#DDDDDD"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#999999"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#333333"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#000000"; - DtColor.Rows.Add(RowColor); - } - protected void LnkVerGrafica_Click(object sender, EventArgs e) { if (DtDatos != null) @@ -350,10 +269,10 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas DataRow Row = Dt.NewRow(); Row["Texto"] = $"{Texto}"; Row["Valor"] = Dr["TOTAL"].ToString().FormatoNumero(); - Row["Color"] = DtColor.Rows[RowColorIndex]["Color"].ToString(); + Row["Color"] = Colors[RowColorIndex]; Dt.Rows.Add(Row); RowColorIndex++; - if (RowColorIndex == 17) { RowColorIndex = 0; } + if (RowColorIndex == Colors.Length) { RowColorIndex = 0; } } } diff --git a/CRM/RepAcercamientosRechazos.aspx.cs b/CRM/RepAcercamientosRechazos.aspx.cs index 348df7b03..f2e89eb13 100644 --- a/CRM/RepAcercamientosRechazos.aspx.cs +++ b/CRM/RepAcercamientosRechazos.aspx.cs @@ -21,12 +21,6 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas set { ViewState["Agrupador"] = value; } } - private DataTable DtColor - { - get { return DtColor = (DataTable)ViewState["DtColor"]; } - set { ViewState["DtColor"] = value; } - } - private DataTable DtDatos { get { return DtDatos = (DataTable)ViewState["DtDatos"]; } @@ -69,7 +63,6 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas TxtFechaFin.Text = startOfWeek.AddDays(7).ToString("dd/MM/yyyy"); CargaDdl(); cargarDatos(); - CreaDtColor(); } } @@ -216,80 +209,6 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas cargarDatos(); } - private void CreaDtColor() - { - DtColor = new DataTable(); - DtColor.Columns.Add("Color"); - DataRow RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF0F00"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF6600"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FF9E01"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#FCD202"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#F8FF01"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#B0DE09"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#04D215"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#0D8ECF"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#0D52D1"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#2A0CD0"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#8A0CCF"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#CD0D74"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#754DEB"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#DDDDDD"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#999999"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#333333"; - DtColor.Rows.Add(RowColor); - RowColor = null; - RowColor = DtColor.NewRow(); - RowColor["Color"] = "#000000"; - DtColor.Rows.Add(RowColor); - } - protected void LnkVerGrafica_Click(object sender, EventArgs e) { if (DtDatos != null) @@ -330,10 +249,10 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas DataRow Row = Dt.NewRow(); Row["Texto"] = $"{Texto}"; Row["Valor"] = Dr["TOTAL"].ToString().FormatoNumero(); - Row["Color"] = DtColor.Rows[RowColorIndex]["Color"].ToString(); + Row["Color"] = Colors[RowColorIndex]; Dt.Rows.Add(Row); RowColorIndex++; - if (RowColorIndex == 17) { RowColorIndex = 0; } + if (RowColorIndex == Colors.Length) { RowColorIndex = 0; } } } diff --git a/Compras/RepCompras.aspx.vb b/Compras/RepCompras.aspx.vb index 6a76475dc..d8d4d8561 100644 --- a/Compras/RepCompras.aspx.vb +++ b/Compras/RepCompras.aspx.vb @@ -1,5 +1,4 @@ - -Option Explicit On +Option Explicit On Option Strict On Imports System.Data @@ -7,9 +6,9 @@ Imports Extensiones Imports Microsoft.Reporting.WebForms Partial Class Compras_RepCompras - Inherits ClsPaginas + Inherits ClsPaginas #Region "PROPIEDADES" - + Private Property TCEspecifico As Double Get If ViewState("TCEspecifico") Is Nothing Then @@ -22,15 +21,6 @@ Partial Class Compras_RepCompras ViewState("TCEspecifico") = value End Set End Property - - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property DtCompras As DataTable Get Return DirectCast(ViewState("DtCompras"), DataTable) @@ -163,8 +153,6 @@ Partial Class Compras_RepCompras 'Carga Tipo Centro de Costo CargaTipoCentroCosto() - - CreaDataTableColor() End Sub @@ -418,11 +406,11 @@ Partial Class Compras_RepCompras End Sub Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click GenerarPDF() - End Sub + End Sub #End Region - + #Region "GRAFICA" - + Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtCompras IsNot Nothing AndAlso DtCompras.Rows.Count > 0 Then Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) @@ -433,78 +421,6 @@ Partial Class Compras_RepCompras RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -526,13 +442,11 @@ Partial Class Compras_RepCompras Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Compras/RepComprasAF.aspx.vb b/Compras/RepComprasAF.aspx.vb index c0f2719c9..82331aa84 100644 --- a/Compras/RepComprasAF.aspx.vb +++ b/Compras/RepComprasAF.aspx.vb @@ -34,14 +34,6 @@ Partial Class Compras_RepComprasAF ViewState("DTDatos") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -68,7 +60,6 @@ Partial Class Compras_RepComprasAF DdlProyecto.Items(0).Text = "" LblProyecto.Visible = False End If - CreaDataTableColor() End If End Sub @@ -311,78 +302,6 @@ Partial Class Compras_RepComprasAF RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -402,13 +321,11 @@ Partial Class Compras_RepComprasAF Case 2 Row("Valor") = Dr("Cantidad").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Compras/RepComprasDetalle.aspx.vb b/Compras/RepComprasDetalle.aspx.vb index 9a536acb4..0e99ed183 100644 --- a/Compras/RepComprasDetalle.aspx.vb +++ b/Compras/RepComprasDetalle.aspx.vb @@ -40,14 +40,6 @@ Partial Class Compras_RepComprasDetalle ViewState("TCEspecifico") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -270,8 +262,6 @@ Partial Class Compras_RepComprasDetalle 'Carga Tipo Centro de Costo CargaTipoCentroCosto() - CreaDataTableColor() - End Sub Private Sub CargaSubProyecto() @@ -471,78 +461,6 @@ Partial Class Compras_RepComprasDetalle RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -564,13 +482,11 @@ Partial Class Compras_RepComprasDetalle Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Compras/RepComprasPersonal.aspx.vb b/Compras/RepComprasPersonal.aspx.vb index 82e9d8639..064ec21c0 100644 --- a/Compras/RepComprasPersonal.aspx.vb +++ b/Compras/RepComprasPersonal.aspx.vb @@ -33,14 +33,6 @@ Partial Class Compras_RepComprasPersonal End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -58,7 +50,6 @@ Partial Class Compras_RepComprasPersonal CargaCombos() DdlPS.ddl.Visible = False DdlPS.ddlWS.Attributes.Add("data-estatus", "-1") - CreaDataTableColor() End If End Sub @@ -303,78 +294,6 @@ Partial Class Compras_RepComprasPersonal RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -394,13 +313,11 @@ Partial Class Compras_RepComprasPersonal Case 2 Row("Valor") = Dr("Cantidad").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Compras/RepCxP.aspx.vb b/Compras/RepCxP.aspx.vb index ccfa889b5..629feb128 100644 --- a/Compras/RepCxP.aspx.vb +++ b/Compras/RepCxP.aspx.vb @@ -56,14 +56,6 @@ Partial Class Compras_RepCxP ViewState("Agrupador") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property DtGrafica As DataTable Get Return DirectCast(ViewState("DtGrafica"), DataTable) @@ -101,7 +93,6 @@ Partial Class Compras_RepCxP CargaCombos() CargaGvPersonalizarRaqngoColumnas() CargaDatos() - CreaDataTableColor() If UsuarioActual.CveRol = 1 Then divAgruparMes.Visible = True @@ -1751,78 +1742,6 @@ Partial Class Compras_RepCxP CargaGraficaVencidoPorVencer(DdlVerGraficaVencidoPorVencer.SelectedValue.ToEntero) CambioGrafica(DdlVer.SelectedValue.ToEntero) End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica(Tipo As Integer) Dim Dt As New DataTable() @@ -1845,13 +1764,11 @@ Partial Class Compras_RepCxP Case 3 Row("Valor") = Dr("por_vencer").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 Top += 1 End If If DdlMostrarGraficaTotales.SelectedValue.ToEntero <> -1 And Top > DdlMostrarGraficaTotales.SelectedValue.ToEntero Then Exit For diff --git a/Compras/RepProductosServicios.aspx.vb b/Compras/RepProductosServicios.aspx.vb index 34addd1e1..26754b5f3 100644 --- a/Compras/RepProductosServicios.aspx.vb +++ b/Compras/RepProductosServicios.aspx.vb @@ -20,15 +20,6 @@ Partial Class Compras_RepProductosServicios ViewState("DtDatos") = value End Set End Property - - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -173,8 +164,6 @@ Partial Class Compras_RepProductosServicios txtFechaI.Text = FirstDayOfMonth(Now.AddMonths(-5)).ToShortDateString txtFechaF.Text = Now.ToShortDateString - CreaDataTableColor() - TipoCambio = 1 TCEspecifico = 0 @@ -567,78 +556,6 @@ Partial Class Compras_RepProductosServicios RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -660,13 +577,11 @@ Partial Class Compras_RepProductosServicios Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Compras/RepProductosServiciosDetalle.aspx.vb b/Compras/RepProductosServiciosDetalle.aspx.vb index f34b5fc99..f9a587cc6 100644 --- a/Compras/RepProductosServiciosDetalle.aspx.vb +++ b/Compras/RepProductosServiciosDetalle.aspx.vb @@ -24,14 +24,6 @@ Partial Class Compras_RepProductosServiciosDetalle ViewState("CveMoneda") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -282,8 +274,6 @@ Partial Class Compras_RepProductosServiciosDetalle txtFechaI.Text = FirstDayOfMonth(Now.AddMonths(-5)).ToShortDateString txtFechaF.Text = Now.ToShortDateString - CreaDataTableColor() - TipoCambio = 1 TCEspecifico = 0 End Sub @@ -671,78 +661,6 @@ Partial Class Compras_RepProductosServiciosDetalle RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -764,13 +682,11 @@ Partial Class Compras_RepProductosServiciosDetalle Case 3 Row("Valor") = Dr("Cantidad").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb b/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb index 1c1a6ce05..4b711bc3a 100644 --- a/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb +++ b/Contabilidad/Reportes/RepCuadreContaAdmonDetalle.aspx.vb @@ -10,8 +10,6 @@ Partial Class RepCuadreContaAdmonDetalle Inherits ClsPaginas Private Shared missing As Object = System.Reflection.Missing.Value -#Region "PROPIEDADES" -#End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then diff --git a/CxC/RepCxC.aspx.vb b/CxC/RepCxC.aspx.vb index 02e642962..67066b279 100644 --- a/CxC/RepCxC.aspx.vb +++ b/CxC/RepCxC.aspx.vb @@ -79,14 +79,6 @@ Partial Class RepCxC ViewState("Agrupador") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property DtGrafica As DataTable Get Return DirectCast(ViewState("DtGrafica"), DataTable) @@ -109,7 +101,6 @@ Partial Class RepCxC If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then ChkAnticipos.Visible = True ActivaEnviarEstadoCuenta() If UsuarioActual.CveRol = 1 Or UsuarioActual.TienePermisoProceso(243) Then LnkDescargarSegmentos.Visible = True - CreaDataTableColor() End If End Sub @@ -1250,78 +1241,6 @@ Partial Class RepCxC CargaGraficaVencidoPorVencer(DdlVerGraficaVencidoPorVencer.SelectedValue.ToEntero) CambioGrafica(DdlVer.SelectedValue.ToEntero) End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica(Tipo As Integer) Dim Dt As New DataTable() @@ -1344,13 +1263,11 @@ Partial Class RepCxC Case 3 Row("Valor") = Dr("por_vencer").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 Top += 1 End If If DdlMostrarGraficaTotales.SelectedValue.ToEntero <> -1 And Top > DdlMostrarGraficaTotales.SelectedValue.ToEntero Then Exit For diff --git a/General/RepIndicadorResumen.aspx.vb b/General/RepIndicadorResumen.aspx.vb index c555565c5..fa27177ea 100644 --- a/General/RepIndicadorResumen.aspx.vb +++ b/General/RepIndicadorResumen.aspx.vb @@ -5,22 +5,6 @@ Imports MoreLinq Partial Class General_RepIndicadorResumen Inherits ClsPaginas -#Region "propiedades" -#If False Then - Private Property DtColor As DataTable - Get - If ViewState("DtColor") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("DtColor"), DataTable) - End If - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property -#End If -#End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargaCombos() @@ -221,29 +205,6 @@ Partial Class General_RepIndicadorResumen End If End If End Sub -#If False Then - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - DtColor.Rows.Add("#FF0F00") - DtColor.Rows.Add("#FF6600") - DtColor.Rows.Add("#FF9E01") - DtColor.Rows.Add("#FCD202") - DtColor.Rows.Add("#F8FF01") - DtColor.Rows.Add("#B0DE09") - DtColor.Rows.Add("#04D215") - DtColor.Rows.Add("#0D8ECF") - DtColor.Rows.Add("#0D52D1") - DtColor.Rows.Add("#2A0CD0") - DtColor.Rows.Add("#8A0CCF") - DtColor.Rows.Add("#CD0D74") - DtColor.Rows.Add("#754DEB") - DtColor.Rows.Add("#DDDDDD") - DtColor.Rows.Add("#999999") - DtColor.Rows.Add("#333333") - DtColor.Rows.Add("#000000") - End Sub -#End If Private Sub Graficas() @@ -265,7 +226,7 @@ Partial Class General_RepIndicadorResumen Row("Unidad") = "MXN" '$"{GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" DtVxP.Rows.Add(Row) 'RowColorIndex += 1 - 'If RowColorIndex = 17 Then + 'If RowColorIndex = Colors.Length() Then ' RowColorIndex = 0 'End If End If diff --git a/Inventarios/RepAlmacen.aspx.vb b/Inventarios/RepAlmacen.aspx.vb index 441316e2a..371ad0323 100644 --- a/Inventarios/RepAlmacen.aspx.vb +++ b/Inventarios/RepAlmacen.aspx.vb @@ -19,21 +19,12 @@ Partial Class Inventarios_RepAlmacen Set(value As DataTable) ViewState("TmpDT") = value End Set - End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then CargaTipoAlmacen() CargaDatos() - CreaDataTableColor() End If End Sub @@ -132,78 +123,6 @@ Partial Class Inventarios_RepAlmacen RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -222,12 +141,10 @@ Partial Class Inventarios_RepAlmacen Case 2 Row("Valor") = Dr("Total").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/RH/ListaAsistencias.aspx b/Nomina/ListaAsistencias.aspx similarity index 100% rename from RH/ListaAsistencias.aspx rename to Nomina/ListaAsistencias.aspx diff --git a/RH/ListaAsistencias.aspx.vb b/Nomina/ListaAsistencias.aspx.vb similarity index 100% rename from RH/ListaAsistencias.aspx.vb rename to Nomina/ListaAsistencias.aspx.vb diff --git a/Nomina/Nomina.aspx b/Nomina/Nomina.aspx index 62edb17f8..42f536c76 100644 --- a/Nomina/Nomina.aspx +++ b/Nomina/Nomina.aspx @@ -645,7 +645,7 @@
  • - +
  • <%--
  • diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 37d9fac26..8d0aa1b55 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -1442,7 +1442,7 @@ public partial class Nomina_Nomina2 : ClsPaginas if (pdf != null) { List objarch = new List(); - objarch.Add(new ClsSisMail.ArchivoMail() { ArchivoBinario = pdf, NombreArchivo = "Nomina" }); + objarch.Add(new ClsSisMail.ArchivoMail() { ArchivoBinario = pdf, NombreArchivo = "Nomina.pdf" }); Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Correo.Trim(), string.Format("Empleado {0} Nomina del {1:dd/MM/yyyy} al {2:dd/MM/yyyy}", NombreCompleto, FechaInicioPeriodo, FechaFinPeriodo), "", "", objarch); using (ClsRH objrh = new ClsRH()) { @@ -1521,7 +1521,7 @@ public partial class Nomina_Nomina2 : ClsPaginas if (pdf != null) { List objarch = new List(); - objarch.Add(new ClsSisMail.ArchivoMail() { ArchivoBinario = pdf, NombreArchivo = "Nomina" }); + objarch.Add(new ClsSisMail.ArchivoMail() { ArchivoBinario = pdf, NombreArchivo = "Nomina.pdf" }); Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Correo.Trim(), string.Format("Empleado {0} Nomina del {1:dd/MM/yyyy} al {2:dd/MM/yyyy}", NombreCompleto, FechaInicioPeriodo, FechaFinPeriodo), "", "", objarch); using (ClsRH objrh = new ClsRH()) { diff --git a/OI/TareaDetalle.aspx.cs b/OI/TareaDetalle.aspx.cs index 1f05e1f82..5c55743d5 100644 --- a/OI/TareaDetalle.aspx.cs +++ b/OI/TareaDetalle.aspx.cs @@ -253,7 +253,7 @@ public partial class OI_TareaDetalle : ClsPaginas private void CargaEstatus() { - DdlEventoEstatus.DataSource = get_GlobalDTOIRevision(UsuarioActual.CveEmpresa).FiltraParametros(string.Format("CveUsuario = {0}", UsuarioActual.CveUsuario)); + DdlEventoEstatus.DataSource = get_GlobalDTOIEstatusEventos(-1);//(UsuarioActual.CveEmpresa).FiltraParametros(string.Format("CveUsuario = {0}", UsuarioActual.CveUsuario)); DDlEstatus.DataSource = DdlEventoEstatus.DataSource; DdlEventoEstatus.DataBind(); DDlEstatus.DataBind(); diff --git a/OS/RepServicioDomicilio.aspx.vb b/OS/RepServicioDomicilio.aspx.vb index 5766f4969..45d9d378a 100644 --- a/OS/RepServicioDomicilio.aspx.vb +++ b/OS/RepServicioDomicilio.aspx.vb @@ -26,15 +26,6 @@ Partial Class OS_RepServicioDomicilio ViewState("DtDatos") = value End Set End Property - - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString diff --git a/RH/Asistencias.aspx b/RH/Asistencias.aspx index 93e67ba2d..c1355d4d0 100644 --- a/RH/Asistencias.aspx +++ b/RH/Asistencias.aspx @@ -41,7 +41,7 @@ --%>
  • - Proyecto: + Proyecto: diff --git a/Sistemas/Empresa.aspx.vb b/Sistemas/Empresa.aspx.vb index 4f3664346..3b0e210b9 100644 --- a/Sistemas/Empresa.aspx.vb +++ b/Sistemas/Empresa.aspx.vb @@ -77,6 +77,9 @@ Partial Class Sistemas_Empresa End Property Public Property DtClasificacionIVA As DataTable Get + If ViewState("DtClasificacionIVA") Is Nothing Then + ViewState("DtClasificacionIVA") = New DataTable + End If Return CType((ViewState("DtClasificacionIVA")), DataTable) End Get Set(value As DataTable) @@ -150,7 +153,6 @@ Partial Class Sistemas_Empresa #End Region - Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then @@ -162,7 +164,6 @@ Partial Class Sistemas_Empresa Exit Sub End If - End If CargaDdlPac() @@ -204,8 +205,6 @@ Partial Class Sistemas_Empresa TxtPlantillaVenta.Text = UsuarioActual.Empresa.PlantillaMailVenta TxtAsunto.Text = UsuarioActual.Empresa.AsuntoPlantillaMailVenta - InicializaClasificacionIVA() - Else 'Configuración de Modalidad Insert ViewState("CveEmpresa") = -1 @@ -215,9 +214,6 @@ Partial Class Sistemas_Empresa End If ConfiguracionEmpresa() - - - End If End Sub @@ -235,8 +231,6 @@ Partial Class Sistemas_Empresa End Function - - Private Sub CargaDatos() Dim ObjEmpresas As New ClsSisEmpresas() @@ -346,7 +340,6 @@ Partial Class Sistemas_Empresa CargaCuentasContables() CargaDDLs() - Dim Row As DataRow Row = DtCuentasContables.FiltroPrimero(String.Format("Id = {0} ", .IdCuentaIVAxAcreditar.ToString)) If Not IsNothing(Row) Then @@ -455,7 +448,6 @@ Partial Class Sistemas_Empresa CargaFuncionalidad(215, DdlFyE) CargaFuncionalidad(221, DdlActivoFijo) - 'CargaFuncionalidad(232, DdlProveedoresSIG) 'CargaFuncionalidad(233, DdlClientesSIG) 'CargaFuncionalidad(234, DdlDeudoresSIG) @@ -482,7 +474,7 @@ Partial Class Sistemas_Empresa Session("FileUpload") = .ArchivoPfx End With - + InicializaClasificacionIVA(ObjEmpresas) Else Alert("La Empresa Solicitada no existe, por favor revise su búsqueda.", TipoMensaje.MsgAdvertencia) BtnGuardar.Enabled = False @@ -560,7 +552,7 @@ Partial Class Sistemas_Empresa End If ViewState("CveEmpresa") = ObjEmpresas.CveEmpresa - InicializaClasificacionIVA() + 'InicializaClasificacionIVA(ObjEmpresas) TextoOK = "La nueva Empresa se guardó correctamente." Else TextoError = "Ocurrió un error al agregar la empresa" @@ -638,30 +630,32 @@ Partial Class Sistemas_Empresa End If 'CLASIFICACIONES DE IVAS - For Each Dr As DataRow In DtClasificacionIVA.Rows - If Not Dr("CveClasificacion").ToString.ToEntero > 0 Then - If Not ObjGral.RemoveClasificacionPorcentaje(Dr("CveClasificacionPorcentaje").ToString.ToEntero) Then - TextoError = "Ocurrió un error al guardar los cambios de la empresa" - End If - ElseIf Dr("CveClasificacionPorcentaje").ToString.ToEntero = 0 Then - If Not ObjGral.AddClasificacionPorcentaje(Dr("CveClasificacion").ToString.ToEntero, Dr("PorcentajeIVA").ToString.ToDouble, + If DtClasificacionIVA IsNot Nothing OrElse DtClasificacionIVA.Rows.Count > 0 Then + For Each Dr As DataRow In DtClasificacionIVA.Rows + If Not Dr("CveClasificacion").ToString.ToEntero > 0 Then + If Not ObjGral.RemoveClasificacionPorcentaje(Dr("CveClasificacionPorcentaje").ToString.ToEntero) Then + TextoError = "Ocurrió un error al guardar los cambios de la empresa" + End If + ElseIf Dr("CveClasificacionPorcentaje").ToString.ToEntero = 0 Then + If Not ObjGral.AddClasificacionPorcentaje(Dr("CveClasificacion").ToString.ToEntero, Dr("PorcentajeIVA").ToString.ToDouble, Dr("IdCtaIVAXAcreditar").ToString.ToEntero, Dr("IdCtaIVAAcreditable").ToString.ToEntero, Dr("IdCtaIVAXTrasladar").ToString.ToEntero, Dr("IdCtaIVATrasladado").ToString.ToEntero, CveEmpresa) Then - TextoError = "Ocurrió un error al guardar los cambios de la empresa" - End If - ElseIf Dr("CveClasificacionPorcentaje").ToString.ToEntero > 0 Then - If Not ObjGral.UpdateClasificacionPorcentaje(Dr("CveClasificacionPorcentaje").ToString.ToEntero, Dr("CveClasificacion").ToString.ToEntero, Dr("PorcentajeIVA").ToString.ToDouble, + TextoError = "Ocurrió un error al guardar los cambios de la empresa" + End If + ElseIf Dr("CveClasificacionPorcentaje").ToString.ToEntero > 0 Then + If Not ObjGral.UpdateClasificacionPorcentaje(Dr("CveClasificacionPorcentaje").ToString.ToEntero, Dr("CveClasificacion").ToString.ToEntero, Dr("PorcentajeIVA").ToString.ToDouble, Dr("IdCtaIVAXAcreditar").ToString.ToEntero, Dr("IdCtaIVAAcreditable").ToString.ToEntero, Dr("IdCtaIVAXTrasladar").ToString.ToEntero, Dr("IdCtaIVATrasladado").ToString.ToEntero) Then - TextoError = "Ocurrió un error al guardar los cambios de la empresa" + TextoError = "Ocurrió un error al guardar los cambios de la empresa" + End If End If - End If - Next + Next + End If - 'RECARGA GLOBAL + 'RECARGA EMPRESA If TextoError = "" Then - If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then - GlobalDTEmpresas = ObjEmpresas.DtResultados + If ObjEmpresas.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then + GlobalDTEmpresas(CveEmpresa) = ObjEmpresas.DtResultados 'verifico si existe la carpeta de la empresa, sino la crea For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows @@ -671,12 +665,11 @@ Partial Class Sistemas_Empresa Next End If - If ObjGral.GetClasificacionPorcentaje(-1) Then - GlobalDTClasificacionPorcentaje(-1) = ObjGral.DtResultados + If ObjGral.GetClasificacionPorcentaje(CveEmpresa) Then + GlobalDTClasificacionPorcentaje(CveEmpresa) = ObjGral.DtResultados End If End If - 'AGREGAR FUNCIONALIDADES If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 201, DdlProveedores) If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 211, DdlClientes) @@ -691,7 +684,6 @@ Partial Class Sistemas_Empresa If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 218, DdlCaja) If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 215, DdlFyE) If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 221, DdlActivoFijo) - If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 246, DdlClientes) If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 237, DdlAnticipoCliente) @@ -710,7 +702,6 @@ Partial Class Sistemas_Empresa 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 243, DdlFyESIG) 'If TextoError = "" Then TextoError = AgregarFuncionalidad(ObjEmpresas, 244, DdlActivoFijoSIG) - 'TRIGGER If TextoError = "" And TxtBDContPAQi.Text.Trim <> "" And TxtBDContPAQi.Text.Trim <> "" And TxtBDContPAQi.Text.Trim <> "" And TxtBDContPAQi.Text.Trim <> "" Then @@ -743,10 +734,8 @@ Partial Class Sistemas_Empresa Else Alert("La empresa tiene la información para el uso de contabilidad pero no se tiene activada", TipoMensaje.MsgAdvertencia) End If - End If - If TextoError = "" Then ObjEmpresas.Commit() If ObjContPAQ IsNot Nothing Then ObjContPAQ.Commit() @@ -777,8 +766,7 @@ Partial Class Sistemas_Empresa Dim ObjEmpresas As New ClsSisEmpresas If ObjEmpresas.RemoveEmpresa(CveEmpresa) Then GlobalDTEmpresas = ObjEmpresas.DtResultados - - Alert("La Empresa se Eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Sistemas/Empresas.aspx"";") + Alert("La Empresa se Eliminó correctamente.", TipoMensaje.MsgInformacion, "document.location.href=""/Sistemas/Empresa.aspx"";") End If ObjEmpresas.Dispose() End Sub @@ -802,9 +790,6 @@ Partial Class Sistemas_Empresa End If ObjEmpresa.Dispose() End If - - - End Sub Private Sub CargaCuentasContablesSIG(Optional IdCuentaPadre As Integer = -1) @@ -950,9 +935,6 @@ Partial Class Sistemas_Empresa DdlCuentaPerdidaCambiaria.DataSource = DtCuentasContables : DdlCuentaPerdidaCambiaria.DataBind() : DdlCuentaPerdidaCambiaria.SelectedValue = Seleccionado DdlCuentaPerdidaCambiaria.AutoPostBack = False : DdlCuentaPerdidaCambiaria.Attributes.Remove("onclick") : DdlCuentaPerdidaCambiaria.CssClass &= " select2me" - - - 'CUENTAS PADRES Case "21" @@ -1172,8 +1154,6 @@ Partial Class Sistemas_Empresa End Sub Public Sub CargaDDLs() - - DdlIVAxAcreditar.AutoPostBack = True DdlIVAAcreditable.AutoPostBack = True DdlIVAxTrasladar.AutoPostBack = True @@ -1390,9 +1370,9 @@ Partial Class Sistemas_Empresa Next DtClasificacionIVA.AcceptChanges() End Sub - Private Sub InicializaClasificacionIVA() + Private Sub InicializaClasificacionIVA(ObjEmpresas As ClsSisEmpresas) CreaDtClasificacionIVA() - CargaCuentasIVA() + CargaCuentasIVA(ObjEmpresas) CargaClasificaciones() CargaClasificacionesIVA() End Sub @@ -1427,21 +1407,20 @@ Partial Class Sistemas_Empresa DtClasificacionIVA.Columns.Add("CuentaTrasladado", GetType(String)) DtClasificacionIVA.Columns.Add("IdCtaIVATrasladado", GetType(Integer)) End Sub - Private Sub CargaCuentasIVA() + Private Sub CargaCuentasIVA(ByRef ObjEmpresas As ClsSisEmpresas) - Dim ObjEmpresas As New ClsSisEmpresas() If ObjEmpresas.GetEmpresas(CveEmpresa, "-1", "-1", "-1", "-1") Then If ObjEmpresas.Empresa.UsaContabilidad Then 'If ObjEmpresas.Empresa.TipoContabilidad = 2 Then Dim Cuenta As New ClsContPAQi(ObjEmpresas.Empresa) - If Cuenta.GetCuentas(-1, "-1", -1) Then - DtCuentas = Cuenta.DtResultados - End If - Cuenta.Dispose() - 'End If + If Cuenta.GetCuentas(-1, "-1", -1) Then + DtCuentas = Cuenta.DtResultados + End If + Cuenta.Dispose() + 'End If - Try + Try DdlIVAXAcreditarModal.DataSource = DtCuentas : DdlIVAXAcreditarModal.DataBind() Catch ex As Exception End Try @@ -1460,7 +1439,7 @@ Partial Class Sistemas_Empresa End If End If - ObjEmpresas.Dispose() + 'ObjEmpresas.Dispose() DdlIVAXAcreditarModal.Items.Insert(0, New ListItem("-", "-1")) DdlIVAAcreditableModal.Items.Insert(0, New ListItem("-", "-1")) DdlIVAXTrasladarModal.Items.Insert(0, New ListItem("-", "-1")) diff --git a/Ventas/PV.aspx b/Ventas/PV.aspx index e9c6b7400..498d426dc 100644 --- a/Ventas/PV.aspx +++ b/Ventas/PV.aspx @@ -2912,6 +2912,7 @@
    +
    diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb index 8a9ee6476..19c5d95fc 100644 --- a/Ventas/PV.aspx.vb +++ b/Ventas/PV.aspx.vb @@ -5510,6 +5510,11 @@ Partial Class PV Alert("El campo año no puede ser mayor al año actual.", TipoMensaje.MsgAdvertencia) Exit Sub End If + + If DdlModeloAuto.SelectedValue = "-1" Then + Alert("El campo modelo se debe de especificar.", TipoMensaje.MsgAdvertencia) + Exit Sub + End If End If End If @@ -7087,6 +7092,7 @@ Partial Class PV DdlModeloAuto.DataSource = DtModelosAuto End If DdlModeloAuto.DataBind() + DdlModeloAuto.Items.Insert(0, New ListItem("-", "-1")) End Sub 'Protected Sub GvRecepcionUsados_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvRecepcionUsados.RowDataBound diff --git a/Ventas/RepAuxiliarFacturas.aspx.vb b/Ventas/RepAuxiliarFacturas.aspx.vb index c0ba40b95..48c1a70bd 100644 --- a/Ventas/RepAuxiliarFacturas.aspx.vb +++ b/Ventas/RepAuxiliarFacturas.aspx.vb @@ -18,15 +18,6 @@ Partial Class Ventas_RepAuxiliarFacturas ViewState("DtVentas") = value End Set End Property - - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString diff --git a/Ventas/RepProductosServicios.aspx.vb b/Ventas/RepProductosServicios.aspx.vb index 124777f61..6b4bb49fc 100644 --- a/Ventas/RepProductosServicios.aspx.vb +++ b/Ventas/RepProductosServicios.aspx.vb @@ -18,14 +18,6 @@ Partial Class Ventas_RepProductosServicios ViewState("DtVentas") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -238,7 +230,6 @@ Partial Class Ventas_RepProductosServicios CargaGrupo() CargaTipoCentroCosto() - CreaDataTableColor() TipoCambio = 1 TCEspecifico = 0 @@ -592,78 +583,6 @@ Partial Class Ventas_RepProductosServicios RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -691,13 +610,11 @@ Partial Class Ventas_RepProductosServicios Row("Texto") = $"{Dr("GPO").ToString}" End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Ventas/RepProductosServiciosDetalle.aspx.vb b/Ventas/RepProductosServiciosDetalle.aspx.vb index 7a3e8be79..10980426e 100644 --- a/Ventas/RepProductosServiciosDetalle.aspx.vb +++ b/Ventas/RepProductosServiciosDetalle.aspx.vb @@ -43,14 +43,6 @@ Partial Class Ventas_RepProductosServiciosDetalle ViewState("TCEspecifico") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property Private Property Agrupador As String Get Return ViewState("Agrupador").ToString @@ -276,7 +268,6 @@ Partial Class Ventas_RepProductosServiciosDetalle CargaGrupo() CargaTipoCentroCosto() - CreaDataTableColor() TCEspecifico = 0 TipoCambio = 1 @@ -809,78 +800,6 @@ Partial Class Ventas_RepProductosServiciosDetalle RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -902,13 +821,11 @@ Partial Class Ventas_RepProductosServiciosDetalle Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = GlobalDTMonedas().FiltraParametros($"CveMoneda = {CveMoneda}").Rows(0)("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Ventas/RepVentaDetalle.aspx.vb b/Ventas/RepVentaDetalle.aspx.vb index d986f5dbd..bcac7487d 100644 --- a/Ventas/RepVentaDetalle.aspx.vb +++ b/Ventas/RepVentaDetalle.aspx.vb @@ -101,14 +101,6 @@ Partial Class RepVentaDetalle ViewState("Agrupador") = value End Set End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property #End Region 'pRivate ReadOnly Property ColumnasVisibles As @@ -119,7 +111,6 @@ Partial Class RepVentaDetalle CargaCombos() InicializaValores() CargaDatos() - CreaDataTableColor() If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then @@ -1197,79 +1188,6 @@ Partial Class RepVentaDetalle #Region "GRAFICA" - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub - Protected Sub LnkVerGrafica_Click(sender As Object, e As EventArgs) If Not DtVentas IsNot Nothing AndAlso DtVentas.Rows.Count > 0 Then Alert("No hay datos disponibles", TipoMensaje.MsgAdvertencia) @@ -1301,13 +1219,11 @@ Partial Class RepVentaDetalle Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Ventas/RepVentas.aspx.vb b/Ventas/RepVentas.aspx.vb index 8a03c9ec6..701224f45 100644 --- a/Ventas/RepVentas.aspx.vb +++ b/Ventas/RepVentas.aspx.vb @@ -66,14 +66,6 @@ Partial Class Ventas_RepVentas Set(value As DataTable) ViewState("DtVentas") = value End Set - End Property - Private Property DtColor As DataTable - Get - Return DirectCast(ViewState("DtColor"), DataTable) - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set End Property @@ -113,7 +105,6 @@ Partial Class Ventas_RepVentas CargaGrupo() CargaTipoCentroCosto() - CreaDataTableColor() If UsuarioActual.CveVendedor > 0 AndAlso Not UsuarioActual.TienePermisoProceso(263) Then DdlVendedor.SelectedValuesIfExistM(UsuarioActual.CveVendedor.ToString()) @@ -770,78 +761,6 @@ Partial Class Ventas_RepVentas RegistraScript("$('#DivModalGrafica').modal('show')") CambioGrafica() End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub CambioGrafica() Dim Dt As New DataTable() @@ -863,13 +782,11 @@ Partial Class Ventas_RepVentas Case 3 Row("Valor") = Dr("IVA").ToString.FormatoNumero End Select - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/Ventas/RepVentasResumen.aspx.vb b/Ventas/RepVentasResumen.aspx.vb index 13b684f15..70295aff9 100644 --- a/Ventas/RepVentasResumen.aspx.vb +++ b/Ventas/RepVentasResumen.aspx.vb @@ -51,21 +51,6 @@ Partial Class Ventas_RepVentasResumen ViewState("VxP") = value End Set End Property - Private Property DtColor As DataTable - Get - - - If ViewState("DtColor") Is Nothing Then - Return New DataTable - Else - Return DirectCast(ViewState("DtColor"), DataTable) - End If - - End Get - Set(value As DataTable) - ViewState("DtColor") = value - End Set - End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load @@ -86,8 +71,6 @@ Partial Class Ventas_RepVentasResumen TxtFechaI.Text = $"01/{Now.Month}/{Now.Year}" TxtFechaF.Text = Now.ToString("dd/MM/yyyy") - - CreaDataTableColor() End Sub @@ -180,78 +163,6 @@ Partial Class Ventas_RepVentasResumen End If End If End Sub - Private Sub CreaDataTableColor() - DtColor = New DataTable - DtColor.Columns.Add("Color") - Dim RowColor As DataRow = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF0F00" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF6600" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FF9E01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#FCD202" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#F8FF01" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#B0DE09" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#04D215" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D8ECF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#0D52D1" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#2A0CD0" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#8A0CCF" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#CD0D74" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#754DEB" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#DDDDDD" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#999999" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#333333" - DtColor.Rows.Add(RowColor) - RowColor = Nothing - RowColor = DtColor.NewRow() - RowColor("Color") = "#000000" - DtColor.Rows.Add(RowColor) - End Sub Private Sub GraficaPastel() Dim Dt As New DataTable() @@ -266,13 +177,11 @@ Partial Class Ventas_RepVentasResumen Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next @@ -294,13 +203,11 @@ Partial Class Ventas_RepVentasResumen Row = Dt.NewRow() Row("Texto") = $"{Dr("GPO").ToString} {GlobalDTMonedas().FiltraParametros($"CveMoneda = {Dr("CveMoneda").ToString}").Rows(0)("Abreviatura").ToString}" Row("Valor") = Dr("SubTotal").ToString.FormatoNumero - Row("Color") = DtColor.Rows(RowColorIndex)("Color").ToString + Row("Color") = Colors(RowColorIndex) Row("Moneda") = Dr("Moneda").ToString Dt.Rows.Add(Row) RowColorIndex += 1 - If RowColorIndex = 17 Then - RowColorIndex = 0 - End If + If RowColorIndex >= Colors.Length Then RowColorIndex = 0 End If Next diff --git a/ZDG/PopUpBuscarMilitante.aspx.vb b/ZDG/PopUpBuscarMilitante.aspx.vb index ddcc32ffb..00ee87428 100644 --- a/ZDG/PopUpBuscarMilitante.aspx.vb +++ b/ZDG/PopUpBuscarMilitante.aspx.vb @@ -6,8 +6,6 @@ Imports System.Data Partial Class ZDG_PopUpBuscarMilitante Inherits ClsPaginas -#Region "PROPIEDADES" -#End Region Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not IsPostBack Then