![]() | cfdi33 (Clase) |
Espacio de nombres: EasyOne.Comprobante
public class cfdi33
El tipo cfdi33 expone a los siguientes miembros.
Nombre | Descripción | |
---|---|---|
![]() ![]() | EasyOne_cfdi33_AddCfdiRelacionado |
Nodo requerido para precisar la información de los comprobantes relacionados.
|
![]() ![]() | EasyOne_cfdi33_AddConcepto |
Nodo requerido para registrar la información detallada de un bien o servicio amparado en el comprobante.
|
![]() ![]() | EasyOne_cfdi33_AddInformacionAduanera |
Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.
|
![]() ![]() | EasyOne_cfdi33_AddParte |
Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.
|
![]() ![]() | EasyOne_cfdi33_AddParteInformacionAduanera |
Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.
|
![]() ![]() | EasyOne_cfdi33_AddRetencion |
Nodo requerido para asentar la información detallada de una retención de impuestos aplicable al presente concepto.
|
![]() ![]() | EasyOne_cfdi33_AddRetencionesRetencion |
Nodo requerido para la información detallada de una retención de impuesto específico.
|
![]() ![]() | EasyOne_cfdi33_AddTraslado |
Nodo requerido para asentar la información detallada de un traslado de impuestos aplicable al presente concepto.
|
![]() ![]() | EasyOne_cfdi33_AddTrasladosTraslado |
Nodo requerido para la información detallada de un traslado de impuesto específico.
|
![]() ![]() | EasyOne_cfdi33_Create |
Construye el objeto cfdi33
|
![]() ![]() | EasyOne_cfdi33_Free |
Libera los recursos usados por este objeto
|
![]() ![]() | EasyOne_cfdi33_SetCfdiRelacionados |
Nodo opcional para precisar la información de los comprobantes relacionados.
|
![]() ![]() | EasyOne_cfdi33_SetComprobante |
Estándar de Comprobante Fiscal Digital por Internet.
|
![]() ![]() | EasyOne_cfdi33_SetComprobanteImpuestos |
Nodo condicional para expresar el resumen de los impuestos aplicables.
|
![]() ![]() | EasyOne_cfdi33_SetCuentaPredial |
Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.
|
![]() ![]() | EasyOne_cfdi33_SetEmisor |
Nodo requerido para expresar la información del contribuyente emisor del comprobante.
|
![]() ![]() | EasyOne_cfdi33_SetReceptor |
Nodo requerido para precisar la información del contribuyente receptor del comprobante.
|
El siguiente ejemplo muestra un codigo en C# que genera un CFDI 3.2.
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; namespace Consola.EasyOne { class ConsolaEasyOne { #region dll cfd 3.3 [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern int EasyOne_FirmaComprobante(int p, string csd, string key, string pwd); [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern string EasyOne_LeeResultado(int p, int valor); //NOTA: Wraper temporal para timbrar CFDI 3.3 de pruebas [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_SetInvoiceOneFachadaInfoPrueba(int p, string AgenteId, string SoftwareId); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern int EasyOne_cfdi33_Create(string outFile); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_Free(int p); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetComprobante(int p, string Serie, string Folio, string Fecha, string FormaPago, string CondicionesDePago, string SubTotal, string Descuento, string Moneda, string TipoCambio, string Total, string TipoDeComprobante, string MetodoPago, string LugarExpedicion, string Confirmacion); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetCfdiRelacionados(int p, string TipoRelacion); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddCfdiRelacionado(int p, string UUID); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetEmisor(int p, string Rfc, string Nombre, string RegimenFiscal); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetReceptor(int p, string Rfc, string Nombre, string ResidenciaFiscal, string NumRegIdTrib, string UsoCFDI); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddConcepto(int p, string ClaveProdServ, string NoIdentificacion, string Cantidad, string ClaveUnidad, string Unidad, string Descripcion, string ValorUnitario, string Importe, string Descuento); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddTraslado(int p, string Base, string Impuesto, string TipoFactor, string TasaOCuota, string Importe); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddRetencion(int p, string Base, string Impuesto, string TipoFactor, string TasaOCuota, string Importe); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddInformacionAduanera(int p, string NumeroPedimento); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetCuentaPredial(int p, string Numero); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddParte(int p, string ClaveProdServ, string NoIdentificacion, string Cantidad, string Unidad, string Descripcion, string ValorUnitario, string Importe); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddParteInformacionAduanera(int p, string NumeroPedimento); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_SetComprobanteImpuestos(int p, string TotalImpuestosRetenidos, string TotalImpuestosTrasladados); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddRetencionesRetencion(int p, string Impuesto, string Importe); [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)] static public extern void EasyOne_cfdi33_AddTrasladosTraslado(int p, string Impuesto, string TipoFactor, string TasaOCuota, string Importe); #endregion static void Main(string[] args) { try { GeneraCFDI33(); } catch (Exception ex) { Console.WriteLine(ex); } } public static void GeneraCFDI33() { //Iniciamos creando el objeto cfdi3.3 e indicamos el nombre del archivo de salida "Ejemplo.xml" int p = EasyOne_cfdi33_Create("Ejemplo.xml"); EasyOne_cfdi33_SetComprobante(p, "A", "1", string.Format("{0:yyyy-MM-ddTHH:mm:ss}", DateTime.Now), "01", "CondicinoesPago", "1000", "0", "MXN", "1", "1160.00", "I", "PUE", "64000", ""); EasyOne_cfdi33_SetEmisor(p, "AAA010101AAA", "prueba", "601"); EasyOne_cfdi33_SetReceptor(p, "XEXX010101000", "receptor", "USA", "", "P01"); //Agregamos los Impuestos a nivel Comprobante //Es importante que las siguietes 2 líneas de código se coloquen antes de agregar conceptos e impuestos a nivel concepto. EasyOne_cfdi33_SetComprobanteImpuestos(p, "", "160.00"); EasyOne_cfdi33_AddTrasladosTraslado(p, "002", "Tasa", "0.160000", "160.00"); //Agregamos los concepto EasyOne_cfdi33_AddConcepto(p, "01010101", "1", "1", "H87", "Pieza", "Ejemplo 1", "1000.00", "1000.00", "0"); EasyOne_cfdi33_AddTraslado(p, "1000", "002", "Tasa", "0.160000", "160.00"); //Enviamos el CFDI al metodo de PRUEBAS //En la siguiente línea es necesario incluir la Clave de Integración que se proporciona en la Guía de Implementación (Menú "Ayuda" de su Oficina Virtual). EasyOne_SetInvoiceOneFachadaInfoPrueba(p, "USAR_CLAVE_DE_INTEGRACION", "USAR_CLAVE_DE_INTEGRACION"); //Para enviar el CFDI a PRODUCCION se debe quitar la linea de arriba y usar la siguiente linea descomentada. //En la siguiente línea es necesario incluir la Clave de Integración que se proporciona en la Guía de Implementación (Menú "Ayuda" de su Oficina Virtual). //EasyOne_SetInvoiceOneFachadaInfo(p, "USAR_CLAVE_DE_INTEGRACION", "USAR_CLAVE_DE_INTEGRACION"); //En la siguiente línea se deben colocar los nombres de los archivos de certificado de sellos del Emisor. //Para fines de esta prueba se usarán los certificados de sellos del Emisor AAA010101AAA. //Favor de colocar estos archivos (.CER y .KEY) en la misma carpeta donde se encuentra la aplicación. int i = EasyOne_FirmaComprobante(p, "CSD01_AAA010101AAA.cer", "CSD01_AAA010101AAA.key", "12345678a"); //Si el resultado es 0 = El CFDI se procesó correctamente if (i == 0) { string resultadoXML = String.Empty; //Obtenemos el XML completo y timbrado Console.WriteLine(resultadoXML = EasyOne_LeeResultado(p, 8)); } else { //En caso de error mostrar el detalle. Console.WriteLine(EasyOne_LeeResultado(p, 11)); } Console.ReadLine(); } } }