This commit is contained in:
Julian Moreno
2020-04-20 18:47:14 -07:00
55 changed files with 14774 additions and 9001 deletions

View File

@@ -1192,6 +1192,75 @@ Public Class ClsBancos
Return Retorno
End Function
Public Function AddComplementoPagosSinc(cveUsuario As Int32, fechaInicio As String, cveEmpresa As Int32) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_AddComplementoPagosSinc", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@cveUsuario", SqlDbType.Int).Value = cveUsuario
.Add("@fechaInicio", SqlDbType.VarChar).Value = fechaInicio
.Add("@cveEmpresa", SqlDbType.Int).Value = cveEmpresa
.Add("@cveComplementoPagoSinc", SqlDbType.Int).Direction = ParameterDirection.Output
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
retorno = False
OnError("Ocurrió un error al cancelar estatus complemento de pago", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return retorno
End Function
Public Function UpComplementoPagosSinc(cveComplementoPagoSinc As Int32, fechaFin As String) As Boolean
Dim retorno As Boolean = False
DataAdapter("PA_UpComplementoPagosSinc", CommandType.StoredProcedure)
With SqlAdapter.SelectCommand.Parameters
.Add("@fechaFin", SqlDbType.VarChar).Value = fechaFin
.Add("@cveComplementoPagoSinc", SqlDbType.Int).Value = cveComplementoPagoSinc
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
retorno = False
OnError("Ocurrió un error al cancelar estatus complemento de pago", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return retorno
End Function
Public Function BlockComplementodePago(CveIE As Integer, BloqueadoUtilerias As Boolean, CveComplementoPagoSinc As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Banc_ComplementoPagoBlock")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveIE", SqlDbType.Int).Value = CveIE
.Add("@CveComplementoPagoSinc", SqlDbType.Int).Value = CveComplementoPagoSinc
.Add("@BloqueadoUtilerias", SqlDbType.Bit).Value = BloqueadoUtilerias
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
Retorno = False
OnError("Ocurrió un error al Guardar complemento de pago", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function DropComplementodePago(CveIE As Integer, CveComplementoPagoSinc As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Banc_ComplementoPagoremove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveIE", SqlDbType.Int).Value = CveIE
.Add("@CveComplementoPagoSinc", SqlDbType.Int).Value = CveComplementoPagoSinc
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
Retorno = False
OnError("Ocurrió un error al Guardar complemento de pago", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
End Function
Public Function AddComplementoPago(CveIE As Integer, CveVenta As Integer, Serie As String, Folio As Integer, CveUsuario As Integer, CveEmpresa As Integer, Optional CvePrePoliza As Integer = -1, Optional Estatus As Integer = 1) As Integer
Dim Retorno As Integer = 0
DataAdapter("PA_Banc_ComplementoPagoAdd")

View File

@@ -273,7 +273,7 @@ Public Class ClsCRM
Return Retorno
End Function
Public Function AddMedioCaptacion(MedioCaptacion As String, Descripcion As String, CveEmpresa As Integer, CveUsuarioIng As Integer) As Boolean
Public Function AddMedioCaptacion(MedioCaptacion As String, Descripcion As String, CveEmpresa As Integer, CveUsuarioIng As Integer, Optional CveTipoProceso As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_CRM_MedioCaptacionAdd")
With SqlAdapter.SelectCommand.Parameters
@@ -281,6 +281,7 @@ Public Class ClsCRM
.Add("@Descripcion", SqlDbType.VarChar).Value = Descripcion
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveUsuarioIng", SqlDbType.Int).Value = CveUsuarioIng
.Add("@CveTipoProceso", SqlDbType.Int).Value = CveTipoProceso
End With
Try
SqlAdapter.Fill(Data)
@@ -291,7 +292,8 @@ Public Class ClsCRM
Return Retorno
End Function
Public Function UpdateMedioCaptacion(MedioCaptacion As String, Descripcion As String, CveEstatus As Boolean, CveMedioCaptacion As Integer) As Boolean
Public Function UpdateMedioCaptacion(MedioCaptacion As String, Descripcion As String, CveEstatus As Boolean, CveMedioCaptacion As Integer,
Optional CveTipoProceso As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_CRM_MedioCaptacionUpdate")
With SqlAdapter.SelectCommand.Parameters
@@ -299,6 +301,7 @@ Public Class ClsCRM
.Add("@Descripcion", SqlDbType.VarChar).Value = Descripcion
.Add("@CveEstatus", SqlDbType.Bit).Value = CveEstatus
.Add("@CveMedioCaptacion", SqlDbType.Int).Value = CveMedioCaptacion
.Add("@CveTipoProceso", SqlDbType.Int).Value = CveTipoProceso
End With
Try
SqlAdapter.Fill(Data)
@@ -590,13 +593,14 @@ Public Class ClsCRM
Return Retorno
End Function
Public Function AddProbabilidadAcercamiento(ProbabilidadAcercamiento As String, CveEmpresa As Integer, CveUsuarioIng As Integer) As Boolean
Public Function AddProbabilidadAcercamiento(ProbabilidadAcercamiento As String, CveEmpresa As Integer, CveUsuarioIng As Integer, Optional CveTipoProceso As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_CRM_ProbabilidadAcercamientoAdd")
With SqlAdapter.SelectCommand.Parameters
.Add("@ProbabilidadAcercamiento", SqlDbType.VarChar).Value = ProbabilidadAcercamiento
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveUsuarioIng", SqlDbType.Int).Value = CveUsuarioIng
.Add("@CveTipoProceso", SqlDbType.Int).Value = CveTipoProceso
End With
Try
SqlAdapter.Fill(Data)
@@ -607,7 +611,8 @@ Public Class ClsCRM
Return Retorno
End Function
Public Function UpdateProbabilidadAcercamiento(ProbabilidadAcercamiento As String, CveEstatus As Boolean, CveProbabilidadAcercamiento As Integer) As Boolean
Public Function UpdateProbabilidadAcercamiento(ProbabilidadAcercamiento As String, CveEstatus As Boolean, CveProbabilidadAcercamiento As Integer,
Optional CveTipoProceso As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_CRM_ProbabilidadAcercamientoUpdate")
With SqlAdapter.SelectCommand.Parameters
@@ -615,6 +620,7 @@ Public Class ClsCRM
.Add("@CveEstatus", SqlDbType.Bit).Value = CveEstatus
.Add("@CveProbabilidadAcercamiento", SqlDbType.Int).Value = CveProbabilidadAcercamiento
.Add("@CveTipoProceso", SqlDbType.Int).Value = CveTipoProceso
End With
Try
SqlAdapter.Fill(Data)

View File

@@ -1356,6 +1356,114 @@ Public Class ClsOIEventos
End Function
#End Region
#Region "Circular"
Public Function GetCircular(CveEmpresa As Integer, Optional CveCircular As Integer = -1, Optional FechaI As String = "-1", Optional FechaF As String = "-1",
Optional CveUsuario As Integer = -1) As Boolean
FechaI = If(FechaI = "-1", Today.AddYears(-1).ToString, FechaI)
FechaF = If(FechaF = "-1", Today.AddYears(1).ToString, FechaF)
Dim Retorno As Boolean = False
DataAdapter("PA_OI_CircularesGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveCircular", SqlDbType.Int).Value = CveCircular
.Add("@FechaI", SqlDbType.DateTime).Value = FechaI
.Add("@FechaF", SqlDbType.DateTime).Value = FechaF
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al consultar el Circular.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function AddCircular(Asunto As String, Circular As String, CorreosInternos As String, FechaIng As String, CveUsuario As Integer, CveEmpresa As Integer,
Optional CorreosExternos As String = "-1", Optional Adjunto As String = "-1") As Integer
Dim Retorno As Integer = -1
DataAdapter("PA_OI_CircularesAdd")
With SqlAdapter.SelectCommand.Parameters
.Add("@Asunto", SqlDbType.VarChar).Value = Asunto
.Add("@Circular", SqlDbType.VarChar).Value = Circular
.Add("@CorreosInternos", SqlDbType.VarChar).Value = CorreosInternos
.Add("@FechaIng", SqlDbType.DateTime).Value = FechaIng
.Add("@CorreosExternos", SqlDbType.VarChar).Value = CorreosExternos
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@Adjunto", SqlDbType.VarChar).Value = Adjunto
.Add("@CveCircular", SqlDbType.Int).Direction = ParameterDirection.Output
End With
Try
SqlAdapter.Fill(Data)
Retorno = SqlAdapter.SelectCommand.Parameters("@CveCircular").Value.ToString.ToEntero
Catch ex As Exception
OnError("Ocurrió un error al agregar el Circular.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function UpdateCircular(CveCircular As Integer, Asunto As String, Circular As String, CorreosInternos As String, CorreosExternos As String, CveUsuario As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OI_CircularesUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveCircular", SqlDbType.Int).Value = CveCircular
.Add("@Asunto", SqlDbType.VarChar).Value = Asunto
.Add("@Circular", SqlDbType.VarChar).Value = Circular
.Add("@CorreosInternos", SqlDbType.VarChar).Value = CorreosInternos
.Add("@CorreosExternos", SqlDbType.VarChar).Value = CorreosExternos
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al actualizar el Circular.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
Public Function DeleteCircular(CveCircular As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OI_CircularesRemove")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveCircular", SqlDbType.Int).Value = CveCircular
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al eliminar el Circular.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
#End Region
' IDisposable
Protected Overridable Sub Dispose(ByVal disposing As Boolean)

View File

@@ -3976,6 +3976,8 @@ Public Class ClsPaginas
PaginaDict.Add("/Compras/CatPaqueteriasGuiasTipo.aspx".ToUpper(), 753)
PaginaDict.Add("/Compras/RepEvaluacionesProveedores.aspx".ToUpper(), 754)
PaginaDict.Add("/Ventas/RepTopClientesVentas.aspx".ToUpper(), 755)
PaginaDict.Add("/OI/Circular.aspx".ToUpper(), 756)
PaginaDict.Add("/OI/CircularDetalle.aspx".ToUpper(), 757)
#End Region
@@ -4123,8 +4125,8 @@ Public Class ClsPaginas
PaginaDict.Add("/CRM/RepAcercamientosEtapas.aspx".ToUpper(), 1310)
PaginaDict.Add("/CRM/RepAcercamientos.aspx".ToUpper(), 1311)
PaginaDict.Add("/CRM/PopUpBuscarAcercamiento.aspx".ToUpper(), 1312)
PaginaDict.Add("/CRM/RepAcercamientosProcesos.aspx".ToUpper(), -1)
PaginaDict.Add("/CRM/RepAcercamientosRechazos.aspx".ToUpper(), -1)
PaginaDict.Add("/CRM/RepAcercamientosProcesos.aspx".ToUpper(), 1313)
PaginaDict.Add("/CRM/RepAcercamientosRechazos.aspx".ToUpper(), 1314)
PaginaDict.Add("/CRM/RepAcercamientosProcesosDetalle.aspx".ToUpper(), -1)
PaginaDict.Add("/CRM/CatMetas.aspx".ToUpper(), 684)
#End Region
@@ -5141,56 +5143,75 @@ Public Class ClsPaginas
'limpio ReportViwer
Dim sw As New System.Diagnostics.Stopwatch()
sw.Start()
Dim bdir As String = AppDomain.CurrentDomain.BaseDirectory
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
Dim CveUsuario As Integer = 0
Dim CveEmpresa As Integer = 0
If Context.Session("UsuarioSIG") IsNot Nothing Then
CveUsuario = UsuarioActual.CveUsuario
CveEmpresa = UsuarioActual.CveEmpresa
End If
Dim Bytes As Byte() = Nothing
Dim wsreport As New WSRDLC.WebServiceSoapClient
Dim params As New List(Of WSRDLC.ReportParameter)
Dim ds As New DataSet
For Each rpds As ReportDataSource In DataSource
Dim dt As DataTable = DirectCast(rpds.Value, Data.DataTable)
dt = dt.Copy()
dt.TableName = rpds.Name
ds.Tables.Add(dt)
Next
For Each rpds As ReportParameter In Parametros
Dim param As New WSRDLC.ReportParameter
param.Name = rpds.Name
param.Values = {rpds.Values(0)}
params.Add(param)
Next
Bytes = wsreport.StreamPDFBytes(RutaReporte, ds, params.ToArray(), NombreArchivo, Formato, CveEmpresa, CveUsuario)
'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)
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
'Dim rvNextgenReport2 As WebReportviewer.FullTrustReportviewer = CType(_casPolicyEnabledDomain.CreateInstanceFromAndUnwrap(GetType(WebReportviewer.FullTrustReportviewer).Assembly.CodeBase, GetType(WebReportviewer.FullTrustReportviewer).FullName), WebReportviewer.FullTrustReportviewer)
'rvNextgenReport2.Initialize(DisplayName, ReportPath, Visible, reportParam, reportRenderFormat, DeviceInfo, repMainContent, repSubContent)
'For Each _ReportDataSource As ReportDataSource In DataSources
' rvNextgenReport2.AddDataSources(_ReportDataSource.Name, CType(_ReportDataSource.Value, DataTable))
'Next
'Return rvNextgenReport2.Render(reportRenderFormat, DeviceInfo)
fllreport = CType(_casPolicyEnabledDomain.CreateInstanceFromAndUnwrap(GetType(ADSReportLib.FullTrustReportviewer).Assembly.CodeBase, GetType(ADSReportLib.FullTrustReportviewer).FullName), ADSReportLib.FullTrustReportviewer)
Dim bdir As String = AppDomain.CurrentDomain.BaseDirectory
RutaReporte.Replace("/", "\")
If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
End If
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()
' 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()
sw.Stop()
If sw.Elapsed.TotalSeconds > 1 Then

View File

@@ -385,7 +385,7 @@ Public Class ClsProductosServicios
AplicaParaConcepto As Boolean, AplicaParaVenta As Boolean, CveUsuario As Integer, CveEmpresa As Integer, CveMetodoInventario As Integer, EsPaquete As Integer,
Optional CveTipoPS As Integer = -1, Optional FuePorXML As Boolean = True, Optional TipoServicio As Integer = -1, Optional CveClasificacion2 As Integer = -1,
Optional CveMarca As Integer = -1, Optional AlmacenSeccion As String = "", Optional AplicaIEPS As Boolean = False, Optional IEPSPorcentaje As Decimal = -1,
Optional CveConceptoContable As Integer = -1, Optional CveCompuesto As Integer = -1, Optional CveSATPS As Integer = -1, Optional IEPSGrabaIVA As Boolean = False, Optional VentaMinima As Integer = 0,
Optional CveConceptoContable As Integer = -1, Optional CveCompuesto As Integer = -1, Optional CveSATPS As Integer = -1, Optional IEPSGrabaIVA As Boolean = False, Optional VentaMinima As Decimal = 0,
Optional CveMoneda As Integer = 1, Optional RetISR As Double = 0, Optional PrecioMinimo As Decimal = Nothing, Optional CveTipoFactor As Integer = 1,
Optional CveFraccionArancelaria As Integer = -1, Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1,
Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "",
@@ -428,7 +428,7 @@ Public Class ClsProductosServicios
'Nuevo R: 26/09/2017'
.Add("@Inventariable", SqlDbType.Bit).Value = Inventariable
.Add("@CveProveedorCompra", SqlDbType.Int).Value = CveProveedorCompra
.Add("@VentaMinima", SqlDbType.Int).Value = VentaMinima
.Add("@VentaMinima", SqlDbType.Decimal).Value = VentaMinima
'Nuevo R: 08/11/2017'
.Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda
@@ -522,7 +522,7 @@ Public Class ClsProductosServicios
'Nuevo R: 26/09/2017'
.Add("@Inventariable", SqlDbType.Bit).Value = PS.Inventariable
.Add("@CveProveedorCompra", SqlDbType.Int).Value = PS.CveProveedorCompra
.Add("@VentaMinima", SqlDbType.Int).Value = PS.VentaMinima
.Add("@VentaMinima", SqlDbType.Decimal).Value = PS.VentaMinima
'Nuevo R: 08/11/2017'
.Add("@CveMoneda", SqlDbType.Int).Value = PS.CveMoneda
@@ -604,7 +604,7 @@ Public Class ClsProductosServicios
Public Function UpdatePS(CveClasificacion As Integer, CveClasificacionCosto As Integer, CveUnidadMedida As Integer, Codigo As String, Codigo2 As String, CodigoBarras As String, PS As String, Precio As Double, IVA As Double, RetIVA As Double, Inventariable As Boolean, CveProveedorCompra As Integer,
AplicaParaConcepto As Boolean, AplicaParaVenta As Boolean, Estado As Boolean, CveUsuario As Integer, CvePS As Integer, CveMetodoInventario As Integer, EsPaquete As Integer, CveSATPS As Integer, Optional CveTipoPS As Integer = -1, Optional TipoServicio As Integer = -1,
Optional CveClasificacion2 As Integer = -1, Optional CveMarca As Integer = -1, Optional AlmacenSeccion As String = "", Optional AplicaIEPS As Boolean = False, Optional IEPSPorcentaje As Decimal = -1,
Optional CveConceptoContable As Integer = -1, Optional CveCompuesto As Integer = -1, Optional IEPSGrabaIVA As Boolean = False, Optional VentaMinima As Integer = 0,
Optional CveConceptoContable As Integer = -1, Optional CveCompuesto As Integer = -1, Optional IEPSGrabaIVA As Boolean = False, Optional VentaMinima As Decimal = 0,
Optional CveMoneda As Integer = 1, Optional RetISR As Double = 0, Optional PrecioMinimo As Decimal = Nothing, Optional CveTipoFactor As Integer = 1,
Optional CveFraccionArancelaria As Integer = -1, Optional CveUsuarioModifico As Integer = -1,
Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1, Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "",
@@ -646,7 +646,7 @@ Public Class ClsProductosServicios
'Nuevo R: 26/09/2017'
.Add("@Inventariable", SqlDbType.Bit).Value = Inventariable
.Add("@CveProveedorCompra", SqlDbType.Int).Value = CveProveedorCompra
.Add("@VentaMinima", SqlDbType.Int).Value = VentaMinima
.Add("@VentaMinima", SqlDbType.Decimal).Value = VentaMinima
'Nuevo R: 08/11/2017'
.Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda

View File

@@ -174,11 +174,26 @@ Public Class ClsSisUsuarios
End Try
Return Retorno
End Function
Public Function GetModulosUsuariosPlataforma(CveUsuario As Integer, CvePlataforma As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("SELECT M.* FROM [dbo].[UsuariosModulos] UM INNER JOIN Modulos M ON M.CveModulo=UM.CveModulo WHERE M.CvePlataforma =@CvePlataforma AND @CveUsuario = UM .CveUsuario AND UM.Permitir =1", CommandType.Text)
With SqlAdapter.SelectCommand.Parameters
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CvePlataforma", SqlDbType.Int).Value = CvePlataforma
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As SqlException
OnError("Ocurrio un error al obtener el menu.", ex)
Retorno = False
End Try
Return Retorno
End Function
Public Function ValidaUsuario(Usuario As String, Password As String, tIMEI As String, Optional CveEmpresa As Integer = -1) As Usuario
Dim Retorno As Usuario = Nothing
DataAdapter("PA_Sis_UsuariosGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveUsuario", SqlDbType.Int).Value = -1
.Add("@CveRol", SqlDbType.Int).Value = -1
@@ -186,7 +201,6 @@ Public Class ClsSisUsuarios
.Add("@Contraseña", SqlDbType.VarChar).Value = Password
.Add("@EsLogIn", SqlDbType.Bit).Value = 1
End With
Try
SqlAdapter.Fill(Data)

View File

@@ -233,6 +233,7 @@
<xs:element name="NumCuenta" msprop:Generator_ColumnVarNameInTable="columnNumCuenta" msprop:Generator_ColumnPropNameInRow="NumCuenta" msprop:Generator_ColumnPropNameInTable="NumCuentaColumn" msprop:Generator_UserColumnName="NumCuenta" type="xs:string" minOccurs="0" />
<xs:element name="CveMoneda" msprop:Generator_ColumnVarNameInTable="columnCveMoneda" msprop:Generator_ColumnPropNameInRow="CveMoneda" msprop:Generator_ColumnPropNameInTable="CveMonedaColumn" msprop:Generator_UserColumnName="CveMoneda" type="xs:short" minOccurs="0" />
<xs:element name="CveVenta" msprop:Generator_ColumnVarNameInTable="columnCveVenta" msprop:Generator_ColumnPropNameInRow="CveVenta" msprop:Generator_ColumnPropNameInTable="CveVentaColumn" msprop:Generator_UserColumnName="CveVenta" type="xs:short" minOccurs="0" />
<xs:element name="PorcentajeIVA" msprop:Generator_ColumnVarNameInTable="columnPorcentajeIVA" msprop:Generator_ColumnPropNameInRow="PorcentajeIVA" msprop:Generator_ColumnPropNameInTable="PorcentajeIVAColumn" msprop:Generator_UserColumnName="PorcentajeIVA" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>

View File

@@ -4,51 +4,51 @@ Option Strict On
<Serializable()>
Public Class Empresa
Public CveEmpresa As Integer
Public Empresa As String
Public NombreCorto As String
Public Direccion As String
Public NoExt As String
Public NoInt As String
Public Colonia As String
Public Ciudad As String
Public Estado As String
Public CP As Integer
Public RFC As String
Public CURP As String
Public RegistroPatronal As String
Public Telefono As String
Public Contacto As String
Public Mail As String
Public TipoFacturacion As String
Public ContraseñaKey As String
Public ArchivoKey As String
Public ArchivoCer As String
Public ArchivoPfx As String
Public BIUsuario As String
Public BIContraseña As String
Public Banner As String
Public FacturaProduccion As Boolean
Public FechaIng As Date
Public CveUsuario As Integer
Public SendMail As String
Public SendMailPassword As String
Public SendMailServer As String
Public SendMailPuerto As Integer
Public SendMailSSL As Boolean
Public Usuario As String
Public MostrarRetIVA As Boolean
Public EjercicioActual As Integer
Public PeriodoActual As Integer
Public GralSoloProyecto As Boolean
Public MetodoOC As Integer
Public CveMetodoInventario As Integer
Public RequiereCentroCostos As Boolean
Public EmpresaEncabezado As String
Public GrupoEmpresa As Integer
Public Extension As String
Public EsComercializadora As Boolean
Public BaseDatosNombre As String = "Ventas"
Public Property CveEmpresa As Integer
Public Property Empresa As String
Public Property NombreCorto As String
Public Property Direccion As String
Public Property NoExt As String
Public Property NoInt As String
Public Property Colonia As String
Public Property Ciudad As String
Public Property Estado As String
Public Property CP As Integer
Public Property RFC As String
Public Property CURP As String
Public Property RegistroPatronal As String
Public Property Telefono As String
Public Property Contacto As String
Public Property Mail As String
Public Property TipoFacturacion As String
Public Property ContraseñaKey As String
Public Property ArchivoKey As String
Public Property ArchivoCer As String
Public Property ArchivoPfx As String
Public Property BIUsuario As String
Public Property BIContraseña As String
Public Property Banner As String
Public Property FacturaProduccion As Boolean
Public Property FechaIng As Date
Public Property CveUsuario As Integer
Public Property SendMail As String
Public Property SendMailPassword As String
Public Property SendMailServer As String
Public Property SendMailPuerto As Integer
Public Property SendMailSSL As Boolean
Public Property Usuario As String
Public Property MostrarRetIVA As Boolean
Public Property EjercicioActual As Integer
Public Property PeriodoActual As Integer
Public Property GralSoloProyecto As Boolean
Public Property MetodoOC As Integer
Public Property CveMetodoInventario As Integer
Public Property RequiereCentroCostos As Boolean
Public Property EmpresaEncabezado As String
Public Property GrupoEmpresa As Integer
Public Property Extension As String
Public Property EsComercializadora As Boolean
Public Property BaseDatosNombre As String = "Ventas"
'Nuevos
Public AreaGeografica As String

View File

@@ -9849,7 +9849,7 @@ Namespace Modelos
Public Property Inventariable As Boolean?
Public Property CveProveedorCompra As Integer?
Public Property ProveedorCompra As String
Public Property VentaMinima As Integer?
Public Property VentaMinima As Decimal?
Public Property RetISR As Integer?
Public Property SATClaveProductoServicio As String
Public Property PrecioMinimo As Double?

View File

@@ -0,0 +1,25 @@
Imports System.Web.Http
Imports Extensiones
Imports Microsoft.VisualBasic
Public Class WSApiController
Inherits ApiController
Public ReadOnly Property CveUsuario As Integer
Get
Return Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(0).ToEntero()
End Get
End Property
Public ReadOnly Property CveEmpresa As Integer
Get
Return Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4).ToEntero()
End Get
End Property
Public ReadOnly Property RutaEmpresa As String
Get
Return String.Format("{0}Empresas\{1}\", AppDomain.CurrentDomain.BaseDirectory, Decripta(Request.Headers.Authorization.Parameter).Split("|"c)(4))
End Get
End Property
'
End Class

180
App_Code/WS/WSSIGVentas.vb Normal file
View File

@@ -0,0 +1,180 @@
Imports System.Net
Imports System.Web.Http
Imports Extensiones
Imports WsUtility
Namespace SIG
<Extensiones.BasicAuthentication()>
<RoutePrefix("api/SIGVentas")>
Public Class SIGVentasController
Inherits WSApiController
<Route("creartrama")>
<HttpPost>
Public Function CrearTrama(<FromBody()> params As WsBody) As Object
Dim respuesta = "Entraste " 'New With {.Correcto = False, .Mensaje = "", .Datos = New JObject}
Return respuesta
End Function
<Route("GetComplementoPago")>
<HttpPost>
Public Function GetComplementoPago(<FromBody()> params As WsBody) As Object
Dim respuesta As Data.DataTable = Nothing 'New With {.Correcto = False, .Mensaje = "", .Datos = New JObject}
Dim CveCliente As Integer = -1
Dim FechaI As DateTime = DateTime.Now
Dim FechaF As DateTime = DateTime.Now
Dim CveIE As Integer = -1
Dim CveVenta As Integer = -1
Dim opcion As Integer = -1
Dim CveEmpresa As Integer = -1
Dim status As Integer = -1
Dim continuar As Boolean = True
Dim jsobj As New JSutil(params.Datos)
Dim value As String = Nothing
If continuar Then continuar = jsobj.GetValue("CveCliente", value)
If continuar Then CveCliente = value.ToEntero()
If continuar Then continuar = jsobj.GetValue("FechaInicio", value)
If continuar Then DateTime.TryParseExact(value, "yyyyMMdd", New Globalization.CultureInfo("es-MX"), Globalization.DateTimeStyles.None, FechaI)
If continuar Then continuar = jsobj.GetValue("FechaFin", value)
If continuar Then DateTime.TryParseExact(value, "yyyyMMdd", New Globalization.CultureInfo("es-MX"), Globalization.DateTimeStyles.None, FechaF)
If continuar Then continuar = jsobj.GetValue("CveIE", value)
If continuar Then CveIE = value.ToEntero()
If continuar Then continuar = jsobj.GetValue("Opcion", value)
If continuar Then opcion = value.ToEntero()
If continuar Then continuar = jsobj.GetValue("CveVenta", value)
If continuar Then CveVenta = value.ToEntero()
If continuar Then continuar = jsobj.GetValue("CveEmpresa", value)
If continuar Then CveEmpresa = value.ToEntero()
If continuar Then continuar = jsobj.GetValue("Estatus", value)
If continuar Then status = value.ToEntero()
Using Banco As New ClsBancos()
If Banco.GetComplementoPagosRep(CveCliente, FechaI, FechaF, CveIE, CveVenta, opcion, CveEmpresa, Estatus:=status) Then
respuesta = Banco.DtResultados.FiltraParametros("BloqueadoUtilerias = 0")
End If
Dim Serie As String = "Pag"
Dim CveComplementoPagoTimbre As Integer = -1
Dim Folio As Integer = -1
respuesta.Columns.Add("CveComplementoPagoTimbre", GetType(Int32))
respuesta.Columns.Add("CveComplementoPagoSinc", GetType(Int32))
respuesta.Columns.Add("FolioTimbre", GetType(String))
respuesta.AcceptChanges()
Dim thencommit As Boolean = True
Banco.IniciaTransacSQL()
If Banco.AddComplementoPagosSinc(CveUsuario, DateTime.Now.ToString("yyyy/MM/dd"), CveEmpresa) Then
Dim CveComplementoPagoSinc As Integer = Banco.DtResultados.Rows(0)("CveComplementoPagoSinc").ToString().ToEntero()
For Each dr As System.Data.DataRow In respuesta.Select("CveVenta Is NULL")
'CveComplementoPagoTimbre = Banco.AddComplementoPago(dr("CveIE").ToString().ToEntero(), -1, Serie, Folio, Me.CveUsuario, CveEmpresa, CvePrePoliza:=-1, Estatus:=1)
Folio = 1 'Banco.FActual
'dr("CveComplementoPagoTimbre") = CveComplementoPagoTimbre
dr("FolioTimbre") = Folio
dr("CveComplementoPagoSinc") = CveComplementoPagoSinc
If Not Banco.BlockComplementodePago(dr("CveIE").ToString().ToEntero(), 1, CveComplementoPagoSinc) Then
thencommit = False
Exit For
End If
Next
Else
thencommit = False
End If
respuesta.AcceptChanges()
If thencommit Then
Banco.Commit()
Else
respuesta = New System.Data.DataTable()
Banco.RollBack()
End If
End Using
Return JSutil.strresponse(respuesta, (Not IsNothing(respuesta)), "")
End Function
<Route("SincronizarComplementoPago")>
<HttpPost>
Public Function SincronizarComplementoPago(<FromBody()> params As WsBody) As Object
Dim dt As System.Data.DataTable = Newtonsoft.Json.JsonConvert.DeserializeObject(Of System.Data.DataTable)(Decripta(params.Datos))
Dim dterror As Data.DataTable = dt.Copy()
Dim CveEmpresa As Integer = 119
Dim rutaxml As String = String.Format("{0}xml", RutaEmpresa)
If Not System.IO.Directory.Exists(rutaxml) Then
System.IO.Directory.CreateDirectory(rutaxml)
End If
Using objbancos As New ClsBancos()
objbancos.IniciaTransacSQL()
dt.AcceptChanges()
Dim continuar As Boolean = True
For Each dr As System.Data.DataRow In dt.Rows
If continuar AndAlso dr("Sincronizado").ToString() <> "1" Then
If dr("SeTimbro").ToString() = 1 Then
Dim CveComplementoPagoTimbre As Integer
Try
Using ArchivoW As New IO.StreamWriter(String.Format("{0}\{1}.xml", rutaxml, dr("FolioFiscalTimbre").ToString()), True, System.Text.Encoding.UTF8)
Try
ArchivoW.Write(dr("timbreXml").ToString())
Catch
continuar = False
End Try
End Using
Catch
continuar = False
End Try
If continuar Then
CveComplementoPagoTimbre = objbancos.AddComplementoPago(dr("CveIE").ToString().ToEntero(), -1, "Pag", dr("FolioTimbre"), Me.CveUsuario, CveEmpresa, CvePrePoliza:=-1, Estatus:=1)
continuar = CveComplementoPagoTimbre > 0
End If
If continuar Then continuar = objbancos.UpdateComplementoPago(CveComplementoPagoTimbre, dr("FolioFiscalTimbre").ToString(), dr("CvePAC").ToString().ToEntero(), CveEmpresa)
If continuar Then
dr("Sincronizado") = 1
End If
Else
If objbancos.DropComplementodePago(dr("CveIE").ToString().ToEntero(), 0) Then 'dr("CveComplementoPagoSinc").ToString().ToEntero()) Then
dr("Sincronizado") = 1
Else
continuar = False
End If
End If
End If
Next
If continuar Then
objbancos.Commit()
Else
dt = dterror
objbancos.RollBack()
End If
End Using
dt.AcceptChanges()
Return JSutil.strresponse(dt, (Not IsNothing(dt)), "")
End Function
' GET api/<controller>
Public Function GetValues() As IEnumerable(Of String)
Return New String() {"value1", "value2"}
End Function
' GET api/<controller>/5
Public Function GetValue(ByVal id As Integer) As String
Return "value"
End Function
' POST api/<controller>
Public Sub PostValue(<FromBody()> ByVal value As String)
End Sub
' PUT api/<controller>/5
Public Sub PutValue(ByVal id As Integer, <FromBody()> ByVal value As String)
End Sub
' DELETE api/<controller>/5
Public Sub DeleteValue(ByVal id As Integer)
End Sub
End Class
End Namespace

154
App_Code/WS/WSUSer.vb Normal file
View File

@@ -0,0 +1,154 @@

Imports System.Net
Imports System.Web.Http
Imports Extensiones
Imports WsUtility
Namespace SIG
<Extensiones.BasicAuthentication()>
<RoutePrefix("api/usuario")>
Public Class usuarioController 'SIGVentasController
Inherits ApiController
<Route("Login")>
<HttpPost>
Public Function Login(<FromBody()> params As WsBody) As Object
'Dim respuesta = "" 'New With {.Correcto = False, .Mensaje = "", .Datos = New JObject}
Dim continuar As Boolean = True
Dim Token As Integer
If True Then
Dim authHeader = Request.Headers.Authorization
Dim dataArray = Extensiones.Decripta(authHeader.Parameter).Split("|"c)
If dataArray.Length > 4 AndAlso IsNumeric(dataArray(0)) AndAlso IsNumeric(dataArray(1)) AndAlso IsNumeric(dataArray(4)) Then
Dim CveUsuario As Integer = dataArray(0).ToEntero()
Dim FechaPeticion As DateTime
DateTime.TryParseExact(String.Format("{0} {1}", dataArray(2), dataArray(3)), "ddMMyyyy HHmm", New Globalization.CultureInfo("es-MX"), Globalization.DateTimeStyles.None, FechaPeticion)
Dim CveEmpresa As Integer = dataArray(4).ToEntero()
Dim diferencia As Double = (FechaPeticion - DateTime.Now).TotalMinutes
Token = diferencia.ToString("N0").ToEntero()
End If
End If
Dim jsobj As New JSutil(params.Datos)
Dim username As String = Nothing
Dim password As String = Nothing
Dim CveEmpresastr As String = "-1"
Dim value As String = Nothing
If continuar Then continuar = jsobj.GetValue("UsuarioName", value)
If continuar Then username = value
If continuar Then continuar = jsobj.GetValue("Password", value)
If continuar Then password = value
If jsobj.GetValue("CveEmpresa", value) Then CveEmpresastr = value
Dim Retorno As List(Of String) = Nothing
If continuar Then
Using objuser As New ClsSisUsuarios
Dim user As Usuario = objuser.ValidaUsuario(username, Extensiones.ModExtensiones.Encripta(password), "-1", CveEmpresastr.ToEntero())
Dim OjEmpresa As Empresa = Nothing
If user IsNot Nothing Then
objuser.GetModulosUsuariosPlataforma(user.CveUsuario, 8)
Dim dtmodulos As System.Data.DataTable = objuser.DtResultados
If CveEmpresastr.ToEntero() > 0 Then
user.CveEmpresa = CveEmpresastr.ToEntero()
End If
Using ObjEmpresa As New ClsSisEmpresas()
If ObjEmpresa.GetEmpresas(user.CveEmpresa, "-1", "-1", "-1", "-1") Then
'If ObjEmpresa.GetEmpresasFuncionalidades(user.CveEmpresa) 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
OjEmpresa = ObjEmpresa.Empresa
End If
End Using
Dim Retornouser As UsuarioApp
Retornouser = New UsuarioApp With {
.CveUsuario = user.CveUsuario,
.Nombre = user.Nombre,
.UsuarioName = user.Usuario,
.CveRol = user.CveRol,
.Rol = user.Rol,
.CveEmpresa = user.CveEmpresa,
.Token = Token', .Empresa = OjEmpresa
}
Retorno = New List(Of String)
Retorno.Add(Extensiones.ModExtensiones.Encripta(Newtonsoft.Json.JsonConvert.SerializeObject(Retornouser)))
Retorno.Add(Extensiones.ModExtensiones.Encripta(Newtonsoft.Json.JsonConvert.SerializeObject(OjEmpresa)))
Retorno.Add(Extensiones.ModExtensiones.Encripta(Newtonsoft.Json.JsonConvert.SerializeObject(dtmodulos)))
End If
End Using
End If
Dim objrt = New WsBody With {
.Datos = Newtonsoft.Json.JsonConvert.SerializeObject(Retorno),
.IsFail = False,
.FailStr = ""
}
Return objrt
'Return JSutil.strresponse(Retorno, (Not IsNothing(Retorno)), "")
End Function
<Route("GetEmpresa")>
<HttpPost>
Public Function GetEmpresa() As Object
Dim retorno As Data.DataTable = Nothing
Using ObjEmpresas As New ClsSisEmpresas()
If ObjEmpresas.GetEmpresas(-1, "-1", "-1", "-1", "-1") Then
'verifico si existe la carpeta de la empresa, sino la crea
For Each dr As Data.DataRow In ObjEmpresas.DtResultados.Rows
Dim Ruta As String = String.Format("{0}Empresas\{1}", AppDomain.CurrentDomain.BaseDirectory, dr("CveEmpresa"))
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
retorno = ObjEmpresas.DtResultados
End If
End Using
Return JSutil.strresponse(retorno, (Not IsNothing(retorno)), "")
End Function
<Route("GetUsuariosEmpresa")>
<HttpPost>
Public Function GetUsuariosEmpresa(<FromBody()> params As WsBody) As Object
Dim retorno As Data.DataTable = Nothing
Using ObjUsuarios As New ClsSisUsuarios()
If ObjUsuarios.GetUsuarios(-1, -1) Then
retorno = ObjUsuarios.DtResultados.FiltraParametros(String.Format("CveEmpresa = {0}", Extensiones.ModExtensiones.Decripta(params.Datos).ToEntero()))
End If
End Using
Return JSutil.strresponse(retorno, (Not IsNothing(retorno)), "")
End Function
End Class
Public Class UsuarioApp
Public Sub New()
End Sub
Public Property CveUsuario As Integer
Public Property CveEmpresa As Integer
Public Property CveRol As Integer
Public Property Rol As String
Public Property Token As Integer
Public Property UsuarioName As String
Public Property Password As String
Public Property Nombre As String
End Class
End Namespace

105
App_Code/WS/WsUtility.vb Normal file
View File

@@ -0,0 +1,105 @@
Imports System.Net.Http
Imports Microsoft.VisualBasic
Namespace WsUtility
'Public Class SigAuthenticationAttribute
' Inherits Http.Filters.AuthorizationFilterAttribute
' Public Sub New()
' End Sub
' Public Overrides Sub OnAuthorization(ByVal actionContext As Http.Controllers.HttpActionContext)
' Dim authHeader = actionContext.Request.Headers.Authorization
' Dim noautorizado As Boolean = True
' If authHeader IsNot Nothing Then
' Try
' Dim decodedAuthenticationToken = Extensiones.Decripta(authHeader.Parameter)
' Dim dataArray = decodedAuthenticationToken.Split("|"c)
' If dataArray.Length > 4 Then
' Dim CveUsuario As Integer = dataArray(0)
' Dim Token As Integer = dataArray(1)
' Dim FechaPeticion As DateTime
' DateTime.TryParseExact(String.Format("{0} {1}", dataArray(2), dataArray(3)), "ddMMyyyy HHmm", New Globalization.CultureInfo("es-MX"), Globalization.DateTimeStyles.None, FechaPeticion)
' FechaPeticion = FechaPeticion.AddMinutes(Token)
' Dim CveEmpresa As Integer = dataArray(4)
' Dim diferencia As Integer = Math.Abs((FechaPeticion - DateTime.Now).TotalMinutes)
' If diferencia < 30 Then
' noautorizado = False
' End If
' End If
' Catch ex As Exception
' noautorizado = True
' End Try
' End If
' If noautorizado Then
' HandleUnathorized(actionContext)
' End If
' End Sub
' Private Shared Sub HandleUnathorized(ByVal actionContext As Http.Controllers.HttpActionContext)
' actionContext.Response = actionContext.Request.CreateResponse(Net.HttpStatusCode.Unauthorized)
' actionContext.Response.Headers.Add("WWW-Authenticate", "Basic Scheme='Data' location = 'http://localhost:")
' End Sub
'End Class
Public Class JSutil
Public Property jsobj As Newtonsoft.Json.Linq.JObject
Public Sub New(strjson As String, Optional isencripted As Boolean = True)
If isencripted Then strjson = Extensiones.ModExtensiones.Decripta(strjson)
Try
jsobj = Newtonsoft.Json.Linq.JObject.Parse(strjson)
Catch ex As Exception
Extensiones.GuardaLog(String.Format("Json Invalido '{0}'{2}{1}", strjson, ex.ToString(), vbNewLine))
End Try
End Sub
Public Function GetValue(FieldName As String, ByRef Valor As String) As Boolean
Dim continuar As Boolean = False
If Not IsNothing(jsobj) Then
Dim value As Newtonsoft.Json.Linq.JToken = Nothing
continuar = jsobj.TryGetValue(FieldName, value)
If continuar Then
Valor = value.ToString()
End If
End If
Return continuar
End Function
Public Shared Function strresponse(objeto As Object, isFail As Boolean, FailStr As String) As WsBody
Dim retorno As String = ""
retorno = Newtonsoft.Json.JsonConvert.SerializeObject(objeto)
retorno = Extensiones.ModExtensiones.Encripta(retorno)
Dim objrt = New WsBody With {
.Datos = retorno,
.IsFail = isFail,
.FailStr = FailStr
}
'retorno = Newtonsoft.Json.JsonConvert.SerializeObject(objrt)
Return objrt
End Function
End Class
Class UserValidation
Public Property CveUsuario As Integer
Public Property Token As String
Public Property Valida As Boolean
Public Property Min As Integer
End Class
Public Class WsBody
Public Property Datos As String
Public Property Metodo As String
Public Property IsFail As Boolean
Public Property FailStr As String
End Class
End Namespace

View File

@@ -9,5 +9,6 @@ Public Class WebApiConfig
config.EnableCors(Cors)
config.MapHttpAttributeRoutes()
config.Filters.Add(New Extensiones.BasicAuthenticationAttribute("sigfoxapiuser", "_$83965./54"))
'config.Filters.Add(New WsUtility.SigAuthenticationAttribute())
End Sub
End Class

View File

@@ -3330,33 +3330,62 @@ Namespace Extensiones
#Region "A T R I B U T O S"
Public Class BasicAuthenticationAttribute
Inherits AuthorizationFilterAttribute
Private Const SigfoxPath As String = "/api/sigfox"
Private Const LoginPath As String = "/api/usuario/Login"
Public Property Usuario As String
Public Property Contra As String
Public Property Contra As String
Public Sub New()
End Sub
Public Sub New(Usuario As String, Contra As String)
Me.Usuario = Usuario
Me.Contra = Contra
End Sub
Public Overrides Sub OnAuthorization(ByVal actionContext As HttpActionContext)
Dim authHeader = actionContext.Request.Headers.Authorization
Dim authHeader = actionContext.Request.Headers.Authorization
Dim noautorizado As Boolean = True
If authHeader IsNot Nothing Then
Dim authenticationToken = actionContext.Request.Headers.Authorization.Parameter
Dim decodedAuthenticationToken = Encoding.UTF8.GetString(Convert.FromBase64String(authenticationToken))
Dim usernamePasswordArray = decodedAuthenticationToken.Split(":"c)
Dim userName = usernamePasswordArray(0)
Dim password = usernamePasswordArray(1)
If Left(actionContext.Request.RequestUri.AbsolutePath, 11).ToUpper() = SigfoxPath.ToUpper() Then
Dim usernamePasswordArray = Encoding.UTF8.GetString(Convert.FromBase64String(authHeader.Parameter)).Split(":"c)
Dim userName = usernamePasswordArray(0)
Dim password = usernamePasswordArray(1)
noautorizado = Not (userName = Me.Usuario AndAlso password = Me.Contra)
Else
Try
If actionContext.Request.RequestUri.AbsolutePath.ToUpper() <> LoginPath.ToUpper() Then
Dim dataArray = Extensiones.Decripta(authHeader.Parameter).Split("|"c)
If dataArray.Length > 4 AndAlso IsNumeric(dataArray(0)) AndAlso IsNumeric(dataArray(1)) AndAlso IsNumeric(dataArray(4)) Then
Dim CveUsuario As Integer = dataArray(0).ToEntero()
Dim Token As Integer = dataArray(1).ToEntero()
Dim FechaPeticion As DateTime
DateTime.TryParseExact(String.Format("{0} {1}", dataArray(2), dataArray(3)), "ddMMyyyy HHmm", New Globalization.CultureInfo("es-MX"), Globalization.DateTimeStyles.None, FechaPeticion)
FechaPeticion = FechaPeticion.AddMinutes(Token)
Dim CveEmpresa As Integer = dataArray(4).ToEntero()
Dim diferencia As Double = (FechaPeticion - DateTime.Now).TotalMinutes
diferencia = Math.Abs(diferencia)
If diferencia < 5 Then 'si la fecha que me envía es de cuando menos hace cinco minuto, se permite accesar, para que no se copie ese parámetro y se esté recuperando información "medida de seguridad"
noautorizado = False
End If
End If
Else
noautorizado = False
End If
Catch ex As Exception
noautorizado = True
End Try
End If
Dim isValid = (userName = Me.Usuario AndAlso password = Me.Contra)
If isValid Then
Return
End If
End If
If noautorizado Then
HandleUnathorized(actionContext)
End If
HandleUnathorized(actionContext)
End Sub
Private Shared Sub HandleUnathorized(ByVal actionContext As HttpActionContext)

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="3482481b-8443-4407-93cb-d3e86f1a86f2" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
<MetadataSources>
<MetadataSource Address="http://localhost:7999/WebService.asmx" Protocol="http" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="WebService.disco" MetadataType="Disco" ID="88f9f2ea-e38b-4dfa-968b-c305ff10e146" SourceId="1" SourceUrl="http://localhost:7999/WebService.asmx?disco" />
<MetadataFile FileName="WebService.wsdl" MetadataType="Wsdl" ID="21ef4883-f54f-47da-857a-18c67053b062" SourceId="1" SourceUrl="http://localhost:7999/WebService.asmx?wsdl" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://localhost:7999/WebService.asmx?wsdl" docRef="http://localhost:7999/WebService.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://localhost:7999/WebService.asmx" xmlns:q1="http://tempuri.org/" binding="q1:WebServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://localhost:7999/WebService.asmx" xmlns:q2="http://tempuri.org/" binding="q2:WebServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>

View File

@@ -0,0 +1,188 @@
<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
<s:element name="HelloWorld">
<s:complexType />
</s:element>
<s:element name="HelloWorldResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="StreamPDF">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RutaReporte" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="source">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="0" maxOccurs="1" name="Parametros" type="tns:ArrayOfReportParameter" />
<s:element minOccurs="0" maxOccurs="1" name="NombreArchivo" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Formato" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="CveEmpresa" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="CveUsuario" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfReportParameter">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ReportParameter" nillable="true" type="tns:ReportParameter" />
</s:sequence>
</s:complexType>
<s:complexType name="ReportParameter">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Values" type="tns:ArrayOfString" />
<s:element minOccurs="1" maxOccurs="1" name="Visible" type="s:boolean" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="StreamPDFResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="StreamPDFResult" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="StreamPDFBytes">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RutaReporte" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="source">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
<s:element minOccurs="0" maxOccurs="1" name="Parametros" type="tns:ArrayOfReportParameter" />
<s:element minOccurs="0" maxOccurs="1" name="NombreArchivo" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Formato" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="CveEmpresa" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="CveUsuario" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="StreamPDFBytesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="StreamPDFBytesResult" type="s:base64Binary" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="HelloWorldSoapIn">
<wsdl:part name="parameters" element="tns:HelloWorld" />
</wsdl:message>
<wsdl:message name="HelloWorldSoapOut">
<wsdl:part name="parameters" element="tns:HelloWorldResponse" />
</wsdl:message>
<wsdl:message name="StreamPDFSoapIn">
<wsdl:part name="parameters" element="tns:StreamPDF" />
</wsdl:message>
<wsdl:message name="StreamPDFSoapOut">
<wsdl:part name="parameters" element="tns:StreamPDFResponse" />
</wsdl:message>
<wsdl:message name="StreamPDFBytesSoapIn">
<wsdl:part name="parameters" element="tns:StreamPDFBytes" />
</wsdl:message>
<wsdl:message name="StreamPDFBytesSoapOut">
<wsdl:part name="parameters" element="tns:StreamPDFBytesResponse" />
</wsdl:message>
<wsdl:portType name="WebServiceSoap">
<wsdl:operation name="HelloWorld">
<wsdl:input message="tns:HelloWorldSoapIn" />
<wsdl:output message="tns:HelloWorldSoapOut" />
</wsdl:operation>
<wsdl:operation name="StreamPDF">
<wsdl:input message="tns:StreamPDFSoapIn" />
<wsdl:output message="tns:StreamPDFSoapOut" />
</wsdl:operation>
<wsdl:operation name="StreamPDFBytes">
<wsdl:input message="tns:StreamPDFBytesSoapIn" />
<wsdl:output message="tns:StreamPDFBytesSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="WebServiceSoap" type="tns:WebServiceSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="HelloWorld">
<soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StreamPDF">
<soap:operation soapAction="http://tempuri.org/StreamPDF" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StreamPDFBytes">
<soap:operation soapAction="http://tempuri.org/StreamPDFBytes" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="WebServiceSoap12" type="tns:WebServiceSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="HelloWorld">
<soap12:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StreamPDF">
<soap12:operation soapAction="http://tempuri.org/StreamPDF" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StreamPDFBytes">
<soap12:operation soapAction="http://tempuri.org/StreamPDFBytes" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="WebService">
<wsdl:port name="WebServiceSoap" binding="tns:WebServiceSoap">
<soap:address location="http://localhost:7999/WebService.asmx" />
</wsdl:port>
<wsdl:port name="WebServiceSoap12" binding="tns:WebServiceSoap12">
<soap12:address location="http://localhost:7999/WebService.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
<behaviors />
<bindings>
<binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;WebServiceSoap&quot; /&gt;" bindingType="basicHttpBinding" name="WebServiceSoap" />
</bindings>
<endpoints>
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:7999/WebService.asmx&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;WebServiceSoap&quot; contract=&quot;WSRDLC.WebServiceSoap&quot; name=&quot;WebServiceSoap&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:7999/WebService.asmx&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;WebServiceSoap&quot; contract=&quot;WSRDLC.WebServiceSoap&quot; name=&quot;WebServiceSoap&quot; /&gt;" contractName="WSRDLC.WebServiceSoap" name="WebServiceSoap" />
</endpoints>
</configurationSnapshot>

View File

@@ -0,0 +1,201 @@
<?xml version="1.0" encoding="utf-8"?>
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="J3l8dfyTP2yXDg07woasSqmbZaw=">
<bindingConfigurations>
<bindingConfiguration bindingType="basicHttpBinding" name="WebServiceSoap">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WebServiceSoap</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Collection)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>UserName</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
</properties>
</bindingConfiguration>
</bindingConfigurations>
<endpoints>
<endpoint name="WebServiceSoap" contract="WSRDLC.WebServiceSoap" bindingType="basicHttpBinding" address="http://localhost:7999/WebService.asmx" bindingConfiguration="WebServiceSoap">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>http://localhost:7999/WebService.asmx</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>basicHttpBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WebServiceSoap</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSRDLC.WebServiceSoap</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WebServiceSoap</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
</endpoints>
</SavedWcfConfigurationInformation>

View File

@@ -94,7 +94,9 @@
<tr>
<td>Altas:</td>
<td>
<asp:Label runat="server" ID="LbNumeroAltas" Width="80px"></asp:Label></td>
<%--<asp:Label runat="server" ID="LbNumeroAltas" Width="80px"></asp:Label></td>--%>
<asp:LinkButton CssClass="Texto" style="font-weight:bold" runat="server" ID="LnkNumeroAltas" Width="80px" OnClick="LnkCabecera_Click" ></asp:LinkButton></td>
</tr>
<tr>
<td>Interbancarias:</td>
@@ -250,9 +252,7 @@
<ItemTemplate>
<asp:HyperLink ID="HLImporte" Text='<%# Eval("Abonado", "{0:N2}") %>' Target="_blank" CssClass="Texto" runat="server" />&nbsp;&nbsp;
</ItemTemplate>
<HeaderTemplate>
<asp:LinkButton ID="LnkCabeceraPendientes" runat="server" OnClick="LnkCabecera_Click" Text="" CssClass="Texto" ></asp:LinkButton>
</HeaderTemplate>
</asp:TemplateField>
<%--<asp:BoundField DataField="Abonado" HeaderText="Importe" DataFormatString="{0:N2}" />--%>
</Columns>

View File

@@ -290,7 +290,7 @@ Partial Class Bancos_PagoElectronicoGrupos
End If
Next
LbNumeroAltas.Text = Altas.ToString
LnkNumeroAltas.Text = Altas.ToString
LbNumeroInterbancarias.Text = Interbancarias.ToString
LbNumeroBancomer.Text = Bancomer.ToString
@@ -404,11 +404,6 @@ Partial Class Bancos_PagoElectronicoGrupos
Protected Sub GvPendientes_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.Header Then
e.Row.FCLinkButton("LnkCabeceraPendientes").Text = LbNumeroAltas.Text
End If

View File

@@ -407,6 +407,7 @@ Partial Class Bancos_ProductosFinancieros
IdPoliza = ObjContaAC.AddPoliza(3, TxtConcepto.Text.Trim, Importe, Importe, UsuarioActual.CveUsuario, TxtFecha.Text.ToDate)
FolioPoliza = ObjContaAC.Folio
If IdPoliza > 0 Then
FolioPoliza = ObjContaAC.Folio
Dim DtPresupuestosTemp As DataTable
Dim IdCuentaComprometido, IdCuentaPorEjercer, IdCuentaDevengado, IdCuentaMatriz, IdCuentaEjercido, IdCuentaPagado As Integer
@@ -494,6 +495,7 @@ Partial Class Bancos_ProductosFinancieros
IdPoliza = ObjContaAC.AddPoliza(1, TxtConcepto.Text.Trim, Importe, Importe, UsuarioActual.CveUsuario, Fecha)
FolioPoliza = ObjContaAC.Folio
If IdPoliza > 0 Then
FolioPoliza = ObjContaAC.Folio
Dim DtPresupuestosTemp As DataTable
Dim IdCuentaPorEjecutar, IdCuentaDevengado, IdCuentaRecaudado, IdCuentaMatriz As Integer

View File

@@ -104,16 +104,19 @@ Partial Class Bancos_RepComplementoPago
Mensaje = "El Pago contiene facturas que no tienen folio fiscal"
End If
End If
If e.Row.DBCampo("BloqueadoUtilerias") = "1" Then
Mensaje = "Bloqueado Timbrando por aplicacion"
End If
e.Row.FCLiteral("LtlMon").Text = e.Row.DBCampo("PagoAbreviaturaSAT")
If Not Mensaje.Length = 0 Then
e.Row.ForeColor = Drawing.Color.Red
e.Row.FCCheckBox("Chk").Enabled = False
e.Row.FCCheckBox("Chk").ToolTip = Mensaje
End If
If Not Mensaje.Length = 0 Then
e.Row.ForeColor = Drawing.Color.Red
e.Row.FCCheckBox("Chk").Enabled = False
e.Row.FCCheckBox("Chk").ToolTip = Mensaje
End If
Else
e.Row.FCHyperLink("HplXML").Visible = True : e.Row.FCHyperLink("HplXML").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CompP&EXT=xml&CveComplementoPago={0}&SerieFolio={1}&CveIE={2}", e.Row.DBCampo("CveComplementoPago"), e.Row.DBCampo("SerieFolioPago").ToString.Replace("&", "%26%"), e.Row.DBCampo("CveIE").ToString)))
Else
e.Row.FCHyperLink("HplXML").Visible = True : e.Row.FCHyperLink("HplXML").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CompP&EXT=xml&CveComplementoPago={0}&SerieFolio={1}&CveIE={2}", e.Row.DBCampo("CveComplementoPago"), e.Row.DBCampo("SerieFolioPago").ToString.Replace("&", "%26%"), e.Row.DBCampo("CveIE").ToString)))
e.Row.FCHyperLink("HplPDF").Visible = True : e.Row.FCHyperLink("HplPDF").NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=CompP&EXT=pdf&CveComplementoPago={0}&SerieFolio={1}&CveIE={2}", e.Row.DBCampo("CveComplementoPago"), e.Row.DBCampo("SerieFolioPago").ToString.Replace("&", "%26%"), e.Row.DBCampo("CveIE").ToString)))
e.Row.FCLinkButton("LnkSendMail").Visible = True

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -366,6 +366,7 @@ public partial class CRM_Acercamiento : ClsPaginas
}
CargaImagenes();
CargaDdl();
UpEncabezado.Update();
UPAcercamiento.Update();
@@ -398,8 +399,6 @@ public partial class CRM_Acercamiento : ClsPaginas
RecuperaCve();
TxtFechaApertura.Text = DateTime.Now.ToShortDateString();
CargaDdl();
}
protected void RecuperaCve()
@@ -420,7 +419,7 @@ public partial class CRM_Acercamiento : ClsPaginas
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, 1))
{
DdlProbabilidadAcercamiento.DataSource = ObjCRM.DtResultados;
DdlProbabilidadAcercamiento.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}", CveTipoProceso));
}
if (ObjCRM.GetEmpresasCRM(UsuarioActual.CveEmpresa))
{
@@ -434,7 +433,7 @@ public partial class CRM_Acercamiento : ClsPaginas
//}
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados.FiltraParametros(String.Format("CveTipoProceso = {0}",CveTipoProceso));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
}

View File

@@ -27,7 +27,7 @@
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GVDatos" runat="server" DataKeyNames="CveMedioCaptacion,MedioCaptacion, Descripcion, Estatus, CveEstatus, UsuarioIng, CveUsuarioIng, FechaIng" EmptyDataText="No se han registrado Medios de Captación"
<asp:GridView ID="GVDatos" runat="server" DataKeyNames="CveMedioCaptacion,MedioCaptacion, Descripcion, Estatus, CveEstatus, UsuarioIng, CveUsuarioIng, FechaIng,CveTipoProceso, TipoProceso" EmptyDataText="No se han registrado Medios de Captación"
EmptyDataRowStyle-HorizontalAlign="Center" CssClass="table table-striped table-advance table-hover ScrollAD Widthall mysmallbtn" data-sort="true"
GridLines="None" AutoGenerateColumns="false" OnRowDeleting="GVDatos_RowDeleting" OnRowDataBound="GVDatos_RowDataBound">
<Columns>
@@ -52,6 +52,11 @@
<asp:Label ID="lblUsuarioIng" runat="server" Text='<%# Eval("UsuarioIng")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Proceso" ItemStyle-Width="10%" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblTipoProceso" runat="server" Text='<%# Eval("TipoProceso")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEditar" runat="server" OnClick="LnkEditar_Click" data-toggle="tooltip" CssClass="btn btn-circle btn-sm green" title="Editar" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
@@ -87,6 +92,10 @@
<label runat="server" id="lblEstatus" for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
<asp:CheckBox ID="ChkEstatus" runat="server" />
</div>
<div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server">
<label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br />
<asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnGuardar" OnClick="BtnGuardar_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGGuardar" />

View File

@@ -54,6 +54,7 @@ public partial class CRM_CatMediosCaptacion : ClsPaginas
if (!IsPostBack)
{
CargaDatos();
CargarModalDatos();
}
}
@@ -71,6 +72,19 @@ public partial class CRM_CatMediosCaptacion : ClsPaginas
GVDatos.DataBind();
UPDatos.Update();
}
private void CargarModalDatos()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoProceso.DataSource = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
DdlTipoProceso.DataBind();
DdlTipoProceso.Items.Insert(0,new ListItem("Seleccione","-1"));
}
protected void limpiarCamposModal()
{
if (EsEditar == 1)
@@ -88,6 +102,7 @@ public partial class CRM_CatMediosCaptacion : ClsPaginas
TxtMedioCaptacion.Text = "";
TxtDescripcion.Text = "";
ChkEstatus.Checked = true;
DdlTipoProceso.SelectedValue = "-1";
}
#endregion
@@ -142,7 +157,7 @@ public partial class CRM_CatMediosCaptacion : ClsPaginas
TxtMedioCaptacion.Text = GvRow.DataKey("MedioCaptacion").ToString();
TxtDescripcion.Text = GvRow.DataKey("Descripcion").ToString();
ChkEstatus.Checked = GvRow.DataKey("CveEstatus").ToString() == "True" ? true : false;
DdlTipoProceso.SelectedValue = GvRow.DataKey("CveTipoProceso").ToString();
UPModal.Update();
this.RegistraScript("$('#DivModal').modal();");
@@ -160,14 +175,14 @@ public partial class CRM_CatMediosCaptacion : ClsPaginas
if (EsEditar == 0)
{
if (ObjCRM.AddMedioCaptacion(MedioCaptacion, Descripcion, UsuarioActual.CveEmpresa, CveUsuarioIng))
if (ObjCRM.AddMedioCaptacion(MedioCaptacion, Descripcion, UsuarioActual.CveEmpresa, CveUsuarioIng,DdlTipoProceso.SelectedValue.ToEntero()))
{
Alert("El Medio de Captación fue creado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
}
}
else
{
if (ObjCRM.UpdateMedioCaptacion(MedioCaptacion, Descripcion, Estatus, CveMedioCaptacion))
if (ObjCRM.UpdateMedioCaptacion(MedioCaptacion, Descripcion, Estatus, CveMedioCaptacion,DdlTipoProceso.SelectedValue.ToEntero()))
{
Alert("El Medio de Captación fue actualizado correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
}

View File

@@ -27,7 +27,7 @@
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GVDatos.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GVDatos" runat="server" DataKeyNames="CveProbabilidadAcercamiento, ProbabilidadAcercamiento, Estatus, CveEstatus, CveEmpresa, UsuarioIng, CveUsuarioIng, FechaIng"
<asp:GridView ID="GVDatos" runat="server" DataKeyNames="CveProbabilidadAcercamiento, ProbabilidadAcercamiento, Estatus, CveEstatus, CveEmpresa, UsuarioIng, CveUsuarioIng, FechaIng,CveTipoProceso,TipoProceso"
EmptyDataText="No se han registrado conceptos de Probabilidades de Acercamiento" EmptyDataRowStyle-HorizontalAlign="Center"
CssClass="table table-striped table-advance table-hover ScrollAD Widthall mysmallbtn" data-sort="true" GridLines="None"
AutoGenerateColumns="false" OnRowDeleting="GVDatos_RowDeleting" OnRowDataBound="GVDatos_RowDataBound">
@@ -53,6 +53,11 @@
<asp:Label ID="lblUsuarioIng" runat="server" Text='<%# Eval("UsuarioIng")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Tipo Proceso que Ingresó" ItemStyle-Width="25%" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblTipoProceso" runat="server" Text='<%# Eval("TipoProceso")%>'> </asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField ItemStyle-HorizontalAlign="Center" ItemStyle-Width="10%" HeaderText="Comandos">
<ItemTemplate>
<asp:LinkButton ID="LnkEditar" runat="server" OnClick="LnkEditar_Click" data-toggle="tooltip" CssClass="btn btn-circle btn-sm green" title="Editar" Text="<i class='fa fa-pencil'></i>"></asp:LinkButton>
@@ -88,6 +93,10 @@
<label runat="server" id="lblEstatus" for="<%= ChkEstatus.ClientID.ToString()%>">Estatus:</label>
<asp:CheckBox ID="ChkEstatus" runat="server" />
</div>
<div class="form-group form-md-line-input input-iconright" id="DivTipoProceso" runat="server">
<label runat="server" id="LblTipoProceso" for="<%= DdlTipoProceso.ClientID.ToString()%>">Tipo Proceso:</label><br />
<asp:DropDownList runat="server" ID="DdlTipoProceso" CssClass="form-control input-sm select2me" Width="50%" DataValueField="CveTipoProceso" DataTextField="TipoProceso"/>
</div>
</div>
<div class="modal-footer">
<asp:Button ID="BtnGuardar" OnClick="BtnGuardar_Click" runat="server" Text="Agregar" CssClass="btn btn-primary" ValidationGroup="VGGuardar" />

View File

@@ -55,6 +55,7 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
if (!IsPostBack)
{
CargaDatos();
CargarModalDatos();
}
}
@@ -72,6 +73,19 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
GVDatos.DataBind();
UPDatos.Update();
}
private void CargarModalDatos()
{
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetTipoProceso(UsuarioActual.CveEmpresa))
{
DdlTipoProceso.DataSource = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
DdlTipoProceso.DataBind();
DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione", "-1"));
}
protected void limpiarCamposModal()
{
if (EsEditar == 1)
@@ -86,6 +100,7 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
BtnGuardar.Text = "Guardar";
DivEstatus.Visible = false;
}
DdlTipoProceso.SelectedValue = "-1";
TxtProbabilidadAcercamiento.Text = "";
//TxtDescripcion.Text = "";
ChkEstatus.Checked = true;
@@ -113,7 +128,7 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
TxtProbabilidadAcercamiento.Text = GvRow.DataKey("ProbabilidadAcercamiento").ToString();
//TxtDescripcion.Text = GvRow.DataKey("Descripcion").ToString();
ChkEstatus.Checked = GvRow.DataKey("CveEstatus").ToString() == "True" ? true : false;
DdlTipoProceso.SelectedValue = GvRow.DataKey("CveTipoProceso").ToString();
UPModal.Update();
this.RegistraScript("$('#DivModal').modal();");
@@ -131,14 +146,14 @@ public partial class CRM_CatProbabilidadAcercamiento : ClsPaginas
if (EsEditar == 0)
{
if (ObjCRM.AddProbabilidadAcercamiento(ProbabilidadAcercamiento, UsuarioActual.CveEmpresa, CveUsuarioIng))
if (ObjCRM.AddProbabilidadAcercamiento(ProbabilidadAcercamiento, UsuarioActual.CveEmpresa, CveUsuarioIng,DdlTipoProceso.SelectedValue.ToEntero()))
{
Alert("La Probabilidad de Acercamiento fue creada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
}
}
else
{
if (ObjCRM.UpdateProbabilidadAcercamiento(ProbabilidadAcercamiento, Estatus, CveProbabilidadAcercamiento))
if (ObjCRM.UpdateProbabilidadAcercamiento(ProbabilidadAcercamiento, Estatus, CveProbabilidadAcercamiento,DdlTipoProceso.SelectedValue.ToEntero()))
{
Alert("La Probabilidad de Acercamiento fue actualizada correctamente.", ModExtensiones.TipoMensaje.MsgInformacion);
}

View File

@@ -589,7 +589,7 @@
<div class="row">
<div class="form-group col-md-6 form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoProceso" DataTextField="TipoProceso" DataValueField="CveTipoProceso" runat="server" Width="100%" AppendDataBoundItems="true" Class="form-control input-sm select2me"></asp:DropDownList>
<asp:DropDownList ID="DdlTipoProceso" DataTextField="TipoProceso" DataValueField="CveTipoProceso" runat="server" Width="100%" AppendDataBoundItems="true" Class="form-control input-sm select2me" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true"></asp:DropDownList>
<label for="<%= DdlTipoProceso.ClientID.ToString()%>"><span style="color: #F3565D">*</span> Proceso:</label>
<asp:RequiredFieldValidator ID="RFVTipoProceso" CssClass="help-block errorimput" runat="server" ControlToValidate="DdlTipoProceso" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Tipo de Proceso''</b> es necesario." InitialValue="-1" ValidationGroup="VGAcercamiento"></asp:RequiredFieldValidator>
</div>

View File

@@ -191,6 +191,32 @@ public partial class CRM_EmpresaCRM : ClsPaginas
ViewState["CreoCliente"] = value;
}
}
private DataTable DtMedioCaptacion
{
get
{
return (DataTable)ViewState["DtMedioCaptacion"];
}
set
{
ViewState["DtMedioCaptacion"] = value;
}
}
private DataTable DtProbabilidadAcercamiento
{
get
{
return (DataTable)ViewState["DtProbabilidadAcercamiento"];
}
set
{
ViewState["DtProbabilidadAcercamiento"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -518,8 +544,9 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = ObjCRM.DtResultados;
DtMedioCaptacion = ObjCRM.DtResultados;
DdlMedioCaptacionAcercamiento.Items.Insert(0, new ListItem("Seleccione ", "-1"));
}
ObjCRM.Dispose();
@@ -629,6 +656,21 @@ public partial class CRM_EmpresaCRM : ClsPaginas
CargaEventoBitacora();
}
}
protected void DdlTipoProceso_Change(object sender, EventArgs e)
{
DdlMedioCaptacionAcercamiento.Items.Clear();
DdlMedioCaptacionAcercamiento.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}",DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacionAcercamiento.DataBind();
DdlMedioCaptacionAcercamiento.Items.Insert(0,new ListItem("Seleccione","-1"));
DdlProbabilidadAcercamiento.Items.Clear();
DdlProbabilidadAcercamiento.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlProbabilidadAcercamiento.DataBind();
DdlProbabilidadAcercamiento.Items.Insert(0, new ListItem("Seleccione", "-1"));
UpAltaAcercamiento.Update();
}
#endregion
#region "ELIMINAR EMPRESA"
@@ -1236,7 +1278,7 @@ public partial class CRM_EmpresaCRM : ClsPaginas
{
DdlTipoProceso.DataSource = ObjCRM.DtResultados;
if (ObjCRM.DtResultados.Rows.Count > 1)
if (ObjCRM.DtResultados.Rows.Count > 0)
DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlTipoProceso.DataBind();
@@ -1247,6 +1289,8 @@ public partial class CRM_EmpresaCRM : ClsPaginas
DdlProbabilidadAcercamiento.DataSource = ObjCRM.DtResultados;
DdlProbabilidadAcercamiento.DataBind();
DdlProbabilidadAcercamiento.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
DdlVendedor.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
@@ -1293,6 +1337,10 @@ public partial class CRM_EmpresaCRM : ClsPaginas
}
else
{
ClsCRM ObjCRM = new ClsCRM();
CargaMetodosCaptacion();
InicializaAcercamientos(ObjCRM);
ObjCRM.Dispose();
limpiarCamposModalAcercamiento();
this.RegistraScript("$('#DivModalAltaAcercamiento').modal();");
UpAltaAcercamiento.Update();

View File

@@ -34,7 +34,7 @@
</td>
<td class="text-right" style="width: 140px;"><b>Tipo de Proceso:</b></td>
<td>
<asp:DropDownList ID="DdlTipoProceso" runat="server" AppendDataBoundItems="true" DataTextField="TipoProceso" DataValueField="CveTipoProceso" Class="table-group-action-input form-control input-inline input-sm select2me" Width="200px"></asp:DropDownList>
<asp:DropDownList ID="DdlTipoProceso" runat="server" AppendDataBoundItems="true" DataTextField="TipoProceso" DataValueField="CveTipoProceso" Class="table-group-action-input form-control input-inline input-sm select2me" Width="200px" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true"></asp:DropDownList>
</td>
</tr>

View File

@@ -10,6 +10,46 @@ using System.Data;
public partial class CRM_PopUpBuscarAcercamiento : ClsPaginas
{
private DataTable DtMedioCaptacion
{
get
{
return (DataTable)ViewState["DtMedioCaptacion"];
}
set
{
ViewState["DtMedioCaptacion"] = value;
}
}
private DataTable DtProbabilidadAcercamiento
{
get
{
return (DataTable)ViewState["DtProbabilidadAcercamiento"];
}
set
{
ViewState["DtProbabilidadAcercamiento"] = value;
}
}
private DataTable DtRechazo
{
get
{
return (DataTable)ViewState["DtRechazo"];
}
set
{
ViewState["DtRechazo"] = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
@@ -26,8 +66,10 @@ public partial class CRM_PopUpBuscarAcercamiento : ClsPaginas
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, 1))
{
DdlProbabilidad.Items.Clear();
DdlProbabilidad.DataSource = ObjCRM.DtResultados;
DdlProbabilidad.Items.Insert(0, new ListItem("Todas ", "-1"));
DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
if (ObjCRM.GetEmpresasCRM(UsuarioActual.CveEmpresa))
{
@@ -41,14 +83,18 @@ public partial class CRM_PopUpBuscarAcercamiento : ClsPaginas
}
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa, 1))
{
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
DdlMedioCaptacion.Items.Insert(0, new ListItem("Todos ", "-1"));
DtMedioCaptacion = ObjCRM.DtResultados;
}
if (ObjCRM.GetRechazoMotivo(UsuarioActual.CveEmpresa, 1))
{
DdlRechazoMotivo.Items.Clear();
DdlRechazoMotivo.DataSource = ObjCRM.DtResultados;
DdlRechazoMotivo.Items.Insert(0, new ListItem("Todos ", "-1"));
DtRechazo = ObjCRM.DtResultados;
}
DdlVendedor.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
@@ -63,6 +109,26 @@ public partial class CRM_PopUpBuscarAcercamiento : ClsPaginas
DdlMedioCaptacion.DataBind();
DdlRechazoMotivo.DataBind();
}
protected void DdlTipoProceso_Change(object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
DdlMedioCaptacion.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacion.DataBind();
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlProbabilidad.Items.Clear();
DdlProbabilidad.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlProbabilidad.DataBind();
DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlRechazoMotivo.Items.Clear();
DdlRechazoMotivo.DataSource = DtRechazo.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlRechazoMotivo.DataBind();
DdlRechazoMotivo.Items.Insert(0, new ListItem("Seleccione", "-1"));
UpFiltros.Update();
}
#endregion
#region "CARGA DATOS"

View File

@@ -42,18 +42,24 @@ public partial class CRM_RepAcercamientos : ClsPaginas
{
CveVendedor = DdlVendedor.SelectedValue.ToEntero();
string FechaInicio = TxtFechaInicio.Text == "" ? "-1" : TxtFechaInicio.Text;
string FechaFin = TxtFechaFin.Text == "" ? "-1" : TxtFechaFin.Text;
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetAcercamiento(UsuarioActual.CveEmpresa, CveVendedor: CveVendedor, FechaInicio: FechaInicio, FechaFin: FechaFin))
if (CveVendedor > 0)
{
GVDatos.DataSource = ObjCRM.DtResultados;
GVDatos.DataBind();
}
string FechaInicio = TxtFechaInicio.Text == "" ? "-1" : TxtFechaInicio.Text;
string FechaFin = TxtFechaFin.Text == "" ? "-1" : TxtFechaFin.Text;
ObjCRM.Dispose();
UPDatos.Update();
ClsCRM ObjCRM = new ClsCRM();
if (ObjCRM.GetAcercamiento(UsuarioActual.CveEmpresa, CveVendedor: CveVendedor, FechaInicio: FechaInicio, FechaFin: FechaFin))
{
GVDatos.DataSource = ObjCRM.DtResultados;
GVDatos.DataBind();
}
ObjCRM.Dispose();
UPDatos.Update();
}else
{
Alert("El Campo Vendedor es requerido",ModExtensiones.TipoMensaje.MsgError);
}
}
protected void GVDatos_RowDataBound(object sender, GridViewRowEventArgs e)

View File

@@ -28,6 +28,7 @@
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Procesos Acercamientos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">
@@ -49,7 +50,7 @@
<div class="row">
<div class="col-sm-3">
<div class="form-group form-md-line-input input-iconright">
<asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall"></asp:DropDownList>
<asp:DropDownList ID="DdlTipoProceso" runat="server" DataTextField="TipoProceso" DataValueField="CveTipoProceso" CssClass="form-control input-sm select2me Widthall" OnSelectedIndexChanged="DdlTipoProceso_Change" AutoPostBack="true"></asp:DropDownList>
<asp:Label runat="server" Text="Proceso:" AssociatedControlID="DdlTipoProceso"></asp:Label>
</div>
</div>

View File

@@ -27,6 +27,32 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
private DataTable DtMedioCaptacion
{
get
{
return (DataTable)ViewState["DtMedioCaptacion"];
}
set
{
ViewState["DtMedioCaptacion"] = value;
}
}
private DataTable DtProbabilidadAcercamiento
{
get
{
return (DataTable)ViewState["DtProbabilidadAcercamiento"];
}
set
{
ViewState["DtProbabilidadAcercamiento"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -58,11 +84,14 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
DdlVendedor.DataSource = get_GlobalDTVendedores(UsuarioActual.CveEmpresa);
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa))
{
DdlMedioCaptacion.Items.Clear();
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
DtMedioCaptacion = ObjCRM.DtResultados;
}
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, -1))
{
DdlProbabilidad.DataSource = ObjCRM.DtResultados;
DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
@@ -73,6 +102,7 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
DdlVendedor.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione ", "-1"));
DdlTipoProceso.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlVendedor.SelectedValue = "-1";
DdlMedioCaptacion.SelectedValue = "-1";
DdlProbabilidad.SelectedValue = "-1";
@@ -289,4 +319,19 @@ public partial class CRM_RepAcercamientosProcesos : ClsPaginas
}
UPModalProd.Update();
}
protected void DdlTipoProceso_Change(object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
DdlMedioCaptacion.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacion.DataBind();
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlProbabilidad.Items.Clear();
DdlProbabilidad.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlProbabilidad.DataBind();
DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione", "-1"));
upDatosRepA.Update();
}
}

