Exemplo n.º 1
0
        public static void CrearFactura()
        {
            //Aquí configuramos el rfc con el cliente, como vamos a hacer pruebas utilizaremos el rfc de pruebas
            // Para cambiar a produción simplemente haga cambie de NO a SI. cuando esta configurado en NO estamos en prueba
            pac = new PAC("DEMO700101XXX", "DEMO700101XXX", "NO");
            //Configuración de certificados.
            conf = new Conf(@"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.cer",
                            @"C:\multifacturas_sdk\pruebas\CSD01_AAA010101AAA.key",
                            "12345678a");
            //Configuramos el sdk para el timbrado
            sdkconf = new SDKConfig(pac, conf, @"C:\multifacturas_sdk\");
            sdk     = new SDK(sdkconf);

            //Datos del emisor.
            emisor = new Emisor();

            //Domicilio
            emisor.Nombre = "Soluciones Integrales en Tecnologías de la Información del Maya S.A de C.V";
            emisor.RFC    = "AAA010101AAA";

            //Creamos el domicilio fiscal del emisor

            DomicilioFiscal domiciliofiscal = new DomicilioFiscal();

            domiciliofiscal.Calle        = " 41";
            domiciliofiscal.NoExterior   = "318";
            domiciliofiscal.Colonia      = "Montealban";
            domiciliofiscal.CodigoPostal = "97114";
            domiciliofiscal.Localidad    = "Mérida";
            domiciliofiscal.Municipio    = "Mérida";
            domiciliofiscal.Pais         = "México";
            domiciliofiscal.Estado       = "Yucatán";



            //En caso de que la expedisión sea en otra sucursal.
            ExpedidoEn expedidoen = new ExpedidoEn();

            expedidoen.Calle        = "Andador Potasio";
            expedidoen.NoExterior   = "279";
            expedidoen.NoInterior   = "3A";
            expedidoen.Colonia      = "11 de Julio";
            expedidoen.CodigoPostal = "60954";
            expedidoen.Localidad    = "Lázaro Cárdenas";
            expedidoen.Municipio    = "Lázaro Cárdenas";
            expedidoen.Pais         = "México";
            expedidoen.Estado       = "Michoacán";

            emisor.Domicilio  = domiciliofiscal;
            emisor.ExpedidoEn = expedidoen;

            ///Creamos el receptor
            receptor        = new Receptor();
            receptor.Nombre = "Francisco Javier Guerrero";
            receptor.RFC    = "XAXX010101000"; //aquí publico gneral.

            Domicilio domicilioreceptor = new Domicilio();

            domicilioreceptor.Calle     = "Domicilio Conocido";
            domicilioreceptor.Localidad = "Lazaro Cárdenas";


            receptor.Domicilio = domicilioreceptor;



            //No es necesario llenar todos los campos.

            //Creamos la venta
            List <Concepto> conceptos = new List <Concepto>();

            conceptos.Add(new Concepto("1", "Pieza", "COD1", "Producto Prueba", "120", "120"));
            Impuestos impuestos = new Impuestos();

            impuestos.AgregaTraslado(new Translado("IVA", "19.2", "16"));

            //Creamos un nuevo objeto de tipo factura


            factura = new CFDI();
            //Datos básicos de la factura
            //factura.Emisor = emisor;
            //factura.Receptor = receptor;
            factura.Emisor    = emisor;
            factura.Receptor  = receptor;
            factura.Conceptos = conceptos;
            factura.Impuestos = impuestos;
            //Configuramos la serie y el folio
            factura.Serie             = "AA";
            factura.Folio             = "1";
            factura.FechaDeExpedicion = "2016-12-02 19:00:00";
            //Consultar los cambios a la miscelanea fiscal Agosto 2016.
            factura.MetodoDePago = "01";
            //Los 4 digitos si pagó con tarjeta o cheque...
            factura.NumCtaPAgo = "";
            //Esto se configura según las reglas del negocio;
            factura.FormaDePago = "Pago en una sola exhibición";
            //Peso mexicano... cambiar al tipo de cambio en caso de cobrar en USD o en otra moneda.
            factura.TipoDeCambio = "1.0";
            //Consultar el Anexo 20.
            factura.TipoDeComprobante = "ingreso"; //ingreso, egreso, traslado [Escribir en minúsculas]
            factura.LugarDeExpedicion = "Lázaro Cárdenas, Michoacan";
            factura.RegimenFiscal     = "De las personas fisicas con actividad empresarial";
            factura.SubTotal          = "120";
            factura.Descuento         = "0";
            factura.Total             = "139.2"; //El total con el iva NETO
            var x = AppDomain.CurrentDomain.BaseDirectory;

            sdk.CreaINI(factura, AppDomain.CurrentDomain.BaseDirectory + "Factura01"); //Esta cadena se cambia por la de tu archivo a generar.

            //Ahora creamos el tmbrado con el archivo INI ya generado (generamos el XML)
            //factura, directorio y el archivo .ini generado
            sdk.Timbrar(factura, AppDomain.CurrentDomain.BaseDirectory, "Factura01");
        }