Funciones

DataSet CrearDataSet(string Complemento)

Recibe la variable Complemento con el nombre del complemento que se quiere timbrar

(pagos, educacion, donatarias, impuestoslocales, comercioexterior, ine, construccion)

Regresa un DataSet con la estructura de tablas que se necesita para llenar el XML de factura y algún complemento si se necesita

 

String SellarDocumento(DataSet dtsFactura, string Complemento)

Recibe un DataSet lleno con los valores necesarios para Timbrar una factura o una factura con complemento.

DataSet que se crea con la función CrearDataSet pero lleno con los valores del complemento

Recibe la variable Complemento con el nombre del complemento que se quiere timbrar

(pagos, educacion, donatarias, impuestoslocales, comercioexterior, ine, construccion)

Regresa un string con el XML serializado en Base64 listo para consumir la API

 

Valores

Variable Complemento puede tener los siguientes valores siempre en minúsculas.

  • (vacío indica que la factura no tiene complemento)
  • pagos
  • educacion
  • donatarias
  • impuestoslocales
  • comercioexterior
  • ine
  • construccion

 

DataSet contiene la estructura de las tablas para poder generar el XML de una factura

Tabla Cfdi contiene valores referentes al timbrado

FormaDePago  

clave del catálogo c_FormaPago

CondicionesDePago

Ej. 15 DIAS

TipoDeComprobante

con valor del catálogo c_TipoDeComprobante

MetodoDePago

código del catálogo c_MetodoPago

LugarExpedicion

Código Postal del domicilio de la matriz o sucursal

TipoRelacion

valor del catálogo c_TipoRelacion

UsoCFDI

valor del catálogo c_UsoCfdi

   

Tabla Documento tiene datos de la factura

Serie

Serie de la factura

Folio

Folio de la factura

FechaDocumento  

con formato yyyy-MM-dd hh:mm:ss

CodigoMoneda

con valor del catálogo c_Moneda

SubImporte

(SubTotal) 

DescuentoIndividual

(Descuento)

TipoCambio

decimal hasta con 6 decimales

Total 

Total con 2 decimales

ImpuestosRetenciones 

Total de impuestos Retenidos

ImpuestosTrasladados

Total de impuestos trasladados

 

Tabla CfdiRelacionados contiene solo los UUID de las facturas relacionadas

UUID

valor de UUID de cada factura relacionada a la que se quiere timbrar

 

Tabla Emisor

Rfc 

 

RazonSocial 

 

RegimenFiscal

clave del catálogo c_RegimenFiscal

ContrasenaCertificado  

contraseña del certificado digital

CertificadoDigital

certificado digital en byte[] (.cer)

ClavePrivada

clave privada en byte[] (.key)

 

Tabla Receptor

Rfc 

 

RazonSocial

 

Pais

(ResidenciaFiscal) valor del catalogo c_Pais

 

Tabla Conceptos contiene información relacionada a los artículos, lleva una fila por cada articulo

Codigo

usado para relacionar artículos, impuestos y otros datos en complementos (podría ser un Id)

CodigoBarras

(NoIdentificacion)

ClaveProdServ

con valor del catalogo c_ClaveProdServ

Cantidad 

 

ClaveUnidad

valor del catalogo c_ClaveUnidad

UnidadMedida

descripción de Claveunidad

Descripcion

 

ValorUnitario

 

SubImporte

 

Descuentos

 

Tabla Traslados contiene la información de los impuestos trasladados de cada artículo por lo que es una fila por cada impuesto que tengan los artículos

CodigoArticulo

Codigo del articulo al que corresponde el impuesto

Base

Cantidad a la que se le va a aplicar el impuesto

Impuesto

Codigo del impuesto del catalogo c_Impuesto

TipoFactor

Codigo del catalogo c_TipoFactor para saber si es Tasa,     Cuota o Exento

TasaOCuota

El valor de la Tasa o Cuota del impuesto asignado (ej. 16 para Iva)

Importe

es el valor correspondiente a la Tasa o Cuota del impuesto respecto al Importe del articulo

 

Tabla Retenciones es una fila por cada impuesto retenido que tengan los artículos

CodigoArticulo

Codigo del articulo al que corresponde el impuesto

Base

Cantidad a la que se le va a aplicar el impuesto 

Impuesto

Codigo del impuesto del catalogo c_Impuesto

TipoFactor

Codigo del catalogo c_TipoFactor para saber si es Tasa,  Cuota o Exento

TasaOCuota

El valor de la Tasa o Cuota del impuesto asignado (ej. 10.667  para Retención de Iva)

Importe

es el valor correspondiente a la Tasa o Cuota del impuesto respecto al Importe del articulo

 

Tabla ImpuestosTrasladados contiene información del Total de los impuestos trasladados por lo que solo es una fila

Impuesto  

