diff --git a/AF/AF.aspx.vb b/AF/AF.aspx.vb index c78db8b2b..be04003c1 100644 --- a/AF/AF.aspx.vb +++ b/AF/AF.aspx.vb @@ -2568,9 +2568,6 @@ Partial Class AF_AF End If - - - End If End If @@ -2581,7 +2578,7 @@ Partial Class AF_AF 'Dim CveCuentaInv = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen={AFInvCveAlmacen}").ToEntero If Not ErrorGuardar Then Dim CvePrePoliza As Integer = ObjContabilidad.AddPrePolizas("AF/ImportadoInv", 4, TxtValorCompra.Text.ToDouble, TxtValorCompra.Text.ToDouble, 1, Now, $"AF importado de Almacén {TxtCodigo.Text.Trim}", UsuarioActual.CveUsuario, CveEmpresaActual) - If ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, False, TxtValorCompra.Text.ToDecimal, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", 49, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", Now, DdlCtaContable.SelectedValue.Trim.ToEntero, -1, CveActivoFijo:=CveActivoFijo, ImporteMX:=TxtValorCompra.Text.ToDecimal, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(DdlCtaContable.SelectedValue.Trim.ToEntero, UsuarioActual.CveEmpresa), -1)) Then + If ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, False, TxtValorCompra.Text.ToDecimal, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", 49, $"{TxtCodigo.Text.Trim} - {TxtDescripcion.Text.Trim}", Now, DdlCtaContable.SelectedValue.Trim.ToEntero, -1, CveActivoFijo:=CveActivoFijo, ImporteMX:=TxtValorCompra.Text.ToDecimal) Then If Not ErrorGuardar Then If Not ObjContabilidad.AddPrePolizasDetalle(CvePrePoliza, True, TxtValorCompra.Text.ToDecimal, TxtCodigo.Text.Trim, 68, TxtCodigo.Text.Trim, Now, IDCtaContableInv, -1, CveMovimientoAlmacen:=CveMovimientoSalidaInv, ImporteMX:=TxtValorCompra.Text.ToDecimal) Then ErrorGuardar = True 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/ClsCRM.vb b/App_Code/ClsCRM.vb index 50c928d51..866c58dfa 100644 --- a/App_Code/ClsCRM.vb +++ b/App_Code/ClsCRM.vb @@ -1173,7 +1173,7 @@ Public Class ClsCRM - Public Function RepAgendasBitacoras(CveEmpresa As Integer, CveVendedor As Integer, CveTipoProceso As Integer, FechaInicio As Date, FechaFin As Date) As Boolean + Public Function RepAgendasBitacoras(CveEmpresa As Integer, CveVendedor As Integer, CveTipoProceso As Integer, FechaInicio As Date, FechaFin As Date, Optional CveTipoEvento As Integer = -1) As Boolean Dim retorno As Boolean = False DataAdapter("PA_CRM_RepAgendasBitacoras", CommandType.StoredProcedure) With SqlAdapter.SelectCommand.Parameters @@ -1183,6 +1183,7 @@ Public Class ClsCRM .Add("@CveTipoProceso", SqlDbType.Int).Value = CveTipoProceso .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio .Add("@FechaFin", SqlDbType.Date).Value = FechaFin + .Add("@CveTipoEvento", SqlDbType.Int).Value = CveTipoEvento End With diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index e0a31b773..9531d6855 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -3770,7 +3770,7 @@ Public Class ClsContabilidad End Function - Public Function GetAnexoCatalogo(IdCuenta As Integer, FechaI As Date, FechaF As Date, OpcionCuentas As Integer, CveSubProyecto As String, CveEmpresa As Integer, Optional TipoMovtos As Integer = -1, Optional SAT As Integer = 0) As Boolean + Public Function GetAnexoCatalogo(IdCuenta As Integer, FechaI As Date, FechaF As Date, OpcionCuentas As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional TipoMovtos As Integer = -1, Optional SAT As Integer = 0) As Boolean Dim Retorno = False DataAdapter("PA_Conta_AnexoCatalogoGet") @@ -3781,6 +3781,7 @@ Public Class ClsContabilidad .Add("@IdCuentaPadre", SqlDbType.Int).Value = IdCuenta .Add("@Tipo", SqlDbType.Int).Value = TipoMovtos .Add("@OpcionCuentas", SqlDbType.Int).Value = OpcionCuentas + .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@SAT", SqlDbType.Int).Value = SAT @@ -3797,7 +3798,7 @@ Public Class ClsContabilidad End Function - Public Function GetMovimientosAuxiliaresCatalogo(IdCuenta As Integer, FechaI As Date, FechaF As Date, CveMoneda As Integer, CveSubProyecto As String, CveEmpresa As Integer, TipoReporte As String) As Boolean + Public Function GetMovimientosAuxiliaresCatalogo(IdCuenta As Integer, FechaI As Date, FechaF As Date, CveMoneda As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, TipoReporte As String) As Boolean Dim Retorno = False DataAdapter("PA_Conta_MovimientosAuxiliaresCatalogoGet") @@ -3806,6 +3807,7 @@ Public Class ClsContabilidad .Add("@FechaI", SqlDbType.Date).Value = FechaI .Add("@FechaF", SqlDbType.Date).Value = FechaF .Add("@IdCuentaPadre", SqlDbType.Int).Value = IdCuenta + .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@Tipo", SqlDbType.Int).Value = TipoReporte @@ -3841,7 +3843,7 @@ Public Class ClsContabilidad Return Retorno End Function - Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveSubProyecto As String, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean + Public Function GetEstadoActividades(FechaI As Date, FechaF As Date, TipoMovtos As Integer, CveProyecto As Integer, CveSubProyecto As Integer, CveEmpresa As Integer, Optional SAT As Integer = 0) As Boolean Dim Retorno = False DataAdapter("PA_Conta_EstadoActividadesGet") @@ -3850,6 +3852,7 @@ Public Class ClsContabilidad .Add("@FechaI", SqlDbType.Date).Value = FechaI .Add("@FechaF", SqlDbType.Date).Value = FechaF .Add("@Tipo", SqlDbType.Int).Value = TipoMovtos + .Add("@CveProyecto", SqlDbType.Int).Value = CveProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@SAT", SqlDbType.Int).Value = SAT diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 6d6d28caf..714db7d74 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -1299,9 +1299,14 @@ Public Class ClsOC #End Region #Region " O R D E N E S - D E - C O M P R A - E S T A T U S" - Public Function GetEstatus() As Boolean + Public Function GetEstatus(CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OC_EstatusGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try SqlAdapter.Fill(Data) Retorno = True diff --git a/App_Code/ClsOS.vb b/App_Code/ClsOS.vb index cad410eeb..1f3aec036 100644 --- a/App_Code/ClsOS.vb +++ b/App_Code/ClsOS.vb @@ -357,9 +357,14 @@ Public Class ClsOS '#End Region #Region "ClsOSEstatusOrdenServicio" - Public Function GetEstatusOrdenServicio() As Boolean + Public Function GetEstatusOrdenServicio(CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_OS_EstatusOrdenServicioGet") + + With SqlAdapter.SelectCommand.Parameters + .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + End With + Try SqlAdapter.Fill(Data) Retorno = True diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 20bf6e0f8..3ee4bfbb3 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 @@ -12,15 +13,11 @@ Imports Microsoft.Reporting.WebForms Imports Newtonsoft.Json 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-" @@ -28,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 @@ -44,20 +41,14 @@ Public Class ClsPaginas End If End Get End Property - -#Region "Propiedades" - Private Shared ReadOnly Property Rand As New Random() - 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 @@ -107,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 @@ -145,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 @@ -179,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 @@ -221,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() @@ -268,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 @@ -293,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 @@ -311,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 @@ -350,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 @@ -365,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 @@ -382,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" @@ -398,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" @@ -414,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" @@ -430,7 +378,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTSATMotivoTraslado() As DataTable Get Dim AppNombre As String = "GlobalDTSATMotivoTraslado" @@ -446,7 +393,6 @@ Public Class ClsPaginas Application(AppNombre) = value End Set End Property - Property GlobalDTUnidadAduana() As DataTable Get Dim AppNombre As String = "GlobalDTUnidadAduana" @@ -485,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" @@ -528,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 @@ -577,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) @@ -586,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 @@ -609,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 @@ -635,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 @@ -654,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 @@ -669,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 @@ -714,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 @@ -739,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 @@ -756,7 +661,6 @@ Public Class ClsPaginas Else GlobalDTRoles = DirectCast(Application("GlobalDTRoles"), DataTable) End If - End Get Set(ByVal value As DataTable) Application("GlobalDTRoles") = value @@ -786,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") @@ -807,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") @@ -843,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 @@ -856,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 @@ -883,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 @@ -909,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" @@ -917,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 @@ -940,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) @@ -970,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 @@ -992,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 @@ -1011,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 @@ -1030,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 @@ -1066,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 @@ -1089,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) @@ -1106,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) @@ -1114,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() @@ -1126,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 @@ -1206,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" @@ -1218,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" @@ -1242,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 @@ -1259,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() @@ -1281,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 @@ -1298,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" @@ -1328,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) @@ -1336,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() @@ -1357,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 @@ -1418,22 +1268,12 @@ Public Class ClsPaginas Public Shared Property GlobalDTProyectos(CveEmpresa As Integer, Optional Estatus As Integer = -1) As DataTable Get Dim AppNombre As String = $"GlobalDTProyectos-{CveEmpresa}" - 'sino existe, recarga los datos If HttpContext.Current.Application(AppNombre) Is Nothing OrElse DirectCast(HttpContext.Current.Application(AppNombre), DataTable).Rows.Count = 0 Then 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") - End If - msg.GuardaLog() End If - If Estatus <> -1 Then 'OrElse CveProyecto <> -1 - 'Dim StrSQL As New StringBuilder - 'If Estatus <> -1 Then StrSQL.Append($"Estatus = {Estatus}") - 'If CveProyecto <> -1 Then StrSQL.Append(" {If(StrSQL.Length > 0, "AND", "")} CveProyecto = {CveProyecto}") + If Estatus <> -1 Then Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), $"CveEstatus = {Estatus}", "", DataViewRowState.CurrentRows) GlobalDTProyectos = Dv.ToTable Dv.Dispose() @@ -1442,104 +1282,84 @@ Public Class ClsPaginas End If End Get Set(value As DataTable) - If value Is Nothing OrElse value.Rows.Count = 0 Then - Dim msg As String = "aqui no se carga proyectos" - If HttpContext.Current.Request IsNot Nothing Then - msg += HttpContext.Current.Request.ServerVariables("URL") - End If - msg.GuardaLog() - End If Dim AppNombre As String = $"GlobalDTProyectos-{CveEmpresa}" HttpContext.Current.Application(AppNombre) = value End Set 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 + If CveUsuario <> -1 OrElse CveProyecto <> -1 OrElse CveSubProyecto <> -1 OrElse CveEstatus <> -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 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 + If CveUsuario <> -1 OrElse CveProyecto <> -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 @@ -1567,12 +1387,20 @@ Public Class ClsPaginas ' Application("GlobalDTMesas") = value ' End Set 'End Property - Property GlobalDTTipoOrdenServicios(CveEmpresa As Integer) As DataTable + Public Shared Property GlobalDTTipoOrdenServicios(CveEmpresa As Integer) As DataTable Get - GlobalDTTipoOrdenServicios = DirectCast(Application("GlobalDTTipoOrdenServicios"), DataTable).FiltraParametros(String.Format("CveEmpresa = {0}", CveEmpresa)) + Dim AppNombre As String = $"GlobalDTTipoOrdenServicios-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjOS As New ClsOS + If ObjOS.GetTipoOrdenesServicios(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjOS.DtResultados + ObjOS.Dispose() + End If + GlobalDTTipoOrdenServicios = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTTipoOrdenServicios") = value + Dim AppNombre As String = $"GlobalDTTipoOrdenServicios-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set End Property Property GlobalDTSubTipoOrdenServicios() As DataTable @@ -1610,7 +1438,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() @@ -1625,7 +1452,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() @@ -1640,7 +1466,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() @@ -1655,11 +1480,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)) @@ -1669,17 +1492,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) @@ -1687,20 +1507,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 @@ -1709,32 +1524,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)) @@ -1744,25 +1554,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 @@ -1770,13 +1578,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() @@ -1785,26 +1590,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() @@ -1813,15 +1615,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() @@ -1833,23 +1633,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 @@ -1859,15 +1656,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() @@ -1887,10 +1682,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 @@ -1899,16 +1693,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 @@ -1920,36 +1712,50 @@ Public Class ClsPaginas Application("GlobalDTAFCaracteristicasOpciones") = value End Set End Property - Property GlobalDTAFCaracteristicas() As DataTable + Public Shared Property GlobalDTAFCaracteristicas(CveEmpresa As Integer) As DataTable Get - GlobalDTAFCaracteristicas = DirectCast(Application("GlobalDTAFCaracteristicas"), DataTable) + Dim AppNombre As String = $"GlobalDTAFCaracteristicas-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjActivosFijos As New ClsAF + If ObjActivosFijos.GetCaracteristicas(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjActivosFijos.DtResultados + ObjActivosFijos.Dispose() + End If + GlobalDTAFCaracteristicas = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTAFCaracteristicas") = value + Dim AppNombre As String = $"GlobalDTAFCaracteristicas-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTAFCaracteristicasClasificaciones() As DataTable + Public Shared Property GlobalDTAFCaracteristicasClasificaciones(CveEmpresa As Integer) As DataTable Get - GlobalDTAFCaracteristicasClasificaciones = DirectCast(Application("GlobalDTAFCaracteristicasClasificaciones"), DataTable) + Dim AppNombre As String = $"GlobalDTAFCaracteristicasClasificaciones-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjActivosFijos As New ClsAF + If ObjActivosFijos.GetCaracteristicasClasificaciones(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjActivosFijos.DtResultados + ObjActivosFijos.Dispose() + End If + GlobalDTAFCaracteristicasClasificaciones = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTAFCaracteristicasClasificaciones") = value + Dim AppNombre As String = $"GlobalDTAFCaracteristicasClasificaciones-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set 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 @@ -1959,7 +1765,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 @@ -1986,11 +1792,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 @@ -1998,7 +1802,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 @@ -2009,20 +1813,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 @@ -2080,7 +1882,6 @@ Public Class ClsPaginas End Set End Property 'Fin Bancos - 'Fin EstadoCIvil 'TipoPerioso Property GlobalDTTipoPeriodo() As DataTable @@ -2092,7 +1893,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 @@ -2104,53 +1904,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.Copy() 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 @@ -2158,7 +1951,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() @@ -2167,28 +1959,30 @@ 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 - Property GlobalDTEstatusOrdenServicios(CveEmpresa As Integer) As DataTable + Public Shared Property GlobalDTEstatusOrdenServicios(CveEmpresa As Integer) As DataTable Get - If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTEstatusOrdenServicios"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) - GlobalDTEstatusOrdenServicios = Dv.ToTable - Dv.Dispose() - Else - GlobalDTEstatusOrdenServicios = DirectCast(Application("GlobalDTEstatusOrdenServicios"), DataTable) + Dim AppNombre As String = $"GlobalDTEstatusOrdenServicios-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjOS As New ClsOS + If ObjOS.GetEstatusOrdenServicio(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjOS.DtResultados + ObjOS.Dispose() End If + GlobalDTEstatusOrdenServicios = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTEstatusOrdenServicios") = value + Dim AppNombre As String = $"GlobalDTEstatusOrdenServicios-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set End Property '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 @@ -2196,22 +1990,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 @@ -2231,30 +2022,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 @@ -2280,42 +2068,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" @@ -2355,56 +2137,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}" @@ -2427,7 +2203,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 @@ -2435,7 +2210,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 @@ -2444,11 +2219,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) @@ -2462,18 +2235,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) @@ -2564,7 +2334,6 @@ Public Class ClsPaginas HttpContext.Current.Application(AppNombre) = value End Set End Property - #Region "***********************************************************************DT EVENTOS****************************************************************************************" Property GlobalDTTiposEventos() As DataTable Get @@ -2574,7 +2343,6 @@ Public Class ClsPaginas Application("GlobalDTTiposEventos") = value End Set End Property - Property GlobalDTEventos() As DataTable Get GlobalDTEventos = DirectCast(Application("GlobalDTEventos"), DataTable) @@ -2583,7 +2351,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}" @@ -2606,7 +2373,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" @@ -2629,7 +2395,6 @@ Public Class ClsPaginas End Set End Property #End Region - #Region " **********************************************************************DT PROSPECTOS*************************************************************************************" Property GlobalDTProspectosCaracteristicasClasificaciones() As DataTable Get @@ -2650,7 +2415,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() @@ -2662,7 +2426,6 @@ Public Class ClsPaginas Application("GlobalDTProspectosCaracteristicas") = value End Set End Property - Property GlobalDTProspectosCaracteristicasOpciones() As DataTable Get GlobalDTProspectosCaracteristicasOpciones = DirectCast(Application("GlobalDTProspectosCaracteristicasOpciones"), DataTable) @@ -2672,7 +2435,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 @@ -2680,119 +2442,109 @@ 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 End Set End Property - Property GlobalDTEstadoActivoFijo() As DataTable + Public Shared Property GlobalDTEstadoActivoFijo() As DataTable Get - GlobalDTEstadoActivoFijo = DirectCast(Application("GlobalDTEstadoActivoFijo"), DataTable) - End Get - Set(value As DataTable) - Application("GlobalDTEstadoActivoFijo") = value - End Set - End Property - 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 + Dim AppNombre As String = "GlobalDTEstadoActivoFijo" + If DirectCast(HttpContext.Current.Application(AppNombre), DataTable) Is Nothing Then + Dim ObjActivosFijos As New ClsAF + If ObjActivosFijos.GetEstatusActivoFijo() Then HttpContext.Current.Application(AppNombre) = ObjActivosFijos.DtResultados + ObjActivosFijos.Dispose() End If - - ObjAF.Dispose() - GlobalDTMarcaActivoFijo = dt + GlobalDTEstadoActivoFijo = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTMarcaActivoFijo") = value + Dim AppNombre As String = "GlobalDTEstadoActivoFijo" + HttpContext.Current.Application(AppNombre) = value End Set End Property - Property GlobalDTModeloActivoFijo(CveEmpresa As Integer, CveMarca As Integer) As DataTable + Public Shared Property GlobalDTMarcaActivoFijo(CveEmpresa 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 - Set(value As DataTable) - 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 = $"GlobalDTMarcaActivoFijo-{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() + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjActivosFijos As New ClsAF + If ObjActivosFijos.GetMarcasActivosFijos(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjActivosFijos.DtResultados + ObjActivosFijos.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() - + GlobalDTMarcaActivoFijo = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Dim AppNombre As String = String.Format("GlobalDTSubTipoActivoFijo-{0}", CveEmpresa) - Application(AppNombre) = value + Dim AppNombre As String = $"GlobalDTMarcaActivoFijo-{CveEmpresa}" + HttpContext.Current.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) - ' GlobalDTSubTipoActivoFijo = Dv.ToTable - ' Dv.Dispose() - ' Else - ' GlobalDTSubTipoActivoFijo = DirectCast(Application("GlobalDTSubTipoActivoFijo"), DataTable) - ' End If - 'End Get - 'Set(value As DataTable) - ' Application("GlobalDTSubTipoActivoFijo") = value - 'End Set End Property - Property GlobalDTTipoActivoFijo(CveEmpresa As Integer) As DataTable + Public Shared Property GlobalDTModeloActivoFijo(CveEmpresa As Integer, CveMarca As Integer) As DataTable Get - If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTTipoActivoFijo"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) - GlobalDTTipoActivoFijo = Dv.ToTable + Dim AppNombre As String = $"GlobalDTModeloActivoFijo-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjActivosFijos As New ClsAF + If ObjActivosFijos.GetModelosActivosFijos(CveEmpresa, -1) Then HttpContext.Current.Application(AppNombre) = ObjActivosFijos.DtResultados + ObjActivosFijos.Dispose() + End If + If CveMarca > 0 Then + Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), $"CveMarca = {CveMarca}", "", DataViewRowState.CurrentRows) + GlobalDTModeloActivoFijo = Dv.ToTable Dv.Dispose() Else - GlobalDTTipoActivoFijo = DirectCast(Application("GlobalDTTipoActivoFijo"), DataTable) + GlobalDTModeloActivoFijo = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End If End Get Set(value As DataTable) - Application("GlobalDTTipoActivoFijo") = value + Dim AppNombre As String = $"GlobalDTModeloActivoFijo-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value + End Set + End Property + Public Shared Property GlobalDTSubTipoActivoFijo(CveEmpresa As Integer, Optional CveTipoActivoFijo As Integer = -1) As DataTable + Get + Dim AppNombre As String = $"GlobalDTSubTipoActivoFijo-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjSubTipos As New ClsAF + If ObjSubTipos.GetSubTiposActivosFijos(CveEmpresa) Then HttpContext.Current.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(HttpContext.Current.Application(AppNombre), DataTable), Str.ToString, "", DataViewRowState.CurrentRows) + GlobalDTSubTipoActivoFijo = Dv.ToTable + Dv.Dispose() + End Get + Set(value As DataTable) + Dim AppNombre As String = $"GlobalDTSubTipoActivoFijo-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value + End Set + End Property + Public Shared Property GlobalDTTipoActivoFijo(CveEmpresa As Integer) As DataTable + Get + Dim AppNombre As String = $"GlobalDTTipoActivoFijo-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim GetTiposActivosFijos As New ClsAF + If GetTiposActivosFijos.GetCaracteristicas(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = GetTiposActivosFijos.DtResultados + GetTiposActivosFijos.Dispose() + End If + GlobalDTTipoActivoFijo = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) + End Get + Set(value As DataTable) + Dim AppNombre As String = $"GlobalDTTipoActivoFijo-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set End Property - #End Region - #Region "***********************************************************************DT GENERALES**************************************************************************************" Property GlobalDTGralCategorias(CveEmpresa As Integer) As DataTable Get @@ -2803,12 +2555,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() @@ -2827,12 +2577,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() @@ -2857,7 +2605,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}" @@ -2873,7 +2620,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}" @@ -2883,26 +2629,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 @@ -2927,12 +2668,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 @@ -2947,7 +2686,6 @@ Public Class ClsPaginas GlobalDTProspectosApoyos = DirectCast(Application("GlobalDTProspectosApoyos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosApoyos") = value End Set @@ -3023,7 +2761,6 @@ Public Class ClsPaginas GlobalDTProspectosApoyosTipos = DirectCast(Application("GlobalDTProspectosApoyosTipos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosApoyosTipos") = value End Set @@ -3040,17 +2777,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 @@ -3061,17 +2795,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 @@ -3083,17 +2814,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 @@ -3112,7 +2840,6 @@ Public Class ClsPaginas Application("GlobalDTProspectosTipos") = value End Set End Property - #Region " DT PROSPECTOS SOLICITUDES" Property GlobalDTProspectosSolicitudes(CveEmpresa As Integer) As DataTable Get @@ -3138,7 +2865,6 @@ Public Class ClsPaginas GlobalDTProspectosSolicitudesEstatus = DirectCast(Application("GlobalDTProspectosSolicitudesEstatus"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosSolicitudesEstatus") = value End Set @@ -3153,7 +2879,6 @@ Public Class ClsPaginas GlobalDTProspectosSolicitudesTipos = DirectCast(Application("GlobalDTProspectosSolicitudesTipos"), DataTable) End If End Get - Set(value As DataTable) Application("GlobalDTProspectosSolicitudesTipos") = value End Set @@ -3180,14 +2905,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) @@ -3211,7 +2932,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) @@ -3411,7 +3131,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 @@ -3426,7 +3145,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) @@ -3435,7 +3153,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) @@ -3445,9 +3162,7 @@ Public Class ClsPaginas End Set End Property - #End Region - Property GlobalDTAC_PD_EjeRector(CveEmpresa As Integer) As DataTable Get If CveEmpresa <> -1 Then @@ -3457,13 +3172,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 @@ -3473,13 +3186,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 @@ -3489,13 +3200,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 @@ -3505,13 +3214,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 @@ -3521,47 +3228,42 @@ 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 + Public Shared Property GlobalDTOCEstatus(CveEmpresa As Integer) As DataTable Get - If CveEmpresa <> -1 Then - Dim Dv As New DataView(DirectCast(Application("GlobalDTOCEstatus"), DataTable), String.Format("CveEmpresa = {0}", CveEmpresa), "", DataViewRowState.CurrentRows) - GlobalDTOCEstatus = Dv.ToTable - Dv.Dispose() - Else - GlobalDTOCEstatus = DirectCast(Application("GlobalDTOCEstatus"), DataTable) + Dim AppNombre As String = $"GlobalDTOCEstatus-{CveEmpresa}" + 'sino existe, recarga los datos + If HttpContext.Current.Application(AppNombre) Is Nothing Then + Dim ObjOC As New ClsOC + If ObjOC.GetEstatus(CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjOC.DtResultados + ObjOC.Dispose() End If + GlobalDTOCEstatus = DirectCast(HttpContext.Current.Application(AppNombre), DataTable) End Get Set(value As DataTable) - Application("GlobalDTOCEstatus") = value + Dim AppNombre As String = $"GlobalDTOCEstatus-{CveEmpresa}" + HttpContext.Current.Application(AppNombre) = value End Set 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) @@ -3574,22 +3276,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 @@ -3600,8 +3297,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 @@ -3612,20 +3307,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}" @@ -3635,20 +3326,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") @@ -3671,7 +3358,6 @@ Public Class ClsPaginas End Set End Property #End Region - #Region "**********************************************************************GLOBAL DT RH (RECURSOS HUMANOS)********************************************************************" Property GlobalDTAsistenciaDetalle() As DataTable Get @@ -3682,7 +3368,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) @@ -3699,7 +3384,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) @@ -3716,7 +3400,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) @@ -3733,14 +3416,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 @@ -3751,7 +3432,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) @@ -3768,7 +3448,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) @@ -3785,7 +3464,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) @@ -3802,7 +3480,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) @@ -3819,7 +3496,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) @@ -3836,7 +3512,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) @@ -3853,7 +3528,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) @@ -3870,7 +3544,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) @@ -3887,7 +3560,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) @@ -3904,7 +3576,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) @@ -3921,7 +3592,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) @@ -3938,7 +3608,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) @@ -3955,7 +3624,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) @@ -3964,9 +3632,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 @@ -3975,29 +3641,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 @@ -4007,9 +3666,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) @@ -4018,7 +3675,6 @@ Public Class ClsPaginas Application("GlobalDTMantenimientosTipos") = value End Set End Property - Property GlobalDTMantenimientos() As DataTable Get GlobalDTMantenimientos = DirectCast(Application("GlobalDTMantenimientos"), DataTable) @@ -4027,34 +3683,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) @@ -4063,7 +3709,6 @@ Public Class ClsPaginas Application("GlobalDTTalleresTipos") = value End Set End Property - Property GlobalDTTalleres() As DataTable Get GlobalDTTalleres = DirectCast(Application("GlobalDTTalleres"), DataTable) @@ -4072,11 +3717,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) @@ -4085,7 +3727,6 @@ Public Class ClsPaginas Application("GlobalDTDistribuidoresTipos") = value End Set End Property - Property GlobalDTDistribuidores() As DataTable Get GlobalDTDistribuidores = DirectCast(Application("GlobalDTDistribuidores"), DataTable) @@ -4094,9 +3735,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 @@ -4109,12 +3748,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 @@ -4131,10 +3767,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}" @@ -4151,7 +3785,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" @@ -4167,7 +3800,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}" @@ -4193,7 +3825,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) @@ -4203,7 +3834,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 @@ -4224,112 +3854,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 @@ -4338,16 +3951,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 @@ -4357,16 +3967,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 @@ -4376,7 +3984,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) @@ -4392,7 +3999,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) @@ -4401,17 +4007,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 @@ -4419,19 +4020,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 @@ -4441,13 +4039,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 @@ -4455,20 +4050,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 @@ -4479,16 +4073,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)) @@ -4500,14 +4091,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 @@ -4517,26 +4105,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 @@ -4544,43 +4127,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 @@ -4595,27 +4168,3946 @@ 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 ListControl = 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 + CargarSubProyecto(DdlSubProyecto, "-1", AplicaTodos) + End If + End Sub + Public Sub CargarSubProyecto(DdlSubProyecto As ListControl, CveProyecto As String, Optional AplicaTodos As String = "Seleccione") + DdlSubProyecto.Items.Clear() + DdlSubProyecto.ClearSelection() + DdlSubProyecto.DataSource = If(Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, CveProyecto.ToEntero(), UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(CveProyecto.ToEntero(), -1, UsuarioActual.CveEmpresa, 1)) + DdlSubProyecto.DataBind() + If AplicaTodos <> "" Then + If DdlSubProyecto.GetType() Is GetType(ListBox) Then + 'DdlSubProyecto.Text = "Seleccione" + Else + DdlSubProyecto.Items.Insert(0, New ListItem(If(CveProyecto <> "-1", AplicaTodos, "Todos"), "-1")) + End If + 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, CveCompraAmortizacion:=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 "Diccionario de páginas" 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) @@ -4625,9 +8117,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) @@ -4639,8 +8129,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) @@ -4668,10 +8157,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) @@ -4686,7 +8172,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) @@ -4695,43 +8180,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) @@ -4751,11 +8223,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) @@ -4802,7 +8270,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) @@ -4822,7 +8289,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) @@ -4843,15 +8309,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) @@ -4866,7 +8331,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) @@ -4879,18 +8343,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) @@ -4900,8 +8357,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) @@ -4930,7 +8385,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) @@ -4974,13 +8428,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) @@ -4988,18 +8440,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) @@ -5008,16 +8456,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 @@ -5039,7 +8485,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) @@ -5070,7 +8515,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) @@ -5083,7 +8527,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) @@ -5107,13 +8550,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) @@ -5126,14 +8564,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) @@ -5167,7 +8603,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) @@ -5178,10 +8613,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) @@ -5190,16 +8622,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) @@ -5209,16 +8637,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) @@ -5227,8 +8649,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 @@ -5247,9 +8667,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) @@ -5269,8 +8687,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) @@ -5278,7 +8694,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) @@ -5293,13 +8708,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) @@ -5307,7 +8718,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) @@ -5332,8 +8742,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) @@ -5395,7 +8803,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) @@ -5465,21 +8872,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) @@ -5490,8 +8891,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) @@ -5516,14 +8915,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) @@ -5535,11 +8932,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) @@ -5563,7 +8958,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) @@ -5573,7 +8967,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) @@ -5585,7 +8978,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) @@ -5595,7 +8987,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) @@ -5607,24 +8998,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) @@ -5674,8 +9061,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) @@ -5716,13 +9102,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) @@ -5732,12 +9115,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) @@ -5763,7 +9145,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) @@ -5807,8 +9188,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) @@ -5837,26 +9216,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/Efacturas.aspx".ToUpper(), 2015) - 'PaginaDict.Add("/Ventas/Ventas.aspx".ToUpper(), 2016) - 'PaginaDict.Add("/Ventas/Clientes.aspx".ToUpper(), 2017) - PaginaDict.Add("/Ventas/Ventas.aspx?Op=Rem".ToUpper(), 2018) - 'PaginaDict.Add("/Ventas/Ventas.aspx?Op=Cot".ToUpper(), 2019) - PaginaDict.Add("/Ventas/VentasH.aspx".ToUpper(), -1) - PaginaDict.Add("/Ventas/ClientesAbonarH.aspx".ToUpper(), -1) - PaginaDict.Add("/Ventas/PVRaul.aspx".ToUpper(), -1) 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) @@ -5871,18 +9239,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) @@ -5893,103 +9256,39 @@ Public Class ClsPaginas PaginaDict.Add("/Portal/ConsultaCliente.aspx".ToUpper(), -1) PaginaDict.Add("/Proveedores/PortalProveedor.aspx".ToUpper(), -1) PaginaDict.Add("/Proveedores/LogInProveedores.aspx".ToUpper(), -1) - - 'Punto de Venta - 'PaginaDict.Add("/PV/PVRepVentas.aspx".ToUpper(), 270) - 'PaginaDict.Add("/PV/PVRepCompras.aspx".ToUpper(), 272) - 'PaginaDict.Add("/PV/PVRepVentasCompras.aspx".ToUpper(), 273) - 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) - - - - - 'Votos - 'PaginaDict.Add("/Temporal/RegBoletas.aspx".ToUpper(), 1026) - 'PaginaDict.Add("/Temporal/RepVotos.aspx".ToUpper(), 1027) - - 'DG2016 - PaginaDict.Add("/ZDG/RepGeneral.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/RepMunicipios.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/RepMunicipiosCoordinadores.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/RepMunicipiosLideres.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/RepMunicipiosMovilizadores.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/RepMunicipiosMilitantes.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/PopUpBuscarMilitante.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/ActualizaPadron.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/CapturaManual.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/MensajeManual.aspx".ToUpper(), -1) - PaginaDict.Add("/ZDG/MensajeAutomatico.aspx".ToUpper(), -1) - - + 'PaginaDict.Add("/ZDG/RepGeneral.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/RepMunicipios.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/RepMunicipiosCoordinadores.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/RepMunicipiosLideres.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/RepMunicipiosMovilizadores.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/RepMunicipiosMilitantes.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/PopUpBuscarMilitante.aspx".ToUpper(), -1) + 'PaginaDict.Add("/ZDG/ActualizaPadron.aspx".ToUpper(), -1) + '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("/Agropecuaria/CierreCultivo.aspx".ToUpper(), 1326) - - PaginaDict.Add("/Inventarios/RepRSCO.aspx".ToUpper(), 1328) - - - PaginaDict.Add("/testApi.aspx".ToUpper(), -1) - - 'PaginaDict.Add("/Compras/Efacturas.aspx".ToUpper(), 2007) - 'PaginaDict.Add("/Compras/Compras.aspx".ToUpper(), 2008) - 'PaginaDict.Add("/Compras/Proveedores.aspx".ToUpper(), 2009) - 'PaginaDict.Add("/OC/OC.aspx".ToUpper(), 2011) - 'PaginaDict.Add("/OC/RepOC.aspx".ToUpper(), 2012) - - - 'PaginaDict.Add("/Ventas/CatPS.aspx".ToUpper(), 2033) - 'PaginaDict.Add("/Ventas/CatPS.aspx".ToUpper(), 2034) - - ''PaginaDict.Add("/Sistemas/WizardRegistro.aspx".ToUpper(), 2035) - 'PaginaDict.Add("/Planeacion/CatSucursales.aspx".ToUpper(), 2036) - 'PaginaDict.Add("/Planeacion/CatFolios.aspx".ToUpper(), 2037) - 'PaginaDict.Add("/Sistemas/CatRoles.aspx".ToUpper(), 2038) - 'PaginaDict.Add("/Sistemas/Usuarios.aspx".ToUpper(), 2039) - 'PaginaDict.Add("/Sistemas/CatProcesos.aspx".ToUpper(), 2040) - - - - - 'CONTSIG (CONTabilidad al SIGuiente nivel) - - - - PaginaDict.Add("/Compras/RepCxPCaudillo.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) @@ -6001,20 +9300,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 @@ -6024,7 +9319,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 @@ -6033,57 +9327,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 @@ -6091,4672 +9376,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}{Rand.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 - '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 - - End Class - diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index c6570ec94..c516288de 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -1483,8 +1483,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Public Property CveMotivoBaja As Integer Public Property FechaBaja As Date Public Property CveEstatusPersonal As Integer - Public Property IdCtaContPrestamos As Integer - Public Property CveCuentaPrestamos As Integer + Public Property IdCtaContPrestamos As Integer Public Property CtaContPrestamos As String Public Property TelefonoExtension As String Public Property CelularPersonal As String @@ -1538,8 +1537,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Public Property CveUsuario As Integer Public Property Usuario As String Public Property CveEmpresa As Integer - Public Property IdCtaContPersonal As Integer - Public Property CveCuentaPersonal As Integer + Public Property IdCtaContPersonal As Integer Public Property CtaContPersonal As String Public Property CvePersonalPadre As Integer @@ -1700,10 +1698,8 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Me.Jornada = Data.Rows(0)("Jornada").ToString Me.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero IdCtaContPrestamos = Data.Rows(0)("IdCtaContPrestamos").ToString.ToEntero - CveCuentaPrestamos = Data.Rows(0)("IdCtaContPrestamosSIG").ToString.ToEntero CtaContPrestamos = Data.Rows(0)("CtaContPrestamos").ToString IdCtaContPersonal = Data.Rows(0)("IdCtaContPersonal").ToString.ToEntero - CveCuentaPersonal = Data.Rows(0)("IdCtaContPersonalSIG").ToString.ToEntero CtaContPersonal = Data.Rows(0)("CtaContPersonal").ToString CvePersonalPadre = Data.Rows(0)("CvePersonalPadre").ToString.ToEntero CveUsuarioNomina = Data.Rows(0)("CveUsuarioNomina").ToString.ToEntero @@ -1880,16 +1876,12 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Me.Jornada = Data.Rows(0)("Jornada").ToString Me.CveEmpresa = Data.Rows(0)("CveEmpresa").ToString.ToEntero IdCtaContPrestamos = Data.Rows(0)("IdCtaContPrestamos").ToString.ToEntero - CveCuentaPrestamos = Data.Rows(0)("IdCtaContPrestamosSIG").ToString.ToEntero CtaContPrestamos = Data.Rows(0)("CtaContPrestamos").ToString IdCtaContPersonal = Data.Rows(0)("IdCtaContPersonal").ToString.ToEntero - CveCuentaPersonal = Data.Rows(0)("IdCtaContPersonalSIG").ToString.ToEntero CtaContPersonal = Data.Rows(0)("CtaContPersonal").ToString CvePersonalPadre = Data.Rows(0)("CvePersonalPadre").ToString.ToEntero - CvePersonalPadre = Data.Rows(0)("CvePersonalPadre").ToString.ToEntero CveUsuarioNomina = Data.Rows(0)("CveUsuarioNomina").ToString.ToEntero - End If Retorno = True Catch ex As SqlException diff --git a/App_Code/ClsSisEmpresas.vb b/App_Code/ClsSisEmpresas.vb index c1b5f590c..2ca94fb56 100644 --- a/App_Code/ClsSisEmpresas.vb +++ b/App_Code/ClsSisEmpresas.vb @@ -384,7 +384,6 @@ Public Class ClsSisEmpresas _Empresa.FacturaProduccion = If(Data.Rows(0)("FacturaProduccion").ToString = "", False, CBool(Data.Rows(0)("FacturaProduccion").ToString)) _Empresa.EstatusFacturacion = Data.Rows(0)("EstatusFacturacion").ToString <> "No" _Empresa.UsaContabilidad = Data.Rows(0)("UsaContabilidad").ToString <> "No" - _Empresa.UsaContabilidadSIG = Data.Rows(0)("UsaContabilidadSIG").ToString <> "No" _Empresa.UsaBancos = Data.Rows(0)("UsaBancos").ToString <> "No" _Empresa.UsaVentas = Data.Rows(0)("UsaVentas").ToString <> "No" _Empresa.UsaCxC = Data.Rows(0)("UsaCxC").ToString <> "No" diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index 1752b34e4..c64f9bbda 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -2152,7 +2152,7 @@ Public Class ClsVentas End Function Public Function AddPromociones(Promocion As String, FechaInicio As Date, FechaFin As Date, CveVendedor As Integer, CveCliente As Integer, Estatus As Boolean, CveMoneda As Integer, CveUsuario As Integer, CveEmpresa As Integer, CveSubProyecto As Integer, TipoAplicacion As String, - Optional CveMarca As Integer = -1, Optional EsDistribuidor As Integer = -1, Optional CvePromocionPadre As Integer = -1) As Integer + Optional CveMarca As Integer = -1, Optional EsDistribuidor As Integer = -1) As Integer Dim Retorno = -1 DataAdapter("PA_Vta_PromocionesAdd") @@ -2170,7 +2170,6 @@ Public Class ClsVentas .Add("@TipoAplicacion", SqlDbType.VarChar).Value = TipoAplicacion .Add("@CveMarca", SqlDbType.Int).Value = CveMarca .Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor - .Add("@CvePromocionPadre", SqlDbType.Int).Value = CvePromocionPadre .Add("@CvePromocion", SqlDbType.Int).Direction = ParameterDirection.Output End With @@ -5529,12 +5528,13 @@ Public Class ClsVentas End Function - Public Function GetLineasAdicionales(CveCliente As Integer, TipoLinea As Integer, CveMoneda As Integer, CveLineaAdicionalEstatus As Integer, CveEmpresa As Integer) As Boolean + Public Function GetLineasAdicionales(CveCliente As Integer, CveProveedor As Integer, TipoLinea As Integer, CveMoneda As Integer, CveLineaAdicionalEstatus As Integer, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Vta_LineasAdicionalesGet") With SqlAdapter.SelectCommand.Parameters .Add("@CveCliente", SqlDbType.Int).Value = CveCliente + .Add("@CveProveedor", SqlDbType.Int).Value = CveProveedor .Add("@TipoLinea", SqlDbType.Int).Value = TipoLinea .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda .Add("@CveLineaAdicionalEstatus", SqlDbType.Int).Value = CveLineaAdicionalEstatus diff --git a/App_Code/Empresa.vb b/App_Code/Empresa.vb index c55637868..666880f07 100644 --- a/App_Code/Empresa.vb +++ b/App_Code/Empresa.vb @@ -68,8 +68,7 @@ Public Class Empresa Public Property RegimenFiscal As String Public Property EstatusFacturacion As Boolean Public Property Estatus As Boolean - Public Property UsaContabilidad As Boolean - Public Property UsaContabilidadSIG As Boolean + Public Property UsaContabilidad As Boolean Public Property UsaBancos As Boolean Public Property UsaVentas As Boolean Public Property UsaCompras As Boolean diff --git a/App_Code/LogicNominas.vb b/App_Code/LogicNominas.vb index 2ba9024bc..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 @@ -471,7 +471,7 @@ Public Class LogicNominas cfdi.Nomina.Receptor.NumeroCuenta = BancoNumCuenta cfdi.Nomina.Receptor.SDI = SDI cfdi.Nomina.Receptor.SBC = SalarioDiarioSS - cfdi.Nomina.Receptor.Sindicalizado = If(Sindicalizado, "Si", "No") + cfdi.Nomina.Receptor.Sindicalizado = If(Sindicalizado, "Sí", "No") cfdi.Nomina.Receptor.CodigoEntidadFederativa = ClaveEstado cfdi.Conceptos.Add(New CFDIConceptos With {.Cantidad = 1, .ClaveUnidad = "ACT", .ClaveProdServ = "84111505", .Descripcion = "Pago de nómina", .ValorUnitario = cfdi.Comprobante.SubTotal, .Importe = cfdi.Comprobante.SubTotal, .Descuento = cfdi.Nomina.TotalDeducciones.ToString().ToDecimal(), .ObjetoImpuesto = "01"}) diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index e1c7f11b5..47d5bf7b6 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2605,13 +2605,13 @@ Namespace Modelos ErrorPrepoliza = True End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovto68, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then ErrorPrepoliza = True End If Dim Importe318 As Decimal = (Math.Abs(importeMovimiento) - Math.Abs(Importe68)) * ValorMultiplicador - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, Importe318, Referencia, 318, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Importe318, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovto68, Importe318, Referencia, 318, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=Importe318, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then ErrorPrepoliza = True End If @@ -2756,6 +2756,8 @@ Namespace Modelos End If ImporteAcumulado91 += (ImporteMN91).RoundSQL + Dim tCveConcepto As Integer = 251 + If Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then tCveConcepto = 301 If UsaComplementariaClientes = True AndAlso Dr("TCCambioValuacion").ToString.ToDecimal > 1 Then Dim ImporteComplementarioNC As Decimal = ((Importe251 * Dr("TCCambioValuacion").ToString.ToDecimal) - Importe251).RoundSQL If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 207, Concepto, FechaMovimiento, IdCtaContableClienteComplementaria, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=ImporteComplementarioNC, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal) Then @@ -2763,7 +2765,7 @@ Namespace Modelos Exit For End If End If - If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, 251, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=Importe251, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then + If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, Importe251, Referencia, tCveConcepto, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=Dr("CveVenta").ToString.ToEntero, CveCliente:=ObjFactura.CveCliente, ImporteMX:=Importe251, ImporteME:=If(Dr("TCCambioValuacion").ToString.ToDecimal = 1, 0, Importe251), CveSubProyecto:=CveSubProyectoContabilizar, CveVentaAmortizacion:=ObjFactura.CveVenta, TipoCambio:=Dr("TCCambioValuacion").ToString.ToDecimal, TipoCambioPago:=tipoCambio) Then ErrorPrepoliza = True Exit For End If @@ -8916,13 +8918,6 @@ Namespace Modelos Public Property CuentaInventario As String Public Property IdCuentaIngresos As Integer? Public Property CuentaIngresos As String - Public Property IdCuentaContableSIG As Integer? - Public Property IdCuentaCostosSIG As Integer? - Public Property IdCuentaGastoSIG As Integer? - Public Property IdCuentaIngresosSIG As Integer? - Public Property IdCuentaInventarioSIG As Integer? - Public Property IdCuentaRetIVASIG As Integer? - Public Property IdCuentaRetISRSIG As Integer? Public Property Estado As Boolean Public Property Estatus As String Public Property RequiereSerieLote As Boolean? diff --git a/App_Code/ThreadSafeRandom.vb b/App_Code/ThreadSafeRandom.vb new file mode 100644 index 000000000..fc20be441 --- /dev/null +++ b/App_Code/ThreadSafeRandom.vb @@ -0,0 +1,16 @@ +Imports System.Threading + +NotInheritable Class ThreadSafeRandom + Private Sub New() + 'Impide que se instancie la clase (equivalente a static class en C#) + End Sub + Private Shared ReadOnly GlobalRandom As New Random() + Private Shared ReadOnly LocalRandom As New ThreadLocal(Of Random)(Function() + SyncLock GlobalRandom + Return New Random(GlobalRandom.Next()) + End SyncLock + End Function) + Public Shared Function [Next](Optional min As Integer = 0, Optional max As Integer = Integer.MaxValue) As Integer + Return LocalRandom.Value.Next(min, max) + End Function +End Class \ No newline at end of file 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/Bancos/DepositosCaja.aspx.vb b/Bancos/DepositosCaja.aspx.vb index 78e3472d1..01c04feba 100644 --- a/Bancos/DepositosCaja.aspx.vb +++ b/Bancos/DepositosCaja.aspx.vb @@ -48,6 +48,7 @@ Partial Class Bancos_DepositosCaja DdlCajaChica.Items.Add(New ListItem("Todas", "-1")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Solidaridad", "7850")) DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Obregón", "7853")) + DdlCuentaDeposito.Items.Add(New ListItem("Cuadre Matriz", "7861")) divFolio.Visible = True End If diff --git a/Bancos/FluctuacionCambiaria.aspx b/Bancos/FluctuacionCambiaria.aspx index 0bbd521d5..8c8b8769a 100644 --- a/Bancos/FluctuacionCambiaria.aspx +++ b/Bancos/FluctuacionCambiaria.aspx @@ -266,6 +266,7 @@ + @@ -368,6 +369,7 @@ + @@ -644,6 +646,7 @@ + @@ -694,6 +697,7 @@ + diff --git a/Bancos/FluctuacionCambiaria.aspx.vb b/Bancos/FluctuacionCambiaria.aspx.vb index b465c2df1..d93124cd0 100644 --- a/Bancos/FluctuacionCambiaria.aspx.vb +++ b/Bancos/FluctuacionCambiaria.aspx.vb @@ -274,7 +274,7 @@ Partial Class Bancos_FluctuacionCambiaria GvAcreedores.DataSource = ObjBancos.DtResultados LblTotalAcreedores.Text = ObjBancos.DtResultados.SUM("Fluctuacion").FormatoNumero Else - GvAcreedoresAnt.DataSource = Nothing + GvAcreedores.DataSource = Nothing Alert("Ocurrio un error al cargar los acreedores", TipoMensaje.MsgAdvertencia) End If ObjBancos.Dispose() diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb index 893d1bfd0..5ba9b918a 100644 --- a/Bancos/IE.aspx.vb +++ b/Bancos/IE.aspx.vb @@ -2779,7 +2779,7 @@ Partial Class Bancos_IE End If End If Dim UsaComplementariaBancos As Boolean = False - UsaComplementariaBancos = True + UsaComplementariaBancos = If(UsuarioActual.CveEmpresa.Contiene(13, 83), False, True) If MsgError = "" Then @@ -3712,8 +3712,16 @@ Partial Class Bancos_IE IDCtaBeneficiario = IdCtaAnticipoExtranjera End If + + Dim Importe30 As Decimal = TxtImporte.Text.ToDecimal + + If Not UsaComplementariaBancos AndAlso tCveMoneda > 1 Then + Importe30 = TxtImporte.Text.ToDecimal + (TxtImporte.Text.ToDecimal * TxtTipoCambio.Text.ToDecimal - TxtImporte.Text.ToDecimal).RoundSQL() + End If + + 'MOVIMIENTOS EGRESOS - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=TxtImporte.Text.ToDecimal, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, TxtImporte.Text.ToDecimal, Ref, CveConceptoContable, Conc, Now, IDCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=Importe30, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then Dim IVA As Decimal = 0 ' TxtImporte.Text.ToDouble * HdnProvPorIVA.Value.ToDouble If ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovimiento, TxtImporte.Text.ToDecimal - IVA - CIF, Ref, CveConceptoCompra, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=If(UsaComplementariaBancos, TxtImporte.Text.ToDecimal, tImporteMonedaExtranjera), ImporteME:=TxtImporte.Text.ToDecimal, CveIEDevolucion:=DdlIEAcreedor.SelectedValue.ToEntero) Then If IVA > 0 AndAlso Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, False, IVA, Ref, 19, Conc, Now, IDCtaBeneficiario, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, CveOC:=CveOrdenCompra, CvePersonal:=CvePersonal, CveCreditoDetalle:=CveCreditoDetalle, CveCliente:=CveCliente, ImporteMX:=TxtImporte.Text.ToDecimal, ImporteME:=tImporteMonedaExtranjera, CveIEDevolucion:=DDlCheques.SelectedValue.ToEntero) Then @@ -3731,7 +3739,7 @@ Partial Class Bancos_IE End If 'BANCOS COMPLEMENTARIA - If tCveMoneda > 1 Then + If tCveMoneda > 1 And UsaComplementariaBancos Then Dim ImporteAplicar As Decimal = TxtImporte.Text.ToDecimal Dim ImporteAplicarMN = (ImporteAplicar * TxtTipoCambio.Text.ToDecimal - ImporteAplicar).RoundSQL() If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAplicar, Ref, 204, Conc, Now, IDCtaContableComplementaria, -1, CveIE, CveCompra:=CveCompraDeCDin, CveProveedor:=CveProveedor, ImporteMX:=ImporteAplicarMN, ImporteME:=ImporteAplicar, TipoCambio:=TxtTipoCambio.Text.ToDecimal) Then diff --git a/Bancos/PolizaCheque.aspx.vb b/Bancos/PolizaCheque.aspx.vb index 25d3d9559..33211d3ff 100644 --- a/Bancos/PolizaCheque.aspx.vb +++ b/Bancos/PolizaCheque.aspx.vb @@ -954,7 +954,7 @@ Partial Class Bancos_PolizaCheque Importe = Importe * TC End If - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(gvr.DataKey("IDCuenta").ToEntero, UsuarioActual.CveEmpresa), -1), TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, Importe, Referencia, gvr.DataKey("CveConcepto").ToEntero, TxtObservaciones.Text, Now, gvr.DataKey("IDCuenta").ToEntero, -1, CveIE, CveProveedor:=CveProveedor, CveSubProyecto:=gvr.FCDropDownList("DdlSubProyecto").SelectedValue.ToEntero, CvePersonal:=gvr.DataKey("CvePersonal").ToEntero, ImporteMX:=Importe, TipoCambio:=TC) Then MsgError = "no se pudo insertar el detalle de la póliza2" End If diff --git a/Bancos/PopIECompras.aspx b/Bancos/PopIECompras.aspx index 268ad0e85..571213489 100644 --- a/Bancos/PopIECompras.aspx +++ b/Bancos/PopIECompras.aspx @@ -549,7 +549,12 @@
- + + <%----%> + + +
@@ -801,6 +806,7 @@ CambiaPesosDolares() } } + diff --git a/Bancos/PopIECompras.aspx.vb b/Bancos/PopIECompras.aspx.vb index 9d8b173be..b9eaf92c1 100644 --- a/Bancos/PopIECompras.aspx.vb +++ b/Bancos/PopIECompras.aspx.vb @@ -685,10 +685,10 @@ Partial Class Bancos_PopIECompras DdlTipoTransaccion.Enabled = True TxtObservaciones.Enabled = True BtnGuardar.Visible = True - RVImporte.Enabled = True + 'RVImporte.Enabled = True - RVImporte.Enabled = True - RVImporte.MaximumValue = dr("Saldo").ToString.ToDecimal.ToString.FormatoNumero + 'RVImporte.Enabled = True + 'RVImporte.MaximumValue = dr("Saldo").ToString.ToDecimal.ToString.FormatoNumero TxtImporte.Text = dr("Saldo").ToString.ToDecimal.FormatoNumero SaldoVenta = dr("Saldo").ToString.ToDecimal @@ -1185,9 +1185,9 @@ Partial Class Bancos_PopIECompras GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True - RVImporte.Enabled = False - RVImporte.MaximumValue = "0.00" - + 'RVImporte.Enabled = False + ' RVImporte.MaximumValue = "0.00" + CVImporteDolares.Enabled = True Else DivTipoCambio.Visible = False @@ -1205,8 +1205,8 @@ Partial Class Bancos_PopIECompras GvDeudores.Columns(5).Visible = False GvDeudores.Columns(6).Visible = False - RVImporte.Enabled = True - RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString + 'RVImporte.Enabled = True + 'RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False @@ -1244,8 +1244,8 @@ Partial Class Bancos_PopIECompras GvDeudores.Columns(5).Visible = True GvDeudores.Columns(6).Visible = True - RVImporte.Enabled = False - RVImporte.MaximumValue = "0.00" + 'RVImporte.Enabled = False + 'RVImporte.MaximumValue = "0.00" CVImportePesos.Enabled = True Else @@ -1262,10 +1262,10 @@ Partial Class Bancos_PopIECompras GvIngresos.Columns(6).Visible = False GvDeudores.Columns(5).Visible = False - GvDeudores.Columns(6).Visible = False - - RVImporte.Enabled = True - RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString + GvDeudores.Columns(6).Visible = False + + ' RVImporte.Enabled = True + 'RVImporte.MaximumValue = LtlSaldo.Text.ToDecimal.ToString CVImporteDolares.Enabled = False CVImportePesos.Enabled = False @@ -3439,4 +3439,35 @@ Partial Class Bancos_PopIECompras End Sub + + Protected Sub CVTxtImporte_ServerValidate(source As Object, args As ServerValidateEventArgs) + + Dim Saldo As Decimal = LtlSaldo.Text.Replace("USD", "").Replace("MXN", "").Replace(",", "").ToDecimal + Dim ImportePagado As Decimal = TxtImporte.Text.ToDecimal + + If ChkPagarPesos.Checked Then + + Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal + Dim PagoEnDollares As Decimal = (ImportePagado / TC).RoundSQL() + + If PagoEnDollares <= Saldo Then + args.IsValid = True + Else + args.IsValid = False + End If + + Else + + If ImportePagado <= Saldo Then + args.IsValid = True + Else + args.IsValid = False + End If + + End If + + + + End Sub + End Class \ No newline at end of file diff --git a/Bancos/ProductosFinancieros.aspx.vb b/Bancos/ProductosFinancieros.aspx.vb index ec2761da3..dc17b77df 100644 --- a/Bancos/ProductosFinancieros.aspx.vb +++ b/Bancos/ProductosFinancieros.aspx.vb @@ -366,7 +366,7 @@ Partial Class Bancos_ProductosFinancieros idCuentaContabilizacion = 0 End If - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, "", If(DdlTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 AndAlso ConceptoContable = 30, 42, ConceptoContable), DdlTipoMovimiento.SelectedItem.Text & If(TxtConcepto.Text.Trim.Length > 0, " - " & TxtConcepto.Text.Trim, ""), FechaMovimiento, If(DdlTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 AndAlso ConceptoContable = 30, DdlTarjeta.SelectedValue.ToEntero, IdCtaContablePP), -1, CveIE, ImporteMX:=importeMovimiento, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(If(DdlTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 AndAlso ConceptoContable = 30, DdlTarjeta.SelectedValue.ToEntero, IdCtaContablePP), UsuarioActual.CveEmpresa), -1)) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, "", If(DdlTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 AndAlso ConceptoContable = 30, 42, ConceptoContable), DdlTipoMovimiento.SelectedItem.Text & If(TxtConcepto.Text.Trim.Length > 0, " - " & TxtConcepto.Text.Trim, ""), FechaMovimiento, If(DdlTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 AndAlso ConceptoContable = 30, DdlTarjeta.SelectedValue.ToEntero, IdCtaContablePP), -1, CveIE, ImporteMX:=importeMovimiento) Then ErrorTransaccion = True End If End If diff --git a/Bancos/ProveedoresAbonar.aspx.vb b/Bancos/ProveedoresAbonar.aspx.vb index 8941c6e1b..27467a8c7 100644 --- a/Bancos/ProveedoresAbonar.aspx.vb +++ b/Bancos/ProveedoresAbonar.aspx.vb @@ -887,7 +887,7 @@ Partial Class Bancos_ProveedoresAbonar If DivTarjeta.Visible AndAlso DdlTarjeta.SelectedValue.ToEntero > 0 Then Dim ObjCreditos As New ClsBancos ObjCreditos.GetTarjetasCreditos(DdlCuenta.SelectedValue.ToEntero, DdlTarjeta.SelectedValue.ToEntero) - If ObjCreditos.DtResultados.Rows.Count > 0 AndAlso (ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero > 0 Or ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjetaSIG").ToString.ToEntero > 0) Then + If ObjCreditos.DtResultados.Rows.Count > 0 AndAlso (ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero > 0) Then IdCuenta = ObjCreditos.DtResultados.Rows(0)("IdCtaContableTarjeta").ToString.ToEntero End If diff --git a/Bancos/RepProgramarRecursos.aspx b/Bancos/RepProgramarRecursos.aspx index e458a4947..c8073cca1 100644 --- a/Bancos/RepProgramarRecursos.aspx +++ b/Bancos/RepProgramarRecursos.aspx @@ -99,7 +99,9 @@
+
+
Proveedor:
@@ -108,46 +110,67 @@ --%>
Clasificaciones:
-
+
+ -
Aplica NC/Dev:
-
- - - - - - <%-- --%> + +
+ +
+
Aplica NC/Dev:
+
+ + + + + +
+
+
-
+ + +
-
- - - - - - - - - +
+ +
+ +
+
+ + +
+
+ + + + + +
+ +
+ + + +
> diff --git a/Bancos/RepProgramarRecursos.aspx.vb b/Bancos/RepProgramarRecursos.aspx.vb index f0720faa8..07f3fd648 100644 --- a/Bancos/RepProgramarRecursos.aspx.vb +++ b/Bancos/RepProgramarRecursos.aspx.vb @@ -170,7 +170,7 @@ Partial Class Bancos_RepProgramarRecursos DdlSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1)) DdlSubProyecto.DataBind() ' DdlEstatusCompra.SelectedValue = "2" 'las programadas - DdlAgrupador.SelectedValue = "2" + 'DdlAgrupador.SelectedValue = "2" 'Gv.Columns(8).Visible = True DdlSubProyecto.Items.Insert(1, New ListItem("Sin Proyecto", "-2")) diff --git a/Bancos/Transferencias.aspx.vb b/Bancos/Transferencias.aspx.vb index cc60528a8..ab44c7dd8 100644 --- a/Bancos/Transferencias.aspx.vb +++ b/Bancos/Transferencias.aspx.vb @@ -253,7 +253,8 @@ Partial Class Bancos_Transferencias If CveMonedaOrigen = 1 AndAlso CveMonedaDestino <> 1 Then 'pesos a otra moneda se divide - ImporteMXDestino = Math.Round(TxtImporte.Text.Trim.ToDouble / TxtTipoCambio.Text.ToDouble, 2) + ImporteDestino = Math.Round(TxtImporte.Text.Trim.ToDouble / TxtTipoCambio.Text.ToDouble, 2) + ImporteMXDestino = TxtImporte.Text.Trim.ToDouble ElseIf CveMonedaOrigen <> 1 AndAlso CveMonedaDestino = 1 Then 'de otra moneda a pesos se multiplica ImporteDestino = Math.Round(TxtImporte.Text.Trim.ToDouble * TxtTipoCambio.Text.ToDouble, 2) @@ -269,6 +270,7 @@ Partial Class Bancos_Transferencias TipoCambio = TxtTipoCambio.Text.ToDouble 'GlobalTipoCambio(TxtFechaDocumento.Text.ToDate) End If + Dim CvePrePoliza As Integer = ObjMov.AddPrePolizas("Bancos/Transferencias", 13, TxtImporte.Text.Trim.ToDouble, TxtImporte.Text.Trim.ToDouble, CveMonedaOrigen, TxtFechaDocumento.Text.ToDate, $"Transferencia entre cuentas {TxtObservaciones.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) If UsuarioActual.CveEmpresa = 48 Then @@ -363,11 +365,21 @@ Partial Class Bancos_Transferencias If RBLOpcion.SelectedValue = "2" Then TipoMovtoDetalle = False ' cuando sea un reembolso/devolución, es ingreso a bancos Dim TC As Decimal = TxtTipoCambio.Text.ToDecimal - If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoDetalle, TxtImporte.Text.ToDouble, $"Transferencia entre cuentas {TxtObservaciones.Text}", 30, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IdCtaContableOrigen, -1, CveIE, ImporteMX:=If(UsuarioActual.CveEmpresa = 119, TxtImporte.Text.ToDouble, ImporteMXOrigen), ImporteME:=If(CveMonedaOrigen > 1, TxtImporte.Text.ToDouble * TC, 0), CveCuenta:=CveCuentaOrigen, CveIEDevolucion:=CveIEDevolucion) Then - If CveMonedaOrigen > 1 AndAlso UsuarioActual.CveEmpresa = 119 Then + If ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoDetalle, + TxtImporte.Text.ToDouble, $"Transferencia entre cuentas {TxtObservaciones.Text}", 30, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IdCtaContableOrigen, -1, CveIE, + ImporteMX:=If(Not UsuarioActual.CveEmpresa.Contiene(13, 83), TxtImporte.Text.ToDouble, ImporteMXOrigen), + ImporteME:=If(CveMonedaOrigen > 1, TxtImporte.Text.ToDouble * TC, 0), + CveCuenta:=CveCuentaOrigen, + CveIEDevolucion:=CveIEDevolucion) Then + + If CveMonedaOrigen > 1 AndAlso Not UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'Agregamos complementaria - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoDetalle, 0, $"Transferencia entre cuentas {TxtObservaciones.Text}", 204, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IDCtaContableComplementariaOrigen, -1, CveIE:=CveIE, ImporteMX:=(TxtImporte.Text.ToDouble * TC - TxtImporte.Text.ToDouble).RoundSQL, ImporteME:=TxtImporte.Text.ToDouble, TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoDetalle, + 0, $"Transferencia entre cuentas {TxtObservaciones.Text}", 204, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IDCtaContableComplementariaOrigen, -1, CveIE:=CveIE, + ImporteMX:=(TxtImporte.Text.ToDouble * TC - TxtImporte.Text.ToDouble).RoundSQL, + ImporteME:=TxtImporte.Text.ToDouble, + TipoCambio:=TC) Then MsgError = "Ocurrió un error al registrar el asiento del ingreso." End If @@ -378,20 +390,27 @@ Partial Class Bancos_Transferencias For Each row As GridViewRow In GvTC.Rows - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, row.FCTextBox("TxtAbono").Text.ToDouble, $"Transferencia entre cuentas {TxtObservaciones.Text}", 41, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, If(row.DataKey("IdCtaContableTarjeta").ToEntero > 0, row.DataKey("IdCtaContableTarjeta").ToEntero, row.DataKey("IdCtaContable").ToEntero), -1, CveIEDestino, ImporteMX:=row.FCTextBox("TxtAbono").Text.ToDouble, CveCuenta:=If(UsuarioActual.Empresa.UsaContabilidad AndAlso UsuarioActual.Empresa.UsaContabilidadSIG, ObtenerCuentaDobleConta(If(row.DataKey("IdCtaContableTarjeta").ToEntero > 0, row.DataKey("IdCtaContableTarjeta").ToEntero, row.DataKey("IdCtaContable").ToEntero), UsuarioActual.CveEmpresa), -1)) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, row.FCTextBox("TxtAbono").Text.ToDouble, $"Transferencia entre cuentas {TxtObservaciones.Text}", 41, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, If(row.DataKey("IdCtaContableTarjeta").ToEntero > 0, row.DataKey("IdCtaContableTarjeta").ToEntero, row.DataKey("IdCtaContable").ToEntero), -1, CveIEDestino, ImporteMX:=row.FCTextBox("TxtAbono").Text.ToDouble) Then MsgError = "Ocurrio un error al ingresar la prepoliza" End If Next 'Agregamos la contraria a bancos cuando es cuenta Else - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, ImporteDestino, $"Transferencia entre cuentas {TxtObservaciones.Text}", 30, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IdCtaContableDestino, -1, CveIEDestino, ImporteMX:=If(UsuarioActual.CveEmpresa = 119, ImporteDestino, ImporteMXDestino), ImporteME:=If(CveMonedaDestino > 1, TxtImporte.Text.ToDouble * TC, 0), CveCuenta:=CveCuentaDestino) Then + + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, + ImporteDestino, $"Transferencia entre cuentas {TxtObservaciones.Text}", 30, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IdCtaContableDestino, -1, CveIEDestino, + ImporteMX:=If(Not UsuarioActual.CveEmpresa.Contiene(13, 83), ImporteDestino, ImporteMXDestino), + ImporteME:=If(CveMonedaDestino > 1, ImporteDestino, 0), CveCuenta:=CveCuentaDestino) Then MsgError = "Ocurrio un error al ingresar la prepoliza" End If - If CveMonedaDestino > 1 AndAlso UsuarioActual.CveEmpresa = 119 Then + If CveMonedaDestino > 1 AndAlso Not UsuarioActual.CveEmpresa.Contiene(13, 83) Then 'Agregamos complementaria - If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, 0, $"Transferencia entre cuentas {TxtObservaciones.Text}", 204, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IDCtaContableComplementariaDestino, -1, CveIE:=CveIEDestino, ImporteMX:=(TxtImporte.Text.ToDouble * TC - TxtImporte.Text.ToDouble).RoundSQL, ImporteME:=TxtImporte.Text.ToDouble, TipoCambio:=TC) Then + If Not ObjMov.AddPrePolizasDetalle(CvePrePoliza, Not TipoMovtoDetalle, + 0, $"Transferencia entre cuentas {TxtObservaciones.Text}", 204, $"Transferencia entre cuentas {TxtObservaciones.Text}", Now, IDCtaContableComplementariaDestino, -1, CveIE:=CveIEDestino, + ImporteMX:=(ImporteMXDestino - ImporteDestino).RoundSQL, + ImporteME:=ImporteDestino, TipoCambio:=TC) Then MsgError = "Ocurrió un error al registrar el asiento del ingreso." End If diff --git a/CGame/CatEstatus.aspx.VB b/CGame/CatEstatus.aspx.VB index 4dbf3cd54..710c68a21 100644 --- a/CGame/CatEstatus.aspx.VB +++ b/CGame/CatEstatus.aspx.VB @@ -1,7 +1,6 @@ Option Strict On Imports System.Data Imports System.Collections.Generic Imports System.Linq Imports System.Web Imports System.Web.UI.WebControls Imports Extensiones Partial Class CATEstatus Inherits ClsPaginas - #Region "Propiedades" Property CveEstatus As Integer Get If Not ViewState("CveEstatus") Is Nothing Then @@ -19,7 +18,9 @@ #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then - CargaEstatus() End If End Sub Protected Sub CargaEstatus() Dim ObjEsta As New ClsCGame() If ObjEsta.GetEstatus(UsuarioActual.CveEmpresa) Then + CargaEstatus() + 'CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) + End If End Sub Protected Sub CargaEstatus() Dim ObjEsta As New ClsCGame() If ObjEsta.GetEstatus(UsuarioActual.CveEmpresa) Then GVEstatus.DataSource = ObjEsta.DtResultados GVEstatus.DataBind() End If 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/CRM/RepAgendasBitacoras.aspx b/CRM/RepAgendasBitacoras.aspx index 0ea6824c0..edbe65404 100644 --- a/CRM/RepAgendasBitacoras.aspx +++ b/CRM/RepAgendasBitacoras.aspx @@ -71,6 +71,15 @@
+ +
+ + Todos + Bitácora + Agenda + +
+ diff --git a/CRM/RepAgendasBitacoras.aspx.cs b/CRM/RepAgendasBitacoras.aspx.cs index 8f2242b97..8b725b80c 100644 --- a/CRM/RepAgendasBitacoras.aspx.cs +++ b/CRM/RepAgendasBitacoras.aspx.cs @@ -38,7 +38,7 @@ public partial class CRM_AgendasBitacoras : ClsPaginas ClsCRM ObjCRM = new ClsCRM(); //nt CveEmpresa, int CveVendedor, int CveTipoProceso, DateTime FechaInicio, DateTime FechaFin - if (ObjCRM.RepAgendasBitacoras(UsuarioActual.CveEmpresa, DdlVendedor.SelectedValue.ToEntero(),DdlTipoProceso.SelectedValue.ToEntero(), TxtFechaInicio.Text.ToDate(), TxtFechaFin.Text.ToDate())) + if (ObjCRM.RepAgendasBitacoras(UsuarioActual.CveEmpresa, DdlVendedor.SelectedValue.ToEntero(),DdlTipoProceso.SelectedValue.ToEntero(), TxtFechaInicio.Text.ToDate(), TxtFechaFin.Text.ToDate(), CveTipoEvento:DdlTipoEvento.SelectedValue.ToEntero())) { GVDatos.DataSource = ObjCRM.DtResultados; GVDatos.DataBind(); diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index b42713ae4..be2e48980 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -873,7 +873,10 @@
- + + Anticipos/NC Vinculados + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 2c13b4900..0de6f650c 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1667,17 +1667,14 @@ Partial Class Compras_Compras 'RegistraScript("ScrollVentanaAddProducto();") - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then + If UsuarioActual.Empresa.Funcionalidad(558) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(267) = "1" Then 'cuando es llantera. y citrícola divImportacion.Visible = True chkImportacion.Attributes.Add("onclick", "ChkImportacion(this);") End If - - MostrarOcultarColumnaIEPS() - End Sub #Region "C A R G A S" @@ -3125,6 +3122,10 @@ Partial Class Compras_Compras GvAnticiposSel.DataSource = dtnc GvAnticiposSel.DataBind() + If dtnc IsNot Nothing AndAlso dtnc.Rows.Count > 0 Then + LtlGvAnticiposSel.Visible = True + End If + '' VALIDA ELIMINAR COMPRA, QUE NO TENGA PAGOS CONCILIADOS If (UsuarioActual.TienePermisoProceso(77) OrElse UsuarioActual.TienePermisoProceso(135)) AndAlso dr("NumPagosConciliados").ToString.ToEntero = 0 Then ' Eliminar compra @@ -3198,13 +3199,12 @@ Partial Class Compras_Compras End If 'Tiene Importacion - If UsuarioActual.Empresa.Funcionalidad(558) = "1" Then - If dr("EsImportacion").ToString = "True" Then + + If dr("EsImportacion").ToString = "True" Then chkImportacion.Checked = True Else chkImportacion.Checked = False End If - End If CargaComplementosPago() CargaGvBitacora() InventarioMov() @@ -7416,11 +7416,12 @@ Partial Class Compras_Compras Else Dim usacomplementariaAnticipo As Boolean = False - usacomplementariaAnticipo = If(Ant.TCCompra > 1, True, False) + usacomplementariaAnticipo = If(Ant.TCCompra > 1 And not UsuarioActual.CveEmpresa.Contiene(13,83), True, False) Dim TipoCambioAnt As Decimal = Ant.TCCompra Dim ImporteAnt As Decimal = importeMovimiento Dim ImporteAntMN As Decimal = ImporteAnt * TipoCambioAnt + If usacomplementariaAnticipo Then IdCtaContable = CtaProveedorAnticiposComplementaria ImporteAntMN = TipoCambioAnt * ImporteAnt - ImporteAnt @@ -7440,6 +7441,11 @@ Partial Class Compras_Compras 'Dim ImporComisionAnticipo As Decimal = Ant.ImporteComision 'Dim importeMNComision As Decimal = ImporComisionAnticipo * tipoCambioActual * Multiplicador + + If Not usacomplementariaAnticipo Then + ImporteAntMN = TipoCambioAnt * ImporteAnt + End If + If ImporComisionAnticipo = 0 Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, ImporteAnt, Referencia, ConceptoContableAnticipo, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompraNC, CveCompraAmortizacion:=CveCompra, CveProveedor:=CveProveedorLocal, CveIE:=Ant.CveIE, ImporteMX:=ImporteAntMN, ImporteME:=If(tipoCambioActual = 1, 0, ImporteAnt), TipoCambio:=TipoCambioAnt, Contabilizable:=SeContabiliza) Then ErrorPrepoliza = True @@ -12280,6 +12286,7 @@ Partial Class Compras_Compras End Select romCreditosTabla.Visible = False Case "4" + EsContado = False CargaCreditosDisponibles() Exit Select End Select diff --git a/Compras/Proveedores.aspx b/Compras/Proveedores.aspx index 81d6807c0..9d79517f9 100644 --- a/Compras/Proveedores.aspx +++ b/Compras/Proveedores.aspx @@ -1468,7 +1468,7 @@
- Pago múltiples facturas Pagar múltiples facturas      +
@@ -1479,36 +1479,40 @@
-
-
-
+
-
- - - -
- -
-
+ Pago múltiples facturas Pagar múltiples facturas  + + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> + + +
+
+ +
+
+ +
+
+
- " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
@@ -1590,7 +1594,7 @@
- + <%----%>
@@ -1599,6 +1603,10 @@ + + " style="display: inline-block; margin-right: -20px; width: 150px;" /> + " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> + @@ -1610,9 +1618,8 @@
-
- " style="display: inline-block; margin-right: -20px; width: 150px;" /> - " style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"> +
+
@@ -1807,7 +1814,7 @@ - + diff --git a/Compras/Proveedores.aspx.vb b/Compras/Proveedores.aspx.vb index 9283bbf74..975465cb7 100644 --- a/Compras/Proveedores.aspx.vb +++ b/Compras/Proveedores.aspx.vb @@ -697,7 +697,7 @@ Partial Class Compras_Proveedores DtCuentasContables = Nothing End If ObjContabilidad.Dispose() - ElseIf UsuarioActual.Empresa.UsaContabilidadSIG Then + ElseIf UsuarioActual.Empresa.TipoContabilidad = 1 Then Dim ObjContabilidad As New ClsContabilidad If ObjContabilidad.GetCuentas(-1, "-1", 1, UsuarioActual.CveEmpresa) Then DtCuentasContables = ObjContabilidad.DtResultados @@ -904,7 +904,7 @@ Partial Class Compras_Proveedores End If 'Contable - If UsuarioActual.Empresa.UsaContabilidad Or UsuarioActual.Empresa.UsaContabilidadSIG Then + If UsuarioActual.Empresa.UsaContabilidad Then DdlCtaContAcreedores.AutoPostBack = True DdlCtaContProveedores.AutoPostBack = True DdlCtaContAnticipos.AutoPostBack = True @@ -943,29 +943,6 @@ Partial Class Compras_Proveedores DdlCtaContRetISRAcreditable.Attributes.Add("onclick", "CargaCuentas(19);") DdlCtaContRetIVAAcreditable.Attributes.Add("onclick", "CargaCuentas(20);") - If UsuarioActual.Empresa.UsaContabilidadSIG = True And UsuarioActual.Empresa.UsaContabilidad = False Then - DdlCtaContAcreedores.DataTextField = "Cuenta" : DdlCtaContAcreedores.DataValueField = "CveCuenta" - DdlCtaContProveedores.DataTextField = "Cuenta" : DdlCtaContProveedores.DataValueField = "CveCuenta" - DdlCtaContAnticipos.DataTextField = "Cuenta" : DdlCtaContAnticipos.DataValueField = "CveCuenta" - DdlCtaContFondoGarantia.DataTextField = "Cuenta" : DdlCtaContFondoGarantia.DataValueField = "CveCuenta" - DdlCtaContRetIVA.DataTextField = "Cuenta" : DdlCtaContRetIVA.DataValueField = "CveCuenta" - DdlCtaContRetIVAAcreditable.DataTextField = "Cuenta" : DdlCtaContRetIVAAcreditable.DataValueField = "CveCuenta" - DdlCtaContRetISR.DataTextField = "Cuenta" : DdlCtaContRetISR.DataValueField = "CveCuenta" - DdlCtaContComplementaria.DataTextField = "Cuenta" : DdlCtaContComplementaria.DataValueField = "CveCuenta" - DdlCtaContExtranjera.DataTextField = "Cuenta" : DdlCtaContExtranjera.DataValueField = "CveCuenta" - DdlCtaContDeudor.DataTextField = "Cuenta" : DdlCtaContDeudor.DataValueField = "CveCuenta" - DdlCtaContDeudorExtranjera.DataTextField = "Cuenta" : DdlCtaContDeudorExtranjera.DataValueField = "CveCuenta" - DdlCtaContDocsXPagar.DataTextField = "Cuenta" : DdlCtaContDocsXPagar.DataValueField = "CveCuenta" - DdlCtaContDeudorComplementaria.DataTextField = "Cuenta" : DdlCtaContDeudorComplementaria.DataValueField = "CveCuenta" - DdlCtaContDocsXPagarComplementaria.DataTextField = "Cuenta" : DdlCtaContDocsXPagarComplementaria.DataValueField = "CveCuenta" - DdlCtaContRetISRAcreditable.DataTextField = "Cuenta" : DdlCtaContRetISRAcreditable.DataValueField = "CveCuenta" - DdlCtaContAcreedoresExtranjera.DataTextField = "Cuenta" : DdlCtaContAcreedoresExtranjera.DataValueField = "CveCuenta" - DdlCtaContAcreedoresComplementaria.DataTextField = "Cuenta" : DdlCtaContAcreedoresComplementaria.DataValueField = "CveCuenta" - DdlCtaContAnticiposExtranjera.DataTextField = "Cuenta" : DdlCtaContAnticiposExtranjera.DataValueField = "CveCuenta" - DdlCtaContAnticiposComplementaria.DataTextField = "Cuenta" : DdlCtaContAnticiposComplementaria.DataValueField = "CveCuenta" - DdlCtaContDocsXPagarExtranjera.DataTextField = "Cuenta" : DdlCtaContDocsXPagarExtranjera.DataValueField = "CveCuenta" - End If - 'Proveedores If ObjProveedor.IdCtaContProveedores > 0 Then DdlCtaContProveedores.Items.Add(New ListItem(ObjProveedor.CtaContProveedores, ObjProveedor.IdCtaContProveedores.ToString)) : DdlCtaContProveedores.SelectedValueExist(ObjProveedor.IdCtaContProveedores.ToString) If ObjProveedor.IdCtaContProveedoresExtranjera > 0 Then DdlCtaContExtranjera.Items.Add(New ListItem(ObjProveedor.CtaContProveedoresExtranjera, ObjProveedor.IdCtaContProveedoresExtranjera.ToString)) : DdlCtaContExtranjera.SelectedValue = ObjProveedor.IdCtaContProveedoresExtranjera.ToString @@ -4542,92 +4519,92 @@ Partial Class Compras_Proveedores ObjProveedores.Dispose() - ElseIf UsuarioActual.Empresa.UsaContabilidadSIG = True Then + 'ElseIf UsuarioActual.Empresa.UsaContabilidadSIG = True Then - Dim ObjContabilidad As New ClsContabilidad - Dim ObjProveedores As New ClsCompProveedores() - ObjContabilidad.IniciaTransacSQL() - ObjProveedores.IniciaTransacSQL() - Dim CuentaPadre = -1 - Dim IdCuentaContable = -1 - Dim CtaCodigo As String = "" - Dim TieneError = False - Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 - Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" + ' Dim ObjContabilidad As New ClsContabilidad + ' Dim ObjProveedores As New ClsCompProveedores() + ' ObjContabilidad.IniciaTransacSQL() + ' ObjProveedores.IniciaTransacSQL() + ' Dim CuentaPadre = -1 + ' Dim IdCuentaContable = -1 + ' Dim CtaCodigo As String = "" + ' Dim TieneError = False + ' Dim IdCtaContableProveedores As Integer = -1, IdCtaContableAcreedores As Integer = -1, IdCtaContableDocsXPagar As Integer = -1, IdCtaContableAnticipos As Integer = -1, IdCtaContableDeudor As Integer = -1 + ' Dim CtaCodigoProveedores As String = "-1", CtaCodigoAcreedores As String = "-1", CtaCodigoDocsXPagar As String = "-1", CtaCodigoAnticipos As String = "-1", CtaCodigoDeudor As String = "-1" - Select Case btn.CommandArgument.ToString - Case "Proveedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(232).ToEntero - Case "Acreedores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(235).ToEntero - Case "DocsXPagar" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(236).ToEntero - Case "Anticipos" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(238).ToEntero - Case "Deudores" - CuentaPadre = UsuarioActual.Empresa.Funcionalidad(234).ToEntero + ' Select Case btn.CommandArgument.ToString + ' Case "Proveedores" + ' CuentaPadre = UsuarioActual.Empresa.Funcionalidad(232).ToEntero + ' Case "Acreedores" + ' CuentaPadre = UsuarioActual.Empresa.Funcionalidad(235).ToEntero + ' Case "DocsXPagar" + ' CuentaPadre = UsuarioActual.Empresa.Funcionalidad(236).ToEntero + ' Case "Anticipos" + ' CuentaPadre = UsuarioActual.Empresa.Funcionalidad(238).ToEntero + ' Case "Deudores" + ' CuentaPadre = UsuarioActual.Empresa.Funcionalidad(234).ToEntero - End Select + ' End Select - Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) - IdCuentaContable = ObjContabilidad.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, UsuarioActual.CveEmpresa) - If IdCuentaContable > 0 Then + ' Dim NombreCuenta = If(TxtRazonSocial.Text.Trim.Length > 50, TxtRazonSocial.Text.Trim.Substring(0, 50), TxtRazonSocial.Text.Trim) + ' IdCuentaContable = ObjContabilidad.AddSiguienteCuentaHijo(CuentaPadre, NombreCuenta, UsuarioActual.CveEmpresa) + ' If IdCuentaContable > 0 Then - ObjContabilidad.GetCuentas(IdCuentaContable, "-1", -1, UsuarioActual.CveEmpresa) - Dim dt = ObjContabilidad.DtResultados + ' ObjContabilidad.GetCuentas(IdCuentaContable, "-1", -1, UsuarioActual.CveEmpresa) + ' Dim dt = ObjContabilidad.DtResultados - If dt.Rows.Count = 1 Then + ' If dt.Rows.Count = 1 Then - Dim row As DataRow = dt.Rows(0) - CtaCodigo = CStr(row("CtaCodigo")) + ' Dim row As DataRow = dt.Rows(0) + ' CtaCodigo = CStr(row("CtaCodigo")) - Select Case btn.CommandArgument.ToString - Case "Proveedores" - IdCtaContableProveedores = IdCuentaContable - CtaCodigoProveedores = CtaCodigo - Case "Acreedores" - IdCtaContableAcreedores = IdCuentaContable - CtaCodigoAcreedores = CtaCodigo - Case "DocsXPagar" - IdCtaContableDocsXPagar = IdCuentaContable - CtaCodigoDocsXPagar = CtaCodigo - Case "Anticipos" - IdCtaContableAnticipos = IdCuentaContable - CtaCodigoAnticipos = CtaCodigo - Case "Deudores" - IdCtaContableDeudor = IdCuentaContable - CtaCodigoDeudor = CtaCodigo - End Select + ' Select Case btn.CommandArgument.ToString + ' Case "Proveedores" + ' IdCtaContableProveedores = IdCuentaContable + ' CtaCodigoProveedores = CtaCodigo + ' Case "Acreedores" + ' IdCtaContableAcreedores = IdCuentaContable + ' CtaCodigoAcreedores = CtaCodigo + ' Case "DocsXPagar" + ' IdCtaContableDocsXPagar = IdCuentaContable + ' CtaCodigoDocsXPagar = CtaCodigo + ' Case "Anticipos" + ' IdCtaContableAnticipos = IdCuentaContable + ' CtaCodigoAnticipos = CtaCodigo + ' Case "Deudores" + ' IdCtaContableDeudor = IdCuentaContable + ' CtaCodigoDeudor = CtaCodigo + ' End Select - If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then - TieneError = True - End If - Else - TieneError = True - End If - Else - TieneError = True - End If + ' If Not ObjProveedores.VincularCuentasContables(IdCtaContableProveedores, CtaCodigoProveedores, IdCtaContableAcreedores, CtaCodigoAcreedores, IdCtaContableAnticipos, CtaCodigoAnticipos, IdCtaContableDeudor, CtaCodigoDeudor, IdCtaContableDocsXPagar, CtaCodigoDocsXPagar, CveProveedor) Then + ' TieneError = True + ' End If + ' Else + ' TieneError = True + ' End If + ' Else + ' TieneError = True + ' End If - If Not TieneError Then - Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) - ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) - btn.Visible = False - ddl.Width = 206 - ObjProveedores.Commit() - ObjContabilidad.Commit() - Else - Alert("Esta cuenta no puede tener Sub Cuentas.", TipoMensaje.MsgError) - ObjProveedores.RollBack() - ObjContabilidad.RollBack() - End If + ' If Not TieneError Then + ' Alert(String.Format("Se registo la Cuenta Contable: {0}", CtaCodigo, TipoMensaje.MsgInformacion)) + ' ddl.Items.Add(New ListItem(CtaCodigo, IdCuentaContable.ToString)) : ddl.SelectedValueExist(IdCuentaContable.ToString) + ' btn.Visible = False + ' ddl.Width = 206 + ' ObjProveedores.Commit() + ' ObjContabilidad.Commit() + ' Else + ' Alert("Esta cuenta no puede tener Sub Cuentas.", TipoMensaje.MsgError) + ' ObjProveedores.RollBack() + ' ObjContabilidad.RollBack() + ' End If - ObjProveedores.Dispose() - ObjContabilidad.Dispose() + ' ObjProveedores.Dispose() + ' ObjContabilidad.Dispose() End If UPPContable.Update() diff --git a/Compras/RepCompras.aspx b/Compras/RepCompras.aspx index f094031ad..2b3afe529 100644 --- a/Compras/RepCompras.aspx +++ b/Compras/RepCompras.aspx @@ -162,9 +162,7 @@ Proyecto:
- - - +
SubProyecto:
diff --git a/Compras/RepCompras.aspx.vb b/Compras/RepCompras.aspx.vb index 6a76475dc..192b4ee23 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) @@ -73,65 +63,13 @@ Partial Class Compras_RepCompras DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("3") End Sub - Private Sub CargaTipoCentroCosto() - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Sucursal:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Proyecto:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then - DdlGrupo.Items.Insert(10, New ListItem("Remesa-SubProyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("SubProyecto", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - LblProyecto.Text = "Sucursal:" - LblSubProyecto.Text = "Proyecto:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Sucursal", "13")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - LblProyecto.Text = "Proyecto:" - LblSubProyecto.Text = "Sucursal:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) - DdlGrupo.DataBind() - End If - DdlGrupo.Items.Add(New ListItem("Tipo Proveedor", "14")) - DdlGrupo.Items.Add(New ListItem("Tipo Gasto", "15")) - End Sub Private Sub CargaCombos() - txtFechaI.Text = $"01/01/{Now.Year}" + txtFechaI.Text = $"01/01/{Now.Year}" + + 'Carga Tipo Centro de Costo + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) + 'CargaProveedores DdlProveedores.setEsWebService(True) DdlProveedores.Attributes.Add("data-metodo", "getproveedores") @@ -154,40 +92,22 @@ Partial Class Compras_RepCompras DdlMonedas.DataSource = GlobalDTMonedas() DdlMonedas.DataBind() - 'CargaProyecto - DdlProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})) - DdlProyecto.DataBind() - 'Carga Grupo CargaGrupo() - - 'Carga Tipo Centro de Costo - CargaTipoCentroCosto() - - CreaDataTableColor() End Sub - - Private Sub ConfiguraEmpresa() ChkIVA.Checked = True If Not UsuarioActual.Empresa.MostrarRetIVA Then GvDatos.Columns(7).Visible = False If Not UsuarioActual.Empresa.MostrarRetISR Then GvDatos.Columns(8).Visible = False - End Sub - - Private Sub CargaSubProyecto() - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero)) - DdlSubProyecto.DataBind() - 'DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub - + End Sub + #End Region - + #Region "SELECTED INDEX CHANGE" - + Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - CargaSubProyecto() + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged @@ -418,11 +338,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 +353,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 +374,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..de5fb0b0a 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 @@ -58,17 +50,6 @@ Partial Class Compras_RepComprasAF If Not IsPostBack Then CargaCombos() 'DdlPS.ddl.Visible = False - If UsuarioActual.Empresa.GralSoloProyecto Then - LblSubProyecto.Text = "Proyecto:" - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlProyecto.Visible = False - DdlProyecto.Items(0).Text = "" - LblProyecto.Visible = False - End If - CreaDataTableColor() End If End Sub @@ -119,19 +100,7 @@ Partial Class Compras_RepComprasAF End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - If DdlProyecto.SelectedValue = "-1" Then - DdlProyecto.Items.Clear() - DdlSubProyecto.Items.Clear() - CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) - Else - CargaSubProyecto() - End If - End Sub - Private Sub CargaSubProyecto() - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue), "SubProyecto") - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() @@ -311,78 +280,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 +299,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/RepComprasAFDetalle.aspx.vb b/Compras/RepComprasAFDetalle.aspx.vb index 7b8a4c1d0..2a49b588f 100644 --- a/Compras/RepComprasAFDetalle.aspx.vb +++ b/Compras/RepComprasAFDetalle.aspx.vb @@ -149,21 +149,6 @@ Partial Class Compras_RepComprasAFDetalle Dim asd As Integer = 1 End Try - If UsuarioActual.Empresa.GralSoloProyecto Then - - LblSubProyecto.Text = "Proyecto:" - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlSubProyecto.SelectedValue = "-1" - DdlSubProyecto.DataBind() - 'DdlSubProyecto.SelectedValueExist(Request.QueryString("CveSubProyecto").ToString) - DdlProyecto.Visible = False - DdlProyecto.Items(0).Text = "" - LblProyecto.Visible = False - - End If - If UsuarioActual.CveEmpresa = 72 Then GvDatos.FBColumn("NoSerie").Visible = True End If @@ -175,6 +160,8 @@ Partial Class Compras_RepComprasAFDetalle Private Sub CargaCombos() + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) + DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() @@ -182,13 +169,9 @@ Partial Class Compras_RepComprasAFDetalle DdlProveedores.Items.Add(New ListItem("Consumo Interno", "-3")) End If - DdlMonedas.DataSource = GlobalDTMonedas() DdlMonedas.DataBind() - DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) - DdlProyecto.DataBind() - DdlTipoActivoFijo.DataSource = GlobalDTTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros("", "TipoActivoFijo") DdlTipoActivoFijo.DataBind() @@ -206,14 +189,12 @@ Partial Class Compras_RepComprasAFDetalle DdlClasificacion2.DataSource = Nothing End If - ObjClasificacion.Dispose() DdlClasificacion2.DataBind() DdlClasificacion2.Items.Insert(0, New ListItem("Todas", "-1")) DdlClasificacion2.Items.Insert(1, New ListItem("Sin Clasificación", "-2")) DdlClasificacion2.SelectedValueExist(-1) - DdlActivoFijo.DataSource = GlobalDTActivoFijos(UsuarioActual.CveEmpresa) DdlActivoFijo.DataBind() DdlActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) @@ -230,33 +211,17 @@ Partial Class Compras_RepComprasAFDetalle DdlPS.ddl.Items.Add(New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2")) End If - CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) - End Sub Private Sub DdlTipoActivoFijo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlTipoActivoFijo.SelectedIndexChanged - DdlSubTipoActivoFijo.Items.Clear() - DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveTipoActivoFijo = {0}", DdlTipoActivoFijo.SelectedValue), "SubTipoActivoFijo") + DdlSubTipoActivoFijo.DataSource = GlobalDTSubTipoActivoFijo(UsuarioActual.CveEmpresa).FiltraParametros($"CveTipoActivoFijo = {DdlTipoActivoFijo.SelectedValue}", "SubTipoActivoFijo") DdlSubTipoActivoFijo.DataBind() DdlSubTipoActivoFijo.Items.Insert(0, New ListItem("Seleccione", "-1")) DdlSubTipoActivoFijo.SelectedIndex = 0 - End Sub Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - If DdlProyecto.SelectedValue = "-1" Then - DdlProyecto.Items.Clear() - DdlSubProyecto.Items.Clear() - CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) - Else - CargaSubProyecto() - End If - End Sub - Private Sub CargaSubProyecto() - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue), "SubProyecto") - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Protected Sub BtnConsultar_Click(sender As Object, e As System.EventArgs) Handles BtnConsultar.Click CargaDatos() diff --git a/Compras/RepComprasDetalle.aspx b/Compras/RepComprasDetalle.aspx index 7810abe27..58be7e6ed 100644 --- a/Compras/RepComprasDetalle.aspx +++ b/Compras/RepComprasDetalle.aspx @@ -201,9 +201,7 @@ Proyecto:
- - - +
SubProyecto:
diff --git a/Compras/RepComprasDetalle.aspx.vb b/Compras/RepComprasDetalle.aspx.vb index 9a536acb4..9cc0a6ffd 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 @@ -142,7 +134,6 @@ Partial Class Compras_RepComprasDetalle End If DdlProyecto.SelectedValueExist(CveProyecto) - If DivProyecto.Visible Then CargaSubProyecto() 'CARGA LISTBOXs DdlSubProyecto.SelectedValuesIfExistM(SubProyecto) @@ -185,62 +176,11 @@ Partial Class Compras_RepComprasDetalle DdlGrupo.DataBind() DdlGrupo.SelectedValueExist("3") End Sub - Private Sub CargaTipoCentroCosto() - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Sucursal:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Proyecto:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then - DdlGrupo.Items.Insert(10, New ListItem("Remesa-SubProyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("SubProyecto", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - LblProyecto.Text = "Sucursal:" - LblSubProyecto.Text = "Proyecto:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Sucursal", "13")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - LblProyecto.Text = "Proyecto:" - LblSubProyecto.Text = "Sucursal:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.Items.Insert(12, New ListItem("Proyecto", "13")) - DdlGrupo.DataBind() - End If - DdlGrupo.Items.Add(New ListItem("Tipo Proveedor", "14")) - DdlGrupo.Items.Add(New ListItem("Tipo Gasto", "15")) - End Sub Private Sub CargaCombos() + 'Carga Tipo Centro de Costo + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) + 'Carga Tipo de Gasto DdlTipoGasto.DataSource = GlobalDTTiposGastos(UsuarioActual.CveEmpresa) DdlTipoGasto.DataBind() @@ -260,25 +200,11 @@ Partial Class Compras_RepComprasDetalle DDlUsuarioCaptura.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) DDlUsuarioCaptura.DataBind() - 'CargaProyecto - DdlProyecto.DataSource = GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1) - DdlProyecto.DataBind() - 'Carga Grupos CargaGrupo() - 'Carga Tipo Centro de Costo - CargaTipoCentroCosto() - - CreaDataTableColor() - End Sub - Private Sub CargaSubProyecto() - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, DdlProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.DataBind() - End Sub Private Sub CargaDatos() Dim ObjCompras As New ClsCompras() @@ -331,7 +257,7 @@ Partial Class Compras_RepComprasDetalle #Region "SELECTED INDEX CHANGE" Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - CargaSubProyecto() + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged @@ -471,78 +397,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 +418,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/RepComprasPeriodo.aspx b/Compras/RepComprasPeriodo.aspx index 2dc04cc9f..62b480594 100644 --- a/Compras/RepComprasPeriodo.aspx +++ b/Compras/RepComprasPeriodo.aspx @@ -100,15 +100,11 @@ Proyecto:
- - - +
SubProyecto:
- - - +
Fecha I. Captura
diff --git a/Compras/RepComprasPeriodo.aspx.vb b/Compras/RepComprasPeriodo.aspx.vb index 6a1d06779..813fc67d0 100644 --- a/Compras/RepComprasPeriodo.aspx.vb +++ b/Compras/RepComprasPeriodo.aspx.vb @@ -48,60 +48,11 @@ Partial Class Compras_RepComprasPeriodo DdlGrupo.SelectedValueExist("3") End Sub - Private Sub CargaTipoCentroCosto() - If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Sucursal:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - DdlSubProyecto.Items.Clear() - DivProyecto.Visible = False - DivLblProyecto.Visible = False - LblSubProyecto.Text = "Proyecto:" - - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - DdlSubProyecto.DataBind() - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 3 Then - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - LblProyecto.Text = "Sucursal:" - LblSubProyecto.Text = "Proyecto:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Sucursal", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Sucursal", "12")) - DdlGrupo.DataBind() - - ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - LblProyecto.Text = "Proyecto:" - LblSubProyecto.Text = "Sucursal:" - - DdlGrupo.Items.Insert(10, New ListItem("Remesa-Proyecto", "11")) - DdlGrupo.Items.Insert(11, New ListItem("Proyecto", "12")) - DdlGrupo.DataBind() - End If - End Sub - Private Sub CargaCombos() + 'Carga Tipo Centro de Costo + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) + 'Carga Proveedores DdlProveedores.DataSource = GlobalDTCompProveedores(UsuarioActual.CveEmpresa) DdlProveedores.DataBind() @@ -122,15 +73,9 @@ Partial Class Compras_RepComprasPeriodo DdlMonedas.DataSource = GlobalDTMonedas() DdlMonedas.DataBind() - 'CargaProyecto - DdlProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}), GlobalDTProyectos(UsuarioActual.CveEmpresa, -1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})) - DdlProyecto.DataBind() - 'Carga Grupo CargaGrupo() - 'Carga Tipo Centro de Costo - CargaTipoCentroCosto() End Sub Private Sub CargaDatos() @@ -167,18 +112,12 @@ Partial Class Compras_RepComprasPeriodo End Sub - Private Sub CargaSubProyecto() - DdlSubProyecto.Items.Clear() - DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1).FiltraParametros(String.Format("CveProyecto = {0}", DdlProyecto.SelectedValue.ToEntero)) - DdlSubProyecto.DataBind() - DdlSubProyecto.Items.Insert(0, New ListItem("Todos", "-1")) - End Sub #End Region #Region "SELECTED INDEX CHANGE" Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged - CargaSubProyecto() + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub Private Sub RblTipoCambio_SelectedIndexChanged(sender As Object, e As EventArgs) Handles RblTipoCambio.SelectedIndexChanged 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/RepPagado.aspx b/Compras/RepPagado.aspx index 621d4d3ec..71c5c4018 100644 --- a/Compras/RepPagado.aspx +++ b/Compras/RepPagado.aspx @@ -98,12 +98,12 @@
+ +
Concepto
- +
diff --git a/Nomina/Nomina.aspx.cs b/Nomina/Nomina.aspx.cs index 119681518..8d0aa1b55 100644 --- a/Nomina/Nomina.aspx.cs +++ b/Nomina/Nomina.aspx.cs @@ -249,7 +249,7 @@ public partial class Nomina_Nomina2 : ClsPaginas if (!IsPostBack) { - LnkCargaNetos.Visible = (UsuarioActual.CveRol == 1); + LnkCargaNetos.Visible = (UsuarioActual.Empresa.Funcionalidad(267) == "1") ||(UsuarioActual.CveRol == 1); using (ClsRH objrh = new ClsRH()) { if (objrh.TiposTrabajadorGet(-1, UsuarioActual.CveEmpresa)) @@ -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()) { @@ -2097,6 +2097,111 @@ public partial class Nomina_Nomina2 : ClsPaginas } } + + protected void LnkModalPlantillaNominaUnConc_Click(object sender, EventArgs e) + { + RegistraScript("$('#DModalNominasUnConcepto').modal();"); + + using (ClsNominas ObjNomina = new ClsNominas()) + { + if (ObjNomina.GetConceptos(UsuarioActual.CveEmpresa)) + { + DdlUnConcepto.DataSource = ObjNomina.DtResultados.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}"); + DdlUnConcepto.DataBind(); + } + } + + UpCargarNominaUnConcepto.Update(); + } + protected void LnkFormatoUnConcepto_Click(object sender, EventArgs e) + { + try + { + StringBuilder str = new StringBuilder("0"); + bool continuar = true; + str.AppendFormat(",{0}", DdlUnConcepto.SelectedValue.ToEntero()); + string msgerror = ""; + if (dtConceptos == null || dtConceptos.Columns.Count <= 2) + { + msgerror = "Debe cargar el periodo antes de descargar la plantilla"; + continuar = false; + } + if (continuar) + { + + ClosedXML.Excel.XLWorkbook wb = new ClosedXML.Excel.XLWorkbook(); + + var libro = wb.AddWorksheet("Nomina"); + int column = 1; + libro.Cell(1, column).Value = "Codigo"; + column++; + libro.Cell(1, column).Value = "Empleado"; + libro.Column(column).Width = 35; + DataTable dtcP = dtConceptos.FiltraParametros(string.Format(" CveConcepto in({0})", str)); + foreach (DataRow row in dtcP.Rows) + { + column++; + libro.Cell(1, column).Value = string.Format("{0} - {1} - Valor", row["Codigo"], row["Concepto"]); + column++; + libro.Cell(1, column).Value = string.Format("{0} - {1} - Importe", row["Codigo"], row["Concepto"]); + column++; + libro.Cell(1, column).Value = string.Format("{0} - {1} - ImporteGravado", row["Codigo"], row["Concepto"]); + } + + libro.Row(1).CellsUsed().Style.Font.FontColor = ClosedXML.Excel.XLColor.White; + libro.Row(1).CellsUsed().Style.Fill.SetBackgroundColor(ClosedXML.Excel.XLColor.FromArgb(79, 129, 189)); + + int Fila = 1; + foreach (DataRow erow in dtempleados.FiltraParametros("CvePersonal>0 AND NomAutorizado=0").Rows) + { + Fila++; + column = 1; + libro.Cell(Fila, column).Value = string.Format("'{0}", erow["Codigo"]); + column++; + libro.Cell(Fila, column).Value = erow["Nombre"]; + foreach (DataRow row in dtcP.Rows) + { + column++; + string Concepto = string.Format("VAL_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + column++; + Concepto = string.Format("V_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + column++; + Concepto = string.Format("VG_{0}", row["CveConcepto"]); + libro.Cell(Fila, column).Value = erow[Concepto]; + } + } + libro.Columns().AdjustToContents(); + System.IO.Stream fs = new System.IO.MemoryStream(); + wb.SaveAs(fs); + fs.Position = 0; + System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(); + using (System.IO.Stream input = fs) + + { + input.CopyTo(memoryStream); + } + memoryStream.Position = 0; + + Response.Clear(); + Response.Buffer = true; + + Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; + Response.AddHeader("content-disposition", string.Format("attachment;filename={0}.xlsx", "Plantilla conceptos nómina ")); + Response.BinaryWrite(memoryStream.ToArray()); + Response.End(); + } + else + { + Alert(msgerror, TipoMensaje.MsgAdvertencia); + } + } + catch (Exception ex) + { + Alert("Ocurrio un error al generar el Formato de nominas" + ex.ToString(), TipoMensaje.MsgAdvertencia); + } + } protected void LnkCargarNomina_Click(object sender, EventArgs e) { diff --git a/OC/CatEstatus.aspx b/OC/CatEstatus.aspx index c9809c663..4ecfbac81 100644 --- a/OC/CatEstatus.aspx +++ b/OC/CatEstatus.aspx @@ -86,12 +86,12 @@
- +
- + SubProyecto:
- +
diff --git a/OC/CatEstatus.aspx.vb b/OC/CatEstatus.aspx.vb index 5c739aaa7..48e439649 100644 --- a/OC/CatEstatus.aspx.vb +++ b/OC/CatEstatus.aspx.vb @@ -2,13 +2,14 @@ Option Strict On Imports System.Data +Imports System.Diagnostics Imports Extensiones Partial Class OC_CatEstatus - Inherits ClsPaginas - + Inherits ClsPaginas + #Region "Propiedades" - 'Local + 'Local Private Property DTEstatusUsuarios As DataTable Get Return CType(ViewState("DTEstatusUsuarios"), DataTable) @@ -56,9 +57,9 @@ Partial Class OC_CatEstatus Set(value As Integer) ViewState("CveEstatus") = value End Set - End Property + End Property #End Region - + Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then CreaGrid("Req") @@ -68,36 +69,81 @@ Partial Class OC_CatEstatus ViewState("TipoSeleccionado") = DdlTipo.SelectedValue CargaDatos() CargaEstatus() - CargaProyectos() + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) CargaUsuarios() + sssss() 'SOLO MUESTRA SUBPROYECTO 'TdProyecto.Visible = False 'TdSubProyectoTitulo.Visible = False - DivProyecto.Visible = False - LblSubproyecto.Visible = False - - - CboSubProyecto.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa).FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"}) - CboSubProyecto.DataBind() - CboSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - CboSubProyecto_SelectedIndexChanged(CboSubProyecto, EventArgs.Empty) + 'DivProyecto.Visible = False + 'LblSubProyecto.Visible = False + DdlSubProyecto_SelectedIndexChanged(DdlSubProyecto, EventArgs.Empty) chkMostrarLimites.Attributes.Add("onchange", "javascript:chkMostrarLimitesCambio();") MaintainScrollPositionOnPostBack = True End If - End Sub + End Sub + + Private Sub sssss() + Dim length = 200000 + Dim concatString = "" + Dim aaa As New StringBuilder + Dim stopWatch = New Stopwatch() + stopWatch.Start() + For i As Integer = 0 To length - 1 + concatString = concatString & i + Next + + stopWatch.[Stop]() + aaa.Append($"String Concat took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") + stopWatch.Reset() + concatString = String.Empty + stopWatch.Start() + + For i As Integer = 0 To length - 1 + concatString = $"{concatString}a" + Next + + stopWatch.[Stop]() + aaa.Append($"String Interpolation took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") + stopWatch.Reset() + concatString = String.Empty + Dim stringBuilder = New StringBuilder() + stopWatch.Start() + + For i As Integer = 0 To length - 1 + stringBuilder.Append("a") + Next + + concatString = stringBuilder.ToString() + stopWatch.[Stop]() + aaa.Append($"String Builder took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") + stopWatch.Reset() + concatString = String.Empty + + stopWatch.Start() + + For i As Integer = 0 To length - 1 + concatString = String.Format("a{0}", i) + Next + + stopWatch.[Stop]() + aaa.Append($"String.Format took: {stopWatch.ElapsedMilliseconds} ms, for {length} iterations.
") + Alert(aaa.ToString) + + End Sub + #Region "C A T A L O G O " Public Sub CargaDatos() Dim ObjEstatus As New ClsOC - If ObjEstatus.GetEstatus() Then + If ObjEstatus.GetEstatus(UsuarioActual.CveEmpresa) Then ViewState("DTOCEstatus") = ObjEstatus.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) GlobalDTOCEstatus(UsuarioActual.CveEmpresa) = ObjEstatus.DtResultados Else @@ -203,8 +249,8 @@ Partial Class OC_CatEstatus 'Alert("Ocurrió un error al guardar/editar estatus de órden de compra", TipoMensaje.MsgError) End If - End Sub - + End Sub + #Region "O R D E N A M I E N T O" Protected Sub LbOrden_Click(ByVal sender As Object, ByVal e As EventArgs) Dim Orden As String = "" @@ -240,9 +286,9 @@ Partial Class OC_CatEstatus GvDatos.DataBind() UpCatalogo.Update() - End Sub + End Sub #End Region - + #Region "G V D A T O S" Protected Sub GvDatos_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GvDatos.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then @@ -264,10 +310,10 @@ Partial Class OC_CatEstatus Alert("Ocurrió un error al eliminar el estatus. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgError) End If - End Sub + End Sub #End Region #End Region - + #Region "C O N F I G U R A C I O N " Public Sub CargaUsuarios() ddlSuperior.DataSource = GlobalDTUsuarios(-1, UsuarioActual.CveEmpresa) @@ -280,7 +326,7 @@ Partial Class OC_CatEstatus Dim CveSuperior As Integer = If(tblSuperior.Visible = True, ddlSuperior.SelectedValue.ToEntero, -1) If hdnCveEstatusUsuarios.Value.ToEntero = -1 Then - If objOC.AddEstatusUsuarios(hdnCveEstatus.Value.ToEntero, CboSubProyecto.SelectedValue.ToEntero, hdnCveUsuario.Value.ToEntero, True, CveSuperior, LimiteSuperior, LimiteInferior, UsuarioActual.CveUsuario) Then + If objOC.AddEstatusUsuarios(hdnCveEstatus.Value.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, hdnCveUsuario.Value.ToEntero, True, CveSuperior, LimiteSuperior, LimiteInferior, UsuarioActual.CveUsuario) Then RegistraScript(String.Format("{0}.style.background-color='yellow'", IDCellYellow.Value)) End If @@ -312,8 +358,6 @@ Partial Class OC_CatEstatus Dim lblSuperior As Label = e.Row.FCLabel(String.Format("lblSuperior{0}", i)) Dim lblLimites As Label = e.Row.FCLabel(String.Format("lblLimites{0}", i)) - - ibOpciones.CommandArgument = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows(0)("CveEstatusSiguiente").ToString Dim RowEU As DataRowCollection = tmpT.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows @@ -396,7 +440,6 @@ Partial Class OC_CatEstatus Dim lblSuperior As Label = e.Row.FCLabel(String.Format("lblSuperior{0}", i)) Dim lblLimites As Label = e.Row.FCLabel(String.Format("lblLimites{0}", i)) - ibOpciones.CommandArgument = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows(0)("CveEstatusSiguiente").ToString Dim RowEU As DataRowCollection = tmpT.FiltraParametros(String.Format("CveEstatus = {0}", CveEstatus)).Rows @@ -489,19 +532,9 @@ Partial Class OC_CatEstatus UPSuperior.Update() UPPEmp.Update() RegistraScript("$('#DivSuperior').show(1000); PosicionaObjeto('" + imgBtn.ClientID + "','DivSuperior'); chkMostrarLimitesCambio();") - End Sub - + End Sub + #Region "E S T A T U S U S U A R I O S" - Private Sub CargaProyectos() - CboProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa, 1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}) - CboProyecto.DataBind() - CboProyecto.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1")) - End Sub - Private Sub CargaSubProyectos() - CboSubProyecto.DataSource = GlobalDTSubProyectos(CboProyecto.SelectedValue.ToEntero) - CboSubProyecto.DataBind() - CboSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-1")) - End Sub Private Sub CreaGrid(Tipo As String) Dim i As Integer = 1 @@ -526,10 +559,10 @@ Partial Class OC_CatEstatus End While End Sub Protected Sub CargaGridEstatusUsuarios(Tipo As String) - If CboSubProyecto.SelectedValue.ToEntero > 0 And (Tipo = "OC" Or Tipo = "Req") Or CboSubProyecto.SelectedValue.ToEntero = -2 Then + If DdlSubProyecto.SelectedValue.ToEntero > 0 And (Tipo = "OC" Or Tipo = "Req") Or DdlSubProyecto.SelectedValue.ToEntero = -2 Then 'If Tipo = "OC" Then TmpDTOC.Rows.Clear() Else TmpDTReq.Rows.Clear() - Dim CveSubProyecto = If(CboSubProyecto.SelectedValue.ToEntero = -2, -1, CboSubProyecto.SelectedValue.ToEntero) + Dim CveSubProyecto = If(DdlSubProyecto.SelectedValue.ToEntero = -2, -1, DdlSubProyecto.SelectedValue.ToEntero) Dim objEstatusOC As New ClsOC If objEstatusOC.GetEstatusUsuarios(-1, -1, CveSubProyecto, -1, UsuarioActual.CveEmpresa, -1, 1) Then @@ -557,17 +590,10 @@ Partial Class OC_CatEstatus GvEstatusUsuariosREQ.DataBind() End If End Sub - Protected Sub CboProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProyecto.SelectedIndexChanged - If CboProyecto.SelectedValue.ToEntero > 0 Then - GvEstatusUsuariosOC.Enabled = False - GvEstatusUsuariosREQ.Enabled = False - btnGuardarEstatusUsuariosOC.Visible = False - btnGuardarEstatusUsuariosREQ.Visible = False - - CargaSubProyectos() - End If + Protected Sub DdlProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) End Sub - Protected Sub CboSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboSubProyecto.SelectedIndexChanged + Protected Sub DdlSubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged GvEstatusUsuariosOC.Enabled = True GvEstatusUsuariosREQ.Enabled = True btnGuardarEstatusUsuariosOC.Visible = True @@ -580,7 +606,7 @@ Partial Class OC_CatEstatus Dim objEstatusOC As New ClsOC objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False - Dim CveSubProyecto = CboSubProyecto.SelectedValue.ToEntero + Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero For Each Row As GridViewRow In GvEstatusUsuariosREQ.Rows @@ -646,7 +672,7 @@ Partial Class OC_CatEstatus Dim objEstatusOC As New ClsOC objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False - Dim CveSubProyecto = CboSubProyecto.SelectedValue.ToEntero + Dim CveSubProyecto = DdlSubProyecto.SelectedValue.ToEntero For Each Row As GridViewRow In GvEstatusUsuariosOC.Rows @@ -708,10 +734,13 @@ Partial Class OC_CatEstatus objEstatusOC.Dispose() CargaGridEstatusUsuarios("OC") - End Sub + End Sub + + + #End Region #End Region - - - + + + End Class diff --git a/OC/OC.aspx b/OC/OC.aspx index a56f4f8d4..6bfa5fdb7 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -817,7 +817,7 @@
Cultivo: - Seleccione uno @@ -968,7 +968,7 @@ DataTextField="SubProyecto" DataValueField="CveSubProyecto" ValidationGroup="grpEditar"> - diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb index 9e4242ee6..959542ab0 100644 --- a/OC/OC.aspx.vb +++ b/OC/OC.aspx.vb @@ -922,10 +922,31 @@ Partial Class OC_OC MostrarUsuarioAsignado() + ValidaCancelacionConAlamcen() + Me.Form.DefaultButton = "" End Sub + Private Sub ValidaCancelacionConAlamcen() + + ' BtnCancelarPrevio.Visible = True + ' BtnCancelarPrevio.Enabled = True + + If BtnCancelarPrevio.Visible AndAlso BtnCancelarPrevio.Enabled And GVInv.Rows.Count > 0 Then + + + 'BtnCancelarPrevio.Attributes.Remove("onclick") + BtnCancelarPrevio.Attributes.Add("Data-toggle", "tooltip") + BtnCancelarPrevio.Attributes.Add("Title", "La orden de compra no se puede cancelar porque tiene movimientos de almacén.") + BtnCancelarPrevio.OnClientClick = "return false;" + 'BtnCancelarPrevio.Attributes.Add("onclick", "$('#DivCancelarCompra').modal('hide')") + + End If + + + End Sub + #Region " PERMISOS PAGINA " Private Sub PermisosPagina() ActivarIVAEditable() @@ -7130,8 +7151,7 @@ Partial Class OC_OC SeleccionaSucursal() End If - - If UsuarioActual.Empresa.Funcionalidad(590).ToString.ToEntero = 1 Then + If UsuarioActual.Empresa.Funcionalidad(590).ToString = "1" Then DdlCultivosCuadro.Items.Clear() DdlCultivosCuadro.DataSource = GlobalDTCultivosCuadro(UsuarioActual.CveEmpresa).FiltraParametros($" CveSubProyecto = {DdlSubProyecto.SelectedValue} AND Estatus =1") 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/CatEstatusOrdenServicio.aspx b/OS/CatEstatusOrdenServicio.aspx index f08ec053f..a70926a4b 100644 --- a/OS/CatEstatusOrdenServicio.aspx +++ b/OS/CatEstatusOrdenServicio.aspx @@ -136,11 +136,11 @@
- +
- + SubProyecto:
- +
diff --git a/OS/CatEstatusOrdenServicio.aspx.vb b/OS/CatEstatusOrdenServicio.aspx.vb index f9df82782..a197bd468 100644 --- a/OS/CatEstatusOrdenServicio.aspx.vb +++ b/OS/CatEstatusOrdenServicio.aspx.vb @@ -63,19 +63,13 @@ Partial Class OS_CatEstatusOrdenServicio Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then - 'DTUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) - 'CargaDatos() - 'AsociarEstatusUsuarios() - 'CargarUsuarioConEstatus() - 'CargarSubProyectos() - CargarProyectos() + CargarCentrosDeCosto(DdlProyecto, DdlSubProyecto, Nothing, LblSubProyecto) CargarTodosLosDatos() CveEstatuOS = -1 End If End Sub Private Sub CargarTodosLosDatos() - 'CargarSubProyectos() CargaDatos() AsociarEstatusUsuarios() CargarUsuarioConEstatus() @@ -85,18 +79,14 @@ Partial Class OS_CatEstatusOrdenServicio DTUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa) Using ObjEstatusOrdenServicios As New ClsOS If ObjEstatusOrdenServicios.GetEstatusOrdenServicio() Then - DtEstatusOS = ObjEstatusOrdenServicios.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)) GvDatos.DataSource = DtEstatusOS - GlobalDTEstatusOrdenServicios(UsuarioActual.CveEmpresa) = ObjEstatusOrdenServicios.DtResultados - End If - If ObjEstatusOrdenServicios.GetEstatusUsuarios(-1, -1, CveSubProyecto:=CboSubProyecto.SelectedValue.ToEntero) Then + If ObjEstatusOrdenServicios.GetEstatusUsuarios(-1, -1, CveSubProyecto:=DdlSubProyecto.SelectedValue.ToEntero) Then DTEstatusUsuarios = ObjEstatusOrdenServicios.DtResultados End If - End Using GvDatos.DataBind() OrdenaDatos() @@ -252,11 +242,11 @@ Partial Class OS_CatEstatusOrdenServicio End Sub Private Sub GuardarDatosGvUsuariosEstatus(sender As Object, e As EventArgs) Handles BtnGuardarUsuariosEstatus.Click - If CboSubProyecto.SelectedValue.ToEntero > 0 Then + If DdlSubProyecto.SelectedValue.ToEntero > 0 Then Dim objEstatusOC As New ClsOS objEstatusOC.IniciaTransacSQL() Dim HuboErrores As Boolean = False - Dim CveSubProyecto As Integer = CboSubProyecto.SelectedValue.ToEntero + Dim CveSubProyecto As Integer = DdlSubProyecto.SelectedValue.ToEntero For Each Row As GridViewRow In GvUsuariosEstatus.Rows Dim controles As Integer = Row.Controls.Count @@ -301,26 +291,15 @@ Partial Class OS_CatEstatusOrdenServicio Next End Sub - Private Sub CargarProyectos() - CboProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa, 1).FiltraParametros("", "", {"CveProyecto", "Proyecto"}) - CboProyecto.DataBind() - CboProyecto.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1")) - End Sub - Private Sub CargaSubProyectos() - CboSubProyecto.DataSource = GlobalDTSubProyectos(CboProyecto.SelectedValue.ToEntero) - CboSubProyecto.DataBind() - CboSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-2")) - End Sub - - Private Sub Proyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProyecto.SelectedIndexChanged - CargaSubProyectos() + Private Sub Proyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged + CargarSubProyecto(DdlSubProyecto, DdlProyecto.SelectedValue) 'CargaDatos() EstatusUsuariosGridActualizar() CargarTodosLosDatos() UpGvUsuariosEstatus.Update() End Sub - Private Sub SubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboSubProyecto.SelectedIndexChanged + Private Sub SubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyecto.SelectedIndexChanged EstatusUsuariosGridActualizar() CargarTodosLosDatos() End Sub 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/Planeacion/CatProyectos.aspx.vb b/Planeacion/CatProyectos.aspx.vb index af4480faf..d413d762a 100644 --- a/Planeacion/CatProyectos.aspx.vb +++ b/Planeacion/CatProyectos.aspx.vb @@ -63,8 +63,7 @@ Partial Class CatProyectos Public Sub CargaDatos() Dim ObjProyectos As New ClsProyectos - If ObjProyectos.GetProyectos(1) Then - Application("GlobalDTProyectos") = ObjProyectos.DtResultados + If ObjProyectos.GetProyectos(UsuarioActual.CveEmpresa) Then GvDatos.DataSource = ObjProyectos.DtResultados.FiltraParametros("CveEmpresa = " & UsuarioActual.CveEmpresa) GvDatos.DataBind() End If @@ -82,20 +81,19 @@ Partial Class CatProyectos End Sub Private Sub RecargaGlobal() - Dim ObjProyectos As New ClsProyectos - If ObjProyectos.GetProyectos(1) Then - GlobalDTProyectos(-1) = ObjProyectos.DtResultados - End If - ObjProyectos.Dispose() + + GlobalDTProyectos(UsuarioActual.CveEmpresa) = Nothing + End Sub Private Sub CargaSuproyectos() - Dim ObjSubProyectos As New ClsSubProyectos - If ObjSubProyectos.GetSubProyectos() Then - GlobalDTSubProyectos(-1) = ObjSubProyectos.DtResultados - End If + GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa) = Nothing + 'Dim ObjSubProyectos As New ClsSubProyectos + 'If ObjSubProyectos.GetSubProyectos(UsuarioActual.CveEmpresa) Then - ObjSubProyectos.Dispose() + 'End If + + 'ObjSubProyectos.Dispose() End Sub Protected Sub LbAgregar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles LbAgregar.Click diff --git a/PortalCliente/PortalCliente.aspx.vb b/PortalCliente/PortalCliente.aspx.vb index d1922cd9e..e5ff1a56f 100644 --- a/PortalCliente/PortalCliente.aspx.vb +++ b/PortalCliente/PortalCliente.aspx.vb @@ -2623,36 +2623,6 @@ Partial Class Ventas_PortalCliente End If End Sub - 'Private Sub CargaTipoCentroCosto() - ' If UsuarioActual.Empresa.Tipo_CentroCosto = 1 Then - ' divProyecto.Visible = False - ' LblSubProyecto.InnerText = "Sucursal" - - ' DdlSubProyecto.Items.Clear() - ' DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - ' DdlSubProyecto.DataBind() - ' DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - ' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 2 Then - ' divProyecto.Visible = False - ' LblSubProyecto.InnerText = "Proyecto" - - ' DdlSubProyecto.Items.Clear() - ' DdlSubProyecto.DataSource = GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1) - ' DdlSubProyecto.DataBind() - ' DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1")) - - ' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 4 Then - ' LblProyecto.InnerText = "Sucursal" - ' LblSubProyecto.InnerText = "Proyecto" - - ' ElseIf UsuarioActual.Empresa.Tipo_CentroCosto = 5 Then - ' LblProyecto.InnerText = "Proyecto" - ' LblSubProyecto.InnerText = "Sucursal" - - ' End If - 'End Sub - Private Sub CreaDTVentas() TmpDT = New DataTable TmpDT.Columns.Add("CveVenta", GetType(Integer)) 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/RH/CalculoSBC.aspx b/RH/CalculoSBC.aspx index d281a1262..63b3a9af1 100644 --- a/RH/CalculoSBC.aspx +++ b/RH/CalculoSBC.aspx @@ -28,6 +28,12 @@
  • Descargar
  • +
  • + Formato carga masiva +
  • +
  • + Carga masiva +
  • Guardar
  • @@ -40,6 +46,7 @@ + <%-- --%> @@ -832,6 +839,72 @@
    + + + + +