View File

@@ -28,6 +28,7 @@
</style>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
Reporte de Rechazos Acercamientos
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
<asp:UpdatePanel ID="UpAcciones" runat="server" UpdateMode="Conditional">

View File

@@ -27,6 +27,32 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
get { return DtDatos = (DataTable)ViewState["DtDatos"]; }
set { ViewState["DtDatos"] = value; }
}
private DataTable DtMedioCaptacion
{
get
{
return (DataTable)ViewState["DtMedioCaptacion"];
}
set
{
ViewState["DtMedioCaptacion"] = value;
}
}
private DataTable DtProbabilidadAcercamiento
{
get
{
return (DataTable)ViewState["DtProbabilidadAcercamiento"];
}
set
{
ViewState["DtProbabilidadAcercamiento"] = value;
}
}
#endregion
protected void Page_Load(object sender, EventArgs e)
@@ -59,10 +85,12 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
if (ObjCRM.GetMedioCaptacion(UsuarioActual.CveEmpresa))
{
DdlMedioCaptacion.DataSource = ObjCRM.DtResultados;
DtMedioCaptacion = ObjCRM.DtResultados;
}
if (ObjCRM.GetProbabilidadAcercamiento(UsuarioActual.CveEmpresa, -1))
{
DdlProbabilidad.DataSource = ObjCRM.DtResultados;
DtProbabilidadAcercamiento = ObjCRM.DtResultados;
}
ObjCRM.Dispose();
@@ -289,4 +317,19 @@ public partial class CRM_RepAcercamientosRechazos : ClsPaginas
}
UPModalProd.Update();
}
protected void DdlTipoProceso_Change(object sender, EventArgs e)
{
DdlMedioCaptacion.Items.Clear();
DdlMedioCaptacion.DataSource = DtMedioCaptacion.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlMedioCaptacion.DataBind();
DdlMedioCaptacion.Items.Insert(0, new ListItem("Seleccione", "-1"));
DdlProbabilidad.Items.Clear();
DdlProbabilidad.DataSource = DtProbabilidadAcercamiento.FiltraParametros(String.Format("CveTipoProceso = {0}", DdlTipoProceso.SelectedValue.ToEntero()));
DdlProbabilidad.DataBind();
DdlProbabilidad.Items.Insert(0, new ListItem("Seleccione", "-1"));
upDatosRepA.Update();
}
}

