Arrastre para cambiar el tamaño
cce11 (Clase)
Experiencia simple con el gobierno digital con productos fáciles de usar
La versión 1.1 del complemento incorpora un grupo de funcionalidades adicionales, entre las que se encuentran: a) Un nodo para ser usado en el caso de operaciones de exportación definitiva de mercancías en definitiva tipo A-1, en casos en los cuales estas mercancías no son objeto de enajenación, o siéndolo esta es a título gratuito –es decir sin recibir pago a cambio o sin ser una venta-. b) Actualización de la validación referente a la Identificación de producto o productos a varias fracciones arancelarias. c) Actualización al Catálogo de fracciones arancelarias. d) Incorporación de domicilios para emisor y receptor(que aplicará en el futuro para la versión 3.3 del nuevo Anexo 20).
Jerarquía de herencia
SystemObject
  EasyOne.Comprobante.Complementocce11

Espacio de nombres:  EasyOne.Comprobante.Complemento
Ensamblado:  EasyOne (en EasyOne.dll) Versión: 1.0.0.0 (1.0)
Sintaxis
C#
public class cce11

El tipo cce11 expone a los siguientes miembros.

Métodos
  NombreDescripción
Método públicoMiembro estáticoEasyOne_cce11_AddDescripcionesEspecificas
Nodo opcional que indica la lista de descripciones específicas de la mercancía. Una mercancía puede tener más de una descripción específica.
Método públicoMiembro estáticoEasyOne_cce11_AddDestinatario
Nodo opcional para capturar los datos del destinatario de la mercancía cuando éste sea distinto del receptor del CFDI.
Método públicoMiembro estáticoEasyOne_cce11_AddDestinatarioDomicilio
Nodo requerido para expresar el domicilio del destinatario de la mercancía.
Método públicoMiembro estáticoEasyOne_cce11_AddMercancia
Nodo requerido para capturar la información de la declaración de cada mercancía exportada.
Método públicoMiembro estáticoEasyOne_cce11_AddPropietario
Nodo condicional para capturar los datos del o los propietarios de la mercancía que se traslada y ésta no sea objeto de enajenación o siéndolo sea a título gratuito, cuando el emisor del CFDI es un tercero.
Método públicoMiembro estáticoEasyOne_cce11_Create
Construye el objeto cce11
Método públicoMiembro estáticoEasyOne_cce11_Free
Libera los recursos usados por este objeto
Método públicoMiembro estáticoEasyOne_cce11_SetComercioExterior
Complemento para incorporar la información en el caso de Exportación de Mercancías en definitiva.
Método públicoMiembro estáticoEasyOne_cce11_SetEmisor
Nodo opcional para capturar los datos complementarios del emisor del comprobante.
Método públicoMiembro estáticoEasyOne_cce11_SetEmisorDomicilio
Nodo condicional para expresar el domicilio del emisor del comprobante, es requerido cuando el complemento se registre en un CFDI versión 3.3.
Método públicoMiembro estáticoEasyOne_cce11_SetReceptor
Nodo condicional para capturar los datos complementarios del receptor del CFDI.
Método públicoMiembro estáticoEasyOne_cce11_SetReceptorDomicilio
Nodo requerido para expresar el domicilio del receptor del comprobante, cuando el complemento se registre en un CFDI versión 3.3.
Top
Ejemplos
Ejemplo C#
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 wrappers cfd32
        [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);

        [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_cfdi32_Create(string outFile);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetComprobante(int p, string serie, string folio, string fecha, string formaDePago, string condicionesDePago, string subTotal, string descuento, string motivoDescuento, string TipoCambio, string Moneda, string total, string tipoDeComprobante, string metodoDePago, string LugarExpedicion, string NumCtaPago, string FolioFiscalOrig, string SerieFolioFiscalOrig, string FechaFolioFiscalOrig, string MontoFolioFiscalOrig);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetEmisor(int p, string rfc, string nombre);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetEmisorDomicilioFiscal(int p, string calle, string noExterior, string noInterior, string colonia, string localidad, string referencia, string municipio, string estado, string pais, string codigoPostal);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetEmisorExpedidoEn(int p, string calle, string noExterior, string noInterior, string colonia, string localidad, string referencia, string municipio, string estado, string pais, string codigoPostal);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddRegimenFiscal(int p, string Regimen);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetReceptor(int p, string rfc, string nombre);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetReceptorDomicilio(int p, string calle, string noExterior, string noInterior, string colonia, string localidad, string referencia, string municipio, string estado, string pais, string codigoPostal);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddConcepto(int p, string cantidad, string unidad, string noIdentificacion, string descripcion, string valorUnitario, string importe);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddInformacionAduanera(int p, string numero, string fecha, string aduana);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetCuentaPredial(int p, string numero);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddParte(int p, string cantidad, string unidad, string noIdentificacion, string descripcion, string valorUnitario, string importe);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddParteInformacionAduanera(int p, string numero, string fecha, string aduana);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_SetImpuestos(int p, string totalImpuestosRetenidos, string totalImpuestosTrasladados);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddRetencion(int p, string impuesto, string importe);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_AddTraslado(int p, string impuesto, string tasa, string importe);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cfdi32_Free(int p);

        [DllImport(@"EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_AddComplemento(int p, int pComp);
        #endregion


        #region wrappers ComercioExterior11

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern int EasyOne_cce11_Create();

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_SetComercioExterior(int p, string MotivoTraslado, string TipoOperacion, string ClaveDePedimento, string CertificadoOrigen, string NumCertificadoOrigen, string NumeroExportadorConfiable, string Incoterm, string Subdivision, string Observaciones, string TipoCambioUSD, string TotalUSD);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_SetEmisor(int p, string Curp);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_SetEmisorDomicilio(int p, string Calle, string NumeroExterior, string NumeroInterior, string Colonia, string Localidad, string Referencia, string Municipio, string Estado, string Pais, string CodigoPostal);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_AddPropietario(int p, string NumRegIdTrib, string ResidenciaFiscal);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_SetReceptor(int p, string NumRegIdTrib);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_SetReceptorDomicilio(int p, string Calle, string NumeroExterior, string NumeroInterior, string Colonia, string Localidad, string Referencia, string Municipio, string Estado, string Pais, string CodigoPostal);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_AddDestinatario(int p, string NumRegIdTrib, string Nombre);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_AddDestinatarioDomicilio(int p, string Calle, string NumeroExterior, string NumeroInterior, string Colonia, string Localidad, string Referencia, string Municipio, string Estado, string Pais, string CodigoPostal);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_AddMercancia(int p, string NoIdentificacion, string FraccionArancelaria, string CantidadAduana, string UnidadAduana, string ValorUnitarioAduana, string ValorDolares);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_AddDescripcionesEspecificas(int p, string Marca, string Modelo, string SubModelo, string NumeroSerie);

        [DllImport("EasyOne.DLL", CallingConvention = CallingConvention.Cdecl)]
        static public extern void EasyOne_cce11_Free(int p);

        #endregion


        static void Main(string[] args)
        {
            try
            {
                GeneraCFDI32();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }

        }

        public static void GeneraCFDI32()
        {

            //Iniciamos creando el objeto cfdi3.2 e indicamos el nombre del archivo de salida "Ejemplo.xml"
            int p = EasyOne_cfdi32_Create("Ejemplo.xml");

            //Llenamos la sección del comprobante
            EasyOne_cfdi32_SetComprobante(p, "serie0", "folio0", "2017-01-27T10:13:51", "formaDePago0", "condicionesDePago0", "0.000000", "0.000000", "motivoDescuento0", "TipoCambio0", "Moneda0", "0.000000", "ingreso", "metodoDePago0", "LugarExpedicion0", "NumCtaPago0", "FolioFiscalOrig0", "SerieFolioFiscalOrig0", "2006-05-04T18:13:51.0", "0.000000");


            //Llenamos la sección del Emisor
            EasyOne_cfdi32_SetEmisor(p, "AAA010101AAA", "nombre0");

            //Llenamos la sección del Domicilio Fiscal del Emisor
            EasyOne_cfdi32_SetEmisorDomicilioFiscal(p, "calle0", "noExterior0", "noInterior0", "colonia0", "localidad0", "referencia0", "municipio0", "estado0", "pais0", "codig");

            //Llenamos la sección del Expedido en del Emisor
            EasyOne_cfdi32_SetEmisorExpedidoEn(p, "calle1", "noExterior1", "noInterior1", "colonia1", "localidad1", "referencia1", "municipio1", "estado1", "pais1", "codigoPostal2");

            //Agregamos un Regimen fiscal del Emisor

            EasyOne_cfdi32_AddRegimenFiscal(p, "Regimen0");

            //Llenamos la sección del Receptor
            EasyOne_cfdi32_SetReceptor(p, "AAA010101AAA", "nombre1");

            //Llenamos la sección del domicilio fiscal del Receptor
            EasyOne_cfdi32_SetReceptorDomicilio(p, "calle2", "noExterior2", "noInterior2", "colonia2", "localidad2", "referencia2", "municipio2", "estado2", "pais2", "codigoPostal3");

            //Agregamos los concepto

            EasyOne_cfdi32_AddConcepto(p, "0", "unidad0", "noIdentificacion0", "descripcion0", "0.000000", "0.000000");

            EasyOne_cfdi32_SetCuentaPredial(p, "numero0");

            //Agregamos los Impuestos
            EasyOne_cfdi32_SetImpuestos(p, "0.000000", "0.000000");

            EasyOne_cfdi32_AddRetencion(p, "ISR", "0.000000");

            EasyOne_cfdi32_AddTraslado(p, "IVA", "0.000000", "0.000000");

            //Creamos el objeto del Complemento ComercioExterior11
            int cce11 = EasyOne_cce11_Create();

            //Llenamos la secccion ComercioExterior
            EasyOne_cce11_SetComercioExterior(cce11, "01", "2", "A1", "0", "NumCertificadoOrigen0", "NumeroExportadorConfiable0", "CFR", "0", "Observaciones0", "50.000000", "50.000000");

            //Llenamos la seccion Emisor

            EasyOne_cce11_SetEmisor(cce11, "AAAA000101HASBBB00");

            EasyOne_cce11_SetEmisorDomicilio(cce11, "Calle0", "NumeroExterior0", "NumeroInterior0", "0001", "01", "Referencia0", "001", "AGU", "AFG", "01000");

            EasyOne_cce11_AddPropietario(cce11, "NumRegIdTrib0", "AFG");


            //Llenamos la seccion Receptor

            EasyOne_cce11_SetReceptor(cce11, "NumRegIdTrib1");

            EasyOne_cce11_SetReceptorDomicilio(cce11, "Calle1", "NumeroExterior1", "NumeroInterior1", "Colonia1", "Localidad1", "Referencia1", "Municipio1", "Estado1", "AFG", "CodigoPostal");


            //Llenamos la seccion Destinatario

            EasyOne_cce11_AddDestinatario(cce11, "NumRegIdTrib2", "Nombre0");


            //Llenamos la seccion Mercancia

            EasyOne_cce11_AddMercancia(cce11, "NoIdentificacion0", "01011001", "50.00", "01", "50", "50");

            EasyOne_cce11_AddDescripcionesEspecificas(cce11, "Marca0", "Modelo0", "SubModelo0", "NumeroSerie0");


            //Añadimos Complemento al CFDI
            EasyOne_AddComplemento(p, cce11);



           //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();

        }
    }
}
Vea también