diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index 68086bdba..3138f25ba 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -33,6 +33,13 @@ Public Class CFDITimbre End Get End Property + Public ReadOnly Property AplicaImpuestosTraslados As Boolean 'detecte si va la etiqueta de impuestos, aunque sea en cero + Get + Return (From c In Conceptos + Select c.Impuestos.Where(Function(tra) tra.TrasladooRetencion = "T" And tra.TipoFactor = "Tasa")).Count() > 0 + End Get + End Property + Public ReadOnly Property Retenciones As List(Of CFDIRetenciones) Get Dim tRetorno As New List(Of CFDIRetenciones) @@ -72,7 +79,7 @@ Public Class CFDITimbre For Each c As CFDIConceptos In Conceptos For Each imp As CFDIConceptosImpuestos In c.Impuestos If imp.TrasladooRetencion = "T" Then - tRetorno.Add(New CFDITraslados With {.Impuesto = imp.Impuesto, .Importe = imp.Importe, .TasaOCuota = imp.TasaOCuota, .TipoFactor = imp.TipoFactor}) + tRetorno.Add(New CFDITraslados With {.Impuesto = imp.Impuesto, .Base = imp.Base, .Importe = imp.Importe, .TasaOCuota = imp.TasaOCuota, .TipoFactor = imp.TipoFactor}) End If Next Next @@ -82,6 +89,7 @@ Public Class CFDITimbre .Select(Function(t) New CFDITraslados With {.Impuesto = t.Key.Impuesto, .TipoFactor = t.Key.TipoFactor, .TasaOCuota = t.Key.TasaOCuota, + .Base = t.Sum(Function(tt) tt.Base), .Importe = t.Sum(Function(tt) tt.Importe)}) _ .OrderBy(Function(x) x.Impuesto).ToList @@ -228,6 +236,7 @@ Public Class CFDIComprobante Public Property Moneda As String = "" Public Property TipoComprobante As String = "" Public Property MetodoPago As String = "" + Public Property Exportacion As String = "01" '01-No Aplica Public Property LugarExpedicion As String = "" Public Property NumCuentaPago As String = "" Public Property Confirmacion As String = "" @@ -270,6 +279,8 @@ End Class Public Class CFDIReceptor Public Property RFC As String Public Property Nombre As String + Public Property RegimenFiscalReceptor As String = "" + Public Property DomicilioFiscalReceptor As String = "" Public Property ResidenciaFiscal As String = "" Public Property NumeroRegistroTributario As String = "" Public Property UsoCFDI As String @@ -314,6 +325,7 @@ Public Class CFDIConceptos Public Property ClaveUnidad As String = "" Public Property Impuestos As List(Of CFDIConceptosImpuestos) Public Property Descuento As Decimal = 0.00D + Public Property ObjetoImpuesto As String = "02" Public Property ImporteGravaIVAAdicional As Decimal = 0.00D 'caso IEPS Sub New() @@ -408,6 +420,7 @@ Public Class CFDITraslados Public Property TipoFactor As String Public Property TasaOCuota As Decimal Public Property Importe As Decimal + Public Property Base As Decimal End Class diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 9845e2643..e9826f77e 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -125,6 +125,7 @@ Public Class ClsClientes Public Property Celular As String Public Property ExtOtros As String Public Property CveUsoCFDI As Integer + Public Property CveRegimenFiscal As Integer Public Property CveFormaPago33 As Integer Public Property CveMetodoPago33 As Integer Public Property CveClienteCorporativo As String @@ -384,6 +385,8 @@ Public Class ClsClientes _CveFormaPago33 = Data(0)("CveFormaPago33").ToString.ToEntero _CveMetodoPago33 = Data(0)("CveMetodoPago33").ToString.ToEntero + _CveRegimenFiscal = Data(0)("CveRegimenFiscal").ToString.ToEntero + _CveClienteCorporativo = Data(0)("CveClienteCorporativo").ToString _DesglosaIEPS = CType(Data(0)("DesglosaIEPS"), Boolean) _NoDesglosaIVA = CType(Data(0)("NoDesglosaIVA"), Boolean) @@ -573,7 +576,7 @@ Public Class ClsClientes Optional AplicaComercioExterior As Boolean = False, Optional CveTipoOperacion As Integer = -1, Optional CvePedimento As Integer = -1, Optional CveIncoterm As Integer = -1, Optional CvePais As Integer = -1, Optional CveEstado As Integer = -1, Optional CveMunicipio As Integer = -1, Optional CveColonia As Integer = -1, Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, - Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1) As Boolean + Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional CveRegimenFiscal As Integer = 0) As Boolean Dim Retorno As Boolean = False @@ -714,7 +717,7 @@ Public Class ClsClientes .Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado .Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto - + .Add("@CveRegimenFiscal", SqlDbType.TinyInt).Value = CveRegimenFiscal End With Try @@ -763,7 +766,7 @@ Public Class ClsClientes Optional CveMotivoTraslado As Integer = 0, Optional NumRegIdTrib As String = "-1", Optional ComExtEstado As String = "-1", Optional ComExtMunicipio As String = "-1", Optional ComExtColonia As String = "-1", Optional ApellidoPaternoPF As String = "-1", Optional ApellidoMaternoPF As String = "-1", Optional NombresPF As String = "-1", Optional RequiereOC As Boolean = False, Optional LT As String = "0", Optional LG As String = "0", Optional EsDistribuidor As Boolean = False, Optional TipoCliente As Integer = 1, Optional CargoUsado As Boolean = False, Optional BonificacionUsado As Boolean = False, Optional CveTipoRetencion As Integer = 0, Optional CorreoEntregaCompras As String = "-1", Optional CorreoEntregaAlmacen As String = "-1", - Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False) As Boolean + Optional CveSATEstado As Integer = -1, Optional CveAdminTrayecto As Integer = -1, Optional NoDesglosaIVA As Boolean = False, Optional CveRegimenFiscal As Integer = 0) As Boolean Dim Retorno As Boolean = False @@ -920,6 +923,7 @@ Public Class ClsClientes .Add("@CveSATEstado", SqlDbType.Int).Value = CveSATEstado .Add("@CveAdminTrayecto", SqlDbType.TinyInt).Value = CveAdminTrayecto + .Add("@CveRegimenFiscal", SqlDbType.TinyInt).Value = CveRegimenFiscal End With Try diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index eccfb731a..e8fd83dd4 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -716,6 +716,23 @@ Public Class ClsPaginas Application("GlobalDTNomSatRegimenContratacion") = value End Set End Property + + Property GlobalDTRegimenesFiscales() As DataTable + Get + Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales") + 'sino existe, recarga los datos + If Application(AppNombre) Is Nothing Then + Dim ObjGral As New ClsSisEmpresas + If ObjGral.GetRegimenFiscal(-1) Then Application(AppNombre) = ObjGral.DtResultados + ObjGral.Dispose() + End If + GlobalDTRegimenesFiscales = DirectCast(Application(AppNombre), DataTable) + End Get + Set(value As DataTable) + Dim AppNombre As String = String.Format("GlobalDTRegimenesFiscales") + Application(AppNombre) = value + End Set + End Property Property GlobalDTNomSatRiesgoPuesto() As DataTable Get GlobalDTNomSatRiesgoPuesto = DirectCast(Application("GlobalDTNomSatRiesgoPuesto"), DataTable) @@ -6933,7 +6950,7 @@ Public Class ClsPaginas Dim TC As Decimal = ValorNodoXML(XmlDoc.DocumentElement, "TC").ToDecimal If TC <= 0 Then TC = 1 - If ValorNodoXML(XmlDoc.DocumentElement, "version") = "3.3" Then + If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then Vta.FechaEmision = ValorNodoXML(XmlDoc.DocumentElement, "fecha").ToDate Vta.NoSerieCertificadoContribuyente = ValorNodoXML(XmlDoc.DocumentElement, "NoCertificado") @@ -7039,7 +7056,7 @@ Public Class ClsPaginas 'Dim CadenaOriginals As String = "||1.0|" + Vta.FolioFiscal + "|" + Vta.FechaCertificacion.ToString("yyyy-MM-dd") + "T" + Vta.FechaCertificacion.ToString("HH:mm:ss") + "|" + Vta.SelloCFDi + "|" + Vta.NoSerieCertificado + "||" - Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version = "3.3", "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado) + Dim CadenaOriginals As String = String.Format("||{0}|{1}|{2}T{3}|{4}|{5}||", If(Vta.Version.Contiene("3.3", "4.0"), "1.1", "1.0"), Vta.FolioFiscal, Vta.FechaCertificacion.ToString("yyyy-MM-dd"), Vta.FechaCertificacion.ToString("HH:mm:ss"), Vta.SelloCFDi, Vta.NoSerieCertificado) If Not ImagenCBB.Exists Then ImgCBB = "" Dim RutaFormato As String = "" Dim RutaFormatoDefault As String = "" @@ -7162,7 +7179,7 @@ Public Class ClsPaginas params.Add(New ReportParameter("MetodoPago", Vta.ClaveMetodoPagoSAT.ToString)) End If - If Vta.Version = "3.3" Then + If Vta.Version.Contiene("3.3", "4.0") Then params.Add(New ReportParameter("FormaPago", Vta.FormaPago33.ToString)) params.Add(New ReportParameter("MetodoPago", Vta.MetodoPago33.ToString)) params.Add(New ReportParameter("UsoCFDI", Vta.UsoCFDI)) @@ -8342,7 +8359,7 @@ Public Class ClsPaginas 'XmlDoc.Load(Ruta & "XML\\Nomina\NOM A-3845.xml") XmlDoc.Load(PathXML) - If ValorNodoXML(XmlDoc.DocumentElement, "version") = "3.3" Then + If ValorNodoXML(XmlDoc.DocumentElement, "version").Contiene("3.3", "4.0") Then FechaEmision = XmlDoc.DocumentElement.Attributes("Fecha").InnerText.ToDate NoSerieCertificadoContribuyente = XmlDoc.DocumentElement.Attributes("NoCertificado").InnerText diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 657dbc7f1..367c2a669 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -2125,7 +2125,8 @@ Namespace Modelos If factura.TipoDocto = "RNC" AndAlso factura.Num1 = 1 AndAlso factura.DtMovimientosUsados IsNot Nothing AndAlso ObjAcum IsNot Nothing Then 'Dim Mensaje As String = "" Dim CveMovimiento = ObjInventario.AddMovimiento(factura.CveAlmacen, factura.CveConceptoMovimiento, 1, factura.Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, factura.CveVenta, - CveSubProyecto, CveActivoFijo:=-1, Guia:="", Observaciones:=factura.ObservacionesMovimiento, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/G") + CveSubProyecto, CveActivoFijo:=-1, + Observaciones:=factura.MovimientoObservaciones, Recibio:=factura.MovimientoRecibio, CvePersonal:=-1, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, Modulo:="RU/GModel") If CveMovimiento <= 0 Then 'Mensaje = "Error al guardar los movimientos" Resultado = False @@ -6303,7 +6304,8 @@ Namespace Modelos Public Property CveAlmacen As Integer Public Property GenerarSalidaAlmacen As Boolean = False Public Property CveConceptoMovimiento As Integer - Public Property ObservacionesMovimiento As String + Public Property MovimientoObservaciones As String + Public Property MovimientoRecibio As String Public Property DtMovimientosUsados As DataTable Public Property CveAlmacenDevolucion As Integer Public Property CveVenta As Integer @@ -10009,6 +10011,8 @@ Namespace Modelos Public Property Pais As String Public Property RFC As String Public Property CP As String + Public Property CveRegimenFiscal As Integer + Public Property CodigoRegimenFiscal As String Public Property Telefono As String Public Property Contacto As String Public Property Mail As String diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index adcce23d0..2f98c6f49 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -868,7 +868,7 @@ Public Class Timbrado Timbre.Comprobante.FormadePago = "" Timbre.Comprobante.CondicionesdePago = "" Timbre.Comprobante.MetodoPago = "" - Timbre.Comprobante.Subtotal = 0 + Timbre.Comprobante.SubTotal = 0 Timbre.Comprobante.Descuentos = 0 Timbre.Comprobante.Moneda = "XXX" Timbre.Comprobante.TipoCambio = "" @@ -1016,10 +1016,16 @@ Public Class Timbrado Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas) 'Retorno = TimbrarFacturaProFact(UsuarioActual, Ventas, TmpDTConceptos, TmpDTImpuestos, TmpDTComplementos, Ruta, LstFordASN, FordGSDBM, ObjV) Case 4 + If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then + Dim Ret As String = TimbrarFacturaGoCFDIv40(Ventas, UsuarioActual, CvePACEspecial) + If Ret <> "" Then MensajeErrorCFDI = Ret + Retorno = If(Ret = "", True, False) + Else + Dim Ret As String = TimbrarFacturaGoCFDIv33(Ventas, UsuarioActual, CvePACEspecial) + If Ret <> "" Then MensajeErrorCFDI = Ret + Retorno = If(Ret = "", True, False) + End If - Dim Ret As String = TimbrarFacturaGoCFDIv33(Ventas, UsuarioActual, CvePACEspecial) - If Ret <> "" Then MensajeErrorCFDI = Ret - Retorno = If(Ret = "", True, False) Case 5 @@ -1088,7 +1094,7 @@ Public Class Timbrado ObjCFDITimbre.Comprobante.Fecha, ObjCFDITimbre.Comprobante.FormadePago, ObjCFDITimbre.Comprobante.CondicionesdePago, - ObjCFDITimbre.Comprobante.Subtotal, + ObjCFDITimbre.Comprobante.SubTotal, ObjCFDITimbre.Comprobante.Descuentos, ObjCFDITimbre.Comprobante.TipoCambio.ToDecimal, ObjCFDITimbre.Comprobante.Moneda, @@ -1507,7 +1513,7 @@ Public Class Timbrado ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"), ObjCFDITimbre.Comprobante.FormadePago, ObjCFDITimbre.Comprobante.CondicionesdePago, - ObjCFDITimbre.Comprobante.Subtotal, + ObjCFDITimbre.Comprobante.SubTotal, ObjCFDITimbre.Comprobante.Descuentos, ObjCFDITimbre.Comprobante.Moneda, ObjCFDITimbre.Comprobante.TipoCambio.ToString, @@ -2100,7 +2106,7 @@ Public Class Timbrado ObjCFDITimbre.Comprobante.Fecha.ToString("yyyy-MM-ddTHH:mm:ss"), ObjCFDITimbre.Comprobante.FormadePago, ObjCFDITimbre.Comprobante.CondicionesdePago, - ObjCFDITimbre.Comprobante.Subtotal, + ObjCFDITimbre.Comprobante.SubTotal, ObjCFDITimbre.Comprobante.Descuentos, ObjCFDITimbre.Comprobante.Moneda, ObjCFDITimbre.Comprobante.TipoCambio.ToString, @@ -2155,7 +2161,7 @@ Public Class Timbrado #Region "Impuestos" 'SI NO ES FACTURA EN 0 AGREGA LOS IMPUESTOS - If Ventas.Total <> 0 And (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.TotalImpuestosTrasladados > 0) Then + If Ventas.Total <> 0 And (ObjCFDITimbre.TotalImpuestosRetenidos > 0 OrElse ObjCFDITimbre.AplicaImpuestosTraslados) Then cfdi.Impuestos(ObjCFDITimbre.TotalImpuestosRetenidos, ObjCFDITimbre.TotalImpuestosTrasladados) End If #End Region @@ -2169,8 +2175,8 @@ Public Class Timbrado Next End If - - If ObjCFDITimbre.Traslados.Sum(Function(x) x.Importe) > 0 Then + '' si el importe de impuestos es mayor a cero o si es tasa con importe = 0, debe de ir el atributo + If ObjCFDITimbre.AplicaImpuestosTraslados Then ''se acumulan los importes For Each Tras In ObjCFDITimbre.Traslados cfdi.Traslado(Tras.Impuesto, Tras.TipoFactor, Tras.TasaOCuota, Tras.Importe) @@ -2183,45 +2189,45 @@ Public Class Timbrado 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)) + 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 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 + 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 + If Ventas.CveComplementoTimbrado > 0 Then - Select Case Ventas.CveComplementoTimbrado - Case 5 'INE Proceso Ordinario Directivo Estatal" - cfdi.Ine11("Ordinario", "Directivo Estatal", "0") + 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 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.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.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 + cfdi.IneEntidad(Ventas.ComplementoINE.INEEntidad, Ventas.ComplementoINE.INETipoComite) + cfdi.IneContabilidad(Ventas.ComplementoINE.INEIdContabilidad) + End Select - End If + End If @@ -2230,11 +2236,11 @@ Public Class Timbrado #Region "Comercio Exterior" - If Ventas.Cliente.AplicaComercioExterior And ObjCFDITimbre.Complementos.ComercioExterior11.AplicaComercioExteriorSubProyecto Then - If ObjCFDITimbre.Complementos.ComercioExterior11 IsNot Nothing Then + 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, + 'DATOS GENERALES + cfdi.ComercioExterior11(ObjCFDITimbre.Complementos.ComercioExterior11.MotivoTraslado, ObjCFDITimbre.Complementos.ComercioExterior11.TipoOperacion, ObjCFDITimbre.Complementos.ComercioExterior11.ClavedePedimento, ObjCFDITimbre.Complementos.ComercioExterior11.CertificadoOrigen, @@ -2245,9 +2251,9 @@ Public Class Timbrado 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, + '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, @@ -2257,9 +2263,9 @@ Public Class Timbrado 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, + '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, @@ -2269,7 +2275,7 @@ Public Class Timbrado ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Estado, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.Pais, ObjCFDITimbre.Complementos.ComercioExterior11.Receptor.CP) - cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib, + cfdi.ComercioExterior11Destinatario(ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumRegIdTrib, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Nombre, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.Calle, ObjCFDITimbre.Complementos.ComercioExterior11.Destinatario.NumeroExterior, @@ -2281,35 +2287,35 @@ Public Class Timbrado 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, + '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 + Next End If + + End If + End If #End Region - End If + 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 + If ObjCFDITimbre.Complementos.CartaPorte IsNot Nothing Then Dim Carta As CFDICartaPorte = ObjCFDITimbre.Complementos.CartaPorte @@ -3337,6 +3343,700 @@ Public Class Timbrado Return Retorno End Function + +#Region "T i m b r a d o v. 4. 0" + 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() + + + '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, ""), 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}
Clave ={Clave}
{ex.ToString()}" + End If + MensajeErrorCFDI = Retorno + End Try + +#End Region + sw.Stop() + swTiempo.AppendFormat("Genera: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) + swmili = sw.ElapsedMilliseconds + sw.Start() + +#Region "Timbra" + If ArchivoGenerado Then + + cfdi.TimbrarCfdi(UsuarioServicio, ClaveServicio, UrlServicio, TimbraProduccion) + + sw.Stop() + swTiempo.AppendFormat("Timbrado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) + swmili = sw.ElapsedMilliseconds + sw.Start() + 'Verifica el error + If cfdi.Mensaje = "" Then + + Dim FolioFiscal As String + + UUID = cfdi.CfdiInfo.UUID + FolioFiscal = cfdi.CfdiInfo.UUID 'obtenerAtributo(cfdi.XmlTimbrado, "TimbreFiscalDigital", "UUID") 'XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText + + If FolioFiscal <> "" Then + + cfdi.EscribirXml(RutaArchivo & NombreArchivoXML & ".xml") + + sw.Stop() + swTiempo.AppendFormat("Guardado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) + swmili = sw.ElapsedMilliseconds + sw.Start() + + Select Case ObjCFDITimbre.Comprobante.TipoComprobante + Case "N" + + Using ObjNomina2 As New ClsNominas() + + If ObjNomina2.UpdateEstatusNomNominas(3, CvePACEspecial, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, ("01/01/2000").ToDate, ObjCFDITimbre.Nomina.CveNomina, 0, 0, 0, 0, 0, isFiniquito:=Ventas.Timbre.IStimbreFiniquito) Then + Retorno = "" + Else + Retorno = "Error" + End If + End Using + + Case "T" + + Dim objGrales As New ClsGenerales + If objGrales.UpdateTimbreTimbrado(Ventas.CveTimbre, FolioFiscal, ObjCFDITimbre.Comprobante.Fecha, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, UsuarioActual.Empresa.CvePAC) Then + Retorno = "" + Else + Retorno = "Error" + End If + objGrales.Dispose() + + Using ObjInv As New ClsInventarios() + If ObjInv.UpdateMovimientoTimbrado(Ventas.Inv_CveMovimiento, 1, FolioFiscal, MinFecha) Then + Retorno = "" + Else + Retorno = "Error" + End If + End Using + + + Case Else + + 'Actualiza Estatus Factura + If Ventas.CveVenta > 0 Then + + Using ObjVentas As New ClsVentas() + + If ObjVentas.UpdateEstatusFactura(3, FolioFiscal, "", ObjCFDITimbre.Comprobante.Fecha, Ventas.CveVenta, CvePAC:=CvePACEspecial, RFCReceptor:=ObjCFDITimbre.Receptor.RFC) Then + Retorno = "" + Else + Retorno = "Error" + End If + End Using + + 'Genero la addenda Ford + If Ventas.Cliente.Ford_GSDB <> "" Then + + Dim RutaCadena As String = String.Format("{0}{1}.xml", RutaArchivo, NombreArchivoXML) 'If(UsuarioActual.Empresa.FacturaProduccion, String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.SerieFolio), String.Format("{0}XML\{1}\{2}.xml", Ruta, Ventas.TipoDocto, Ventas.SerieFolio)) + + Dim FolioFactura As String = "" + If UsuarioActual.CveEmpresa = 8 Then FolioFactura = Ventas.Folio.ToString ' sogo, pordefault manda el folio de la factura + GeneraAddendaFord(RutaCadena, FolioFactura, Ventas.FordASN, Ventas.FordGSDB) + + End If + + End If + End Select + + + If Not IO.Directory.Exists($"{UsuarioActual.Empresa.Ruta}CBB\") Then IO.Directory.CreateDirectory($"{UsuarioActual.Empresa.Ruta}CBB\") + + Try + Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" + 'temp + 'Dim b As Byte() = cfdi. .QrCode($"?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}") + 'File.WriteAllBytes(RutaCBB, b) + Catch ex As Exception + OnError("Ocurrió un error al generar el QR", ex) + End Try + Retorno = "" + Else + Retorno = "No se pudo timbrar ante el SAT. UUID no generado." + End If + sw.Stop() + swTiempo.AppendFormat("Actualizado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds) + swmili = sw.ElapsedMilliseconds + sw.Start() + + Else + Retorno = cfdi.Mensaje + MensajeErrorCFDI = cfdi.Mensaje + If cfdi.Xml <> "" Then cfdi.EscribirXml(RutaArchivo & NombreArchivoXML & ".xml") + + End If + End If + +#End Region + GuardaLogTimbrado(swTiempo.ToString, CvePACEspecial) + Return Retorno + End Function + +#End Region + Public Class PADEServicioTimbradoResp diff --git a/Documentacion/TableroMaterialidad.aspx b/Documentacion/TableroMaterialidad.aspx index a2a338199..aad8b527b 100644 --- a/Documentacion/TableroMaterialidad.aspx +++ b/Documentacion/TableroMaterialidad.aspx @@ -167,7 +167,8 @@ - <%# DataBinder.Eval(Container.DataItem, "NombreComercial") %> + + <%# string.Format("{1}",DataBinder.Eval(Container.DataItem, "CveCliente"),DataBinder.Eval(Container.DataItem, "NombreComercial")) %> <%# diff --git a/Empresas/153/Formatos/Factura.rdlc b/Empresas/153/Formatos/Factura.rdlc index c3fdcf3b0..199bf1a25 100644 --- a/Empresas/153/Formatos/Factura.rdlc +++ b/Empresas/153/Formatos/Factura.rdlc @@ -1,6310 +1,6310 @@ - - - 0 - - - - System.Data.DataSet - /* Local Connection */ - - 06ae5329-8ff5-42b5-b7f4-6d68e5186420 - - - - System.Data.DataSet - /* Local Connection */ - - 3fde81d4-b9ca-4175-9160-5293ca8b9aa9 - - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - - System.Data.DataSet - /* Local Connection */ - - c220a38d-e45b-4e04-917e-7dfd9cc3345f - - - - - - DsOC - /* Local Query */ - - - - CveOrdenCompraDetalle - System.Int64 - - - CveOrdenCompra - System.Int64 - - - Cantidad - System.Double - - - CveUnidadMedida - System.Int64 - - - Abreviatura - System.String - - - PS - System.String - - - CveClasificacion - System.Int64 - - - Clasificacion - System.String - - - CveActivoFijo - System.Int64 - - - Codigo - System.String - - - TipoDato - System.Int64 - - - CodigoAF - System.String - - - CodigoPS - System.String - - - UnidadMedida - System.String - - - Importe - System.Decimal - - - Total - System.Decimal - - - UM - System.String - - - Obs - System.String - - - SubProyecto - System.String - - - PU - System.String - - - Descuento - System.String - - - Marca - System.String - - - SATClaveProdServ - System.String - - - SATClaveUM - System.String - - - PorcentajeIVA - System.String - - - - DsOC - C:\Users\Orlando Bojorquez\Documents\Visual Studio 2013\WebSites\WebSite1\App_Code\DsOC.xsd - DtOCDetalle - - - - - - - - DataSet2 - /* Local Query */ - - - - ImpuestoLocal - System.String - - - Importe - System.Double - - - Nombre - System.String - - - ImporteT - System.String - - - Orden - System.String - - - - DataSet2 - C:\Users\jesus\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DataSet2.xsd - DataTable1 - - - - - - - - DsFirmas - /* Local Query */ - - - - Titulo - System.String - - - Nombre - System.String - - - Puesto - System.String - - - Lado - System.String - - - - DsFirmas - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - - - - DsDesgloseImpuestos - /* Local Query */ - - - - Impuesto - System.String - - - tasa - System.String - - - Importe - System.String - - - Orden - System.String - - - - DsDesgloseImpuestos - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - - - - DsDesgloseImpuestos - /* Local Query */ - - - - SerieFolio - System.String - - - Fecha - System.String - - - Importe - System.String - - - FolioFiscal - System.String - - - - DsDocumentosRelacionados - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - - - - DsDesgloseImpuestos - /* Local Query */ - - - - SerieFolio - System.String - - - Fecha - System.String - - - SubTotal - System.String - - - Importe - System.String - - - Moneda - System.String - - - - DsNCVinculadas - C:\Users\Jesus Murua\Documents\Visual Studio 2015\WebSites\WebSite2\App_Code\DsFirmas.xsd - DataTable1 - - - - - - - - - - - - - - External - =Parameters!QR.Value - FitProportional - 0.04167in - 1.37377in - 1.7524in - - - - - - true - true - true - - - - - Sello Digital del CFDI: - - - - - - - - - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - 5.15368in - 0.06752in - 1.41544in - 8.23953in - - - - - - - - - 0.54014in - - - 0.59111in - - - 0.80359in - - - 0.66404in - - - 2.60074in - - - 0.83102in - - - 0.6403in - - - 0.69088in - - - 0.80447in - - - - - 0.19645in - - - - - true - true - - - - - # Cant. - - - - - - - - 2pt - - - - 2pt - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Unidad - - - - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Clave Pr./Se - - - - - - - Textbox29 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Clave U. - - - - - - - Textbox2 - - - - - 2pt - - - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Nombre - - - - - - - Textbox17 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Precio - - - - - - - Textbox53 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Tasa IVA - - - - - - - Textbox21 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Descto. - - - - - - - Textbox23 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - SubTotal - - - - - - - Textbox1 - - - - Black - - 2pt - - - Black - - 2pt - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.16561in - - - - - true - true - true - - - - - =Fields!Cantidad.Value - - - - - - - Cantidad1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!UM.Value - - - - - - - UM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!SATClaveProdServ.Value - - - - - - - SATClaveProdServ - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!SATClaveUM.Value - - - - - - - SATClaveUM - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!PS.Value & IIF(Fields!Obs.Value <> "",System.Environment.NewLine &"Observaciones: ","") & Fields!Obs.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!PU.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!PorcentajeIVA.Value - - - - - - - PorcentajeIVA - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!Descuento.Value - - - - - - - Descuento1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - true - - - - - =Fields!Cantidad.Value * Fields!PU.Value - - - - - - - TiempoEntrega - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - - - - - - After - - - - - - - DsOC - 1.92778in - 0.09836in - 0.36206in - 8.16629in - 1 - - - - - - true - true - - - - - - - - Black - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!Observaciones.Value - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - ELECTRICA SERVEC S DE RL DE CV - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Expedido en Sucursal: - - - - =Parameters!Sucursal.Value - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =UCase(Parameters!TipoDocumento.Value) - - - - - - - Textbox8 - 18.23008cm - 0.96018cm - 2.79101cm - 6 - - - Black - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) - - - - - - - Textbox8 - 0.97782cm - 18.23008cm - 0.6cm - 2.79101cm - 7 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha y Hora: - - - - - - - - - =Parameters!Fecha.Value - - - - - - - Textbox8 - 1.57782cm - 18.23008cm - 0.86903cm - 2.79101cm - 8 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - true - - - - - Folio Fiscal: - - - - =Parameters!FolioFiscal.Value - - - - - - - - - Fecha y hora de certificacion: - - - - =Parameters!FechaCertificacion.Value - - - - - - - - - No. de Serie del Certificado del SAT: - - - - =Parameters!SerieCertificadoSAT.Value - - - - - - - Textbox4 - 2.88607cm - 0.28014cm - 1.09007cm - 9.71199cm - 9 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - true - - - - - No. de Serie del Certificado del CSD: - - - - =Parameters!CertificadoContribuyente.Value - - - - - - - =Parameters!CiudadSucursal.Value - - - - - - - - =Parameters!Fecha.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!ClienteNombre.Value - - - - - - - - - - - =Parameters!ClienteColonia.Value - - - - - - - - =Parameters!ClienteCiudad.Value - - - - - - - - =Parameters!ClienteEstado.Value - - - - CP - - - - =Parameters!ClienteCP.Value - - - - - - - - =Parameters!ClientePais.Value - - - - - - - - - - - =Parameters!ClienteTelefono.Value - - - - - - - - =iif(Parameters!ClienteContactoMail.Value = "","","Correo: ") - - - - =Parameters!ClienteContactoMail.Value - - - - - - - =Parameters!ClienteRFC.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!CondicionPago.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - Black - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Ord. Compra: - - - - =Parameters!OrdenCompra.Value - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Tipo de Comprobante:I - - - - =UCase(Parameters!TipoDocumento.Value) - - - - ,Moneda: - - - - =Parameters!MonedaAbreviatura.Value - - - - , Uso de CFDI: - - - - =Parameters!UsoCFDI.Value - - - - , Forma de Pago: - - - - =Parameters!FormaPago.Value - - - - , Método de Pago: - - - - =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) - - - - . - - - - - - - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - - - - Black - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.88535cm - - - - - 0.48004cm - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - =Fields!ImpuestoLocal.Value - - - - 2.82569cm - - - true - true - - - - - =IIF(Fields!ImpuestoLocal.Value = "Total",UCase(Fields!ImpuestoLocal.Value),Fields!ImpuestoLocal.Value) - - - - - - White - 2pt - 2pt - 2pt - 2pt - - - - - - - - DataSet1 - 10.3836cm - 15.31342cm - 0.48004cm - 5.71104cm - 17 - - - - - - true - true - - - - - REVISAR BIEN EL PRODUCTO, UNA VEZ ENTREGADO EL MATERIAL NO SE ACEPTAN DEVOLUCIONES. - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Sucursal Matriz - - - - - - - - - Beneficiario: ELECTRICA SERVEC S DE RL DE CV - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Sucursal Tijuana - - - - - - - - - Beneficiario: ELECTRICA SERVEC S DE RL DE CV - - - - - - - - - - - - - - - 2pt - 2pt - 2pt - 2pt - - - - Embedded - RFIRMAELECTRONICAEDITABLE - FitProportional - 0.28346cm - 0.51012cm - 1.73059cm - 3.63914cm - 21 - - - - - - true - true - - - - - Cuentas Bancarias - - - - Textbox3 - 7.75847cm - 0.25136cm - 0.53798cm - 18.6975cm - 22 - - - 2pt - 2pt - 2pt - 2pt - - - - - - true - true - - - - - Tipo Relación: - - - - - - - Textbox29 - 0.69848cm - 2.57101cm - 0.41981cm - 6.35221cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - =Parameters!TipoRelacionTexto.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - 2.63922cm - - - 2.27051cm - - - 3.25097cm - - - 7.7847cm - - - - - 0.44125cm - - - - - true - true - - - - - Folio - - - - - - - Textbox10 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Fecha - - - - - - - Textbox12 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Importe - - - - - - - Textbox21 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - Folio Fiscal - - - - - - - Textbox11 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 0.41479cm - - - - - true - true - - - - - =Fields!SerieFolio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Fecha.Value - - - - - - - Fecha - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!Importe.Value - - - - - - - Importe1 - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - true - true - - - - - =Fields!FolioFiscal.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - - - - - - - - - - - - - After - - - - - - - DataSet4 - 1.22386cm - 2.57101cm - 0.85604cm - 15.9454cm - 2 - - - - - - true - true - - - - - VERSION 3.3 - - - - - - - Textbox5 - 2.15724cm - 17.53151cm - 0.52063cm - 3.32021cm - 3 - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - CFDI Relacionados - - - - - - - Textbox5 - 0.03101cm - 0.54004cm - 20.79183cm - 4 - - - 2pt - 2pt - 2pt - 2pt - - - - true - 16.79845cm - 0.15747cm - 2.67787cm - 20.85172cm - 23 - - =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) - - - - - - - 19.47632cm - - - - - - - Textbox35 - 0.01763cm - 18.52109cm - 0.50624cm - 2.5cm - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Fecha Impresión: - - - - - - - - =Now() - - - - - - 2pt - 2pt - 2pt - 2pt - - - - true - true - - - - - Usuario Imprimió: - - - - - - - - =Parameters!UsuarioImprimio.Value - - - - - - 2pt - 2pt - 2pt - 2pt - - - - - - - - 27.94cm - 21.59cm - 0cm - 0cm - 0.5cm - 0.5cm - 1.27cm - + + + + + true + true + true + + + + + Sello Digital del CFDI: + + + + + + + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + 5.15368in + 0.06752in + 1.41544in + 8.23953in + + + + + + + + + 0.54014in + + + 0.59111in + + + 0.80359in + + + 0.66404in + + + 2.60074in + + + 0.83102in + + + 0.6403in + + + 0.69088in + + + 0.80447in + + + + + 0.19645in + + + + + true + true + + + + + # Cant. + + + + + + + + 2pt + + + + 2pt + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Unidad + + + + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Clave Pr./Se + + + + + + + Textbox29 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Clave U. + + + + + + + Textbox2 + + + + + 2pt + + + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Nombre + + + + + + + Textbox17 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Precio + + + + + + + Textbox53 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Tasa IVA + + + + + + + Textbox21 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Descto. + + + + + + + Textbox23 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + SubTotal + + + + + + + Textbox1 + + + + Black + + 2pt + + + Black + + 2pt + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.16561in + + + + + true + true + true + + + + + =Fields!Cantidad.Value + + + + + + + Cantidad1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!UM.Value + + + + + + + UM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!SATClaveProdServ.Value + + + + + + + SATClaveProdServ + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!SATClaveUM.Value + + + + + + + SATClaveUM + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!PS.Value & IIF(Fields!Obs.Value <> "",System.Environment.NewLine &"Observaciones: ","") & Fields!Obs.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!PU.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!PorcentajeIVA.Value + + + + + + + PorcentajeIVA + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!Descuento.Value + + + + + + + Descuento1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + true + + + + + =Fields!Cantidad.Value * Fields!PU.Value + + + + + + + TiempoEntrega + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + + + + + + After + + + + + + + DsOC + 1.92778in + 0.09836in + 0.36206in + 8.16629in + 1 + + + + + + true + true + + + + + + + + Black + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!Observaciones.Value + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + ELECTRICA SERVEC S DE RL DE CV + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Expedido en Sucursal: + + + + =Parameters!Sucursal.Value + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =UCase(Parameters!TipoDocumento.Value) + + + + + + + Textbox8 + 18.23008cm + 0.96018cm + 2.79101cm + 6 + + + Black + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =IIF(Parameters!Serie.Value.ToString="",Parameters!Folio.Value,Parameters!Serie.Value & "-" &Parameters!Folio.Value) + + + + + + + Textbox8 + 0.97782cm + 18.23008cm + 0.6cm + 2.79101cm + 7 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha y Hora: + + + + + + + + + =Parameters!Fecha.Value + + + + + + + Textbox8 + 1.57782cm + 18.23008cm + 0.86903cm + 2.79101cm + 8 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + true + + + + + Folio Fiscal: + + + + =Parameters!FolioFiscal.Value + + + + + + + + + Fecha y hora de certificacion: + + + + =Parameters!FechaCertificacion.Value + + + + + + + + + No. de Serie del Certificado del SAT: + + + + =Parameters!SerieCertificadoSAT.Value + + + + + + + Textbox4 + 2.88607cm + 0.28014cm + 1.09007cm + 9.71199cm + 9 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + true + + + + + No. de Serie del Certificado del CSD: + + + + =Parameters!CertificadoContribuyente.Value + + + + + + + =Parameters!CiudadSucursal.Value + + + + + + + + =Parameters!Fecha.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!ClienteNombre.Value + + + + + + + + + + + =Parameters!ClienteColonia.Value + + + + + + + + =Parameters!ClienteCiudad.Value + + + + + + + + =Parameters!ClienteEstado.Value + + + + CP + + + + =Parameters!ClienteCP.Value + + + + + + + + =Parameters!ClientePais.Value + + + + + + + + + + + =Parameters!ClienteTelefono.Value + + + + + + + + =iif(Parameters!ClienteContactoMail.Value = "","","Correo: ") + + + + =Parameters!ClienteContactoMail.Value + + + + + + + =Parameters!ClienteRFC.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!CondicionPago.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + Black + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Ord. Compra: + + + + =Parameters!OrdenCompra.Value + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Tipo de Comprobante:I + + + + =UCase(Parameters!TipoDocumento.Value) + + + + ,Moneda: + + + + =Parameters!MonedaAbreviatura.Value + + + + , Uso de CFDI: + + + + =Parameters!UsoCFDI.Value + + + + , Forma de Pago: + + + + =Parameters!FormaPago.Value + + + + , Método de Pago: + + + + =IIF(Parameters!MetodoPago.Value.ToString="","No Identificado",Parameters!MetodoPago.Value) + + + + . + + + + + + + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + + + + Black + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.88535cm + + + + + 0.48004cm + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + =Fields!ImpuestoLocal.Value + + + + 2.82569cm + + + true + true + + + + + =IIF(Fields!ImpuestoLocal.Value = "Total",UCase(Fields!ImpuestoLocal.Value),Fields!ImpuestoLocal.Value) + + + + + + White + 2pt + 2pt + 2pt + 2pt + + + + + + + + DataSet1 + 10.3836cm + 15.31342cm + 0.48004cm + 5.71104cm + 17 + + + + + + true + true + + + + + REVISAR BIEN EL PRODUCTO, UNA VEZ ENTREGADO EL MATERIAL NO SE ACEPTAN DEVOLUCIONES. + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Sucursal Matriz + + + + + + + + + Beneficiario: ELECTRICA SERVEC S DE RL DE CV + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Sucursal Tijuana + + + + + + + + + Beneficiario: ELECTRICA SERVEC S DE RL DE CV + + + + + + + + + + + + + + + 2pt + 2pt + 2pt + 2pt + + + + Embedded + RFIRMAELECTRONICAEDITABLE + FitProportional + 0.28346cm + 0.51012cm + 1.73059cm + 3.63914cm + 21 + + + + + + true + true + + + + + Cuentas Bancarias + + + + Textbox3 + 7.75847cm + 0.25136cm + 0.53798cm + 18.6975cm + 22 + + + 2pt + 2pt + 2pt + 2pt + + + + + + true + true + + + + + Tipo Relación: + + + + + + + Textbox29 + 0.69848cm + 2.57101cm + 0.41981cm + 6.35221cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + =Parameters!TipoRelacionTexto.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + 2.63922cm + + + 2.27051cm + + + 3.25097cm + + + 7.7847cm + + + + + 0.44125cm + + + + + true + true + + + + + Folio + + + + + + + Textbox10 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Fecha + + + + + + + Textbox12 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Importe + + + + + + + Textbox21 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + Folio Fiscal + + + + + + + Textbox11 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 0.41479cm + + + + + true + true + + + + + =Fields!SerieFolio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Fecha.Value + + + + + + + Fecha + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!Importe.Value + + + + + + + Importe1 + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + true + true + + + + + =Fields!FolioFiscal.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + + + + + + + + + + + + + After + + + + + + + DataSet4 + 1.22386cm + 2.57101cm + 0.85604cm + 15.9454cm + 2 + + + + + + true + true + + + + + VERSION 3.3 + + + + + + + Textbox5 + 2.15724cm + 17.53151cm + 0.52063cm + 3.32021cm + 3 + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + CFDI Relacionados + + + + + + + Textbox5 + 0.03101cm + 0.54004cm + 20.79183cm + 4 + + + 2pt + 2pt + 2pt + 2pt + + + + true + 16.79845cm + 0.15747cm + 2.67787cm + 20.85172cm + 23 + + =Microsoft.VisualBasic.Interaction.IIF(First(Fields!SerieFolio.Value, "DataSet4") <> "", False, True) + + + + + + + 19.47632cm + + + + + + + Textbox35 + 0.01763cm + 18.52109cm + 0.50624cm + 2.5cm + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Fecha Impresión: + + + + + + + + =Now() + + + + + + 2pt + 2pt + 2pt + 2pt + + + + true + true + + + + + Usuario Imprimió: + + + + + + + + =Parameters!UsuarioImprimio.Value + + + + + + 2pt + 2pt + 2pt + 2pt + + + + + + + + 27.94cm + 21.59cm + 0cm + 0cm + 0.5cm + 0.5cm + 1.27cm + @@ -93,7 +95,7 @@ -
  • +
  • @@ -115,7 +117,7 @@
    - +
    + <%----%> @@ -2061,7 +2057,7 @@ Asistencia - + @@ -2085,7 +2081,7 @@ Motivo H. Extras - + @@ -2273,9 +2269,9 @@
    - + - + @@ -2375,32 +2371,32 @@ - - + + -
    @@ -163,7 +165,7 @@
    - + @@ -188,7 +190,7 @@
    -
    +
    @@ -236,26 +238,26 @@
    - -
    - - - -
    -
    - - - -
    -
    -
    - -
    - - -
    + +
    + + + +
    +
    + + + +
    +
    +
    + +
    + + +
    @@ -309,7 +311,7 @@ -
    + -
    +
    - +
    @@ -426,7 +428,7 @@
    -
    +
    @@ -492,7 +494,7 @@
    -
    +
    @@ -507,7 +509,7 @@
    -
    +
    @@ -609,7 +611,7 @@
    - +
    @@ -626,8 +628,7 @@
    - Proyecto: + Proyecto: <%-- --%> @@ -635,8 +636,7 @@
    - SubProyecto: + SubProyecto: @@ -671,14 +671,14 @@
    - +
    -
    +
    @@ -686,7 +686,7 @@
    -<%--
    + <%--
    @@ -707,7 +707,7 @@
    -
    +
    @@ -724,7 +724,7 @@
    -<%--
    + <%--
    @@ -746,7 +746,7 @@
    @@ -772,60 +772,62 @@ - -
    ComandosComandos
    -
    +
    @@ -1997,17 +1993,17 @@ --%>
    - + - + - @@ -2019,7 +2015,7 @@ - +
    - - - - - - - - - - + + + + + + + + + + - - - - - - + + + + + + <%-- @@ -2445,7 +2441,7 @@ --%> - +
    PeriodoAntigüedadVacaciones disponiblesDías pagadosDías disfrutadosDías prima
    PeriodoAntigüedadVacaciones disponiblesDías pagadosDías disfrutadosDías prima
    <%# String.Format("{0:dd/MM/yyyy} - {1:dd/MM/yyyy}", DataBinder.Eval(Container.DataItem, "InicioPeriodo"), DataBinder.Eval(Container.DataItem, "FinPeriodo")) %> <%# DataBinder.Eval(Container.DataItem, "Antiguedad") %> <%# DataBinder.Eval(Container.DataItem, "DiasVacaciones") %> <%# DataBinder.Eval(Container.DataItem, "Dias") %> <%# DataBinder.Eval(Container.DataItem, "DiasDisfrutados") %> <%# DataBinder.Eval(Container.DataItem, "DiasPrima") %> <%# String.Format("{0:dd/MM/yyyy} - {1:dd/MM/yyyy}", DataBinder.Eval(Container.DataItem, "InicioPeriodo"), DataBinder.Eval(Container.DataItem, "FinPeriodo")) %> <%# DataBinder.Eval(Container.DataItem, "Antiguedad") %> <%# DataBinder.Eval(Container.DataItem, "DiasVacaciones") %> <%# DataBinder.Eval(Container.DataItem, "Dias") %> <%# DataBinder.Eval(Container.DataItem, "DiasDisfrutados") %> <%# DataBinder.Eval(Container.DataItem, "DiasPrima") %>
    @@ -2505,7 +2501,7 @@