View File

@@ -295,49 +295,58 @@ Partial Class Contabilidad2_CatCuentas
Dim PorcentajeImpuesto As Decimal = TxtPorcentaje.Text.ToDecimal() / 100
Dim CveBancoCuenta As Integer = ddlBancos.SelectedValue.ToEntero
Dim CveAlmacen As Integer = DdlAlmacen.SelectedValue.ToEntero()
If ObjConta.UpdateCuenta(IDSelected.ToEntero, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToString.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString,
CveConceptoAdmin:=CveConceptoAdmin, CveProveedor:=CveProveedor, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto, CveBancoCuenta:=CveBancoCuenta, CveAlmacen:=CveAlmacen) Then
Dim codigo As String = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}")
If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then
If UsuarioActual.Empresa.TipoContabilidad <> 1 Then
If ObjConta.UpdateCuenta(IDSelected.ToEntero, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero,
TxtDigAgrup.Text.ToString.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString, CveConceptoAdmin:=CveConceptoAdmin,
CveProveedor:=CveProveedor, CveCliente:=CveCliente, CveClasificacion:=CveClasificacion, PorcentajeImpuesto:=PorcentajeImpuesto,
CveBancoCuenta:=CveBancoCuenta, CveAlmacen:=CveAlmacen) Then
Using ObjConta2 As New ClsContPAQi(UsuarioActual.Empresa)
Dim codigo As String = DtDatos.FiltroPrimeroValor("Codigo", $"CveCuenta={IDSelected}")
If ObjConta2.GetCuentas(-1, "-1", -1) Then
Dim Id As Integer = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigo}'").ToEntero
Dim IdAgrupador As Integer
If UsuarioActual.Empresa.TipoContabilidad <> 1 Then
If ObjConta2.GetAgrupadoresSAT() Then
IdAgrupador = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"CodigoNombre='{DdlAgrupadorSAT.SelectedItem.Text}'").ToEntero
End If
If Id > 0 Then
If ObjConta2.UpdateCuenta(Id, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, IdAgrupador, SubCuentaDe:=Tsubcuenta.Text.Trim) > 0 Then
Using ObjConta2 As New ClsContPAQi(UsuarioActual.Empresa)
If ObjConta2.GetCuentas(-1, "-1", -1) Then
Dim Id As Integer = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"Codigo='{codigo}'").ToEntero
Dim IdAgrupador As Integer
If ObjConta2.GetAgrupadoresSAT() Then
IdAgrupador = ObjConta2.DtResultados.FiltroPrimeroValor("Id", $"CodigoNombre='{DdlAgrupadorSAT.SelectedItem.Text}'").ToEntero
End If
If Id > 0 Then
If ObjConta2.UpdateCuenta(Id, Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero, DdlMoneda.SelectedValue.ToEntero, IdAgrupador, SubCuentaDe:=Tsubcuenta.Text.Trim) > 0 Then
End If
End If
End If
End If
End Using
End Using
End If
Dim customerRow As Data.DataRow
customerRow = DtDatos.Select(String.Format("CveCuenta = {0}", IDSelected))(0)
customerRow("Nombre") = Tnombre.Text
DtDatos.AcceptChanges()
CargaDatos()
ArbolCuentas.DataSource = DtDatos
Dim item As CheckBox = DirectCast(ArbolCuentas.FindControl(String.Format("chk{0}", IDSelected)), CheckBox)
item.Text = String.Format("{0} - {1}", customerRow("CuentaFormato").ToString, Tnombre.Text)
'updatos.Visible = False
'Guardar.Visible = False
LimpiarCampos()
'RegistraScript("$get('BtnCambiaAgrupadorSAT').click();")
updatos.Update()
Alert("La cuenta se guardo correctamente")
End If
Dim customerRow As Data.DataRow
customerRow = DtDatos.Select(String.Format("CveCuenta = {0}", IDSelected))(0)
customerRow("Nombre") = Tnombre.Text
DtDatos.AcceptChanges()
CargaDatos()
ArbolCuentas.DataSource = DtDatos
Dim item As CheckBox = DirectCast(ArbolCuentas.FindControl(String.Format("chk{0}", IDSelected)), CheckBox)
item.Text = String.Format("{0} - {1}", customerRow("CuentaFormato").ToString, Tnombre.Text)
'updatos.Visible = False
'Guardar.Visible = False
LimpiarCampos()
'RegistraScript("$get('BtnCambiaAgrupadorSAT').click();")
updatos.Update()
Alert("La cuenta se guardo correctamente")
Else
Alert("Es necesario agregar el campo 'Agrupador SAT'", TipoMensaje.MsgError)
End If
ObjConta.Dispose()
End Sub
@@ -356,17 +365,14 @@ Partial Class Contabilidad2_CatCuentas
Dim CuentaEfectivo As Integer = 0
Dim Afectable As Integer = 1 'If(DcuentaMayor.SelectedValue <> 2, 0, 1) ' cuando sea tipo 2, va a ser afectable
Tcuenta.Text.Replace("-", "")
Dim idnew As Integer = 0
Dim idnew As Integer = ObjConta.AddCuenta(
IDSelected,
TxtCuenta.Text.Replace("-", ""),
Tnombre.Text,
DTcuenta.SelectedValue.ToString,
DcuentaMayor.SelectedValue.ToString.ToEntero,
DdlMoneda.SelectedValue.ToEntero,
TxtDigAgrup.Text.ToEntero,
DdlAgrupadorSAT.SelectedValue.ToEntero,
TxtNomIngles.Text.ToString)
If DdlAgrupadorSAT.SelectedValue.ToEntero > 0 Then
idnew = ObjConta.AddCuenta(IDSelected, TxtCuenta.Text.Replace("-", ""), Tnombre.Text, DTcuenta.SelectedValue.ToString, DcuentaMayor.SelectedValue.ToString.ToEntero,
DdlMoneda.SelectedValue.ToEntero, TxtDigAgrup.Text.ToEntero, DdlAgrupadorSAT.SelectedValue.ToEntero, TxtNomIngles.Text.ToString)
Else
Alert("Es necesario agregar el campo 'Agrupador SAT'", TipoMensaje.MsgError)
End If
If idnew > 0 Then