Codigo del impuesto del catalogo c_Impuesto

TipoFactor

Codigo del catalogo c_TipoFactor para saber si es Tasa,     Cuota o Exento

TasaOCuota

El valor de la Tasa o Cuota del impuesto asignado

Importe

Suma del importe de los artículos a los que se les asigno este impuesto

 

Tabla ImpuestosRetenciones es el total de los impuestos retenidos y es una sola fila

Impuesto

Codigo del impuesto del catalogo c_Impuesto

Importe

Suma del importe de los artículos a los que se les asigno este impuesto

 

Complemento de Pagos

Se asignan los valores predeterminados a los nodos de la factura

Tabla Pagos 

FechaAplicacion

(FechaPago) en formato yyyy-MM-dd hh:mm:ss

FormatoPago

(FormaDePagoP) valor del catalogo c_FormaPago

CodigoMoneda

(MonedaP) valor del catalogo c_Moneda

TipoCambio

(TipoCambioP)

Monto

el importe del pago

NumOperacion 

Num cheque, referencia, SPEI, etc.,  del pago

NumeroCuentaOrdenante

(CtaOrdenante) con la que se realizó el pago

NumeroCuentaBeneficiario

(CtaBeneficiario) donde se recibió el pago

TipoCadPago 

Clave del catalogo c_TipoCadenaPago cuando es SPEI

CadPago

Cadena original del comprobante

SelloPago

Sello digital del comprobante de pago

 

Tabla Beneficiario

RFC

Es el RFC del banco del beneficiario (de la cuenta destino)

 

Tabla Ordenante

RFC

el RFC del banco del Ordenante (de la cuenta origen)

NombreBanco

el nombre del banco del ordenante

 

Tabla DoctoRelacionado

IdDocumento

es el UUID del documento relacionado

Serie 

 

Folio

 

CodigoMoneda

(MonedaDR)

TipoCambio

(TipoCambioDR)

MetodoDePago

(MetodoDePagoDR)

NumParcialidad

numero de la parcialidad que se aplica en este pago

ImpSaldoAnt

el saldo que tiene la factura antes de este pago

ImpPagado

importe que se aplica en este pago

ImpSaldoInsoluto

es e l saldo que queda en la factura después de este pago

 

Complemento Educacion

Tabla Educacion contiene información del complemento de Educación y lleva una fila por cada alumno en los artículos

CodigoArticulo

es el código del articulo al que se le asigna el complemento

NombreAlumno

 

CURP

CURP del alumno

NivelEducativo

nivel educativo del alumno (Primaria, Secundaria, etc)

AutRVOE 

 

RfcPago

RFC de quien paga la factura

Complemento Donatarias

Tabla Donatarias

FechaAutorizacion 

 

NoAutorizacion

 

Leyenda

 

 

Complemento Impuestos Locales

Tabla ImpuestosLocales

TrasladoLocalTotal

la Tasa del impuesto que se aplica

RetencionLocalTotal

la Tasa del impuesto que se aplica (ej. RTP del 3% se asigna 3)

 

Tabla RetencionesLocales

RetencionLocal

es la Tasa del impuesto (ej. 3)

RetencionLocalTotal

es el total de la Tasa del impuesto (ej. 3)

NomImpLocal

el nombre del impuesto (ej. RTP)

 

Tabla TrasladosLocales

TrasladoLocal

es la Tasa del impuesto

TrasladoLocalTotal

es el total de la Tasa del impuesto

NomImpLocal

el nombre del impuesto

 

Complemento de Comercio Exterior

Tabla ComercioExterior

Motivotraslado

 

TipoOperacion

 

ClaveDePedimento

 

CertificadoOrigen

 

NumCertificadoOrigen

 

NumExportadorConfiable

 

Incoterm

 

SubDivision

 

TipoCambioUSD

 

TotalUSD

 

 

Tabla EmisorCE

Curp

 

Calle

 

NoExterior

 

NoInterior

 

Colonia

Codigo de la colonia

Localidad

 

Referencia

 

Municipio

 

Estado

 

Pais

 

CodigoPostal

 

Tabla ReceptorCE

NumRegIdTrib

Código de 9 dígitos ej. 95076-4117

Calle

 

NoExterior

 

NoInterior

 

Colonia

 

Localidad

 

Referencia

 

Municipio

 

EntidadFederativa

 

Pais

 

CodigoPostal

 

 

Tabla Propietario solo cuando sea traslado

ResidenciaFiscalPropietario

 

NumRegIdTribPropietario

Código de 9 dígitos ej. 95076-4117

 

Tabla DestinatarioCE solo cuando sea traslado

NumRegIdTribDestinatario

Código de 9 dígitos ej. 95076-4117

RazonSocialDestinatario

 

CalleDestinatario

 

NoExteriorDestinatario

 

