Ejemplo n.º 1
0
        /// <summary>
        /// Permite la cancelación de facturas [No hay test para esto].
        /// </summary>
        /// <param name="uuid">Es un arreglo de cadenas que contiene los uuid(timbres fiscales) a cancelar.[Por falta de pruebas, cancelen de uno en uno...]</param>
        /// <param name="sRutaArchivos">La ruta a los archivos...</param>
        /// <returns>0 si se canceló, 1 si fallo.</returns>
        public int CancelarFacturaElectronica(string[] uuid, string sRutaArchivos, out string sMensaje)
        {
            MedNeg.Configuracion.BlConfiguracion  oblConfiguracion  = new MedNeg.Configuracion.BlConfiguracion();
            MedDAL.Configuracion.DALConfiguracion odalConfiguracion = new MedDAL.Configuracion.DALConfiguracion();

            odalConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivos + "/Configuracion.xml");

            FacturaService.TimbradoClient svcT = new FacturaService.TimbradoClient();
            FacturaService.RespuestaCFDi  res  = null;
            //El PFX, es un documento creado a partir del CER y KEY, lo ideal es crearlo por fuera, pero se puede crear desde aca con comandos a consola.
            //Es más facil si lo crean y lo cargan, a que lo creen en el sistema.
            res = svcT.Cancelar("medicuri", "a", File.ReadAllBytes(sRutaArchivos + "/Facturacion/" + odalConfiguracion.sRutaFirma.ToString()), uuid, odalConfiguracion.sContraseña);
            if (res.Documento == null)
            {                           //algo falló, revisa el mensaje y ve que pasó. lo mismo aplica para timbrado, pdf, etc... NUNCA he intentado cancelar más de un UUID, así que no se como funcione eso...
                sMensaje = res.Mensaje; //<- tiene el texto del error...
                return(1);
            }
            else
            {
                //Si se canceló, entonces, el documento escribe un nuevo archivo (un xml, con la información de cancelación, conocido como ack.)

                File.WriteAllBytes(sRutaArchivos + "/FacturasElectronicasTimbradas/FacturaE-" + uuid[0] + ".xml", res.Documento);
                sMensaje = res.Mensaje;
                return(0);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Permite la cancelación de facturas [No hay test para esto].
        /// </summary>
        /// <param name="uuid">Es un arreglo de cadenas que contiene los uuid(timbres fiscales) a cancelar.[Por falta de pruebas, cancelen de uno en uno...]</param>
        /// <param name="sRutaArchivos">La ruta a los archivos...</param>
        /// <returns>0 si se canceló, 1 si fallo.</returns>
        public int CancelarFacturaElectronica(string[] uuid,string sRutaArchivos, out string sMensaje)
        {
            MedNeg.Configuracion.BlConfiguracion oblConfiguracion = new MedNeg.Configuracion.BlConfiguracion();
            MedDAL.Configuracion.DALConfiguracion odalConfiguracion = new MedDAL.Configuracion.DALConfiguracion();

            odalConfiguracion = (MedDAL.Configuracion.DALConfiguracion)oblConfiguracion.CargaDatos(sRutaArchivos+"/Configuracion.xml");

            FacturaService.TimbradoClient svcT = new FacturaService.TimbradoClient();
            FacturaService.RespuestaCFDi res = null;
            //El PFX, es un documento creado a partir del CER y KEY, lo ideal es crearlo por fuera, pero se puede crear desde aca con comandos a consola.
            //Es más facil si lo crean y lo cargan, a que lo creen en el sistema.
            res = svcT.Cancelar("medicuri", "a", File.ReadAllBytes(sRutaArchivos + "/Facturacion/" + odalConfiguracion.sRutaFirma.ToString()), uuid, odalConfiguracion.sContraseña);
            if (res.Documento == null)
            { //algo falló, revisa el mensaje y ve que pasó. lo mismo aplica para timbrado, pdf, etc... NUNCA he intentado cancelar más de un UUID, así que no se como funcione eso...
                sMensaje = res.Mensaje; //<- tiene el texto del error...
                return 1;
            }
            else
            {
                //Si se canceló, entonces, el documento escribe un nuevo archivo (un xml, con la información de cancelación, conocido como ack.)

                File.WriteAllBytes(sRutaArchivos + "/FacturasElectronicasTimbradas/FacturaE-" + uuid[0] + ".xml", res.Documento);
                sMensaje = res.Mensaje;
                return 0;
            }
        }