.
This commit is contained in:
@@ -1445,7 +1445,7 @@ Public Class ClsVentas
|
|||||||
CveVendedor As String, CveUsuario As Integer, CveEstatus As String, IVA As String, CveEmpresa As Integer, Gpo As Integer, Optional TipoDocto As String = "-1",
|
CveVendedor As String, CveUsuario As Integer, CveEstatus As String, IVA As String, CveEmpresa As Integer, Gpo As Integer, Optional TipoDocto As String = "-1",
|
||||||
Optional CveProyecto As Integer = -1, Optional CveSubProyecto As String = "-1", Optional TipoCambio As Integer = 1, Optional TCEspecifico As Decimal = -1, Optional CveUsuarioConsulta As Integer = -1,
|
Optional CveProyecto As Integer = -1, Optional CveSubProyecto As String = "-1", Optional TipoCambio As Integer = 1, Optional TCEspecifico As Decimal = -1, Optional CveUsuarioConsulta As Integer = -1,
|
||||||
Optional CveClienteClasificacion As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional TipoCliente As Integer = -1, Optional ModalidadContable As Boolean = False,
|
Optional CveClienteClasificacion As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional TipoCliente As Integer = -1, Optional ModalidadContable As Boolean = False,
|
||||||
Optional EsDistribuidor As Integer = -1) As Boolean
|
Optional EsDistribuidor As Integer = -1, Optional CveTipoRelacion As Integer = -1) As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
DataAdapter("PA_Vta_VentasGetRep")
|
DataAdapter("PA_Vta_VentasGetRep")
|
||||||
|
|
||||||
@@ -1474,6 +1474,7 @@ Public Class ClsVentas
|
|||||||
.Add("@TipoCliente", SqlDbType.Int).Value = TipoCliente
|
.Add("@TipoCliente", SqlDbType.Int).Value = TipoCliente
|
||||||
.Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor
|
.Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor
|
||||||
.Add("@ModalidadContable", SqlDbType.Bit).Value = ModalidadContable
|
.Add("@ModalidadContable", SqlDbType.Bit).Value = ModalidadContable
|
||||||
|
.Add("@CveTipoRelacion", SqlDbType.Int).Value = CveTipoRelacion
|
||||||
End With
|
End With
|
||||||
|
|
||||||
Try
|
Try
|
||||||
@@ -1580,7 +1581,7 @@ Public Class ClsVentas
|
|||||||
CveSubProyectoEjecucion As Integer, CveEmpresa As Integer, FechaIEjec As Date, FechaFEjec As Date, Optional CveProyecto As Integer = -1,
|
CveSubProyectoEjecucion As Integer, CveEmpresa As Integer, FechaIEjec As Date, FechaFEjec As Date, Optional CveProyecto As Integer = -1,
|
||||||
Optional CveSubProyecto As String = "-1", Optional TipoCambio As Integer = 1, Optional TCEspecifico As Decimal = -1, Optional CveMoneda As Integer = -1, Optional CveUsuarioConsulta As Integer = -1,
|
Optional CveSubProyecto As String = "-1", Optional TipoCambio As Integer = 1, Optional TCEspecifico As Decimal = -1, Optional CveMoneda As Integer = -1, Optional CveUsuarioConsulta As Integer = -1,
|
||||||
Optional CveClienteClasificacion As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional TipoCliente As Integer = -1, Optional ModalidadContable As Boolean = False,
|
Optional CveClienteClasificacion As Integer = -1, Optional CveCondicionesPago As Integer = -1, Optional TipoCliente As Integer = -1, Optional ModalidadContable As Boolean = False,
|
||||||
Optional EsDistribuidor As Integer = -1) As Boolean
|
Optional EsDistribuidor As Integer = -1, Optional CveTipoRelacion As Integer = -1) As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
DataAdapter("PA_Vta_VentasGetRepDetalle")
|
DataAdapter("PA_Vta_VentasGetRepDetalle")
|
||||||
|
|
||||||
@@ -1614,6 +1615,7 @@ Public Class ClsVentas
|
|||||||
.Add("@TipoCliente", SqlDbType.Int).Value = TipoCliente
|
.Add("@TipoCliente", SqlDbType.Int).Value = TipoCliente
|
||||||
.Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor
|
.Add("@EsDistribuidor", SqlDbType.Int).Value = EsDistribuidor
|
||||||
.Add("@ModalidadContable", SqlDbType.Bit).Value = ModalidadContable
|
.Add("@ModalidadContable", SqlDbType.Bit).Value = ModalidadContable
|
||||||
|
.Add("@CveTipoRelacion", SqlDbType.Int).Value = CveTipoRelacion
|
||||||
End With
|
End With
|
||||||
|
|
||||||
Try
|
Try
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ Imports System.Data
|
|||||||
Imports System.Xml.Serialization
|
Imports System.Xml.Serialization
|
||||||
Imports System.Net
|
Imports System.Net
|
||||||
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
|
Imports ProfactCartaPorte = Profact.TimbraCFDI33.Complementos.CartaPorte20
|
||||||
|
Imports System.Reflection
|
||||||
|
|
||||||
Public Class Timbrado
|
Public Class Timbrado
|
||||||
|
|
||||||
@@ -1228,10 +1229,17 @@ Public Class Timbrado
|
|||||||
|
|
||||||
|
|
||||||
Case 5
|
Case 5
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
|
||||||
|
Dim Ret As String = TimbrarFacturaPADEv40(Ventas, UsuarioActual, CvePACEspecial)
|
||||||
|
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||||
|
Retorno = If(Ret = "", True, False)
|
||||||
|
Else
|
||||||
Dim Ret As String = TimbrarFacturaPADEv33(Ventas, UsuarioActual, CvePACEspecial)
|
Dim Ret As String = TimbrarFacturaPADEv33(Ventas, UsuarioActual, CvePACEspecial)
|
||||||
If Ret <> "" Then MensajeErrorCFDI = Ret
|
If Ret <> "" Then MensajeErrorCFDI = Ret
|
||||||
Retorno = If(Ret = "", True, False)
|
Retorno = If(Ret = "", True, False)
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
@@ -3559,36 +3567,30 @@ Public Class Timbrado
|
|||||||
' 'Sucursal matriz de la empresa
|
' 'Sucursal matriz de la empresa
|
||||||
Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoKey}"
|
Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoKey}"
|
||||||
Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoCer}"
|
Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\{UsuarioActual.Empresa.ArchivoCer}"
|
||||||
Dim UsuarioServicio As String = UsuarioActual.Empresa.RFC
|
|
||||||
Dim ClaveServicio As String = UsuarioActual.Empresa.RFC.ToLower
|
|
||||||
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
||||||
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
||||||
Dim UrlServicio As String = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" ' Produccion
|
Dim EmisorNombre As String = UsuarioActual.Empresa.Empresa
|
||||||
|
|
||||||
Dim RutaArchivo As String = $"{UsuarioActual.Empresa.Ruta}XML\{Ventas.TipoDocto}\"
|
Dim RutaArchivo As String = $"{UsuarioActual.Empresa.Ruta}XML\{Ventas.TipoDocto}\"
|
||||||
Dim NombreArchivoXML As String = $"{ObjCFDITimbre.Comprobante.SerieFolio}"
|
Dim NombreArchivoXML As String = $"{ObjCFDITimbre.Comprobante.SerieFolio}"
|
||||||
|
|
||||||
Dim SubTotal As Decimal = 0
|
Dim SubTotal As Decimal = 0
|
||||||
Dim AmbienteProductivo As Boolean = True
|
Dim AmbienteProductivo As Boolean = True
|
||||||
Dim NumDecimalesImporte As Integer = 2
|
Dim NumDecimalesImporte As Integer = 2
|
||||||
|
|
||||||
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
||||||
|
|
||||||
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
||||||
AmbienteProductivo = False
|
AmbienteProductivo = False
|
||||||
UsuarioServicio = "fgomez"
|
|
||||||
ClaveServicio = "12121212"
|
|
||||||
Clave = "12345678a"
|
Clave = "12345678a"
|
||||||
|
EmisorRFC = "IIA040805DZ4"
|
||||||
'EmisorRFC = "AAA010101AAA"
|
EmisorNombre = "INDISTRIA ILUMINADORA DE ALMACENES SA DE CV"
|
||||||
'ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\publicKey.key"
|
||||||
'ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\publicCer.cer"
|
||||||
|
UsuarioActual.Empresa.CodigoRegimenFiscal = "601"
|
||||||
EmisorRFC = "ZUÑ920208KL4"
|
|
||||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
|
||||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
|
||||||
|
|
||||||
UrlServicio = "https://pruebas.timbracfdi33.mx/Timbrado.asmx"
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
#Region "Valida"
|
#Region "Valida"
|
||||||
If Not File.Exists(ArchivoCertificado) Then
|
If Not File.Exists(ArchivoCertificado) Then
|
||||||
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
|
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
|
||||||
@@ -3675,6 +3677,7 @@ Public Class Timbrado
|
|||||||
comprobante.MetodoPago = ObjCFDITimbre.Comprobante.MetodoPago
|
comprobante.MetodoPago = ObjCFDITimbre.Comprobante.MetodoPago
|
||||||
comprobante.MetodoPagoSpecified = If(ObjCFDITimbre.Comprobante.MetodoPago <> "", True, False)
|
comprobante.MetodoPagoSpecified = If(ObjCFDITimbre.Comprobante.MetodoPago <> "", True, False)
|
||||||
comprobante.LugarExpedicion = ObjCFDITimbre.Comprobante.LugarExpedicion
|
comprobante.LugarExpedicion = ObjCFDITimbre.Comprobante.LugarExpedicion
|
||||||
|
comprobante.Exportacion = ObjCFDITimbre.Comprobante.Exportacion
|
||||||
|
|
||||||
If ObjCFDITimbre.CFDIRelacionados.TipoRelacion <> "" Then
|
If ObjCFDITimbre.CFDIRelacionados.TipoRelacion <> "" Then
|
||||||
Dim CfdiRelacionados As New Profact.TimbraCFDI40.ComprobanteCfdiRelacionados
|
Dim CfdiRelacionados As New Profact.TimbraCFDI40.ComprobanteCfdiRelacionados
|
||||||
@@ -3691,7 +3694,7 @@ Public Class Timbrado
|
|||||||
#Region "Emisor"
|
#Region "Emisor"
|
||||||
comprobante.Emisor = New Profact.TimbraCFDI40.ComprobanteEmisor()
|
comprobante.Emisor = New Profact.TimbraCFDI40.ComprobanteEmisor()
|
||||||
comprobante.Emisor.Rfc = EmisorRFC
|
comprobante.Emisor.Rfc = EmisorRFC
|
||||||
comprobante.Emisor.Nombre = UsuarioActual.Empresa.Empresa
|
comprobante.Emisor.Nombre = EmisorNombre
|
||||||
comprobante.Emisor.RegimenFiscal = UsuarioActual.Empresa.CodigoRegimenFiscal
|
comprobante.Emisor.RegimenFiscal = UsuarioActual.Empresa.CodigoRegimenFiscal
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
@@ -3702,6 +3705,7 @@ Public Class Timbrado
|
|||||||
comprobante.Receptor.Nombre = ObjCFDITimbre.Receptor.Nombre
|
comprobante.Receptor.Nombre = ObjCFDITimbre.Receptor.Nombre
|
||||||
comprobante.Receptor.UsoCFDI = ObjCFDITimbre.Receptor.UsoCFDI
|
comprobante.Receptor.UsoCFDI = ObjCFDITimbre.Receptor.UsoCFDI
|
||||||
comprobante.Receptor.RegimenFiscalReceptor = ObjCFDITimbre.Receptor.RegimenFiscalReceptor
|
comprobante.Receptor.RegimenFiscalReceptor = ObjCFDITimbre.Receptor.RegimenFiscalReceptor
|
||||||
|
comprobante.Receptor.DomicilioFiscalReceptor = ObjCFDITimbre.Receptor.DomicilioFiscalReceptor
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
@@ -3722,9 +3726,10 @@ Public Class Timbrado
|
|||||||
If concep.Unidad <> "" Then comprobante.Conceptos(i).Unidad = concep.Unidad
|
If concep.Unidad <> "" Then comprobante.Conceptos(i).Unidad = concep.Unidad
|
||||||
comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad
|
comprobante.Conceptos(i).ClaveUnidad = concep.ClaveUnidad
|
||||||
comprobante.Conceptos(i).Descripcion = concep.Descripcion
|
comprobante.Conceptos(i).Descripcion = concep.Descripcion
|
||||||
comprobante.Conceptos(i).ValorUnitario = concep.ValorUnitario
|
comprobante.Conceptos(i).ValorUnitario = concep.ValorUnitario.RoundSQL(6)
|
||||||
comprobante.Conceptos(i).Importe = concep.Importe.RoundSQL(NumDecimalesImporte)
|
comprobante.Conceptos(i).Importe = concep.Importe.RoundSQL(NumDecimalesImporte)
|
||||||
comprobante.Conceptos(i).ClaveProdServ = concep.ClaveProdServ
|
comprobante.Conceptos(i).ClaveProdServ = concep.ClaveProdServ
|
||||||
|
comprobante.Conceptos(i).ObjetoImp = concep.ObjetoImpuesto
|
||||||
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then
|
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then
|
||||||
If concep.Descuento > 0 Then
|
If concep.Descuento > 0 Then
|
||||||
@@ -3800,6 +3805,7 @@ Public Class Timbrado
|
|||||||
|
|
||||||
For Each Tras In ObjCFDITimbre.Traslados
|
For Each Tras In ObjCFDITimbre.Traslados
|
||||||
comprobante.Impuestos.Traslados(y) = New Profact.TimbraCFDI40.ComprobanteImpuestosTraslado()
|
comprobante.Impuestos.Traslados(y) = New Profact.TimbraCFDI40.ComprobanteImpuestosTraslado()
|
||||||
|
comprobante.Impuestos.Traslados(y).Base = Tras.Base
|
||||||
comprobante.Impuestos.Traslados(y).Impuesto = Tras.Impuesto
|
comprobante.Impuestos.Traslados(y).Impuesto = Tras.Impuesto
|
||||||
comprobante.Impuestos.Traslados(y).TipoFactor = Tras.TipoFactor
|
comprobante.Impuestos.Traslados(y).TipoFactor = Tras.TipoFactor
|
||||||
comprobante.Impuestos.Traslados(y).TasaOCuota = Tras.TasaOCuota.FormatoNumero(6)
|
comprobante.Impuestos.Traslados(y).TasaOCuota = Tras.TasaOCuota.FormatoNumero(6)
|
||||||
@@ -4069,13 +4075,13 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
If ObjCFDITimbre.ComplementoPagos.CertPago <> "" Then
|
If ObjCFDITimbre.ComplementoPagos.CertPago <> "" Then
|
||||||
ComPag.Pago(0).CertPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.CertPago)
|
ComPag.Pago(0).CertPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.CertPago).ToString()
|
||||||
End If
|
End If
|
||||||
If ObjCFDITimbre.ComplementoPagos.CadPago <> "" Then
|
If ObjCFDITimbre.ComplementoPagos.CadPago <> "" Then
|
||||||
ComPag.Pago(0).CadPago = ObjCFDITimbre.ComplementoPagos.CadPago
|
ComPag.Pago(0).CadPago = ObjCFDITimbre.ComplementoPagos.CadPago
|
||||||
End If
|
End If
|
||||||
If ObjCFDITimbre.ComplementoPagos.SelloPago <> "" Then
|
If ObjCFDITimbre.ComplementoPagos.SelloPago <> "" Then
|
||||||
ComPag.Pago(0).SelloPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.SelloPago)
|
ComPag.Pago(0).SelloPago = System.Text.Encoding.Default.GetBytes(ObjCFDITimbre.ComplementoPagos.SelloPago).ToString()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
||||||
@@ -4785,7 +4791,7 @@ Public Class Timbrado
|
|||||||
|
|
||||||
' End Try
|
' End Try
|
||||||
'//Timbramos el CFDI por medio del conector y guardamos resultado
|
'//Timbramos el CFDI por medio del conector y guardamos resultado
|
||||||
Dim resultadoTimbre As Profact.TimbraCFDI.ResultadoTimbre
|
Dim resultadoTimbre As Profact.TimbraCFDI.ResultadoTimbre = Nothing
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
@@ -4880,7 +4886,8 @@ Public Class Timbrado
|
|||||||
|
|
||||||
Else
|
Else
|
||||||
|
|
||||||
If String.IsNullOrEmpty(resultadoTimbre.Detalle) Then
|
If Not String.IsNullOrEmpty(resultadoTimbre.Detalle) Then
|
||||||
|
Try
|
||||||
Dim Resultados = Newtonsoft.Json.Linq.JArray.Parse(resultadoTimbre.Detalle)
|
Dim Resultados = Newtonsoft.Json.Linq.JArray.Parse(resultadoTimbre.Detalle)
|
||||||
|
|
||||||
If Resultados.Count > 0 Then
|
If Resultados.Count > 0 Then
|
||||||
@@ -4888,8 +4895,12 @@ Public Class Timbrado
|
|||||||
Retorno = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
Retorno = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
||||||
MensajeErrorCFDI = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
MensajeErrorCFDI = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente"
|
||||||
Else
|
Else
|
||||||
Retorno = Resultados(0)("Value").ToString()
|
Dim sbMsg As New StringBuilder
|
||||||
MensajeErrorCFDI = Resultados(0)("Value").ToString()
|
For Each msg In Resultados
|
||||||
|
sbMsg.AppendFormat("{0}.<br/>", msg("Value"))
|
||||||
|
Next
|
||||||
|
Retorno = sbMsg.ToString()
|
||||||
|
MensajeErrorCFDI = Retorno
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
Retorno = resultadoTimbre.Detalle
|
Retorno = resultadoTimbre.Detalle
|
||||||
@@ -4903,6 +4914,10 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
Retorno = ex.ToString()
|
||||||
|
End Try
|
||||||
|
|
||||||
Else
|
Else
|
||||||
Retorno = resultadoTimbre.Detalle
|
Retorno = resultadoTimbre.Detalle
|
||||||
MensajeErrorCFDI = resultadoTimbre.Detalle
|
MensajeErrorCFDI = resultadoTimbre.Detalle
|
||||||
@@ -4913,107 +4928,17 @@ Public Class Timbrado
|
|||||||
GuardaLogTimbrado(swTiempo.ToString, UsuarioActual.Empresa.CvePAC)
|
GuardaLogTimbrado(swTiempo.ToString, UsuarioActual.Empresa.CvePAC)
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
Public Function TimbrarFacturaGoCFDIv40(Ventas As Modelos.Factura, UsuarioActual As Usuario, Optional CvePACEspecial As Integer = -1) As String
|
|
||||||
If CvePACEspecial = -1 Then
|
Private Function GenerarXMLGoCFDIv40(ByRef cfdi As GoFac.Cfdi4, EmisorRFC As String, ArchivoCertificado As String, llaveBase64 As String, Clave As String, Ventas As Modelos.Factura, UsuarioActual As Usuario, Optional CvePACEspecial As Integer = -1) As String
|
||||||
CvePACEspecial = UsuarioActual.Empresa.CvePAC
|
|
||||||
End If
|
|
||||||
Dim sw As New Diagnostics.Stopwatch
|
|
||||||
Dim swmili As Long = 0
|
|
||||||
Dim swTiempo As New StringBuilder
|
|
||||||
sw.Start()
|
|
||||||
Dim Retorno As String = ""
|
Dim Retorno As String = ""
|
||||||
Dim ObjCFDITimbre As CFDITimbre = Ventas.Timbre
|
MensajeErrorCFDI = ""
|
||||||
|
|
||||||
Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey)
|
|
||||||
Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer)
|
|
||||||
Dim UsuarioServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC, "rene.molina@adsistemas.mx")
|
|
||||||
Dim ClaveServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC.ToLower, "rene2018")
|
|
||||||
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
|
||||||
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
|
||||||
Dim UrlServicio As String = "" ' Produccion
|
|
||||||
Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto)
|
|
||||||
Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio
|
|
||||||
Dim SubTotal As Decimal = 0
|
|
||||||
Dim TimbraProduccion As Boolean = True
|
|
||||||
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
|
||||||
|
|
||||||
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
|
|
||||||
|
|
||||||
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
|
||||||
|
|
||||||
EmisorRFC = "EKU9003173C9"
|
|
||||||
UsuarioActual.Empresa.Empresa = "ESCUELA KEMPER URGATE SA DE CV"
|
|
||||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.key"
|
|
||||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.cer"
|
|
||||||
|
|
||||||
Clave = "12345678a"
|
|
||||||
TimbraProduccion = False
|
|
||||||
UsuarioServicio = "UserTest"
|
|
||||||
ClaveServicio = "1234567890"
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
#Region "Valida"
|
|
||||||
If Not File.Exists(ArchivoCertificado) Then
|
|
||||||
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
|
|
||||||
Return "El archivo de certificado no existe"
|
|
||||||
End If
|
|
||||||
If Not File.Exists(ArchivoLLave) Then
|
|
||||||
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
|
|
||||||
Return "El archivo de llave privada no existe"
|
|
||||||
End If
|
|
||||||
If UsuarioActual.Empresa.ContraseñaKey = "" Then
|
|
||||||
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
|
|
||||||
Return "La clave no puede ser vacía"
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "Variables"
|
|
||||||
Dim llaveByte As Byte(), certByte As Byte()
|
|
||||||
Dim llaveBase64 As String, certBase64 As String
|
|
||||||
Dim cfdi As New GoFac.Cfdi4
|
|
||||||
Dim complemento As String = ""
|
|
||||||
Dim complementoConcepto As String = ""
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "Verifica"
|
|
||||||
Try
|
|
||||||
llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave)
|
|
||||||
llaveBase64 = Convert.ToBase64String(llaveByte)
|
|
||||||
Catch ex As Exception
|
|
||||||
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
|
|
||||||
Return "Error al leer la llave privada"
|
|
||||||
End Try
|
|
||||||
|
|
||||||
|
|
||||||
Try
|
|
||||||
certByte = System.IO.File.ReadAllBytes(ArchivoCertificado)
|
|
||||||
certBase64 = Convert.ToBase64String(certByte)
|
|
||||||
Catch ex As Exception
|
|
||||||
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
|
|
||||||
Return "Error al leer el certificado"
|
|
||||||
|
|
||||||
End Try
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
sw.Stop()
|
|
||||||
swTiempo.AppendFormat("Verificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
|
||||||
swmili = sw.ElapsedMilliseconds
|
|
||||||
sw.Start()
|
|
||||||
|
|
||||||
|
|
||||||
'cfdi.QuitarCerosDecimalDerecha = True ' no limita a 2 decimales, el atributo, de cantidad y precio unitario
|
'cfdi.QuitarCerosDecimalDerecha = True ' no limita a 2 decimales, el atributo, de cantidad y precio unitario
|
||||||
#Region "Certificado"
|
#Region "Certificado"
|
||||||
cfdi.CertArchivo(ArchivoCertificado)
|
cfdi.CertArchivo(ArchivoCertificado)
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
Dim ObjCFDITimbre As CFDITimbre = Ventas.Timbre
|
||||||
sw.Stop()
|
|
||||||
swTiempo.AppendFormat("Certificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
|
||||||
swmili = sw.ElapsedMilliseconds
|
|
||||||
sw.Start()
|
|
||||||
|
|
||||||
#Region "Comprobante"
|
#Region "Comprobante"
|
||||||
|
|
||||||
@@ -5464,15 +5389,14 @@ Public Class Timbrado
|
|||||||
End If
|
End If
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
sw.Stop()
|
|
||||||
swTiempo.AppendFormat("Armado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
|
||||||
swmili = sw.ElapsedMilliseconds
|
|
||||||
sw.Start()
|
|
||||||
#Region "Genera XML"
|
#Region "Genera XML"
|
||||||
Dim ArchivoGenerado As Boolean = False
|
Dim ArchivoGenerado As Boolean = False
|
||||||
Try
|
Try
|
||||||
cfdi.GenerarXmlB64(llaveBase64, Clave)
|
cfdi.GenerarXmlB64(llaveBase64, Clave)
|
||||||
ArchivoGenerado = True
|
ArchivoGenerado = True
|
||||||
|
If ArchivoGenerado Then
|
||||||
|
Retorno = ""
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Retorno = cfdi.Mensaje
|
Retorno = cfdi.Mensaje
|
||||||
If Retorno = "" OrElse IsNothing(Retorno) Then
|
If Retorno = "" OrElse IsNothing(Retorno) Then
|
||||||
@@ -5481,14 +5405,115 @@ Public Class Timbrado
|
|||||||
MensajeErrorCFDI = Retorno
|
MensajeErrorCFDI = Retorno
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
If Not String.IsNullOrEmpty(MensajeErrorCFDI) Then
|
||||||
|
Retorno = MensajeErrorCFDI
|
||||||
|
End If
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function TimbrarFacturaGoCFDIv40(Ventas As Modelos.Factura, UsuarioActual As Usuario, Optional CvePACEspecial As Integer = -1) As String
|
||||||
|
If CvePACEspecial = -1 Then
|
||||||
|
CvePACEspecial = UsuarioActual.Empresa.CvePAC
|
||||||
|
End If
|
||||||
|
Dim sw As New Diagnostics.Stopwatch
|
||||||
|
Dim swmili As Long = 0
|
||||||
|
Dim swTiempo As New StringBuilder
|
||||||
|
sw.Start()
|
||||||
|
Dim Retorno As String = ""
|
||||||
|
Dim ObjCFDITimbre As CFDITimbre = Ventas.Timbre
|
||||||
|
|
||||||
|
Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey)
|
||||||
|
Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer)
|
||||||
|
Dim UsuarioServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC, "rene.molina@adsistemas.mx")
|
||||||
|
Dim ClaveServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC.ToLower, "rene2018")
|
||||||
|
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
||||||
|
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
||||||
|
Dim UrlServicio As String = "" ' Produccion
|
||||||
|
Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto)
|
||||||
|
Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio
|
||||||
|
Dim SubTotal As Decimal = 0
|
||||||
|
Dim TimbraProduccion As Boolean = True
|
||||||
|
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
||||||
|
|
||||||
|
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
|
||||||
|
|
||||||
|
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
||||||
|
|
||||||
|
EmisorRFC = "EKU9003173C9"
|
||||||
|
UsuarioActual.Empresa.Empresa = "ESCUELA KEMPER URGATE SA DE CV"
|
||||||
|
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.key"
|
||||||
|
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\EKU9003173C9.cer"
|
||||||
|
|
||||||
|
Clave = "12345678a"
|
||||||
|
TimbraProduccion = False
|
||||||
|
UsuarioServicio = "UserTest"
|
||||||
|
ClaveServicio = "1234567890"
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
#Region "Valida"
|
||||||
|
If Not File.Exists(ArchivoCertificado) Then
|
||||||
|
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
|
||||||
|
Return "El archivo de certificado no existe"
|
||||||
|
End If
|
||||||
|
If Not File.Exists(ArchivoLLave) Then
|
||||||
|
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
|
||||||
|
Return "El archivo de llave privada no existe"
|
||||||
|
End If
|
||||||
|
If UsuarioActual.Empresa.ContraseñaKey = "" Then
|
||||||
|
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
|
||||||
|
Return "La clave no puede ser vacía"
|
||||||
|
End If
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "Variables"
|
||||||
|
Dim llaveByte As Byte(), certByte As Byte()
|
||||||
|
Dim llaveBase64 As String, certBase64 As String
|
||||||
|
Dim cfdi As New GoFac.Cfdi4
|
||||||
|
Dim complemento As String = ""
|
||||||
|
Dim complementoConcepto As String = ""
|
||||||
|
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
#Region "Verifica"
|
||||||
|
Try
|
||||||
|
llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave)
|
||||||
|
llaveBase64 = Convert.ToBase64String(llaveByte)
|
||||||
|
Catch ex As Exception
|
||||||
|
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
|
||||||
|
Return "Error al leer la llave privada"
|
||||||
|
End Try
|
||||||
|
|
||||||
|
|
||||||
|
Try
|
||||||
|
certByte = System.IO.File.ReadAllBytes(ArchivoCertificado)
|
||||||
|
certBase64 = Convert.ToBase64String(certByte)
|
||||||
|
Catch ex As Exception
|
||||||
|
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
|
||||||
|
Return "Error al leer el certificado"
|
||||||
|
|
||||||
|
End Try
|
||||||
|
#End Region
|
||||||
|
|
||||||
|
|
||||||
|
sw.Stop()
|
||||||
|
swTiempo.AppendFormat("Verificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||||
|
swmili = sw.ElapsedMilliseconds
|
||||||
|
sw.Start()
|
||||||
|
|
||||||
|
|
||||||
|
Dim RespGeneracionXML As String = GenerarXMLGoCFDIv40(cfdi, EmisorRFC, ArchivoCertificado, llaveBase64, Clave, Ventas, UsuarioActual, CvePACEspecial)
|
||||||
|
|
||||||
sw.Stop()
|
sw.Stop()
|
||||||
swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||||
swmili = sw.ElapsedMilliseconds
|
swmili = sw.ElapsedMilliseconds
|
||||||
sw.Start()
|
sw.Start()
|
||||||
|
|
||||||
#Region "Timbra"
|
#Region "Timbra"
|
||||||
If ArchivoGenerado Then
|
If RespGeneracionXML = "" Then
|
||||||
|
|
||||||
cfdi.TimbrarCfdi(UsuarioServicio, ClaveServicio, TimbraProduccion)
|
cfdi.TimbrarCfdi(UsuarioServicio, ClaveServicio, TimbraProduccion)
|
||||||
|
|
||||||
@@ -5622,18 +5647,19 @@ Public Class Timbrado
|
|||||||
|
|
||||||
Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey)
|
Dim ArchivoLLave As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoKey)
|
||||||
Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer)
|
Dim ArchivoCertificado As String = String.Format("{0}Certificados\{1}", UsuarioActual.Empresa.Ruta, UsuarioActual.Empresa.ArchivoCer)
|
||||||
Dim UsuarioServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC, "rene.molina@adsistemas.mx")
|
|
||||||
Dim ClaveServicio As String = If(CvePACEspecial = 2, UsuarioActual.Empresa.RFC.ToLower, "rene2018")
|
Dim UsuarioServicio As String = "rene.molina@adssistemas.mx"
|
||||||
|
Dim ClaveServicio As String = "Facturacion2021#"
|
||||||
|
|
||||||
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
Dim Clave As String = UsuarioActual.Empresa.ContraseñaKey
|
||||||
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
Dim EmisorRFC As String = UsuarioActual.Empresa.RFC
|
||||||
Dim UrlServicio As String = "" ' Produccion
|
|
||||||
Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto)
|
Dim RutaArchivo As String = String.Format("{0}XML\{1}\", UsuarioActual.Empresa.Ruta, Ventas.TipoDocto)
|
||||||
Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio
|
Dim NombreArchivoXML As String = ObjCFDITimbre.Comprobante.SerieFolio
|
||||||
Dim SubTotal As Decimal = 0
|
Dim SubTotal As Decimal = 0
|
||||||
Dim TimbraProduccion As Boolean = True
|
Dim TimbraProduccion As Boolean = True
|
||||||
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
If Not Directory.Exists(RutaArchivo) Then Directory.CreateDirectory(RutaArchivo)
|
||||||
|
|
||||||
UrlServicio = "https://cfdi.gofac.com.mx/timbrado.asmx?WSDL"
|
|
||||||
|
|
||||||
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
||||||
|
|
||||||
@@ -5644,9 +5670,6 @@ Public Class Timbrado
|
|||||||
|
|
||||||
Clave = "12345678a"
|
Clave = "12345678a"
|
||||||
TimbraProduccion = False
|
TimbraProduccion = False
|
||||||
UsuarioServicio = "UserTest"
|
|
||||||
ClaveServicio = "1234567890"
|
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
#Region "Valida"
|
#Region "Valida"
|
||||||
@@ -5699,483 +5722,8 @@ Public Class Timbrado
|
|||||||
swmili = sw.ElapsedMilliseconds
|
swmili = sw.ElapsedMilliseconds
|
||||||
sw.Start()
|
sw.Start()
|
||||||
|
|
||||||
|
Dim RespGeneracionXML As String = GenerarXMLGoCFDIv40(cfdi, EmisorRFC, ArchivoCertificado, llaveBase64, Clave, Ventas, UsuarioActual, CvePACEspecial)
|
||||||
|
|
||||||
'cfdi.QuitarCerosDecimalDerecha = True ' no limita a 2 decimales, el atributo, de cantidad y precio unitario
|
|
||||||
#Region "Certificado"
|
|
||||||
cfdi.CertArchivo(ArchivoCertificado)
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
sw.Stop()
|
|
||||||
swTiempo.AppendFormat("Certificado : ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
|
||||||
swmili = sw.ElapsedMilliseconds
|
|
||||||
sw.Start()
|
|
||||||
|
|
||||||
#Region "Comprobante"
|
|
||||||
|
|
||||||
cfdi.Comprobante(
|
|
||||||
ObjCFDITimbre.Comprobante.Serie,
|
|
||||||
ObjCFDITimbre.Comprobante.Folio,
|
|
||||||
ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"),
|
|
||||||
ObjCFDITimbre.Comprobante.FormadePago,
|
|
||||||
ObjCFDITimbre.Comprobante.CondicionesdePago,
|
|
||||||
ObjCFDITimbre.Comprobante.SubTotal,
|
|
||||||
ObjCFDITimbre.Comprobante.Descuentos,
|
|
||||||
ObjCFDITimbre.Comprobante.Moneda,
|
|
||||||
ObjCFDITimbre.Comprobante.TipoCambio.ToString,
|
|
||||||
ObjCFDITimbre.Comprobante.Total,
|
|
||||||
ObjCFDITimbre.Comprobante.TipoComprobante,
|
|
||||||
ObjCFDITimbre.Comprobante.Exportacion,
|
|
||||||
ObjCFDITimbre.Comprobante.MetodoPago,
|
|
||||||
ObjCFDITimbre.Comprobante.LugarExpedicion,
|
|
||||||
ObjCFDITimbre.Comprobante.Confirmacion)
|
|
||||||
|
|
||||||
If ObjCFDITimbre.CFDIRelacionados.TipoRelacion <> "" Then
|
|
||||||
cfdi.CfdiRelacionados(ObjCFDITimbre.CFDIRelacionados.TipoRelacion)
|
|
||||||
For Each uid As String In ObjCFDITimbre.CFDIRelacionados.UUID
|
|
||||||
cfdi.CfdiRelacionado(uid)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
#Region "Emisor"
|
|
||||||
' cfdi.agregarCfdiRelacionados()
|
|
||||||
cfdi.Emisor(EmisorRFC, UsuarioActual.Empresa.Empresa, UsuarioActual.Empresa.CodigoRegimenFiscal, "")
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "Receptor"
|
|
||||||
|
|
||||||
cfdi.Receptor(ObjCFDITimbre.Receptor.RFC, ObjCFDITimbre.Receptor.Nombre, ObjCFDITimbre.Receptor.DomicilioFiscalReceptor, ObjCFDITimbre.Receptor.ResidenciaFiscal, ObjCFDITimbre.Receptor.NumeroRegistroTributario, ObjCFDITimbre.Receptor.RegimenFiscalReceptor, ObjCFDITimbre.Receptor.UsoCFDI)
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "Conceptos"
|
|
||||||
|
|
||||||
'Nodo conceptos, se agregan los PS
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Conceptos IsNot Nothing AndAlso ObjCFDITimbre.Conceptos.Count > 0 Then
|
|
||||||
For Each concep As CFDIConceptos In ObjCFDITimbre.Conceptos
|
|
||||||
cfdi.Concepto(concep.ClaveProdServ, concep.Noidentificacion, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Descripcion, concep.ValorUnitario, concep.Importe, concep.Descuento, concep.ObjetoImpuesto)
|
|
||||||
For Each imp As CFDIConceptosImpuestos In concep.Impuestos
|
|
||||||
If imp.TrasladooRetencion = "T" Then
|
|
||||||
cfdi.ConceptoTraslado(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe)
|
|
||||||
Else
|
|
||||||
cfdi.ConceptoRetencion(imp.Base, imp.Impuesto, imp.TipoFactor, imp.TasaOCuota, imp.Importe)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
If concep.CuentaPredial <> "" Then cfdi.CuentaPredial(concep.CuentaPredial)
|
|
||||||
If concep.NumeroPedimento <> "" Then cfdi.InformacionAduanera(concep.NumeroPedimento)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E") Then
|
|
||||||
|
|
||||||
#Region "Impuestos"
|
|
||||||
'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS
|
|
||||||
If Ventas.Total <> 0 OrElse (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then
|
|
||||||
cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados)
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
#Region " Traslados y Retenciones"
|
|
||||||
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Retenciones.Sum(Function(x) x.Importe) > 0 Then
|
|
||||||
''se acumulan los importes
|
|
||||||
For Each Ret In ObjCFDITimbre.Retenciones
|
|
||||||
cfdi.Retencion(Ret.Impuesto, Ret.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
''se acumulan los importes
|
|
||||||
For Each Tras In ObjCFDITimbre.Traslados
|
|
||||||
cfdi.Traslado(Tras.Base, Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe)
|
|
||||||
Next
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
#Region "Impuestos Locales"
|
|
||||||
|
|
||||||
If ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe) > 0 OrElse ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe) > 0 Then
|
|
||||||
|
|
||||||
cfdi.ImpuestosLocales(ObjCFDITimbre.RetencionesLocales.Sum(Function(x) x.Importe), ObjCFDITimbre.TrasladosLocales.Sum(Function(x) x.Importe))
|
|
||||||
|
|
||||||
For Each ret As CFDIRetencionesLocales In ObjCFDITimbre.RetencionesLocales
|
|
||||||
If ret.Importe > 0 Then
|
|
||||||
cfdi.RetencionLocal(ret.ImpuestoLocalRetenido, ret.TasaRetencion, ret.Importe)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
|
|
||||||
For Each ret As CFDITrasladosLocales In ObjCFDITimbre.TrasladosLocales
|
|
||||||
If ret.Importe > 0 Then
|
|
||||||
cfdi.TrasladoLocal(ret.ImpuestoLocalTraslado, ret.TasaTraslado, ret.Importe)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
'If Ventas.CveComplementoTimbrado > 0 Then
|
|
||||||
|
|
||||||
' Select Case Ventas.CveComplementoTimbrado
|
|
||||||
' Case 5 'INE Proceso Ordinario Directivo Estatal"
|
|
||||||
' cfdi.Ine11("Ordinario", "Directivo Estatal", "0")
|
|
||||||
|
|
||||||
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
|
|
||||||
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
|
|
||||||
' Case 6 'INE Proceso Ordinario Ejecutivo Estatal"
|
|
||||||
' cfdi.Ine11("Ordinario", "Ejecutivo Estatal", "0")
|
|
||||||
|
|
||||||
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, "")
|
|
||||||
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
|
|
||||||
' Case 7 'INE Proceso Ordinario Ejecutivo Nacional"
|
|
||||||
|
|
||||||
' cfdi.Ine11("Ordinario", "Ejecutivo Nacional", Ventas.ComplementoINE.INEIdContabilidad.ToString)
|
|
||||||
' Case 8 'INE PreCampaña
|
|
||||||
' cfdi.Ine11(Ventas.ComplementoINE.INETipoProceso, "", "0")
|
|
||||||
|
|
||||||
' cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite)
|
|
||||||
' cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad)
|
|
||||||
' End Select
|
|
||||||
|
|
||||||
'End If
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
#Region "Comercio Exterior"
|
|
||||||
|
|
||||||
'If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then
|
|
||||||
' If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then
|
|
||||||
|
|
||||||
' 'DATOS GENERALES
|
|
||||||
' cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.NumCertificadoOrigen,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.NumeroExportadorConfiable,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Incoterm,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Subdivision,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Observaciones,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.TipoCambioUSD,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.TotalUSD)
|
|
||||||
' 'EMISOR
|
|
||||||
' cfdi.ComercioExterior11Emisor(If(EmisorRFC.Length >= 12, "", ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CURP))
|
|
||||||
' cfdi.ComercioExterior11Domicilio(ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Calle,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroExterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.NumeroInterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Colonia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Localidad,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Referencia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Municipio,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Estado,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.Pais,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Emisor.CP)
|
|
||||||
' 'RECEPTOR
|
|
||||||
' cfdi.ComercioExterior11Receptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumRegIdTrib)
|
|
||||||
' cfdi.ComercioExterior11DomicilioReceptor(ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Calle,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroExterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.NumeroInterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Colonia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Localidad,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Referencia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Municipio,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP)
|
|
||||||
' cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroInterior,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Colonia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Localidad,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Referencia,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Municipio,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Estado,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Pais,
|
|
||||||
' ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.CP)
|
|
||||||
' 'MERCANCIAS
|
|
||||||
' If ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias IsNot Nothing AndAlso ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias.Count > 0 Then
|
|
||||||
' For Each concep As CFDIComercioExterior11Mercancias In ObjCFDITimbre.Complementos.ComercioExterior11.Mercancias
|
|
||||||
' cfdi.ComercioExterior11Mercancia(concep.NoIdentificacion, concep.FraccionArancelaria, concep.CantidadAduana, concep.UnidadAduana, concep.ValorUnitarioAduana, concep.ValorDolares)
|
|
||||||
' If concep.DescripcionesEspecificas.Marca <> "" Then
|
|
||||||
' cfdi.ComercioExterior11MercanciaDescripcionesEspeciales(concep.DescripcionesEspecificas.Marca,
|
|
||||||
' concep.DescripcionesEspecificas.Modelo,
|
|
||||||
' concep.DescripcionesEspecificas.SubModelo,
|
|
||||||
' concep.DescripcionesEspecificas.NumeroSerie)
|
|
||||||
' End If
|
|
||||||
' Next
|
|
||||||
|
|
||||||
' End If
|
|
||||||
|
|
||||||
|
|
||||||
' End If
|
|
||||||
'End If
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Region "C O M P L E M E N T O C A R T A P O R T E"
|
|
||||||
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then
|
|
||||||
|
|
||||||
Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte
|
|
||||||
|
|
||||||
''DATOS GENERALES
|
|
||||||
cfdi.CartaPorte(Carta.TranspInternac, Carta.EntradaSalidaMercancia, "", Carta.ViaEntradaSalida, Carta.TotalDistanciaRecorrida)
|
|
||||||
|
|
||||||
'UBICACIONES
|
|
||||||
If Carta.Ubicaciones IsNot Nothing AndAlso Carta.Ubicaciones.Count > 0 Then
|
|
||||||
For Each ubica As CFDICartaPorteUbicacion In Carta.Ubicaciones
|
|
||||||
'origen
|
|
||||||
cfdi.CartaPorteUbicacion(ubica.TipoUbicacion, ubica.IDUbicacion, ubica.RFCRemitenteDestinatario, ubica.NombreRemitenteDestinatario, ubica.NumRegIdTrib, ubica.ResidenciaFiscal, ubica.NumEstacion, ubica.NombreEstacion, ubica.NavegacionTrafico, ubica.FechaHoraSalidaLlegada, ubica.TipoEstacion, ubica.DistanciaRecorrida)
|
|
||||||
'cfdi.CartaPorteOrigen(ubica.Origen.IDOrigen, ubica.Origen.RFCRemitente, ubica.Origen.NombreRemitente, ubica.NumRegIdTrib, ubica.Origen.ResidenciaFiscal, ubica.Origen.NumEstacion, ubica.Origen.NombreEstacion, ubica.Origen.NavegacionTrafico, ubica.Origen.FechaHoraSalida)
|
|
||||||
cfdi.CartaPorteDomicilio(ubica.Domicilio.Calle, ubica.Domicilio.NumeroExterior, ubica.Domicilio.NumeroInterior, ubica.Domicilio.Colonia, ubica.Domicilio.Localidad, ubica.Domicilio.Referencia, ubica.Domicilio.Municipio, ubica.Domicilio.Estado, ubica.Domicilio.Pais, ubica.Domicilio.CP)
|
|
||||||
Next
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
'MERCANCIAS
|
|
||||||
If Carta.Mercancias IsNot Nothing Then
|
|
||||||
cfdi.CartaPorteMercancias(Carta.Mercancias.PesoBrutoTotal, Carta.Mercancias.UnidadPeso, Carta.Mercancias.PesoNetoTotal, Carta.Mercancias.NumTotalMercancias, Carta.Mercancias.CargoporTasacion)
|
|
||||||
If Carta.Mercancias IsNot Nothing AndAlso Carta.Mercancias.Mercancias.Count > 0 Then
|
|
||||||
For Each concep As CFDICartaPorteMercancia In Carta.Mercancias.Mercancias
|
|
||||||
cfdi.CartaPorteMercancia(concep.BienesTransp, concep.ClaveSTCC, concep.Descripción, concep.Cantidad, concep.ClaveUnidad, concep.Unidad, concep.Dimensiones, concep.MaterialPeligroso, concep.ClaveMaterialPeligroso, If(concep.ClaveMaterialPeligroso <> "", concep.Embalaje, ""), If(concep.ClaveMaterialPeligroso <> "", concep.DescripEmbalaje, ""), concep.PesoenKg, concep.ValorMercancia, concep.Moneda, concep.FraccionArrancelaria, concep.UUIDComercioExt)
|
|
||||||
For Each transp In concep.MercanciasCantidadTransporta
|
|
||||||
cfdi.CartaPorteCantidadTransporta(transp.Cantidad, transp.IDOrigen, transp.IDDestino, transp.CvesTransportes)
|
|
||||||
Next
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
'
|
|
||||||
If Carta.FiguraTransporte IsNot Nothing Then
|
|
||||||
|
|
||||||
If Carta.FiguraTransporte.AutoTransporte IsNot Nothing Then
|
|
||||||
|
|
||||||
cfdi.CartaPorteAutotransporte(Carta.FiguraTransporte.AutoTransporte.PermisoSCT, Carta.FiguraTransporte.AutoTransporte.NumPermisoSCT)
|
|
||||||
|
|
||||||
cfdi.CartaPorteIdentificacionVehicular(Carta.FiguraTransporte.AutoTransporte.Vehiculo.ConfigVehicular, Carta.FiguraTransporte.AutoTransporte.Vehiculo.PlacaVM, Carta.FiguraTransporte.AutoTransporte.Vehiculo.AnioModeloVM)
|
|
||||||
|
|
||||||
cfdi.CartaPorteSeguros(Carta.FiguraTransporte.AutoTransporte.NombreSeguroResponsabilidadCivil, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroResponsabilidadCivil,
|
|
||||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroMedioAmbiente, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroMedioAmbiente,
|
|
||||||
Carta.FiguraTransporte.AutoTransporte.NombreSeguroCarga, Carta.FiguraTransporte.AutoTransporte.PolizaSeguroCarga,
|
|
||||||
Carta.FiguraTransporte.AutoTransporte.PrimaSeguro)
|
|
||||||
|
|
||||||
If Carta.FiguraTransporte.AutoTransporte.Remolques IsNot Nothing AndAlso Carta.FiguraTransporte.AutoTransporte.Remolques.Count > 0 Then
|
|
||||||
For Each concep As CFDICartaPorteRemolque In Carta.FiguraTransporte.AutoTransporte.Remolques
|
|
||||||
cfdi.CartaPorteRemolque(concep.SubTipoRemolque, concep.Placa)
|
|
||||||
Next
|
|
||||||
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Carta.FiguraTransporte.Operadores IsNot Nothing AndAlso Carta.FiguraTransporte.Operadores.Count > 0 Then
|
|
||||||
For Each concep As CFDICartaPorteOperador In Carta.FiguraTransporte.Operadores
|
|
||||||
cfdi.CartaPorteTiposFigura(concep.TipoFigura, concep.RFCFigura, concep.NumLicencia, concep.NombreFigura, concep.NumRegidTribFigura, If(concep.ResidenciaFiscalFigura <> "MEX", concep.ResidenciaFiscalFigura, ""))
|
|
||||||
If concep.TipoFigura.Contiene("02", "03") Then ' “02”- Propietario o “03” -Arrendador
|
|
||||||
cfdi.CartaPortePartesTransporte("PT01")
|
|
||||||
cfdi.CartaPortePartesTransporteDomicilio(concep.Domicilio.Calle, concep.Domicilio.NumeroExterior, concep.Domicilio.NumeroInterior, concep.Domicilio.Colonia, concep.Domicilio.Localidad, concep.Domicilio.Referencia, concep.Domicilio.Municipio, concep.Domicilio.Estado, concep.Domicilio.Pais, concep.Domicilio.CP)
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
#Region "Complemento Pago"
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante = "P" Then
|
|
||||||
|
|
||||||
cfdi.Pago(ObjCFDITimbre.ComplementoPagos.FechaPago.ToString("yyyy-MM-ddTHH:mm:ss"),
|
|
||||||
ObjCFDITimbre.ComplementoPagos.FormaDePagoP,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.MonedaP,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.TipoCambioP,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.Monto,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.NumOperacion,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaOrd,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.NomBancoOrdExt,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.CtaOrdenante,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.RfcEmisorCtaBen,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.CtaBeneficiario,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.TipoCadPago,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.CertPago,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.CadPago,
|
|
||||||
ObjCFDITimbre.ComplementoPagos.SelloPago)
|
|
||||||
|
|
||||||
|
|
||||||
If ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados.Count > 0 Then
|
|
||||||
|
|
||||||
|
|
||||||
For Each doc As CFDIComplementoPagosDocsRelacionados In ObjCFDITimbre.ComplementoPagos.DocumentosRelacionados
|
|
||||||
cfdi.PagoDoctoRelacionado(doc.IdDocumento,
|
|
||||||
doc.Serie,
|
|
||||||
doc.Folio,
|
|
||||||
doc.MonedaDR,
|
|
||||||
doc.TipoCambioDR,
|
|
||||||
doc.MetodoDePagoDR,
|
|
||||||
doc.NumParcialidad,
|
|
||||||
doc.ImpSaldoAnt,
|
|
||||||
doc.ImpPagado,
|
|
||||||
doc.ImpSaldoInsoluto)
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
'Estos impuestos aplicarían para anticipos
|
|
||||||
If ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados > 0 Then
|
|
||||||
|
|
||||||
cfdi.PagoImpuestos(ObjCFDITimbre.ComplementoPagos.TotalImpuestosRetenidos, ObjCFDITimbre.ComplementoPagos.TotalImpuestosTrasladados)
|
|
||||||
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R").Count > 0 Then
|
|
||||||
For Each Ret As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "R")
|
|
||||||
cfdi.PagoRetencion(Ret.Impuesto, Ret.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
If (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T").Count > 0 Then
|
|
||||||
For Each Tra As CFDIConceptosImpuestos In (ObjCFDITimbre.ComplementoPagos.Impuestos).Where(Function(x) x.TrasladooRetencion = "T")
|
|
||||||
cfdi.PagoTraslado(Tra.Impuesto, Tra.TipoFactor, Tra.TasaOCuota, Tra.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
|
||||||
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Region "Nomina12"
|
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante = "N" Then
|
|
||||||
|
|
||||||
'cfdi.Esquema.AgregarEsquema("http://www.sat.gob.mx/nomina12 http://www.sat.gob.mx/sitio_internet/cfd/nomina/nomina12.xsd")
|
|
||||||
cfdi.Nomina12(ObjCFDITimbre.Nomina.TipoNomina, ObjCFDITimbre.Nomina.FechaPago.ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaInicio.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.FechaFin.ToDate().ToString("yyyy-MM-dd"), ObjCFDITimbre.Nomina.NumDiasPagados, If(ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0, ObjCFDITimbre.Nomina.TotalPercepciones, 0), If(ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0, ObjCFDITimbre.Nomina.TotalDeducciones, 0), If(ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0, ObjCFDITimbre.Nomina.TotalOtrosPagos, 0))
|
|
||||||
|
|
||||||
cfdi.Nomina12Emisor(ObjCFDITimbre.Emisor.CURP, If(ObjCFDITimbre.Nomina.Receptor.TipoContrato.Contiene("09", "10", "99"), "", ObjCFDITimbre.Emisor.RegistroPatronal), ObjCFDITimbre.Emisor.RFC)
|
|
||||||
|
|
||||||
If UsuarioActual.Empresa.UsaAC Then cfdi.Nomina12EntidadSNCF("IF", 90)
|
|
||||||
|
|
||||||
|
|
||||||
#Region "Receptor"
|
|
||||||
|
|
||||||
cfdi.Nomina12Receptor(ObjCFDITimbre.Nomina.Receptor.CURP,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.NSS,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.FechaInicioContrato.ToDate().ToString("yyyy-MM-dd"),
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.Antiguedad,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.TipoContrato,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.Sindicalizado,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoTipoJornada,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoRegimenContratacion,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoEmpleado,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.Departamento,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.Puesto,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoRiesgoPuesto,
|
|
||||||
If(ObjCFDITimbre.Nomina.TipoNomina = "E", "99", ObjCFDITimbre.Nomina.Receptor.TipoPeriodo),
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoBanco,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.NumeroCuenta,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.SBC,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.SDI,
|
|
||||||
ObjCFDITimbre.Nomina.Receptor.CodigoEntidadFederativa)
|
|
||||||
'cfdi.Nomina12SubContratacion("", "0")
|
|
||||||
'cfdi.agregarNominaPercepcionesPercepcionAccionesOTitulos12("100", "200");
|
|
||||||
'cfdi.agregarNominaPercepcionesSeparacionIndemnizacion12("100", "10", "1000", "100", "50");
|
|
||||||
'cfdi.agregarNominaPercepcionesJubilacionPensionRetiro12("50", "100", "10", "100", "0");
|
|
||||||
|
|
||||||
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
If ObjCFDITimbre.Nomina IsNot Nothing Then
|
|
||||||
'If cfdi.Nomina12SeparacionIndemnizacion Then
|
|
||||||
If ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0 Then
|
|
||||||
cfdi.Nomina12Percepciones(ObjCFDITimbre.Nomina.TotalSueldos, ObjCFDITimbre.Nomina.TotalIndemnizacion, ObjCFDITimbre.Nomina.TotalJubilacion, ObjCFDITimbre.Nomina.TotalPercepcionesGravado, ObjCFDITimbre.Nomina.TotalPercepcionesExento)
|
|
||||||
For Each percep As CFDINominaPercepciones In ObjCFDITimbre.Nomina.Percepciones
|
|
||||||
cfdi.Nomina12Percepcion(percep.TipoPercepcion, percep.Clave, percep.Concepto, Math.Round(percep.ImporteGravado, 2), Math.Round(percep.ImporteExento, 2))
|
|
||||||
If percep.TipoPercepcion.ToEntero() = 19 Then
|
|
||||||
|
|
||||||
If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then
|
|
||||||
For Each HoraExtra As CFDINominaHorasExtras In ObjCFDITimbre.Nomina.HorasExtras
|
|
||||||
cfdi.Nomina12HorasExtra(HoraExtra.Dias.ToEntero, HoraExtra.TipoHoras, HoraExtra.HorasExtra, HoraExtra.ImportePagado)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
|
|
||||||
If ObjCFDITimbre.IStimbreFiniquito Then
|
|
||||||
'ObjCFDITimbre.Nomina.
|
|
||||||
Dim UltimoSueldoOrdinario As Double = ObjCFDITimbre.Nomina.UltimoSueldoOrdinario.ToString().ToDouble()
|
|
||||||
Dim TotalIndemnizacion As Double = ObjCFDITimbre.Nomina.TotalIndemnizacion
|
|
||||||
Dim t1 As Double = If(UltimoSueldoOrdinario < TotalIndemnizacion, UltimoSueldoOrdinario, TotalIndemnizacion)
|
|
||||||
Dim t2 As Double = If(UltimoSueldoOrdinario < TotalIndemnizacion, TotalIndemnizacion, UltimoSueldoOrdinario)
|
|
||||||
cfdi.Nomina12SeparacionIndemnizacion(TotalIndemnizacion, ObjCFDITimbre.Nomina.Antiguedad, UltimoSueldoOrdinario, t1, t2 - t1)
|
|
||||||
|
|
||||||
End If
|
|
||||||
'deducciones al final
|
|
||||||
If ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0 Then
|
|
||||||
cfdi.Nomina12Deducciones(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2))
|
|
||||||
For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones
|
|
||||||
cfdi.Nomina12Deduccion(deduc.TipoDeduccion, deduc.Clave, deduc.Concepto, Math.Round(deduc.Importe, 2))
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing Then
|
|
||||||
' cfdi.agregarNominaOtrosPagosOtroPago12("002", "002", "Subsidio", "10.00");
|
|
||||||
' cfdi.agregarNominaOtrosPagosOtroPagoSubsidioAlEmpleo12("10.00");
|
|
||||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0 Then
|
|
||||||
For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos
|
|
||||||
cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe)
|
|
||||||
If otpag.TipoOtroPago = "002" Then
|
|
||||||
cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado)
|
|
||||||
End If
|
|
||||||
|
|
||||||
If otpag.TipoOtroPago = "004" AndAlso otpag.Importe > 0 Then
|
|
||||||
If otpag.ejercicio > 0 Then
|
|
||||||
cfdi.CompensacionSaldosAFavor(otpag.SaldoAFavor, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
If ObjCFDITimbre.Nomina.Incapacidades IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Incapacidades.Count > 0 Then
|
|
||||||
For Each Incap As CFDINominaIncapacidades In ObjCFDITimbre.Nomina.Incapacidades
|
|
||||||
cfdi.Nomina12Incapacidad(Incap.DiasIncapacidad.ToEntero, Incap.TipoIncapacidad, Incap.Importe)
|
|
||||||
Next
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
#End Region
|
|
||||||
|
|
||||||
sw.Stop()
|
|
||||||
swTiempo.AppendFormat("Armado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
|
||||||
swmili = sw.ElapsedMilliseconds
|
|
||||||
sw.Start()
|
|
||||||
#Region "Genera XML"
|
|
||||||
Dim ArchivoGenerado As Boolean = False
|
|
||||||
Try
|
|
||||||
cfdi.GenerarXmlB64(llaveBase64, Clave)
|
|
||||||
ArchivoGenerado = True
|
|
||||||
Catch ex As Exception
|
|
||||||
Retorno = cfdi.Mensaje
|
|
||||||
If Retorno = "" OrElse IsNothing(Retorno) Then
|
|
||||||
Retorno = $"llaveBase64 ={llaveBase64} <br/>Clave ={Clave} <br/> {ex.ToString()}"
|
|
||||||
End If
|
|
||||||
MensajeErrorCFDI = Retorno
|
|
||||||
End Try
|
|
||||||
|
|
||||||
#End Region
|
|
||||||
sw.Stop()
|
sw.Stop()
|
||||||
swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||||
swmili = sw.ElapsedMilliseconds
|
swmili = sw.ElapsedMilliseconds
|
||||||
@@ -6184,7 +5732,18 @@ Public Class Timbrado
|
|||||||
Dim msgErrorGeneracion As String = If(String.IsNullOrEmpty(cfdi.Mensaje), "", cfdi.Mensaje)
|
Dim msgErrorGeneracion As String = If(String.IsNullOrEmpty(cfdi.Mensaje), "", cfdi.Mensaje)
|
||||||
|
|
||||||
#Region "Timbra"
|
#Region "Timbra"
|
||||||
If ArchivoGenerado Then
|
If RespGeneracionXML = "" Then
|
||||||
|
'OBTENER EL XML DE LA VARIABLE PRIVADA "_xml" YA QUE NO ES ACCESIBLE POR MEDIO DE LA PROPIEDAD "XML" ANTES DE TIMBRAR
|
||||||
|
Dim valorXML = ""
|
||||||
|
Try
|
||||||
|
|
||||||
|
Dim tipo = GetType(GoFac.Cfdi4)
|
||||||
|
Dim info = tipo.GetField("_xml", BindingFlags.NonPublic Or BindingFlags.Instance)
|
||||||
|
valorXML = info?.GetValue(cfdi).ToString()
|
||||||
|
Catch ex As Exception
|
||||||
|
valorXML = ""
|
||||||
|
OnError("Ocurrió un error al generar el xml", ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
Dim Respuesta As String = ""
|
Dim Respuesta As String = ""
|
||||||
|
|
||||||
@@ -6196,12 +5755,11 @@ Public Class Timbrado
|
|||||||
New JProperty("certBase64", certBase64),
|
New JProperty("certBase64", certBase64),
|
||||||
New JProperty("keyBase64", llaveBase64),
|
New JProperty("keyBase64", llaveBase64),
|
||||||
New JProperty("keyPass", Clave),
|
New JProperty("keyPass", Clave),
|
||||||
New JProperty("xmlBase64", cfdi.Xml.ToBase64Encode()),
|
New JProperty("xmlBase64", valorXML.ToString().ToBase64Encode()),
|
||||||
New JProperty("prueba", (Not TimbraProduccion).ToString().ToLower),
|
New JProperty("prueba", (Not TimbraProduccion).ToString().ToLower),
|
||||||
New JProperty("opciones", New String(0) {""})
|
New JProperty("opciones", New String(0) {""})
|
||||||
)
|
)
|
||||||
'Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado40/timbrarConCSD", payload.ToString(), TokenAuth)
|
||||||
Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Aumentamos el timeout de la operación
|
' Aumentamos el timeout de la operación
|
||||||
@@ -6227,7 +5785,13 @@ Public Class Timbrado
|
|||||||
If result.timbradoOk Then
|
If result.timbradoOk Then
|
||||||
Dim FolioFiscal As String = result.UUID
|
Dim FolioFiscal As String = result.UUID
|
||||||
'GUARDA EL XML RETORNADO POR EL PAC
|
'GUARDA EL XML RETORNADO POR EL PAC
|
||||||
'cfdi.EscribirXML(result.xmlBase64.ToBase64Decode(), RutaArchivo, NombreArchivoXML)
|
Try
|
||||||
|
Dim xdoc As New XmlDocument()
|
||||||
|
xdoc.LoadXml(result.xmlBase64.ToBase64Decode())
|
||||||
|
xdoc.Save(RutaArchivo & NombreArchivoXML & ".xml")
|
||||||
|
Catch ex As Exception
|
||||||
|
OnError("Ocurrió un error al guardar el xml", ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
sw.Stop()
|
sw.Stop()
|
||||||
swTiempo.AppendFormat("Guardado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
swTiempo.AppendFormat("Guardado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||||
@@ -6342,7 +5906,6 @@ Public Class Timbrado
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
<Serializable(), XmlRoot("servicioTimbrado")>
|
<Serializable(), XmlRoot("servicioTimbrado")>
|
||||||
Public Class PADEServicioTimbradoResp
|
Public Class PADEServicioTimbradoResp
|
||||||
<XmlElement("id")>
|
<XmlElement("id")>
|
||||||
@@ -6498,7 +6061,7 @@ Public Class Timbrado
|
|||||||
comprobante.FormaPago = ObjCFDITimbre.Comprobante.FormadePago
|
comprobante.FormaPago = ObjCFDITimbre.Comprobante.FormadePago
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago
|
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then comprobante.CondicionesDePago = ObjCFDITimbre.Comprobante.CondicionesdePago
|
||||||
|
|
||||||
comprobante.SubTotal = ObjCFDITimbre.Comprobante.Subtotal.RoundSQL(NumDecimalesImporte)
|
comprobante.SubTotal = ObjCFDITimbre.Comprobante.SubTotal.RoundSQL(NumDecimalesImporte)
|
||||||
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then
|
If ObjCFDITimbre.Comprobante.TipoComprobante.Contiene("I", "E", "N") Then
|
||||||
If ObjCFDITimbre.Comprobante.Descuentos > 0 Then
|
If ObjCFDITimbre.Comprobante.Descuentos > 0 Then
|
||||||
comprobante.DescuentoSpecified = True
|
comprobante.DescuentoSpecified = True
|
||||||
|
|||||||
@@ -4624,8 +4624,8 @@ Partial Class Bancos_IE
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion)
|
Dim respCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion)
|
||||||
If Resp.Verificado Then
|
If respCancelacion.Verificado Then
|
||||||
|
|
||||||
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
If Banc.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
||||||
CargaComplementosPago()
|
CargaComplementosPago()
|
||||||
@@ -6695,9 +6695,9 @@ Partial Class Bancos_IE
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion)
|
|
||||||
|
|
||||||
If Resp.Verificado Then
|
Dim resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscalCancelar, 0, RFCReceptorCancelar, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion)
|
||||||
|
If resp.Verificado Then
|
||||||
|
|
||||||
If ObjBanco.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
If ObjBanco.UpdateComplementoPago(CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
||||||
|
|
||||||
|
|||||||
@@ -596,8 +596,8 @@ Partial Class Bancos_RepComplementoPago
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
|
Dim resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, Can_FolioFiscalCancelar, 0, Can_RFCReceptorCancelar, UsuarioActual.Empresa.RFC, Can_CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion)
|
||||||
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, Can_FolioFiscalCancelar, 0, Can_RFCReceptorCancelar, UsuarioActual.Empresa.RFC, Can_CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
If resp.Verificado Then
|
||||||
|
|
||||||
If ObjBanco.UpdateComplementoPago(Can_CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, Can_CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
If ObjBanco.UpdateComplementoPago(Can_CveComplementoPagoCancelar, "-1", -1, UsuarioActual.CveEmpresa, 2, Can_CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse, CveSATMotivoCancelacion:=CveSATMotivoCancelacion) Then
|
||||||
Alert("El complemento se cancelo correctamente.")
|
Alert("El complemento se cancelo correctamente.")
|
||||||
|
|||||||
Binary file not shown.
@@ -88,8 +88,11 @@
|
|||||||
</asp:LinkButton>
|
</asp:LinkButton>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<asp:LinkButton ID="LnkAddE" OnClientClick="javascript:$('#DivCrearApatir').modal({backdrop: 'static', keyboard: false}); return false;" Text="<i class='fa fa-plus'></i><span>Crear a partir de</span>" runat="server">
|
<asp:UpdatePanel runat="server">
|
||||||
</asp:LinkButton>
|
<ContentTemplate>
|
||||||
|
<asp:LinkButton ID="LnkAddE" OnClick="LnkAddE_Click" Text="<i class='fa fa-plus'></i><span>Crear a partir de</span>" runat="server"></asp:LinkButton>
|
||||||
|
</ContentTemplate>
|
||||||
|
</asp:UpdatePanel>
|
||||||
</li>
|
</li>
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
|
<asp:Content ID="Content6" ContentPlaceHolderID="C" runat="Server">
|
||||||
@@ -146,7 +149,7 @@
|
|||||||
<asp:CheckBox ID="ChkTimmer" OnCheckedChanged="ChkTimmer_CheckedChanged" AutoPostBack="true" Text=" " runat="server" CssClass="chksino" Checked="true"></asp:CheckBox>
|
<asp:CheckBox ID="ChkTimmer" OnCheckedChanged="ChkTimmer_CheckedChanged" AutoPostBack="true" Text=" " runat="server" CssClass="chksino" Checked="true"></asp:CheckBox>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<asp:Timer runat="server" ID="TimmerRefresh" Interval="30000" OnTick="TimmerRefresh_Tick"></asp:Timer>
|
<asp:Timer runat="server" ID="TimmerRefresh" Interval="120000" OnTick="TimmerRefresh_Tick"></asp:Timer>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -38,6 +38,15 @@ Partial Class GPS_Trayectos
|
|||||||
ViewState("DtPosiciones") = value
|
ViewState("DtPosiciones") = value
|
||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
Private Property DtTrayectos As DataTable
|
||||||
|
Get
|
||||||
|
Return CType(ViewState("DtTrayectos"), DataTable)
|
||||||
|
End Get
|
||||||
|
Set(value As DataTable)
|
||||||
|
ViewState("DtTrayectos") = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
@@ -52,7 +61,6 @@ Partial Class GPS_Trayectos
|
|||||||
CargaDispositivos()
|
CargaDispositivos()
|
||||||
CargaGeoReferencias()
|
CargaGeoReferencias()
|
||||||
CargaEstatus()
|
CargaEstatus()
|
||||||
CargaDdlTrayectos()
|
|
||||||
|
|
||||||
CargaTrayectos()
|
CargaTrayectos()
|
||||||
End Sub
|
End Sub
|
||||||
@@ -105,21 +113,25 @@ Partial Class GPS_Trayectos
|
|||||||
|
|
||||||
Dim ObjGPS As New ClsGPS
|
Dim ObjGPS As New ClsGPS
|
||||||
If ObjGPS.GetTrayectos(-1, DdlDispositivoFiltro.SelectedValue.ToEntero(), UsuarioActual.CveCliente, CveEstatus, FechaI, FechaF) Then
|
If ObjGPS.GetTrayectos(-1, DdlDispositivoFiltro.SelectedValue.ToEntero(), UsuarioActual.CveCliente, CveEstatus, FechaI, FechaF) Then
|
||||||
GvBarra.DataSource = ObjGPS.DtResultados
|
DtTrayectos = ObjGPS.DtResultados.Copy()
|
||||||
End If
|
End If
|
||||||
ObjGPS.Dispose()
|
ObjGPS.Dispose()
|
||||||
|
|
||||||
|
GvBarra.DataSource = DtTrayectos
|
||||||
GvBarra.DataBind()
|
GvBarra.DataBind()
|
||||||
UPGV.Update()
|
UPGV.Update()
|
||||||
End Sub
|
End Sub
|
||||||
Public Sub CargaDdlTrayectos()
|
Public Sub CargaDdlTrayectos()
|
||||||
Dim ObjGPS As New ClsGPS
|
'Dim ObjGPS As New ClsGPS
|
||||||
If ObjGPS.GetTrayectos(-1, -1, UsuarioActual.CveCliente) Then
|
'If ObjGPS.GetTrayectos(-1, -1, UsuarioActual.CveCliente) Then
|
||||||
DdlTrayecto.DataSource = ObjGPS.DtResultados.FiltraParametros("EsFin = True")
|
' DdlTrayecto.DataSource = ObjGPS.DtResultados.FiltraParametros("EsFin = True")
|
||||||
End If
|
'End If
|
||||||
ObjGPS.Dispose()
|
'ObjGPS.Dispose()
|
||||||
|
|
||||||
|
DdlTrayecto.DataSource = DtTrayectos
|
||||||
DdlTrayecto.DataBind()
|
DdlTrayecto.DataBind()
|
||||||
|
|
||||||
UpAgregar.Update()
|
UpDdlTrayecto.Update()
|
||||||
End Sub
|
End Sub
|
||||||
Public Sub CargaEstatus()
|
Public Sub CargaEstatus()
|
||||||
Dim ObjGPS As New ClsGPS
|
Dim ObjGPS As New ClsGPS
|
||||||
@@ -470,4 +482,8 @@ Partial Class GPS_Trayectos
|
|||||||
|
|
||||||
UPGV.Update()
|
UPGV.Update()
|
||||||
End Sub
|
End Sub
|
||||||
|
Protected Sub LnkAddE_Click(sender As Object, e As EventArgs)
|
||||||
|
CargaDdlTrayectos()
|
||||||
|
RegistraScript("$('#DivCrearApatir').modal({backdrop: 'static', keyboard: false});")
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -62,7 +62,8 @@ public partial class Inventarios_RepTraspasoEmitido : ClsPaginas
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void LnkCancelarTraspaso_Click(object sender, EventArgs e)
|
protected void LnkCancelarTraspaso_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
GridViewRow Gvr = (GridViewRow)(((LinkButton)sender).NamingContainer);
|
||||||
Timbrado ObjCancelacion = new Timbrado();
|
Timbrado ObjCancelacion = new Timbrado();
|
||||||
DateTime CancelacionFecha=MinFecha;
|
DateTime CancelacionFecha=MinFecha;
|
||||||
int CveEstatusTimbrado = 0;
|
int CveEstatusTimbrado = 0;
|
||||||
|
|||||||
@@ -2065,13 +2065,18 @@ Partial Class Clientes
|
|||||||
DdlSucursalFormaPago33.DataBind()
|
DdlSucursalFormaPago33.DataBind()
|
||||||
End Sub
|
End Sub
|
||||||
Private Sub CargaComboCFDI()
|
Private Sub CargaComboCFDI()
|
||||||
|
Dim RegimenFiscalCliente = DdlRegimenFiscal.SelectedValue.ToString()
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(350) <> "1" Then
|
||||||
|
RegimenFiscalCliente = "-1"
|
||||||
|
End If
|
||||||
|
|
||||||
DdlUsoCFDI.Items.Clear()
|
DdlUsoCFDI.Items.Clear()
|
||||||
DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica)
|
DdlUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente)
|
||||||
DdlUsoCFDI.DataBind()
|
DdlUsoCFDI.DataBind()
|
||||||
DdlUsoCFDI.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
DdlUsoCFDI.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||||
|
|
||||||
DdlSucursalUsoCFDI.Items.Clear()
|
DdlSucursalUsoCFDI.Items.Clear()
|
||||||
DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica)
|
DdlSucursalUsoCFDI.DataSource = GlobalDTSATUsosCFDI(UsuarioActual.Empresa.EsPersonaFisica, RegimenFiscalReceptor:=RegimenFiscalCliente)
|
||||||
DdlSucursalUsoCFDI.DataBind()
|
DdlSucursalUsoCFDI.DataBind()
|
||||||
End Sub
|
End Sub
|
||||||
#End Region
|
#End Region
|
||||||
|
|||||||
@@ -758,6 +758,15 @@ Partial Class PV
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
|
|
||||||
|
Private Property CantidadAntesEdicion As Decimal
|
||||||
|
Get
|
||||||
|
Return If(IsNothing(ViewState("CantidadAntesEdicion")), "0", ViewState("CantidadAntesEdicion").ToString()).ToDecimal()
|
||||||
|
End Get
|
||||||
|
Set(value As Decimal)
|
||||||
|
ViewState("CantidadAntesEdicion") = value
|
||||||
|
End Set
|
||||||
|
End Property
|
||||||
|
|
||||||
#End Region
|
#End Region
|
||||||
|
|
||||||
#Region "PROPIEDADES CONTRATOS"
|
#Region "PROPIEDADES CONTRATOS"
|
||||||
@@ -1071,6 +1080,7 @@ Partial Class PV
|
|||||||
ViewState("ClienteRetIVA") = 0
|
ViewState("ClienteRetIVA") = 0
|
||||||
ViewState("ClienteRetISR") = 0
|
ViewState("ClienteRetISR") = 0
|
||||||
ViewState("EnviarCorreoCliente") = False
|
ViewState("EnviarCorreoCliente") = False
|
||||||
|
Me.CantidadAntesEdicion = 0
|
||||||
HdnPorcentajeDescuentoMaximo.Value = If(UsuarioActual.DescuentoAutorizado > 0, UsuarioActual.DescuentoAutorizado, 15).ToString()
|
HdnPorcentajeDescuentoMaximo.Value = If(UsuarioActual.DescuentoAutorizado > 0, UsuarioActual.DescuentoAutorizado, 15).ToString()
|
||||||
CveVentaDetalle = -1
|
CveVentaDetalle = -1
|
||||||
EstablecioFolio = False
|
EstablecioFolio = False
|
||||||
@@ -5125,7 +5135,15 @@ Partial Class PV
|
|||||||
If DdlTipoComprobante.SelectedValue <> "Cot" Then
|
If DdlTipoComprobante.SelectedValue <> "Cot" Then
|
||||||
'VALIDA EXISTENCIA
|
'VALIDA EXISTENCIA
|
||||||
If UsuarioActual.CveEmpresa.Contiene({1, 72, 80, 119, 140}) Then
|
If UsuarioActual.CveEmpresa.Contiene({1, 72, 80, 119, 140}) Then
|
||||||
If Existencia - TmpDT.SUM("Cantidad", $"CvePS = {CvePS}") < TxtCantidad.Text.ToDouble Then
|
Dim CantidadAgregada As Decimal = TmpDT.SUMD("Cantidad", $"CvePS = {CvePS}")
|
||||||
|
|
||||||
|
If Modalidad = "U" Then
|
||||||
|
CantidadAgregada = CantidadAgregada - CantidadAntesEdicion + TxtCantidad.Text.ToDecimal()
|
||||||
|
Else
|
||||||
|
CantidadAgregada = CantidadAgregada + TxtCantidad.Text.ToDecimal()
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Existencia < CantidadAgregada Then
|
||||||
Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia)
|
Alert("No cuenta con la cantidad suficiente en inventario. Cuenta con " + Existencia.FormatoNumero(2) + ".", TipoMensaje.MsgAdvertencia)
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
@@ -5229,6 +5247,7 @@ Partial Class PV
|
|||||||
End Sub
|
End Sub
|
||||||
Private Sub CargaAgregar()
|
Private Sub CargaAgregar()
|
||||||
Modalidad = "A"
|
Modalidad = "A"
|
||||||
|
CantidadAntesEdicion = 0
|
||||||
LnkAgregarPS.Text = "Agregar"
|
LnkAgregarPS.Text = "Agregar"
|
||||||
CargaBCI()
|
CargaBCI()
|
||||||
LimpiaAgregar()
|
LimpiaAgregar()
|
||||||
@@ -5268,6 +5287,7 @@ Partial Class PV
|
|||||||
End If
|
End If
|
||||||
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
|
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
|
||||||
DdlUnidadMedida.SelectedValueExist(GvRow.DataKey("CveUM"))
|
DdlUnidadMedida.SelectedValueExist(GvRow.DataKey("CveUM"))
|
||||||
|
CantidadAntesEdicion = GvRow.DataKey("Cantidad").ToDecimal()
|
||||||
TxtCantidad.Text = GvRow.DataKey("Cantidad")
|
TxtCantidad.Text = GvRow.DataKey("Cantidad")
|
||||||
|
|
||||||
'Dim TotalCargos As Decimal = 0
|
'Dim TotalCargos As Decimal = 0
|
||||||
@@ -5324,6 +5344,9 @@ Partial Class PV
|
|||||||
RegistraScript("$('#DivAddVenta').modal({backdrop: 'static', keyboard: false});", "EdicionVenta")
|
RegistraScript("$('#DivAddVenta').modal({backdrop: 'static', keyboard: false});", "EdicionVenta")
|
||||||
End Sub
|
End Sub
|
||||||
Protected Sub LnkAgregarPS_Click(sender As Object, e As EventArgs)
|
Protected Sub LnkAgregarPS_Click(sender As Object, e As EventArgs)
|
||||||
|
|
||||||
|
Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
|
||||||
|
|
||||||
If ChkAjuste.Checked Then
|
If ChkAjuste.Checked Then
|
||||||
Dim FolioGarantia As MFolioGarantiaMensaje = ValidaFolioGarantia(DdlPSAjuste.SelectedValue.ToEntero(), DdlFolioGarantia.SelectedValue.ToEntero())
|
Dim FolioGarantia As MFolioGarantiaMensaje = ValidaFolioGarantia(DdlPSAjuste.SelectedValue.ToEntero(), DdlFolioGarantia.SelectedValue.ToEntero())
|
||||||
|
|
||||||
@@ -5337,6 +5360,9 @@ Partial Class PV
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If DrPS IsNot Nothing Then
|
||||||
|
'SOLO DEBE AGREGAR POLIZA VIRTUAL SI ES ACUMULADOR
|
||||||
|
If DrPS("CveClasificacion").ToString().ToEntero().Contiene(20520, 20522, 20513, 20511, 20521, 20512, 20514, 20229) Then
|
||||||
If String.IsNullOrEmpty(TxtAnioVehiculo.Text.Trim()) Then
|
If String.IsNullOrEmpty(TxtAnioVehiculo.Text.Trim()) Then
|
||||||
Alert("El campo año esta vacío.", TipoMensaje.MsgAdvertencia)
|
Alert("El campo año esta vacío.", TipoMensaje.MsgAdvertencia)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
@@ -5346,8 +5372,12 @@ Partial Class PV
|
|||||||
Alert("El campo año debe ser mayor a 1900.", TipoMensaje.MsgAdvertencia)
|
Alert("El campo año debe ser mayor a 1900.", TipoMensaje.MsgAdvertencia)
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
End If
|
||||||
|
End If
|
||||||
Else
|
Else
|
||||||
|
If DrPS IsNot Nothing Then
|
||||||
|
'SOLO DEBE AGREGAR POLIZA VIRTUAL SI ES ACUMULADOR
|
||||||
|
If DrPS("CveClasificacion").ToString().ToEntero().Contiene(20520, 20522, 20513, 20511, 20521, 20512, 20514, 20229) Then
|
||||||
If Not String.IsNullOrEmpty(TxtAnioVehiculo.Text.Trim()) Then
|
If Not String.IsNullOrEmpty(TxtAnioVehiculo.Text.Trim()) Then
|
||||||
If TxtAnioVehiculo.Text.ToDecimal() < 1900 Then
|
If TxtAnioVehiculo.Text.ToDecimal() < 1900 Then
|
||||||
Alert("El año del vehiculo del vehículo no tiene el formato correcto.", TipoMensaje.MsgAdvertencia)
|
Alert("El año del vehiculo del vehículo no tiene el formato correcto.", TipoMensaje.MsgAdvertencia)
|
||||||
@@ -5355,7 +5385,9 @@ Partial Class PV
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
If AgregarPS() Then
|
If AgregarPS() Then
|
||||||
|
|||||||
@@ -308,6 +308,11 @@
|
|||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<asp:CheckBox ID="ChkLecturaAdmin" runat="server" Checked="false" CssClass="input-sm" />
|
<asp:CheckBox ID="ChkLecturaAdmin" runat="server" Checked="false" CssClass="input-sm" />
|
||||||
</div>
|
</div>
|
||||||
|
<label class="col-md-1 truncate">Relación:</label>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<asp:DropDownList ID="DdlTipoRelacion" CssClass=" form-control input-sm select2me" runat="server" Width="100%" DataTextField="SATTipoRelacion" DataValueField="CveTipoRelacion">
|
||||||
|
</asp:DropDownList>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ Partial Class RepVentaDetalle
|
|||||||
|
|
||||||
|
|
||||||
Private Sub InicializaValores()
|
Private Sub InicializaValores()
|
||||||
Dim Grupo, CveCliente, CveSucursal, CveSubProyectoEjecucion, CveVendedor, CveUsuario, CveEstatusFactura, CveCorte, IVA, TipoDocto, CveClienteClasificacion, CveCondicionesPago As String
|
Dim Grupo, CveCliente, CveSucursal, CveSubProyectoEjecucion, CveVendedor, CveUsuario, CveEstatusFactura, CveCorte, IVA, TipoDocto, CveClienteClasificacion, CveCondicionesPago, CveTipoRelacion As String
|
||||||
Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String
|
Dim Anio, Mes, AnioMes, Fecha, FechaI, FechaF As String
|
||||||
Dim AnioEjec, MesEjec, AnioMesEjec, FechaEjec, FechaIEjec, FechaFEjec As String
|
Dim AnioEjec, MesEjec, AnioMesEjec, FechaEjec, FechaIEjec, FechaFEjec As String
|
||||||
'Dim CveSubProyecto As Integer
|
'Dim CveSubProyecto As Integer
|
||||||
@@ -162,6 +162,8 @@ Partial Class RepVentaDetalle
|
|||||||
CveMoneda = If(Request("CveMoneda") IsNot Nothing, Request("CveMoneda").ToString.ToEntero, -1).ToString.ToEntero
|
CveMoneda = If(Request("CveMoneda") IsNot Nothing, Request("CveMoneda").ToString.ToEntero, -1).ToString.ToEntero
|
||||||
TipoCliente = If(Request("TipoCliente") IsNot Nothing, Request("TipoCliente").ToString.ToEntero, -1).ToString.ToEntero
|
TipoCliente = If(Request("TipoCliente") IsNot Nothing, Request("TipoCliente").ToString.ToEntero, -1).ToString.ToEntero
|
||||||
|
|
||||||
|
CveTipoRelacion = If(Request("CveTipoRelacion") IsNot Nothing, Request("CveTipoRelacion").ToString, "-1").ToString
|
||||||
|
|
||||||
DdlTipoCliente.SelectedValueExist(TipoCliente)
|
DdlTipoCliente.SelectedValueExist(TipoCliente)
|
||||||
|
|
||||||
'LISTBOXS
|
'LISTBOXS
|
||||||
@@ -184,6 +186,8 @@ Partial Class RepVentaDetalle
|
|||||||
DdlVendedor.SelectedValuesIfExistM(CveVendedor)
|
DdlVendedor.SelectedValuesIfExistM(CveVendedor)
|
||||||
|
|
||||||
DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion)
|
DdlClienteClasificacion.SelectedValueExist(CveClienteClasificacion)
|
||||||
|
DdlTipoRelacion.SelectedValueExist(CveTipoRelacion)
|
||||||
|
|
||||||
CargaClientes()
|
CargaClientes()
|
||||||
DdlClientes.SelectedValue = CveCliente
|
DdlClientes.SelectedValue = CveCliente
|
||||||
DdlUsuario.SelectedValueExist(CveUsuario)
|
DdlUsuario.SelectedValueExist(CveUsuario)
|
||||||
@@ -391,6 +395,11 @@ Partial Class RepVentaDetalle
|
|||||||
DdlClienteClasificacion.DataBind()
|
DdlClienteClasificacion.DataBind()
|
||||||
DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||||
|
|
||||||
|
|
||||||
|
DdlTipoRelacion.DataSource = GlobalDTVtaTiposRelacion
|
||||||
|
DdlTipoRelacion.DataBind()
|
||||||
|
DdlTipoRelacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||||
|
|
||||||
CargaGrupo()
|
CargaGrupo()
|
||||||
CargaTipoCentroCosto()
|
CargaTipoCentroCosto()
|
||||||
|
|
||||||
@@ -490,7 +499,7 @@ Partial Class RepVentaDetalle
|
|||||||
IVA, Vendedores, DdlUsuario.SelectedValue.ToEntero, Estatus, FechaI, FechaF,
|
IVA, Vendedores, DdlUsuario.SelectedValue.ToEntero, Estatus, FechaI, FechaF,
|
||||||
CveCorte.ToEntero, TipoComprobante, DdlSubProyectoEjecucion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaIEjec, FechaFEjec,
|
CveCorte.ToEntero, TipoComprobante, DdlSubProyectoEjecucion.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaIEjec, FechaFEjec,
|
||||||
CveProyecto, Sucursales, TipoCambio, TCEspecifico, CveMoneda, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero,
|
CveProyecto, Sucursales, TipoCambio, TCEspecifico, CveMoneda, CveUsuarioConsulta:=UsuarioActual.CveUsuario, CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero,
|
||||||
CveCondicionesPago:=CveCondicionesPago, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=Not ChkLecturaAdmin.Checked) Then
|
CveCondicionesPago:=CveCondicionesPago, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=Not ChkLecturaAdmin.Checked, CveTipoRelacion:=DdlTipoRelacion.SelectedValue.ToEntero()) Then
|
||||||
DtVentas = AddRows(ObjVentas.DtResultados)
|
DtVentas = AddRows(ObjVentas.DtResultados)
|
||||||
ImgImprimir.Enabled = True
|
ImgImprimir.Enabled = True
|
||||||
GvDatos.DataSource = AddRows(ObjVentas.DtResultados)
|
GvDatos.DataSource = AddRows(ObjVentas.DtResultados)
|
||||||
|
|||||||
@@ -299,7 +299,7 @@
|
|||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" id="divModalidadcontable" runat="server" visible="false">
|
<div class="row">
|
||||||
<label class="col-md-1 truncate">Lectura administrativa:</label>
|
<label class="col-md-1 truncate">Lectura administrativa:</label>
|
||||||
<div class="col-md-2">
|
<div class="col-md-2">
|
||||||
<asp:CheckBox ID="ChkLecturaAdmin" runat="server" Checked="false" CssClass="input-sm" />
|
<asp:CheckBox ID="ChkLecturaAdmin" runat="server" Checked="false" CssClass="input-sm" />
|
||||||
@@ -312,6 +312,11 @@
|
|||||||
<asp:ListItem Text="No Distribuidor" Value="0"></asp:ListItem>
|
<asp:ListItem Text="No Distribuidor" Value="0"></asp:ListItem>
|
||||||
</asp:DropDownList>
|
</asp:DropDownList>
|
||||||
</div>
|
</div>
|
||||||
|
<label class="col-md-1 truncate">Relación:</label>
|
||||||
|
<div class="col-md-2">
|
||||||
|
<asp:DropDownList ID="DdlTipoRelacion" CssClass=" form-control input-sm select2me" runat="server" Width="100%" DataTextField="SATTipoRelacion" DataValueField="CveTipoRelacion">
|
||||||
|
</asp:DropDownList>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -520,7 +525,7 @@
|
|||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<asp:UpdatePanel runat="server" ID="UpHP" UpdateMode="Conditional">
|
<asp:UpdatePanel runat="server" ID="UpHP" UpdateMode="Conditional">
|
||||||
<ContentTemplate>
|
<ContentTemplate>
|
||||||
<%-- <div class="row">
|
<%-- <div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<asp:RadioButtonList ID="RblIntervaloHP" runat="server" RepeatDirection="Horizontal" CssClass="input-group col-md-12" CellSpacing="100" OnSelectedIndexChanged="RblIntervaloHP_SelectedIndexChanged" AutoPostBack="true">
|
<asp:RadioButtonList ID="RblIntervaloHP" runat="server" RepeatDirection="Horizontal" CssClass="input-group col-md-12" CellSpacing="100" OnSelectedIndexChanged="RblIntervaloHP_SelectedIndexChanged" AutoPostBack="true">
|
||||||
<asp:ListItem Value="1" Class="one" Selected="True"><label><b>Semanal</b></label></asp:ListItem>
|
<asp:ListItem Value="1" Class="one" Selected="True"><label><b>Semanal</b></label></asp:ListItem>
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ Partial Class Ventas_RepVentas
|
|||||||
|
|
||||||
'SI ES EL USUARIO SISTEMA MOSTRAR LA MODALIDAD CONTABLE (TEMPORAL)
|
'SI ES EL USUARIO SISTEMA MOSTRAR LA MODALIDAD CONTABLE (TEMPORAL)
|
||||||
'If UsuarioActual.CveUsuario = 100 Then
|
'If UsuarioActual.CveUsuario = 100 Then
|
||||||
divModalidadcontable.Visible = True
|
'divModalidadcontable.Visible = True
|
||||||
'End If
|
'End If
|
||||||
|
|
||||||
'Modalidad Cotizacion
|
'Modalidad Cotizacion
|
||||||
@@ -270,6 +270,10 @@ Partial Class Ventas_RepVentas
|
|||||||
DdlClienteClasificacion.DataBind()
|
DdlClienteClasificacion.DataBind()
|
||||||
DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
DdlClienteClasificacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||||
|
|
||||||
|
DdlTipoRelacion.DataSource = GlobalDTVtaTiposRelacion
|
||||||
|
DdlTipoRelacion.DataBind()
|
||||||
|
DdlTipoRelacion.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||||
|
|
||||||
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
|
txtFechaI.Text = Now.FirstDayOfMonth.ToShortDateString
|
||||||
txtFechaF.Text = Now.ToShortDateString
|
txtFechaF.Text = Now.ToShortDateString
|
||||||
|
|
||||||
@@ -321,7 +325,7 @@ Partial Class Ventas_RepVentas
|
|||||||
If ObjVentas.GetRepVentas(FechaI, FechaF, FechaIEjec, FechaFEjec, CveCliente, DdlSubProyectoEjecucion.SelectedValue.ToEntero, Vendedores,
|
If ObjVentas.GetRepVentas(FechaI, FechaF, FechaIEjec, FechaFEjec, CveCliente, DdlSubProyectoEjecucion.SelectedValue.ToEntero, Vendedores,
|
||||||
DdlUsuario.SelectedValue.ToEntero, Estatus, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, TipoComprobante, DdlProyecto.SelectedValue.ToEntero, Sucursales, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, CveUsuarioConsulta:=UsuarioActual.CveUsuario,
|
DdlUsuario.SelectedValue.ToEntero, Estatus, "-1", UsuarioActual.CveEmpresa, DdlGrupo.SelectedValue.ToEntero, TipoComprobante, DdlProyecto.SelectedValue.ToEntero, Sucursales, RblTipoCambio.SelectedValue.ToEntero, TCEspecifico, CveUsuarioConsulta:=UsuarioActual.CveUsuario,
|
||||||
CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, CveCondicionesPago:=DdlCondicionesPago.SelectedValue.ToEntero, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=ModalidadContable,
|
CveClienteClasificacion:=DdlClienteClasificacion.SelectedValue.ToEntero, CveCondicionesPago:=DdlCondicionesPago.SelectedValue.ToEntero, TipoCliente:=DdlTipoCliente.SelectedValue.ToEntero, ModalidadContable:=ModalidadContable,
|
||||||
EsDistribuidor:=DdlDistribuidor.selectedvalue.toentero) Then
|
EsDistribuidor:=DdlDistribuidor.SelectedValue.ToEntero, CveTipoRelacion:=DdlTipoRelacion.SelectedValue.ToEntero()) Then
|
||||||
GvDatos.DataSource = ObjVentas.DtResultados
|
GvDatos.DataSource = ObjVentas.DtResultados
|
||||||
DtVentas = ObjVentas.DtResultados
|
DtVentas = ObjVentas.DtResultados
|
||||||
Else
|
Else
|
||||||
@@ -507,7 +511,7 @@ Partial Class Ventas_RepVentas
|
|||||||
|
|
||||||
|
|
||||||
'LIGA A DETALLE
|
'LIGA A DETALLE
|
||||||
Dim Liga As String = $"/Ventas/RepVentaDetalle.aspx?GPO={DdlGrupo.SelectedValue}&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&AnioEjec={e.Row.DBCampo("AnioEjec")}&MesEjec={e.Row.DBCampo("MesEjec")}&AnioMesEjec={e.Row.DBCampo("AnioMesEjec")}&FechaEjec={e.Row.DBCampo("FechaEjec")}&CveCliente={e.Row.DBCampo("CveCliente")}&CveVendedor={ e.Row.DBCampo("CveVendedor")}&CveUsuario={e.Row.DBCampo("CveUsuario")}&CveEstatusFactura={e.Row.DBCampo("CveEstatusFactura")}&FechaI={FechaInicial}&FechaF={FechaFinal}&FechaIEjec={FechaIEjec}&FechaFEjec={FechaFEjec}&IVA={e.Row.DBCampo("GPO_IVA")}&CveCorte={ e.Row.DBCampo("CveCorte")}&TipoDocto={ DdlTipoComprobante.GetSelectedValuesM}&CveSubProyectoEjecucion={e.Row.DBCampo("CveSubProyectoEjecucion")}&CveSubProyecto={CveSubProyecto}&CveProyecto={CveProyecto}&TipoCambio={TipoCambio}&TCEspecifico={TCEspecifico}&CveMoneda={CveMoneda}&CveClienteClasificacion={e.Row.DBCampo("CveClienteClasificacion")}&CveCondicionesPago={DdlCondicionesPago.SelectedValue}&TipoCliente={ If(DdlGrupo.SelectedValue.ToEntero = 20, e.Row.DBCampo("TipoCliente"), DdlTipoCliente.SelectedValue)}&ModalidadContable={If(ChkLecturaAdmin.Checked, 0, 1)}"
|
Dim Liga As String = $"/Ventas/RepVentaDetalle.aspx?GPO={DdlGrupo.SelectedValue}&Anio={e.Row.DBCampo("Anio")}&Mes={e.Row.DBCampo("Mes")}&AnioMes={e.Row.DBCampo("AnioMes")}&Fecha={e.Row.DBCampo("Fecha")}&AnioEjec={e.Row.DBCampo("AnioEjec")}&MesEjec={e.Row.DBCampo("MesEjec")}&AnioMesEjec={e.Row.DBCampo("AnioMesEjec")}&FechaEjec={e.Row.DBCampo("FechaEjec")}&CveCliente={e.Row.DBCampo("CveCliente")}&CveVendedor={ e.Row.DBCampo("CveVendedor")}&CveUsuario={e.Row.DBCampo("CveUsuario")}&CveEstatusFactura={e.Row.DBCampo("CveEstatusFactura")}&FechaI={FechaInicial}&FechaF={FechaFinal}&FechaIEjec={FechaIEjec}&FechaFEjec={FechaFEjec}&IVA={e.Row.DBCampo("GPO_IVA")}&CveCorte={ e.Row.DBCampo("CveCorte")}&TipoDocto={ DdlTipoComprobante.GetSelectedValuesM}&CveSubProyectoEjecucion={e.Row.DBCampo("CveSubProyectoEjecucion")}&CveSubProyecto={CveSubProyecto}&CveProyecto={CveProyecto}&TipoCambio={TipoCambio}&TCEspecifico={TCEspecifico}&CveMoneda={CveMoneda}&CveClienteClasificacion={e.Row.DBCampo("CveClienteClasificacion")}&CveCondicionesPago={DdlCondicionesPago.SelectedValue}&TipoCliente={ If(DdlGrupo.SelectedValue.ToEntero = 20, e.Row.DBCampo("TipoCliente"), DdlTipoCliente.SelectedValue)}&ModalidadContable={If(ChkLecturaAdmin.Checked, 0, 1)}&CveTipoRelacion={DdlTipoRelacion.SelectedValue}"
|
||||||
|
|
||||||
|
|
||||||
e.Row.FCLiteral("LtlGrupo").Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral("LtlGrupo").Text & "</a>"
|
e.Row.FCLiteral("LtlGrupo").Text = "<a class=""" & Css & """ href=""" & Liga & """>" & e.Row.FCLiteral("LtlGrupo").Text & "</a>"
|
||||||
|
|||||||
@@ -1080,7 +1080,7 @@
|
|||||||
<asp:Literal ID="LtlCantidad" runat="server" Text='<%# Eval("Cantidad") %>' Visible="false"></asp:Literal>
|
<asp:Literal ID="LtlCantidad" runat="server" Text='<%# Eval("Cantidad") %>' Visible="false"></asp:Literal>
|
||||||
<asp:Literal ID="LtlTipoDescuento" runat="server" Text='<%# Eval("TipoDescuento") %>' Visible="false"></asp:Literal>
|
<asp:Literal ID="LtlTipoDescuento" runat="server" Text='<%# Eval("TipoDescuento") %>' Visible="false"></asp:Literal>
|
||||||
<asp:Literal ID="LtlDescuento" runat="server" Text='<%# Eval("Descuento") %>' Visible="false"></asp:Literal>
|
<asp:Literal ID="LtlDescuento" runat="server" Text='<%# Eval("Descuento") %>' Visible="false"></asp:Literal>
|
||||||
<asp:TextBox ID="TxtCantidad" runat="server" CausesValidation="true" MaxLength="12" Text='<%# Eval("Cantidad") %>' ValidationGroup="GprGV" Width="45px" Height="24px"></asp:TextBox>
|
<asp:TextBox ID="TxtCantidad" runat="server" CausesValidation="true" MaxLength="12" Text='<%# Eval("Cantidad", "{0:####.######}") %>' ValidationGroup="GprGV" Width="45px" Height="24px"></asp:TextBox>
|
||||||
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GprGV"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator ID="RFVCantidad" runat="server" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> es necesario, por favor ingréselo." ValidationGroup="GprGV"></asp:RequiredFieldValidator>
|
||||||
<ajax:ValidatorCalloutExtender ID="VCOCantidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
|
<ajax:ValidatorCalloutExtender ID="VCOCantidad1" runat="server" HighlightCssClass="vco" TargetControlID="RFVCantidad" Width="300px"></ajax:ValidatorCalloutExtender>
|
||||||
<asp:CustomValidator ID="CVCantidadEdit" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto. Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GprGV"></asp:CustomValidator>
|
<asp:CustomValidator ID="CVCantidadEdit" runat="server" ClientValidationFunction="ValidaDecimal6digits" ControlToValidate="TxtCantidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Cantidad''</b> no tiene el formato correcto. Por favor rectifique y vuelva a intentar." ValidateEmptyText="True" ValidationGroup="GprGV"></asp:CustomValidator>
|
||||||
@@ -1186,7 +1186,7 @@
|
|||||||
<asp:Literal ID="LtlDesc" runat="server" Text='<%# Eval("Descuento", "{0:N2}") %>'></asp:Literal>
|
<asp:Literal ID="LtlDesc" runat="server" Text='<%# Eval("Descuento", "{0:N2}") %>'></asp:Literal>
|
||||||
</ItemTemplate>
|
</ItemTemplate>
|
||||||
<EditItemTemplate>
|
<EditItemTemplate>
|
||||||
<asp:TextBox ID="TxtDescuento" runat="server" CausesValidation="true" MaxLength="12" Text='<%# Eval("Descuento") %>' ValidationGroup="GprGV" Width="60px" Height="24px"></asp:TextBox>
|
<asp:TextBox ID="TxtDescuento" runat="server" CausesValidation="true" MaxLength="12" Text='<%# Eval("Descuento", "{0:0.00####}") %>' ValidationGroup="GprGV" Width="60px" Height="24px"></asp:TextBox>
|
||||||
<ajax:FilteredTextBoxExtender ID="FTESoloNumeros" runat="server" TargetControlID="TxtDescuento" FilterType="Custom, Numbers" ValidChars="." />
|
<ajax:FilteredTextBoxExtender ID="FTESoloNumeros" runat="server" TargetControlID="TxtDescuento" FilterType="Custom, Numbers" ValidChars="." />
|
||||||
<asp:RequiredFieldValidator ID="RFVDescuento" runat="server" ControlToValidate="TxtDescuento" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descuento''</b> es necesario, por favor ingréselo." ValidationGroup="GprGV"></asp:RequiredFieldValidator>
|
<asp:RequiredFieldValidator ID="RFVDescuento" runat="server" ControlToValidate="TxtDescuento" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Descuento''</b> es necesario, por favor ingréselo." ValidationGroup="GprGV"></asp:RequiredFieldValidator>
|
||||||
<ajax:ValidatorCalloutExtender ID="VCDescuento" runat="server" HighlightCssClass="vco" TargetControlID="RFVDescuento" Width="300px"></ajax:ValidatorCalloutExtender>
|
<ajax:ValidatorCalloutExtender ID="VCDescuento" runat="server" HighlightCssClass="vco" TargetControlID="RFVDescuento" Width="300px"></ajax:ValidatorCalloutExtender>
|
||||||
|
|||||||
@@ -2576,6 +2576,9 @@ Partial Class Ventas
|
|||||||
DdlSubProyectoDatos.Enabled = False
|
DdlSubProyectoDatos.Enabled = False
|
||||||
BtnEmitirImprimir.Visible = False
|
BtnEmitirImprimir.Visible = False
|
||||||
BtnCrearApartirDe.Visible = True
|
BtnCrearApartirDe.Visible = True
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
|
||||||
|
BtnCrearApartirDe.Visible = False
|
||||||
|
End If
|
||||||
If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then BtnEditar.Visible = True
|
If UsuarioActual.TienePermisoProceso(302) AndAlso DdlTipoComprobante.SelectedValue = "Ing" Then BtnEditar.Visible = True
|
||||||
'DdlEstatus.Enabled = True
|
'DdlEstatus.Enabled = True
|
||||||
|
|
||||||
@@ -2863,6 +2866,9 @@ Partial Class Ventas
|
|||||||
|
|
||||||
'DdlSucursal.Enabled = False
|
'DdlSucursal.Enabled = False
|
||||||
BtnCrearApartirDe.Visible = True
|
BtnCrearApartirDe.Visible = True
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
|
||||||
|
BtnCrearApartirDe.Visible = False
|
||||||
|
End If
|
||||||
'DdlEstatus.Enabled = True
|
'DdlEstatus.Enabled = True
|
||||||
|
|
||||||
ImgAddObs.Visible = True
|
ImgAddObs.Visible = True
|
||||||
@@ -15973,6 +15979,7 @@ Partial Class Ventas
|
|||||||
If UsuarioActual.Empresa.EstatusFacturacion Then
|
If UsuarioActual.Empresa.EstatusFacturacion Then
|
||||||
|
|
||||||
CreaObjetosVenta()
|
CreaObjetosVenta()
|
||||||
|
|
||||||
'PARA CUANDO YA ESTA GUARDADA LA VENTA
|
'PARA CUANDO YA ESTA GUARDADA LA VENTA
|
||||||
ObjFactura.CveVenta = CveVenta
|
ObjFactura.CveVenta = CveVenta
|
||||||
ObjFactura.Serie = Serie
|
ObjFactura.Serie = Serie
|
||||||
@@ -16177,11 +16184,14 @@ Partial Class Ventas
|
|||||||
Dim RFCReceptor As String = GvRow.DataKey("RFCReceptor")
|
Dim RFCReceptor As String = GvRow.DataKey("RFCReceptor")
|
||||||
Dim CvePACCancelacion As Integer = GvRow.DataKey("CvePAC").ToEntero()
|
Dim CvePACCancelacion As Integer = GvRow.DataKey("CvePAC").ToEntero()
|
||||||
|
|
||||||
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, 0, RFCReceptor, RFCEmisor, CvePACCancelacion) Then
|
|
||||||
|
Dim RespCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, 0, RFCReceptor, RFCEmisor, CvePACCancelacion)
|
||||||
|
|
||||||
|
If RespCancelacion.Verificado Then
|
||||||
|
|
||||||
If ObjBanco.UpdateComplementoPago(CveComplementoPago, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse) Then
|
If ObjBanco.UpdateComplementoPago(CveComplementoPago, "-1", -1, UsuarioActual.CveEmpresa, 2, CvePACCancelacion, FechaCancelacion:=ObjCancelacion.CancelacionFecha, SelloCancelacion:=ObjCancelacion.CancelacionAcuse) Then
|
||||||
CargaComplementosPago()
|
CargaComplementosPago()
|
||||||
Alert("El complemento se cancelo correctamente.")
|
Alert("El complemento se canceló correctamente.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Else
|
Else
|
||||||
@@ -16413,8 +16423,8 @@ Partial Class Ventas
|
|||||||
If Not ObjVentas.UpdateEstatusFactura(13, FolioFiscal, "", Now, CveVenta, IDPoliza) Then 'Marcamos la factura como refacturada, si no se cancelo en el SAT el estatus nos dejara cancelarla despues
|
If Not ObjVentas.UpdateEstatusFactura(13, FolioFiscal, "", Now, CveVenta, IDPoliza) Then 'Marcamos la factura como refacturada, si no se cancelo en el SAT el estatus nos dejara cancelarla despues
|
||||||
ErrorCancelar = True
|
ErrorCancelar = True
|
||||||
End If
|
End If
|
||||||
|
Dim RespCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC)
|
||||||
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC) Then
|
If RespCancelacion.Verificado Then
|
||||||
'falta verificar traer el acuse y reenviarlo
|
'falta verificar traer el acuse y reenviarlo
|
||||||
|
|
||||||
If UsuarioActual.Empresa.UsaAC Then
|
If UsuarioActual.Empresa.UsaAC Then
|
||||||
@@ -17199,8 +17209,8 @@ Partial Class Ventas
|
|||||||
DdlIVA.SelectedValue = "1"
|
DdlIVA.SelectedValue = "1"
|
||||||
PorcentajeIVA = ViewState("IVA").ToString().ToDecimal
|
PorcentajeIVA = ViewState("IVA").ToString().ToDecimal
|
||||||
Case 0.08
|
Case 0.08
|
||||||
DdlIVA.SelectedValue = If(EsCreaApartirDe, $"{(TmpDT.MAX("PorcentajeIVA").ToDecimal + 1).ToString()}", "1.08")
|
DdlIVA.SelectedValue = If(EsCreaApartirDe, $"{(TmpDT.MAX("PorcentajeIVA").ToDecimal() + 1).RoundSQL(2).ToString()}", "1.08")
|
||||||
PorcentajeIVA = If(EsCreaApartirDe, TmpDT.MAX("PorcentajeIVA").ToDecimal, ViewState("IVA").ToString().ToDecimal)
|
PorcentajeIVA = If(EsCreaApartirDe, TmpDT.MAX("PorcentajeIVA").ToDecimal, ViewState("IVA").ToString().ToDecimal).RoundSQL(2)
|
||||||
DdlIVA.Visible = If(Not CveVenta > 0 Or EsCreaApartirDe Or CveDevolucion > 0, True, False)
|
DdlIVA.Visible = If(Not CveVenta > 0 Or EsCreaApartirDe Or CveDevolucion > 0, True, False)
|
||||||
Case 0.16
|
Case 0.16
|
||||||
DdlIVA.SelectedValue = "1.16"
|
DdlIVA.SelectedValue = "1.16"
|
||||||
@@ -23638,49 +23648,50 @@ Partial Class Ventas
|
|||||||
RegistraScript("$('#ModalCancelarDocumento').modal('hide');")
|
RegistraScript("$('#ModalCancelarDocumento').modal('hide');")
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub CancelarRefacturada()
|
'Private Sub CancelarRefacturada()
|
||||||
Dim CancelacionFecha As Date
|
' Dim CancelacionFecha As Date
|
||||||
Dim ObjVentas As New ClsVentas() : ObjVentas.IniciaTransacSQL()
|
' Dim ObjVentas As New ClsVentas() : ObjVentas.IniciaTransacSQL()
|
||||||
Dim CancelacionAcuse As String = ""
|
' Dim CancelacionAcuse As String = ""
|
||||||
Dim Mensaje As String = ""
|
' Dim Mensaje As String = ""
|
||||||
Dim ObjCancelacion As New Timbrado
|
' Dim ObjCancelacion As New Timbrado
|
||||||
Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
|
' Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
|
||||||
Dim RFCReceptor As String = LblRFC.Text.Trim
|
' Dim RFCReceptor As String = LblRFC.Text.Trim
|
||||||
Dim CvePACCancelacion As Integer = CvePAC
|
' Dim CvePACCancelacion As Integer = CvePAC
|
||||||
Dim CveEstatus As Integer = 4
|
' Dim CveEstatus As Integer = 4
|
||||||
|
|
||||||
Try
|
' Try
|
||||||
If FolioFiscal <> "" Then
|
' If FolioFiscal <> "" Then
|
||||||
If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion) Then
|
' Dim resp = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion)
|
||||||
'Generamos el acuse y mandamos mail de con el acuse de cancelación - DF 13/01/2017
|
' If resp.Verificado Then
|
||||||
CancelacionFecha = ObjCancelacion.CancelacionFecha
|
' 'Generamos el acuse y mandamos mail de con el acuse de cancelación - DF 13/01/2017
|
||||||
CancelacionAcuse = ObjCancelacion.CancelacionAcuse
|
' CancelacionFecha = ObjCancelacion.CancelacionFecha
|
||||||
CveEstatus = 5
|
' CancelacionAcuse = ObjCancelacion.CancelacionAcuse
|
||||||
Else
|
' CveEstatus = 5
|
||||||
Alert("Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx", TipoMensaje.MsgError)
|
' Else
|
||||||
Exit Sub
|
' Alert("Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx", TipoMensaje.MsgError)
|
||||||
End If
|
' Exit Sub
|
||||||
Else
|
' End If
|
||||||
CancelacionFecha = Now.Date
|
' Else
|
||||||
CancelacionAcuse = ""
|
' CancelacionFecha = Now.Date
|
||||||
End If
|
' CancelacionAcuse = ""
|
||||||
|
' End If
|
||||||
|
|
||||||
If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IdPoliza, CvePAC:=CvePACCancelacion) Then
|
' If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, CancelacionAcuse, CancelacionFecha, CveVenta, IdPoliza, CvePAC:=CvePACCancelacion) Then
|
||||||
ObjVentas.Commit()
|
' ObjVentas.Commit()
|
||||||
Alert("El nuevo estatus se guardó correctamente")
|
' Alert("El nuevo estatus se guardó correctamente")
|
||||||
Else
|
' Else
|
||||||
ObjVentas.RollBack()
|
' ObjVentas.RollBack()
|
||||||
Alert("Ocurrió un error al intentar cancelar la factura")
|
' Alert("Ocurrió un error al intentar cancelar la factura")
|
||||||
End If
|
' End If
|
||||||
|
|
||||||
Catch ex As Exception
|
' Catch ex As Exception
|
||||||
ObjVentas.RollBack()
|
' ObjVentas.RollBack()
|
||||||
Mensaje = "Ocurrio un error al Cancelar la factura"
|
' Mensaje = "Ocurrio un error al Cancelar la factura"
|
||||||
GuardaLog($"{ex.Message}")
|
' GuardaLog($"{ex.Message}")
|
||||||
End Try
|
' End Try
|
||||||
|
|
||||||
ObjVentas.Dispose()
|
' ObjVentas.Dispose()
|
||||||
End Sub
|
'End Sub
|
||||||
Private Function DecodeBase64(ByVal strXMLCodificado As String) As String
|
Private Function DecodeBase64(ByVal strXMLCodificado As String) As String
|
||||||
Try
|
Try
|
||||||
Dim decbuff As Byte() = Convert.FromBase64String(strXMLCodificado)
|
Dim decbuff As Byte() = Convert.FromBase64String(strXMLCodificado)
|
||||||
@@ -23769,9 +23780,9 @@ Partial Class Ventas
|
|||||||
|
|
||||||
Dim LigaRedirigir As String = ""
|
Dim LigaRedirigir As String = ""
|
||||||
'Si es cancelacion de una refactura ignoramos las condiciones
|
'Si es cancelacion de una refactura ignoramos las condiciones
|
||||||
If Me.CveEstatus = 13 Then
|
'If Me.CveEstatus = 13 Then
|
||||||
CancelarRefacturada()
|
' CancelarRefacturada()
|
||||||
End If
|
'End If
|
||||||
|
|
||||||
Dim ObjFacturaCancelacion As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=True)
|
Dim ObjFacturaCancelacion As New Modelos.Factura(UsuarioActual, CveVenta, UsuarioActual.CveEmpresa, EsCancelacion:=True)
|
||||||
Try
|
Try
|
||||||
|
|||||||
@@ -91,6 +91,25 @@ Public Class WSGPSApp
|
|||||||
End Set
|
End Set
|
||||||
End Property
|
End Property
|
||||||
#End Region
|
#End Region
|
||||||
|
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
|
||||||
|
|
||||||
|
Dim ObjEmpresa As New ClsSisEmpresas()
|
||||||
|
If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
|
||||||
|
If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.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
|
||||||
|
|
||||||
|
UsuarioActual.Empresa = ObjEmpresa.Empresa
|
||||||
|
End If
|
||||||
|
ObjEmpresa.Dispose()
|
||||||
|
End Sub
|
||||||
|
|
||||||
<SoapHeader("Credentials")>
|
<SoapHeader("Credentials")>
|
||||||
<WebMethod>
|
<WebMethod>
|
||||||
Public Function Login(params As String) As String
|
Public Function Login(params As String) As String
|
||||||
@@ -136,13 +155,20 @@ Public Class WSGPSApp
|
|||||||
If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then
|
If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then
|
||||||
UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente
|
UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente
|
||||||
If UsuarioRetorno.CveCliente > 0 Then
|
If UsuarioRetorno.CveCliente > 0 Then
|
||||||
If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) Then
|
CreaObjetoEmpresa(UsuarioActual)
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) OrElse UsuarioActual.CveUsuario = 3612 Then
|
||||||
UsuarioRetorno.RastreoSoloInicio = True
|
UsuarioRetorno.RastreoSoloInicio = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'MARCA PARA EL RASTREO SOLO INICIO
|
||||||
|
If UsuarioRetorno.CveUsuario = 3612 Then
|
||||||
|
UsuarioRetorno.RastreoSoloInicio = True
|
||||||
|
End If
|
||||||
|
|
||||||
UsuarioRetorno.Clientes = Clientes
|
UsuarioRetorno.Clientes = Clientes
|
||||||
DtClientes.Dispose()
|
DtClientes.Dispose()
|
||||||
DtClientes = Nothing
|
DtClientes = Nothing
|
||||||
@@ -205,7 +231,8 @@ Public Class WSGPSApp
|
|||||||
If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then
|
If UsuarioActual.CveCliente <= 0 AndAlso Clientes.Any() Then
|
||||||
UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente
|
UsuarioRetorno.CveCliente = Clientes.FirstOrDefault().CveCliente
|
||||||
If UsuarioRetorno.CveCliente > 0 Then
|
If UsuarioRetorno.CveCliente > 0 Then
|
||||||
If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) Then
|
CreaObjetoEmpresa(UsuarioActual)
|
||||||
|
If UsuarioActual.Empresa.Funcionalidad(704).Contiene(UsuarioRetorno.CveCliente.ToString()) OrElse UsuarioActual.CveUsuario = 3612 Then
|
||||||
UsuarioRetorno.RastreoSoloInicio = True
|
UsuarioRetorno.RastreoSoloInicio = True
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
@@ -213,6 +240,12 @@ Public Class WSGPSApp
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'MARCA PARA EL RASTREO SOLO INICIO
|
||||||
|
If UsuarioRetorno.CveUsuario = 3612 Then
|
||||||
|
UsuarioRetorno.RastreoSoloInicio = True
|
||||||
|
End If
|
||||||
|
|
||||||
UsuarioRetorno.Clientes = Clientes
|
UsuarioRetorno.Clientes = Clientes
|
||||||
DtClientes.Dispose()
|
DtClientes.Dispose()
|
||||||
DtClientes = Nothing
|
DtClientes = Nothing
|
||||||
@@ -1005,13 +1038,6 @@ Public Class WSGPSApp
|
|||||||
End Function
|
End Function
|
||||||
|
|
||||||
#Region "F U N C I O N E S"
|
#Region "F U N C I O N E S"
|
||||||
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
|
|
||||||
Dim ObjEmpresa As New ClsSisEmpresas()
|
|
||||||
If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
|
|
||||||
UsuarioActual.Empresa = ObjEmpresa.Empresa
|
|
||||||
End If
|
|
||||||
ObjEmpresa.Dispose()
|
|
||||||
End Sub
|
|
||||||
Private Function CargarEventos(CveCliente As Integer, FechaI As DateTime, FechaF As DateTime) As MWSDashboard2
|
Private Function CargarEventos(CveCliente As Integer, FechaI As DateTime, FechaF As DateTime) As MWSDashboard2
|
||||||
Dim ObjGPS As New ClsGPS
|
Dim ObjGPS As New ClsGPS
|
||||||
Dim dash As New MWSDashboard2
|
Dim dash As New MWSDashboard2
|
||||||
|
|||||||
Reference in New Issue
Block a user