NoInteriorDestinatario

 

ColoniaDestinatario

 

LocalidadDestinatario

 

ReferenciaDestinatario

 

MunicipioDestinatario

 

EstadoDestinatario

 

PaisDestinatario

 

CodigoPostalDestinatario

 

 

Tabla Mercancias

NoIdentificacion

 

FraccionArancelaria

 

CantidadAduana

 

UnidadAduana

 

ValorUnitarioAduana

 

ValorDolares

Valor en dólares del articulo (la suma de todos los artículos debe ser igual al TotalUSD)

 

Tabla Descripciones

NoIdentificacion

 

Marca

 

Modelo

 

SubModelo

 

NumeroSerie

 

  

Complemento INE

Tabla Ine

TipoProceso

 

TipoComite

 

IdContabilidadNacional

 

 

Tabla EntidadIne

ClaveEntidad

 

Ambito

 

 

Tabla ContabilidadIne

ClaveEntidad

 

IdContabilidadEstatal

 

 

Complemento para Construcciones

Tabla Construccion

NumPerLicoAut

 

Calle

 

NoExterior

 

NoInterior

 

Colonia

 

Localidad

 

Referencia

 

Municipio

 

EntidadFederativa

 

CodigoPostal

 

 


Ejemplos

Primero agregar la dll en "References"

DataSet dtsFactura = new DataSet();

Opravy.Timbrado Tim = new Opravy.Timbrado();

dtsFactura = Tim.CrearDataSet(Complemento);

 

//Se llena el DatsaSet con los valores requeridos como se muestra en los ejemplos de mas abajo

//dtsFactura = LlenarDataSet(dtsFactura, Complemento, Tipo);

 

//el valor regresado de la función SellarDocumento esta serializado en B64

string XML = Tim.SellarDocumento(dtsFactura, Complemento);

 

byte[] cer = File.ReadAllBytes("F:\\Temp\\cer.cer");

byte[] key = File.ReadAllBytes("F:\\Temp\\key.key");

 


Factura con un solo articulo 

dtsFactura.Tables["Cfdi"].Rows.Add("01","""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 


Factura con IVA y IEPS

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""200""0""1""250.56""0""50.56  ");

 

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""200""200""0");

 

dtsFactura.Tables["Traslados"].Rows.Add("01""216""002""Tasa""16""34.56");

dtsFactura.Tables["Traslados"].Rows.Add("01""200""003""Tasa""8""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""34.56");

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("003""Tasa""16""16");

 


Factura con IVA Exento

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""100""0""0");

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

        

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Exento""""");

//solo se agrega al nodo impuestos en conceptos

//no se agrega al nodo impuestos

 


Factura con varios artículos

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""500""0""1""564""0""64");

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba01""100""100""0");

dtsFactura.Tables["Conceptos"].Rows.Add("02""01""01010101""1""H87""Pieza""Articulo de prueba02""100""100""0");

dtsFactura.Tables["Conceptos"].Rows.Add("03""01""01010101""1""H87""Pieza""Articulo de prueba03""100""100""0");

dtsFactura.Tables["Conceptos"].Rows.Add("04""01""01010101""1""H87""Pieza""Articulo de prueba04""100""100""0");

dtsFactura.Tables["Conceptos"].Rows.Add("05""01""01010101""1""H87""Pieza""Articulo de prueba05""100""100""0");

 

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

dtsFactura.Tables["Traslados"].Rows.Add("02""100""002""Tasa""16""16");

dtsFactura.Tables["Traslados"].Rows.Add("03""100""002""Tasa""16""16");

dtsFactura.Tables["Traslados"].Rows.Add("04""100""002""Tasa""16""16");