Binary file not shown.

View File

@@ -106,10 +106,15 @@ public partial class General_CATIEPSxEntidadFed : ClsPaginas
protected void LnkExcel_Click(object sender, EventArgs e)
{
GVIEPSxEntidadFed.ExportToExcelx("IEPS porEntidad Federativa");
Imprimir("Excel");
}
protected void LnkPDF_Click(object sender, EventArgs e)
{
Imprimir("PDF");
}
private void Imprimir(string formato)
{
string FechaInicio = $"&emsp;<b>Fecha Inicio:</b>&nbsp;{TxtIEPSfechaInicio.Text}";
string FechaFin = $"&emsp;<b>Fecha Inicio:</b>&nbsp;{TxtIEPSfechaFin.Text}";
@@ -127,6 +132,6 @@ public partial class General_CATIEPSxEntidadFed : ClsPaginas
paramList.Add(new ReportParameter("Filtros", $"{FechaInicio}{FechaFin}{IEPS}{Estado}{Agrupador}"));
ImprimirPDF("Empresas/Grales/Formatos/CatIepsEntidadFed.rdlc", DtIEPS, paramList,"IEPS por entidades federativa",RDSName:"DsInventarios");
ImprimirPDF("Empresas/Grales/Formatos/CatIepsEntidadFed.rdlc", DtIEPS, paramList, "IEPS por entidades federativa",formato, RDSName: "DsInventarios");
}
}