dtsFactura.Tables["Traslados"].Rows.Add("05""100""002""Exento""""");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""64");

 


Factura con IVA retenido de 10.667

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""89.33""10.67""0");

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Retenciones"].Rows.Add("01""100""002""Tasa""10.667""10.67");

dtsFactura.Tables["ImpuestosRetenciones"].Rows.Add("002""10.67");

Factura con un documento relacionado

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""04""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

 

//un registro por cada documento relacionado

dtsFactura.Tables["CfdiRelacionados"].Rows.Add("341632f7-13be-4244-93f7-6b2aa65933c0");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 


Nota de crédito 

dtsFactura.Tables["Cfdi"].Rows.Add("01""""E""PUE""47600""01""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

 

//un registro por cada documento relacionado

dtsFactura.Tables["CfdiRelacionados"].Rows.Add("341632f7-13be-4244-93f7-6b2aa65933c0");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");



Carta Porte

Los totales se registran en cero

dtsFactura.Tables["Cfdi"].Rows.Add("01""""T""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""0""0""1""0""0""0");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

 

//en este tipo de documento no hay impuestos

 

 

Complemento de pagos

Se llena el articulo a algunos datos del documento con valores específicos

dtsFactura.Tables["Cfdi"].Rows.Add("""""P""""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("P""80", FechaActual, "XXX""0""0""1""0""0""0");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""84111506""1""ACT""Actividad""Pago""0""0""0");

////sin impuestos en estructura de documento

 

//complemento

dtsFactura.Tables["Pagos"].Rows.Add(FechaActual,"02","MXN","1""100","""253214585696521458""01569874523215245""","","","");

dtsFactura.Tables["Beneficiario"].Rows.Add("BNM840515VB1");

dtsFactura.Tables["Ordenante"].Rows.Add("BAF950102JP5""BANCA AFIRME, SA");

dtsFactura.Tables["DoctoRelacionado"].Rows.Add("efa72fdc-9949-411d-a3c0-1d1729b0859b""A""150""MXN","1""PPD""1""150""100""50");

 


Complemento de educación

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""200""0""1""232""0""32");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Colegiatura""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["Conceptos"].Rows.Add("02""01""01010101""1""H87""Pieza""Colegiatura""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("02""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""32");

 

///por cada alumno se agrega un complemento

dtsFactura.Tables["Educacion"].Rows.Add("01","Jose de Jesus""BADD110313HCMLNS09""Primaria""P98140032""XAXX010101000");

dtsFactura.Tables["Educacion"].Rows.Add("02""Pancho""BADD110313HCMLNS09""Primaria""P98140032""XAXX010101000");

 

 

Complemento de Donatarias

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 

dtsFactura.Tables["Donatarias"].Rows.Add("2021-10-10""2135284596""leyenda");

 


Complemento de impuestos locales

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""113""0""16");dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosLocales"].Rows.Add("0","3");

dtsFactura.Tables["RetencionesLocales"].Rows.Add("3","3","RTP");

//dtsFactura.Tables["TrasladosLocales"].Rows.Add("","","");

 


Complemento de comercio exterior

dtsFactura.Tables["Cfdi"].Rows.Add("99""""I""PPD""47600""""G03");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "USD""780000""0""19.81""904800""0""124800");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XEXX010101000""VENTAS DE MOSTRADOR""USA");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""12380""01010101""20000""H87""Pieza""Articulo de prueba""39""780000""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""780000""002""Tasa""16""124800");

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""124800");


dtsFactura.Tables["ComercioExterior"].Rows.Add("""2""A1""0""""""CFR""0""""19.81""40600");

dtsFactura.Tables["EmisorCE"].Rows.Add("BADD110313HCMLNS09""Cesareo Gonzalez""45""""2044""08""""093""JAL""MEX""47600");

dtsFactura.Tables["ReceptorCE"].Rows.Add("950764117""800 Walker Street, Watsonville""","","","","","","AL","USA""95076-4117");

//dtsFactura.Tables["Propietario"].Rows.Add("", "");

//dtsFactura.Tables["DestinatarioCE"].Rows.Add("", "", "", "", "", "", "", "", "", "", "", "");

 

///Una mercancía por cada NoIdentificacion diferente en articulos

dtsFactura.Tables["Mercancias"].Rows.Add("12380""0405909900""20000""01""2.03""40600");

///una, varias o ninguna descripción especifica por cada mercancia

dtsFactura.Tables["Descripciones"].Rows.Add("12380""Marca01""Modelo01""""1234567890");

 


Compemento INE

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 

dtsFactura.Tables["Ine"].Rows.Add( "Ordinario""Ejecutivo Estatal""");

dtsFactura.Tables["EntidadIne"].Rows.Add("JAL""");

// dtsFactura.Tables["ContabilidadIne"].Rows.Add("JAL", "");

 


Complemento de construcciones

dtsFactura.Tables["Cfdi"].Rows.Add("01""""I""PUE""47600""""P01");

dtsFactura.Tables["Documento"].Rows.Add("A""80", FechaActual, "MXN""100""0""1""116""0""16");

 

dtsFactura.Tables["Emisor"].Rows.Add("CACX7605101P8""Empresa de Prueba SA""621""12345678a", cer, key);

dtsFactura.Tables["Receptor"].Rows.Add("XAXX010101000""VENTAS DE MOSTRADOR""MX");

 

///por cada concepto agregar las tres tablas siguientes

dtsFactura.Tables["Conceptos"].Rows.Add("01""01""01010101""1""H87""Pieza""Articulo de prueba""100""100""0");

dtsFactura.Tables["Traslados"].Rows.Add("01""100""002""Tasa""16""16");

 

dtsFactura.Tables["ImpuestosTraslados"].Rows.Add("002""Tasa""16""16");

 

dtsFactura.Tables["Construccion"].Rows.Add("12356489","cesareo gonzalez","55","","Centro","","","Tepatitlan","14","47600");