82
OI/Circular.aspx Normal file
View File

@@ -0,0 +1,82 @@
<%@ Page Title="OI Circular" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Circular.aspx.vb" Inherits="OI_Circular" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Circular
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:HyperLink ID="LnkAgregar" runat="server" NavigateUrl="/OI/CircularDetalle.aspx?CveCircular=-1"> Agregar Circular</asp:HyperLink>
</li>
<li>
<asp:LinkButton ID="LnkPDF" runat="server"><i class="fa fa-file-pdf-o" style="font-weight:bold;"></i> PDF</asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel runat="server" ID="UpFiltros">
<ContentTemplate>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle" style="min-height: 45px; position: relative;">
<div class="tools">
<asp:Button ID="btConsultar" CssClass="btn btn-primary" runat="server" ValidationGroup="GrpConsultar" Text="Consultar" /></td>
<a href="javascript;" data-idchekbox="<%= chkexpand.ClientID%>" class=" <%= IIf(chkexpand.Checked = True, "collapse", "expand")%>"></a>
<asp:CheckBox ID="chkexpand" CssClass="hidden" runat="server" />
</div>
<div class="titlefiltros caption magindate">
<div class="row" style="width:90%">
<div class="col-md-1 truncate text-right">Fecha Inicial: </div>
<div class="col-md-3 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaI" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="ImgFechaMes" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender1" runat="server" TargetControlID="TxtFechaI" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender1" TargetControlID="TxtFechaI" PopupButtonID="ImgFechaMes" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate text-right">Fecha Final: </div>
<div class="col-md-3 col-sm-2">
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 95px !important; padding: 0px;">
<asp:TextBox Style="width: 80px !important;" ID="TxtFechaF" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="10"></asp:TextBox>
<span class="input-group-btn ">
<asp:LinkButton ID="LinkButton1" class="btn default " Text="<i class='fa fa-calendar'></i>" runat="server"></asp:LinkButton>
</span>
</div>
<ajax:MaskedEditExtender ID="MaskedEditExtender2" runat="server" TargetControlID="TxtFechaF" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CalendarExtender2" TargetControlID="TxtFechaF" PopupButtonID="ImgFechaMes" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender>
</div>
<div class="col-md-1 truncate text-right">Usuario: </div>
<div class="col-md-3 col-sm-2">
<asp:DropDownList runat="server" ID="DdlUsuario" DataTextField="Nombre" DataValueField="CveUsuario" CssClass="select2me"/>
</div>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" DataKeyNames="CveCircular,Asunto,Usuario" EmptyDataText="No se encontraron Motivo de Baja Registrados"
ToolTip="Listado de Metas Vendedor" CssClass="table table-striped table-advance table-hover" Style="margin-top: -10px; text-align: center; width: 100%" GridLines="None">
<Columns>
<asp:HyperLinkField HeaderText="Asunto" DataTextField="Asunto" DataNavigateUrlFields="CveCircular" DataNavigateUrlFormatString="/OI/CircularDetalle.aspx?CveCircular={0}" />
<asp:HyperLinkField HeaderText="Usuario" DataTextField="Usuario" DataNavigateUrlFields="CveCircular" DataNavigateUrlFormatString="/OI/CircularDetalle.aspx?CveCircular={0}" />
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

66
OI/Circular.aspx.vb Normal file
View File

@@ -0,0 +1,66 @@
Imports System.Data
Imports System.Linq
Imports Extensiones
Imports Microsoft.Reporting.WebForms
Partial Class OI_Circular
Inherits ClsPaginas
Private Property DtDatos As DataTable
Get
DtDatos = DirectCast(ViewState("DtDatos"), DataTable)
End Get
Set(ByVal value As DataTable)
ViewState("DtDatos") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
IniciarFiltros()
CargaDatos()
End If
End Sub
Private Sub IniciarFiltros()
Dim FechaI As DateTime = New DateTime(Today.Year, Today.Month, 1)
Dim FechaF As DateTime = New DateTime(Today.Year, Today.Month, 1).AddMonths(1).AddDays(-1)
TxtFechaI.Text = FechaI.ToString()
TxtFechaF.Text = FechaF.ToString
DdlUsuario.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
DdlUsuario.DataBind()
DdlUsuario.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
Private Sub CargaDatos()
Dim ObjOI As New ClsOIEventos
If ObjOI.GetCircular(UsuarioActual.CveEmpresa, -1, TxtFechaI.Text, TxtFechaF.Text, DdlUsuario.SelectedValue.ToEntero) Then
GvDatos.DataSource = ObjOI.DtResultados
DtDatos = ObjOI.DtResultados
End If
ObjOI.Dispose()
GvDatos.DataBind()
End Sub
Protected Sub btConsultar_Click() Handles btConsultar.Click
CargaDatos()
End Sub
Protected Sub LnkPDF_Click() Handles LnkPDF.Click
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa)
Dim params As New List(Of ReportParameter)
params.Add(New ReportParameter("NombreEmpresa", UsuarioActual.Empresa.Empresa))
If Imagen.Exists Then
params.Add(New ReportParameter("LogoPath", logouri))
Else
params.Add(New ReportParameter("LogoPath", ""))
End If
params.Add(New ReportParameter("UsuarioImprimio", UsuarioActual.Usuario))
params.Add(New ReportParameter("FechaImpresion", Today))
params.Add(New ReportParameter("Filtros", String.Format("Fecha Inicial: {0} Fecha Final: {1}", TxtFechaI.Text, TxtFechaF.Text)))
ImprimirPDF("Empresas/Grales/Formatos/Circulares.rdlc", DtDatos, params, "Circulares", "PDF", RDSName:="DataSet1")
End Sub
End Class

162
OI/CircularDetalle.aspx Normal file
View File

@@ -0,0 +1,162 @@
<%@ Page Title="OI Circular" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="CircularDetalle.aspx.vb" Inherits="OI_CircularDetalle" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="HB" runat="Server">
</asp:Content>
<asp:Content ID="Content4" ContentPlaceHolderID="E" runat="Server">
Circular Detalle
</asp:Content>
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
<asp:UpdatePanel runat="server" ID="UpAgregar">
<ContentTemplate>
<li>
<asp:LinkButton ID="LnkMandarCorreo" runat="server" Text="<i class='fa fa-plus'></i> Agregar Documento"></asp:LinkButton>
</li>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
<asp:UpdatePanel ID="UpCliente" runat="server" UpdateMode="Conditional" class="portlet light xspadding bordered whitoutcol" style="width: 40%;">
<ContentTemplate>
<div class="portlet-title">
<div class="caption font-green">
<i class="icon-pin font-green"></i>
</div>
<div class="actions">
<div class="btn-group">
</div>
</div>
<div class="tools">
<a href="javascript:;" class="collapse"></a>
</div>
</div>
<div class="portlet-body form-horizontal form-row-sepe formnombottom" style="padding-top: 0px; margin-top: -5px;">
<div class="form-body">
<div class="col-md-1" style="width: 100%">
<br />
<div class="row">
<div class="col-md-1" style="width: 30%">
<asp:Label runat="server" ID="LblAsunto">Asunto:</asp:Label>
</div>
<div class="col-md-1" style="width: 70%">
<asp:TextBox runat="server" ID="TxtAsunto"></asp:TextBox>
</div>
</div>
<br />
<div class="row">
<div class="col-md-1" style="width: 30%">
<asp:Label runat="server" ID="LblCorreo">Para:</asp:Label>
</div>
<div class="col-md-1" style="width: 45%">
<textarea runat="server" id="TxtCorreo" class="form-control"></textarea>
</div>
<div class="col-md-1" style="width: 15%">
<asp:LinkButton runat="server" ID="LbBuscar" >Buscar</asp:LinkButton>
</div>
</div>
<br />
<div class="row">
<div class="col-md-1" style="width: 30%">
<asp:Label runat="server" ID="LblCorreoExtra">Correos Adicionales:</asp:Label>
</div>
<div class="col-md-1" style="width: 70%">
<textarea runat="server" id="TxtCorreoAdicional" class="form-control"></textarea>
</div>
</div>
<br />
<div class="row">
<div class="col-md-1" style="width: 30%">
<asp:Label runat="server" ID="LblCircular">Circular:</asp:Label>
</div>
<div class="col-md-1" style="width: 70%">
<textarea runat="server" id="TxtCircular" class="form-control" style="height:150px"></textarea>
</div>
</div>
<br />
<div class="row">
<div class="col-md-1" style="width:30%">
<asp:Label runat="server" ID="LblAdjunto">Adjuntar archivo:</asp:Label>
</div>
<div class="col-md-1" style="width:70%">
<asp:TextBox ID="TxtFileDocumentacion" CssClass="ADSdropzone hidden" data-maxFile="1" Text="" runat="server"></asp:TextBox>
</div>
</div>
<br />
<div class="row" style="text-align: center">
<asp:Button ID="BtnGuardar" runat="server" CssClass="btn btn-primary" Text="Guardar" Visible="true" ValidationGroup="GrpGuardar" />
<asp:Button ID="BtnEliminar" runat="server" CssClass="btn btn-danger" Text="Eliminar" Visible="false" data-toggle="confirmation" data-popout="true" data-original-title="Confirmar" data-btn-ok-label="si" />
</div>
<br />
</div>
</div>
</div>
<div id="ModalDescuento" class="modal ADS fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content" style="width: 800px">
<div class="modal-header ">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">
<asp:Label ID="LblTitulo1" runat="server" ClientIDMode="Static" Text="Descuento:" Style="display: none;"></asp:Label>
<asp:Label ID="LblTitulo2" runat="server" ClientIDMode="Static" Text="Amortización de Anticipos:" Style="display: none;"></asp:Label></h4>
<br />
</div>
<div class="modal-body">
<div class="row" style="width: 85%; text-align: center">
<div class="col-md-1 truncate text-right" style="width: 20%; text-align: right">Rol: </div>
<div class="col-md-3 col-sm-2" style="width: 20%; text-align: left">
<asp:DropDownList runat="server" ID="DdlRolesFiltro" DataValue="CveRol" DataTextField="Rol" CssClass="select2me" />
</div>
<div class="col-md-1 truncate text-right" style="width: 20%; text-align: right">Sucursales: </div>
<div class="col-md-3 col-sm-2" style="width: 20%; text-align: left">
<asp:DropDownList runat="server" ID="DdlSucursales" DataValue="CveProyecto" DataTextField="SubProyecto" CssClass="select2me" />
</div>
<div class="col-md-3 col-sm-2" style="width: 20%; text-align: right">
<asp:Button ID="BtnBuscar" runat="server" CssClass="btn btn-primary" Text="Buscar" Visible="true" ValidationGroup="GrpGuardar" />
</div>
</div>
<div class="row" style="margin-top: 30px;">
<asp:UpdatePanel runat="server" ID="UpUsuarios" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvUsuarios" runat="server" AutoGenerateColumns="False" DataKeyNames="CveUsuario,Nombre,Correo" EmptyDataText="No se encontraron Motivo de Baja Registrados"
ToolTip="Listado de Metas Vendedor" CssClass="table table-striped table-advance table-hover ScrollAD" Style="margin-top: 0px; text-align: center; width: 100%" GridLines="None">
<Columns>
<asp:BoundField HeaderText="Nombre" DataField="Nombre">
<ItemStyle Width="50%" HorizontalAlign="Left" Wrap="true" />
</asp:BoundField>
<asp:BoundField HeaderText="Correo" DataField="Correo">
<ItemStyle Width="50%" HorizontalAlign="Left" Wrap="true" />
</asp:BoundField>
</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
<div class="modal-footer">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<%--<asp:Button ID="BtnAplicarDescP" runat="server" ClientIDMode="Static" OnClientClick="$('#ModalDescuento').modal('hide'); event.preventDefault();" Text="Aplicar" ValidationGroup="GrpDescuentoP" Style="display: none;" CssClass="btn btn-primary" />--%>
<asp:Button ID="BtnAplicarDescG" runat="server" ClientIDMode="Static" Text="Aplicar" ValidationGroup="GrpDescuentoP" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
<asp:Content ID="Content7" ContentPlaceHolderID="JS" runat="Server">
</asp:Content>

208
OI/CircularDetalle.aspx.vb Normal file
View File

@@ -0,0 +1,208 @@
Imports System.Data
Imports System.Linq
Imports Extensiones
Imports System.IO
Partial Class OI_CircularDetalle
Inherits ClsPaginas
Private Property DtUsuarios As DataTable
Get
Return If(IsNothing(ViewState("DtUsuarios")), Nothing, CType(ViewState("DtUsuarios"), DataTable))
End Get
Set(value As DataTable)
ViewState("DtUsuarios") = value
End Set
End Property
Private Property CveCircular As Integer
Get
Return ViewState("CveCircular").ToString.ToEntero
End Get
Set(value As Integer)
ViewState("CveCircular") = value
End Set
End Property
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
CargarCve()
ConfigurarBotones()
CargaDatos()
End If
End Sub
Private Sub CargarCve()
Dim PreCveCircular As String = Request.Params("CveCircular").ToString
If IsNumeric(PreCveCircular) Then
CveCircular = PreCveCircular.ToEntero
End If
End Sub
Private Sub ConfigurarBotones()
If CveCircular > 0 Then
BtnGuardar.Text = "Actualizar"
BtnEliminar.Visible = True
Else
BtnGuardar.Text = "Guardar"
End If
End Sub
Private Sub CargaDatos()
If CveCircular > 0 Then
Dim ObjOI As New ClsOIEventos
If ObjOI.GetCircular(UsuarioActual.CveEmpresa, CveCircular) Then
Dim Circular As DataRow = ObjOI.DtResultados(0)
TxtAsunto.Text = Circular.Item("Asunto")
TxtCorreo.Value = Circular.Item("CorreosInternos")
TxtCorreoAdicional.Value = Circular.Item("CorreosExternos")
TxtCircular.Value = Circular.Item("Circular")
UpCliente.Update()
End If
ObjOI.Dispose()
End If
DdlRolesFiltro.DataSource = GlobalDTRoles(UsuarioActual.CveEmpresa)
DdlRolesFiltro.DataBind()
DdlRolesFiltro.Items.Insert(0, New ListItem("Todos", "-1"))
DdlSucursales.DataSource = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa)
DdlSucursales.DataBind()
DdlSucursales.Items.Insert(0, New ListItem("Todos", "-1"))
End Sub
Private Sub BtnGuardar_Click() Handles BtnGuardar.Click
Dim ObjOI As New ClsOIEventos
If CveCircular > 0 Then
If ObjOI.UpdateCircular(CveCircular, TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, TxtCorreoAdicional.Value, UsuarioActual.CveUsuario) Then
Alert("Actualizado correctamente")
End If
Else
Dim CorreoExtra As String = If(TxtCorreoAdicional.Value = "", "-1", TxtCorreoAdicional.Value)
Dim CircularInsertado As Integer = ObjOI.AddCircular(TxtAsunto.Text, TxtCircular.Value, TxtCorreo.Value, Today.ToString, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CorreoExtra)
If CircularInsertado > 0 Then
GuardarArchivo(CircularInsertado)
Alert("Ingresado correctamente")
End If
End If
End Sub
Private Sub BtnEliminar_Click() Handles BtnEliminar.Click
Dim ObjOI As New ClsOIEventos
If ObjOI.DeleteCircular(CveCircular) Then
Response.Redirect("~/OI/CircularDetalle.aspx?CveCircular=-1")
End If
ObjOI.Dispose()
End Sub
Protected Sub LbBuscar_Click(sender As Object, e As EventArgs) Handles LbBuscar.Click
LimpiarModal()
RegistraScript("$('#ModalDescuento').modal()")
End Sub
Private Sub LimpiarModal()
DdlRolesFiltro.SelectedValue = -1
DdlSucursales.SelectedValue = -1
GvUsuarios.DataSource = Nothing
GvUsuarios.DataBind()
UpUsuarios.Update()
End Sub
Protected Sub BtnBuscar_Click() Handles BtnBuscar.Click
Dim buscadorQuery As New StringBuilder
buscadorQuery.Append(If(DdlRolesFiltro.SelectedValue.ToEntero > 0, String.Format("CveRol = {0}", DdlRolesFiltro.SelectedValue), ""))
buscadorQuery.Append(If(DdlSucursales.SelectedValue.ToEntero > 0, String.Format("{0} CveSubProyecto = {1}", If(buscadorQuery.Length > 0, "AND", ""), DdlSucursales.SelectedValue), ""))
GvUsuarios.DataSource = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
DtUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(buscadorQuery.ToString)
GvUsuarios.DataBind()
UpUsuarios.Update()
RegistraScript("$('#ModalDescuento').modal()")
End Sub
Private Sub BtnAplicarDescG_Click() Handles BtnAplicarDescG.Click
Dim UsuariosCorreos As String = ""
For Each usuario As DataRow In DtUsuarios.Rows
If usuario.Item("Correo").ToString.Length > 0 Then
UsuariosCorreos = String.Format("{0}{1}" & Environment.NewLine, UsuariosCorreos, usuario.Item("Correo").ToString)
End If
Next
TxtCorreo.Value = UsuariosCorreos
RegistraScript("$('#ModalDescuento').modal('hide')")
UpCliente.Update()
End Sub
Private Function GuardarArchivo(CircularInsertado As Integer) As String
Dim respuesta As String = ""
Dim FileExtension As String = "-1"
Dim Filesgral As List(Of Archivo) = TxtFileDocumentacion.getfiles().Archivos
Dim Filename As String = ""
For Each fileItem As Archivo In Filesgral
Try
respuesta = fileItem.filenameO
FileExtension = IO.Path.GetExtension(String.Format("{0}Temp\{1}", AppDomain.CurrentDomain.BaseDirectory, fileItem.filename)).Replace(".", "")
Dim tempArray() As String
tempArray = fileItem.filename.ToString().Split("-".ToCharArray())
Dim rutaDestino As String = UsuarioActual.Empresa.Ruta & "Formatos\" & CircularInsertado & "_" & fileItem.filenameO
'Dim docAnterior As String = UsuarioActual.Empresa.Ruta & "Formatos\" & _CveDocumentacion & "_" & DocumentacionFormato
'If DocumentacionFormato.Trim.Length > 0 Then
' If File.Exists(docAnterior) Then
' File.Delete(docAnterior)
' End If
'End If
If Not Directory.Exists(UsuarioActual.Empresa.Ruta & "\Formatos") Then
Directory.CreateDirectory(UsuarioActual.Empresa.Ruta & "\Formatos")
End If
If System.IO.File.Exists(rutaDestino) Then
System.IO.File.Delete(rutaDestino)
End If
System.IO.File.Move(fileItem.FileUrl, rutaDestino)
Catch ex As Exception
OnError("Error al cargar archivo", ex)
End Try
TxtFileDocumentacion.Text = ""
Next
Return respuesta
End Function
Protected Sub LnkMandarCorreo_Click() Handles LnkMandarCorreo.Click
Dim correos() As String
correos = TxtCorreo.Value.Split(Environment.NewLine)
'MandaCorreo()
End Sub
Private Sub MandaCorreo(Asunto As String, Para As String, ArrayCC As String, body As String, ArchivoBinario As Byte())
Dim a As String = String.Format("{0} -- {1} --- {2}", Asunto, Para, ArrayCC)
a.GuardaLog()
Dim Mail As New ClsSisMail()
Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
Dim itemMail As New ClsSisMail.ArchivoMail
With itemMail
itemMail.ArchivoBinario = ArchivoBinario
itemMail.NombreArchivo = "Invitación.pdf"
End With
LSRutasMail.Add(itemMail)
Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, body, ArrayCC, LSRutasMail)
Mail = Nothing
End Sub
End Class

View File

@@ -298,11 +298,11 @@ Partial Class RH_Personal
End Set
End Property
Private Property PU As Double
Private Property PU As Decimal
Get
Return CInt(ViewState("PU"))
End Get
Set(value As Double)
Set(value As Decimal)
ViewState("PU") = value
End Set
End Property
@@ -4908,7 +4908,7 @@ Partial Class RH_Personal
CveAlmacenUniforme = rowInfo.Item("CveAlmacen").ToString.ToEntero
DescripcionUniforme = rowInfo.Item("CodigoPS").ToString
PU = rowInfo.Item("PU").ToString.ToDouble
PU = rowInfo.Item("PU").ToString.ToDecimal
CveUM = rowInfo.Item("CveUM").ToString.ToEntero
CvePS = rowInfo.Item("CvePS").ToString.ToEntero

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@ using System.Xml;
using Extensiones;
using System.Data;
using System.Text;
using ADSistemaLibrary.SatXml;
using ADSistemaLibrary2.SatXml;
//using ADS_CFDI_SAT;
@@ -187,7 +187,11 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
{
{
string ruta = string.Format("{0}\\{1}", UsuarioActual.Empresa.Ruta.Trim(), gvrow.DataKey("RutaXml").Trim()).Replace("/", "\\"); //gvrow.DataKey("RutaXml");
string rutaempresa = UsuarioActual.Empresa.Ruta.Trim().Replace("/", "\\");
string rutafile = gvrow.DataKey("RutaXml").Trim().Replace("/", "\\");
rutaempresa = rutaempresa.Substring(rutaempresa.Length - 1, 1) == "\\" ? rutaempresa.Substring(0, rutaempresa.Length - 1): rutaempresa;
rutafile = rutafile.Substring(0, 1) == "\\" ? rutafile.Substring(1): rutafile;
string ruta = string.Format("{0}\\{1}", rutaempresa, rutafile); //gvrow.DataKey("RutaXml");
//Alert(ruta);
//return false;
@@ -798,4 +802,953 @@ public partial class Ventas_RepConciliacionEmitidosSat : ClsPaginas
}
//String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=FactVta&CVEVENTA={0}&EXT={1}&SERIEFOLIO={2}&TIPODOCTO={3}", CveVenta, "XML", DbRowVenta("SerieFolio"), DbRowVenta("TipoDocto"))))
}
}
namespace ADSistemaLibrary2.SatXml
{
public class XmlSatCFDI
{
public XmlSatCFDI()
{
comprobante = new CFDIComprobante();
emisor = new CFDIEmisor();
receptor = new CFDIReceptor();
complemento = new CFDIComplemento();
cFDIRelacionados = new List<CFDIRelacionado>();
conceptos = new List<CFDIConcepto>();
Impuestos = new List<CFDIImpuesto>();
}
public CFDIComprobante comprobante;
public CFDIEmisor emisor;
public CFDIReceptor receptor;
public CFDIComplemento complemento;
public List<CFDIRelacionado> cFDIRelacionados;
public List<CFDIConcepto> conceptos;
public List<CFDIImpuesto> Impuestos;
public List<CFDIConcepto_I> GetConceptosforpdf()
{
List<CFDIConcepto_I> lcon = new List<CFDIConcepto_I>();
if (conceptos != null)
{
int _orden = 0;
foreach (CFDIConcepto item in conceptos)
{
_orden += 1;
CFDIConcepto_I con = new CFDIConcepto_I
{
tipo = 1,
orden = _orden,
ClaveProdServ = item.ClaveProdServ,
NoIdentificacion = item.NoIdentificacion,
Cantidad = item.Cantidad,
ClaveUnidad = item.ClaveUnidad,
Unidad = item.Unidad,
ValorUnitario = item.ValorUnitario,
Importe = item.Importe,
Descuento = item.Descuento,
NumeroPedimento = item.NumeroPedimento,
CuentaPredial = item.CuentaPredial,
Descripcion = item.Descripcion
};
int index = 0;
foreach (CFDIConceptoImpuesto Imp in item.Impuestos)
{
index++;
if (index > 1)
{
lcon.Add(con);
con = new CFDIConcepto_I
{
tipo = 2,
orden = _orden,
};
}
con.Impuesto = Imp.ImpuestoTexto;
con.Impuesto_Tipo = Imp.Tipo;
con.Impuesto_Base = Imp.Base;
con.Impuesto_TipoFactor = Imp.TipoFactor;
con.Impuesto_TasaOCuota = Imp.TasaOCuota;
con.Impuesto_Importe = Imp.Importe;
}
lcon.Add(con);
}
}
return lcon;
}
public static XmlSatCFDI readXML(string fileUrl)
{
XmlSatCFDI xmlCFDI = new XmlSatCFDI();
bool canread = true;
//keys
string keyComprobante = "Comprobante";
string keyCfdiRelacionados = "CfdiRelacionados";
string keyEmisor = "Emisor";
string keyReceptor = "Receptor";
string keyConceptos = "Conceptos";
string keyImpuestos = "Impuestos";
string keyComplemento = "Complemento";
//endkeys
string[] PrimerNivel = new string[] { keyCfdiRelacionados, keyEmisor, keyReceptor, keyConceptos, keyImpuestos, keyComplemento };
//(canread = xtr.Read()) para evitar ciclos infinitos, todos los .Read() los guardo en la variable Canread y en los while reviso primero esta variable
if (File.Exists(fileUrl))
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
using (XmlReader xtr = XmlReader.Create(fileUrl, settings))
{
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:","") == keyComprobante))
{
//if (xtr.NodeType != XmlNodeType.Element) { while (xtr.Read() && xtr.NodeType != XmlNodeType.Element) { } }
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComprobante)
{
int Nivel = xtr.Depth;
bool cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "XMLNS:CFDI": xmlCFDI.comprobante.xmlns_cfdi = xtr.Value; break;
case "XMLNS:XSI": xmlCFDI.comprobante.xmlns_xsi = xtr.Value; break;
case "XSI:SCHEMALOCATION": xmlCFDI.comprobante.xsi_schemaLocation = xtr.Value; break;
case "VERSION": xmlCFDI.comprobante.Version = xtr.Value; break;
case "SERIE": xmlCFDI.comprobante.Serie = xtr.Value; break;
case "FOLIO": xmlCFDI.comprobante.Folio = xtr.Value; break;
case "FECHA": xmlCFDI.comprobante.Fecha = xtr.Value; break;
case "MONEDA": xmlCFDI.comprobante.Moneda = xtr.Value; break;
case "SUBTOTAL": decimal SubTotal = 0; decimal.TryParse(xtr.Value, out SubTotal); xmlCFDI.comprobante.SubTotal = SubTotal; break;
case "TOTAL": decimal Total = 0; decimal.TryParse(xtr.Value, out Total); xmlCFDI.comprobante.Total = Total; break;
case "DESCUENTO": decimal Descuento = 0; decimal.TryParse(xtr.Value, out Descuento); xmlCFDI.comprobante.Descuento = Descuento; break;
case "TIPOCAMBIO": decimal TipoCambio = 0; decimal.TryParse(xtr.Value, out TipoCambio); xmlCFDI.comprobante.TipoCambio = TipoCambio; break;
case "TIPODECOMPROBANTE": xmlCFDI.comprobante.TipoDeComprobante = xtr.Value; break;
case "FORMAPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
case "FORMADEPAGO": xmlCFDI.comprobante.FormaPago = xtr.Value; break;
case "METODOPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
case "METODODEPAGO": xmlCFDI.comprobante.MetodoPago = xtr.Value; break;
case "CONDICIONESDEPAGO": xmlCFDI.comprobante.CondicionesDePago = xtr.Value; break;
case "LUGAREXPEDICION": xmlCFDI.comprobante.LugarExpedicion = xtr.Value; break;
case "CONFIRMACION": xmlCFDI.comprobante.Confirmacion = xtr.Value; break;
case "NOCERTIFICADO": xmlCFDI.comprobante.NoCertificado = xtr.Value; break;
case "SELLO": xmlCFDI.comprobante.Sello = xtr.Value; break;
case "CERTIFICADO": xmlCFDI.comprobante.Certificado = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
cont = xtr.MoveToFirstAttribute();
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > Nivel)
{
if (PrimerNivel.Contains(xtr.Name.Replace("cfdi:", "")))
{
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyCfdiRelacionados)
{
int cDepth = xtr.Depth;
string TipoRelacion = null;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "TIPORELACION": TipoRelacion = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
if (xtr.Name.Replace("cfdi:", "") == "CfdiRelacionado")
{
CFDIRelacionado cfdir = new CFDIRelacionado();
cfdir.TipoRelacion = TipoRelacion;
cfdir.UUID = xtr.GetAttribute("UUID");
xmlCFDI.cFDIRelacionados.Add(cfdir);
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyEmisor)
{
int curentNivel = xtr.Depth;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "REGIMENFISCAL": xmlCFDI.emisor.RegimenFiscal = xtr.Value; break;
case "NOMBRE": xmlCFDI.emisor.Nombre = xtr.Value; break;
case "RFC": xmlCFDI.emisor.Rfc = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyReceptor)
{
int curentNivel = xtr.Depth;
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "RFC": xmlCFDI.receptor.Rfc = xtr.Value; break;
case "NOMBRE": xmlCFDI.receptor.Nombre = xtr.Value; break;
case "RESIDENCIAFISCAL": xmlCFDI.receptor.ResidenciaFiscal = xtr.Value; break;
case "NUMREGIDTRIB": xmlCFDI.receptor.NumRegIdTrib = xtr.Value; break;
case "USOCFDI": xmlCFDI.receptor.UsoCFDI = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
while ((canread = xtr.Read()) && !(xtr.NodeType == XmlNodeType.Element && curentNivel >= xtr.Depth)) { }//continua hasta que no tenga nodos y (el nodo sea tipo elemnto y ete en el mismo nivel)
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyConceptos)
{
int cDepth = xtr.Depth;
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
if (xtr.Name.Replace("cfdi:", "") == "Concepto")
{
int cDepthb = xtr.Depth;
CFDIConcepto concepto = new CFDIConcepto();
cont = xtr.MoveToFirstAttribute();
while (cont)
{
switch (xtr.Name.ToUpper())
{
case "CLAVEPRODSERV": concepto.ClaveProdServ = xtr.Value; break;
case "NOIDENTIFICACION": concepto.NoIdentificacion = xtr.Value; break;
case "CANTIDAD": concepto.Cantidad = xtr.Value; break;
case "CLAVEUNIDAD": concepto.ClaveUnidad = xtr.Value; break;
case "UNIDAD": concepto.Unidad = xtr.Value; break;
case "VALORUNITARIO": decimal ValorUnitario = 0; decimal.TryParse(xtr.Value, out ValorUnitario); concepto.ValorUnitario = ValorUnitario; ; break;
case "IMPORTE": decimal Importe = 0; decimal.TryParse(xtr.Value, out Importe); concepto.Importe = Importe; ; break;
case "DESCUENTO": decimal DDescuento = 0; decimal.TryParse(xtr.Value, out DDescuento); concepto.Descuento = DDescuento; ; break;
case "DESCRIPCION": concepto.Descripcion = xtr.Value; break;
}
cont = xtr.MoveToNextAttribute();
}
xtr.MoveToFirstAttribute();
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepthb)
{
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "Impuestos")
{
int cDepthc = xtr.Depth;
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepthc)
{
if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion")
{
CFDIConceptoImpuesto impuesto = new CFDIConceptoImpuesto();
impuesto.Impuesto = xtr.GetAttribute("Impuesto");
impuesto.Tipo = xtr.LocalName;
decimal Base = 0;
decimal.TryParse(xtr.GetAttribute("Base"), out Base);
impuesto.Base = Base;
impuesto.TipoFactor = xtr.GetAttribute("TipoFactor");
decimal tasaOCuota = 0;
decimal.TryParse(xtr.GetAttribute("TasaOCuota"), out tasaOCuota);
impuesto.TasaOCuota = impuesto.TipoFactor == "Tasa" ? (tasaOCuota * 100).ToString("N4") : xtr.GetAttribute("TasaOCuota");
decimal ImImporte = 0;
decimal.TryParse(xtr.GetAttribute("Importe"), out ImImporte);
impuesto.Importe = ImImporte;
concepto.Impuestos.Add(impuesto);
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
else
{
bool rednew = true;
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "InformacionAduanera")
{
concepto.NumeroPedimento = xtr.GetAttribute("NumeroPedimento");
rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == "CuentaPredial")
{
concepto.CuentaPredial = xtr.GetAttribute("CuentaPredial");
rednew = false; while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
if (rednew) { while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { } }
}
}
xmlCFDI.conceptos.Add(concepto);
}
}
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyImpuestos)
{
int cDepth = xtr.Depth;
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
CFDIImpuesto impuest = new CFDIImpuesto();
if (xtr.Name.Replace("cfdi:", "") == "Traslado" || xtr.Name.Replace("cfdi:", "") == "Retencion" && xmlCFDI.comprobante.Version != null)
{
impuest.Tipo = xtr.LocalName == "Traslado" ? "Traslados" : (xtr.LocalName == "Retencion" ? "Retenciones" : "");
impuest.Impuesto = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Impuesto") : xtr.GetAttribute("impuesto");
impuest.TipoFactor = xtr.GetAttribute("TipoFactor");
impuest.TasaOCuota = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("TasaOCuota") : xtr.GetAttribute("tasa");
decimal ImImporte = 0;
decimal.TryParse((xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("Importe") : xtr.GetAttribute("importe")), out ImImporte);
impuest.Importe = ImImporte;
xmlCFDI.Impuestos.Add(impuest);
}
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
if (xtr.NodeType == XmlNodeType.Element && xtr.Name.Replace("cfdi:", "") == keyComplemento)
{
int cDepth = xtr.Depth;
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > cDepth)
{
if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "TimbreFiscalDigital" && xmlCFDI.comprobante.Version != null)
{
xmlCFDI.complemento.xmlns_tfd = xtr.GetAttribute("xmlns:tfd");
xmlCFDI.complemento.xsi_schemaLocation = xtr.GetAttribute("xsi:schemaLocation");
xmlCFDI.complemento.Version = xtr.GetAttribute("Version");
xmlCFDI.complemento.UUID = xtr.GetAttribute("UUID");
xmlCFDI.complemento.FechaTimbrado = xtr.GetAttribute("FechaTimbrado");
xmlCFDI.complemento.RfcProvCertif = xtr.GetAttribute("RfcProvCertif");
xmlCFDI.complemento.SelloCFD = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloCFD") : xtr.GetAttribute("selloCFD");
xmlCFDI.complemento.NoCertificadoSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("NoCertificadoSAT") : xtr.GetAttribute("noCertificadoSAT");
xmlCFDI.complemento.SelloSAT = xmlCFDI.comprobante.Version == "3.3" ? xtr.GetAttribute("SelloSAT") : xtr.GetAttribute("selloSAT");
}
if (xtr.NodeType == XmlNodeType.Element && xtr.LocalName == "Pagos" && xmlCFDI.comprobante.Version != null)
{
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
xmlCFDI.complemento.Pagos = new CFDIPago();
int depthpagos = xtr.Depth;
bool conts = xtr.MoveToFirstAttribute();
while (conts)
{
decimal Base = 0;
switch (xtr.Name.ToUpper())
{
case "FECHAPAGO": xmlCFDI.complemento.Pagos.FechaPago = xtr.Value; break;
case "FORMADEPAGOP": xmlCFDI.complemento.Pagos.FormaDePagoP = xtr.Value; break;
case "FORMADEPAGOPTEXT": xmlCFDI.complemento.Pagos.FormaDePagoPText = xtr.Value; break;
case "MONEDAP": xmlCFDI.complemento.Pagos.MonedaP = xtr.Value; break;
case "MONTO": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.Monto = Base; break;
case "TIPOCAMBIOP": decimal.TryParse(xtr.Value, out Base); xmlCFDI.complemento.Pagos.TipoCambioP = Base; break;
case "NUMOPERACION": xmlCFDI.complemento.Pagos.NumOperacion = xtr.Value; break;
case "NOMBANCOORDEXT": xmlCFDI.complemento.Pagos.NomBancoOrdExt = xtr.Value; break;
case "RFCEMISORCTAORD": xmlCFDI.complemento.Pagos.RfcEmisorCtaOrd = xtr.Value; break;
case "CTAORDENANTE": xmlCFDI.complemento.Pagos.CtaOrdenante = xtr.Value; break;
case "RFCEMISORCTABEN": xmlCFDI.complemento.Pagos.RfcEmisorCtaBen = xtr.Value; break;
case "CTABENEFICIARIO": xmlCFDI.complemento.Pagos.CtaBeneficiario = xtr.Value; break;
}
conts = xtr.MoveToNextAttribute();
}
conts = xtr.MoveToFirstAttribute();
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
while (canread && xtr.Depth > depthpagos)
{
CFDIPagoDoctoRelacionado objpago = new CFDIPagoDoctoRelacionado();
conts = xtr.MoveToFirstAttribute();
while (conts)
{
decimal Basep = 0;
switch (xtr.Name.ToUpper())
{
case "IDDOCUMENTO": objpago.IdDocumento = xtr.Value; break;
case "SERIE": objpago.Serie = xtr.Value; break;
case "FOLIO": objpago.Folio = xtr.Value; break;
case "MONEDADR": objpago.MonedaDR = xtr.Value; break;
case "METODODEPAGODR": objpago.MetodoDePagoDR = xtr.Value; break;
case "NUMPARCIALIDAD": objpago.NumParcialidad = xtr.Value; break;
case "IMPSALDOANT": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoAnt = Basep; break;
case "IMPPAGADO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpPagado = Basep; break;
case "IMPSALDOINSOLUTO": decimal.TryParse(xtr.Value, out Basep); objpago.ImpSaldoInsoluto = Basep; break;
}
conts = xtr.MoveToNextAttribute();
}
conts = xtr.MoveToFirstAttribute();
xmlCFDI.complemento.Pagos.doctosRelacionados.Add(objpago);
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
else
{
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
}
}
else
{
//si no entro en ninguna de los anteriores no se debe ciclar
while ((canread = xtr.Read()) && xtr.NodeType != XmlNodeType.Element) { }
}
}
}
}
}
if (xmlCFDI.comprobante.Version == "3.3" || xmlCFDI.comprobante.Version == "3.2")
{
return xmlCFDI;
}
else
{
return null;
}
}
public class utilValores
{
public utilValores(string nombre, string valor)
{
Nombre = nombre;
Valor = valor;
}
public string Nombre { get; set; }
public string Valor { get; set; }
}
public class utilImage
{
public utilImage(byte[] imagenByte)
{
ImagenByte = imagenByte;
}
public byte[] ImagenByte { get; set; }
}
}
public class CFDIComplemento
{
public string xmlns_tfd { get; set; }
public string xsi_schemaLocation { get; set; }
public string Version { get; set; }
public string UUID { get; set; }
public string FechaTimbrado { get; set; }
public string RfcProvCertif { get; set; }
public string SelloCFD { get; set; }
public string NoCertificadoSAT { get; set; }
public string SelloSAT { get; set; }
public CFDIPago Pagos { get; set; }
public string CadenaOriginal
{
get
{
return string.Format("||{0}|{1}|{2}|{3}|{4}|{5}||", Version, UUID, FechaTimbrado, RfcProvCertif, SelloCFD, NoCertificadoSAT);
}
}
}
public class CFDIComprobante
{
public string xmlns_cfdi { get; set; }
public string xmlns_xsi { get; set; }
public string xsi_schemaLocation { get; set; }
public string Version { get; set; }
public string Serie { get; set; }
public string Folio { get; set; }
public string Fecha { get; set; }
public string Moneda { get; set; }
public decimal SubTotal { get; set; }
public decimal Total { get; set; }
public decimal Descuento { get; set; }
public decimal TipoCambio { get; set; }
public string TipoDeComprobante { get; set; }
public string TipoDeComprobanteSIG
{
get
{
string retorno = "";
if (Version == "3.3")
{
switch (TipoDeComprobante)
{
case "I":
retorno = "Ing";
break;
case "E":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
break;
}
}
else if (Version == "3.2")
{
switch (TipoDeComprobante)
{
case "ingreso":
retorno = "Ing";
break;
case "egreso":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
break;
}
}
else { retorno = TipoDeComprobante; }
return retorno;
}
}
public string TipoDeComprobanteTexto
{
get
{
string retorno = "";
if (Version == "3.3")
{
switch (TipoDeComprobante)
{
case "I":
retorno = "Ingreso";
break;
case "E":
retorno = "Egreso";
break;
case "P":
retorno = "Pago";
break;
case "T":
retorno = "Traslado";
break;
case "N":
retorno = "Nómina";
break;
default:
retorno = TipoDeComprobante;
break;
}
}
else if (Version == "3.2")
{
switch (TipoDeComprobante)
{
case "ingreso":
retorno = "Ing";
break;
case "egreso":
retorno = "Egs";
break;
case "P":
retorno = "PA";
break;
//case "T":
// retorno = "Traslado";
// break;
//case "N":
// retorno = "Nómina";
// break;
default:
retorno = TipoDeComprobante;
break;
}
}
else { retorno = TipoDeComprobante; }
return retorno;
}
}
public string FormaPago { get; set; }
public string FormaPagoTexto
{
get
{
string retorno = "";
switch (FormaPago)
{
case "01": retorno = "Efectivo"; break;
case "02": retorno = "Cheque nominativo"; break;
case "03": retorno = "Transferencia electrónica de fondos"; break;
case "04": retorno = "Tarjeta de crédito"; break;
case "05": retorno = "Monedero electrónico"; break;
case "06": retorno = "Dinero electrónico"; break;
case "08": retorno = "Vales de despensa"; break;
case "12": retorno = "Dación en pago"; break;
case "13": retorno = "Pago por subrogación"; break;
case "14": retorno = "Pago por consignación"; break;
case "15": retorno = "Condonación"; break;
case "17": retorno = "Compensación"; break;
case "23": retorno = "Novación"; break;
case "24": retorno = "Confusión"; break;
case "25": retorno = "Remisión de deuda"; break;
case "26": retorno = "Prescripción o caducidad"; break;
case "27": retorno = "A satisfacción del acreedor"; break;
case "28": retorno = "Tarjeta de débito"; break;
case "29": retorno = "Tarjeta de servicios"; break;
case "30": retorno = "Aplicación de anticipos"; break;
case "31": retorno = "Intermediario pagos"; break;
case "99": retorno = "Por definir"; break;
default: retorno = FormaPago; break;
}
return retorno;
}
}
public string MetodoPago { get; set; }
public string MetodoPagoTexto
{
get
{
string retorno = "";
switch (MetodoPago)
{
case "PUE": retorno = "Pago en una sola exhibición"; break;
case "PPD": retorno = "Pago en parcialidades o diferido"; break;
default: retorno = MetodoPago; break;
}
return retorno;
}
}
public string CondicionesDePago { get; set; }
public string LugarExpedicion { get; set; }
public string Confirmacion { get; set; }
public string NoCertificado { get; set; }
public string Sello { get; set; }
public string Certificado { get; set; }
}
public class CFDIConcepto
{
public CFDIConcepto()
{
Impuestos = new List<CFDIConceptoImpuesto>();
}
public string ClaveProdServ { get; set; }
public string NoIdentificacion { get; set; }
public string Cantidad { get; set; }
public string ClaveUnidad { get; set; }
public string Unidad { get; set; }
public decimal ValorUnitario { get; set; }
public decimal Importe { get; set; }
public decimal Descuento { get; set; }
public string NumeroPedimento { get; set; }
public string CuentaPredial { get; set; }
public string Descripcion { get; set; }
public List<CFDIConceptoImpuesto> Impuestos { get; set; }
}
public class CFDIConcepto_I
{
public int tipo { get; set; }
public int orden { get; set; }
public string ClaveProdServ { get; set; }
public string NoIdentificacion { get; set; }
public string Cantidad { get; set; }
public string ClaveUnidad { get; set; }
public string Unidad { get; set; }
public decimal ValorUnitario { get; set; }
public decimal Importe { get; set; }
public decimal Descuento { get; set; }
public string NumeroPedimento { get; set; }
public string CuentaPredial { get; set; }
public string Descripcion { get; set; }
public string Impuesto { get; set; }
public string Impuesto_Tipo { get; set; }
public decimal Impuesto_Base { get; set; }
public string Impuesto_TipoFactor { get; set; }
public string Impuesto_TasaOCuota { get; set; }
public decimal Impuesto_Importe { get; set; }
}
public class CFDIConceptoImpuesto
{
public string Impuesto { get; set; }
public string ImpuestoTexto
{
get
{
string retorno = "";
switch (Impuesto)
{
case "001": retorno = "ISR"; break;
case "002": retorno = "IVA"; break;
case "003": retorno = "IEPS"; break;
}
return retorno;
}
}
public string Tipo { get; set; }
public decimal Base { get; set; }
public string TipoFactor { get; set; }
public string TasaOCuota { get; set; }
public decimal Importe { get; set; }
}
public class CFDIEmisor
{
public string RegimenFiscal { get; set; }
public string RegimenFiscalTexto
{
get
{
string retorno = "";
switch (RegimenFiscal)
{
case "601": retorno = "General de Ley Personas Morales"; break;
case "603": retorno = "Personas Morales con Fines no Lucrativos"; break;
case "605": retorno = "Sueldos y Salarios e Ingresos Asimilados a Salarios"; break;
case "606": retorno = "Arrendamiento"; break;
case "608": retorno = "Demás ingresos"; break;
case "609": retorno = "Consolidación"; break;
case "610": retorno = "Residentes en el Extranjero sin Establecimiento Permanente en México"; break;
case "611": retorno = "Ingresos por Dividendos (socios y accionistas)"; break;
case "612": retorno = "Personas Físicas con Actividades Empresariales y Profesionales"; break;
case "614": retorno = "Ingresos por intereses"; break;
case "616": retorno = "Sin obligaciones fiscales"; break;
case "620": retorno = "Sociedades Cooperativas de Producción que optan por diferir sus ingresos"; break;
case "621": retorno = "Incorporación Fiscal"; break;
case "622": retorno = "Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras"; break;
case "623": retorno = "Opcional para Grupos de Sociedades"; break;
case "624": retorno = "Coordinados"; break;
case "628": retorno = "Hidrocarburos"; break;
case "607": retorno = "Régimen de Enajenación o Adquisición de Bienes"; break;
case "629": retorno = "De los Regímenes Fiscales Preferentes y de las Empresas Multinacionales"; break;
case "630": retorno = "Enajenación de acciones en bolsa de valores"; break;
case "615": retorno = "Régimen de los ingresos por obtención de premios"; break;
}
return retorno;
}
}
public string Nombre { get; set; }
public string Rfc { get; set; }
}
public class CFDIImpuesto
{
public string Tipo { get; set; }
public string Impuesto { get; set; }
public string ImpuestoTexto
{
get
{
string retorno = "";
switch (Impuesto)
{
case "001": retorno = "ISR"; break;
case "002": retorno = "IVA"; break;
case "003": retorno = "IEPS"; break;
}
return retorno;
}
}
public string TipoFactor { get; set; }
public string TasaOCuota { get; set; }
public decimal Importe { get; set; }
}
public class CFDIPago
{
public CFDIPago()
{
doctosRelacionados = new List<CFDIPagoDoctoRelacionado>();
}
public string FechaPago { get; set; }
public string FormaDePagoP { get; set; }
public string FormaDePagoPText { get; set; }
public string MonedaP { get; set; }
public decimal Monto { get; set; }
public decimal TipoCambioP { get; set; }
public string NumOperacion { get; set; }
public string NomBancoOrdExt { get; set; }
public string RfcEmisorCtaOrd { get; set; }
public string CtaOrdenante { get; set; }
public string RfcEmisorCtaBen { get; set; }
public string CtaBeneficiario { get; set; }
public List<CFDIPagoDoctoRelacionado> doctosRelacionados { get; set; }
}
public class CFDIPagoDoctoRelacionado
{
public string IdDocumento { get; set; }
public string Serie { get; set; }
public string Folio { get; set; }
public string MonedaDR { get; set; }
public string MetodoDePagoDR { get; set; }
public string NumParcialidad { get; set; }
public decimal ImpSaldoAnt { get; set; }
public decimal ImpPagado { get; set; }
public decimal ImpSaldoInsoluto { get; set; }
}
public class CFDIReceptor
{
public string Rfc { get; set; }
public string Nombre { get; set; }
public string ResidenciaFiscal { get; set; }
public string NumRegIdTrib { get; set; }
public string UsoCFDI { get; set; }
public string UsoCFDITexto
{
get
{
string retorno = "N/A";
switch (UsoCFDI)
{
case "G01":
retorno = "Adquisición de mercancías";
break;
case "G02":
retorno = "Devoluciones, descuentos o bonificaciones";
break;
case "G03":
retorno = "Gastos en general";
break;
case "I01":
retorno = "Construcciones";
break;
case "I02":
retorno = "Mobiliario y equipo de oficina por inversiones";
break;
case "I03":
retorno = "Equipo de transporte";
break;
case "I04":
retorno = "Equipo de cómputo y accesorios";
break;
case "I05":
retorno = "Dados, troqueles, moldes, matrices y herramental";
break;
case "I06":
retorno = "Comunicaciones telefónicas";
break;
case "I07":
retorno = "Comunicaciones satelitales";
break;
case "I08":
retorno = "Otra maquinaria y equipo";
break;
case "D01":
retorno = "Honorarios médicos, dentales y gastos hospitalarios.";
break;
case "D02":
retorno = "Gastos médicos por incapacidad o discapacidad";
break;
case "D03":
retorno = "Gastos funerales.";
break;
case "D04":
retorno = "Donativos.";
break;
case "D05":
retorno = "Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación).";
break;
case "D06":
retorno = "Aportaciones voluntarias al SAR.";
break;
case "D07":
retorno = "Primas por seguros de gastos médicos.";
break;
case "D08":
retorno = "Gastos de transportación escolar obligatoria.";
break;
case "D09":
retorno = "Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones.";
break;
case "D10":
retorno = "Pagos por servicios educativos (colegiaturas)";
break;
case "P01":
retorno = "Por definir";
break;
default:
break;
}
return retorno;
}
}
}
public class CFDIRelacionado
{
public string TipoRelacion { get; set; }
public string TipoRelacionTexto
{
get
{
string retorno;
switch (TipoRelacion)
{
case "01": retorno = "Nota de crédito de los documentos relacionados"; break;
case "02": retorno = "Nota de débito de los documentos relacionados"; break;
case "03": retorno = "Devolución de mercancía sobre facturas o traslados previos"; break;
case "04": retorno = "Sustitución de los CFDI previos"; break;
case "05": retorno = "Traslados de mercancias facturados previamente"; break;
case "06": retorno = "Factura generada por los traslados previos"; break;
case "07": retorno = "CFDI por aplicación de anticipo"; break;
default:
retorno = "Por definir";
break;
}
return retorno;
}
}
public string UUID { get; set; }
}
}

View File

@@ -105,10 +105,12 @@ Partial Class Ventas_RepTopClientesVentas
End Sub
Private Sub CambioGrafica()
Dim DtClientesAux As New DataTable
DtClientesAux = DtClientes.FiltraParametros("CveCliente > 0")
Dim Dt As New DataTable()
Dt.Columns.Add("Cliente")
Dt.Columns.Add("Importe")
For Each Dr As DataRow In DtClientes.Rows
For Each Dr As DataRow In DtClientesAux.Rows
Dim Row As DataRow = Nothing
Row = Dt.NewRow()
Row("Cliente") = Dr("NombreComercial").ToString

View File

@@ -10,6 +10,10 @@
<package id="Microsoft.AspNet.SignalR.JS" version="2.4.1" targetFramework="net45" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.4.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net4" />
<package id="Microsoft.AspNet.WebApi" version="5.2.4" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.4" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.4" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.4" targetFramework="net45" />
<package id="Microsoft.Bcl" version="1.1.9" targetFramework="net40" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net40" />
<package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net40" />

View File

@@ -48,10 +48,6 @@