예제 #1
0
        private bool Timbrar(String pathXML)
        {
            //TIMBRE DEL XML


            byte[] bXML = File.ReadAllBytes(pathXML);
            if (empresa.TimbradoTest)
            {
                respuestaCFDI = timbradoClient.TimbrarTest(empresa.UserWstimbrado, empresa.PassWstimbrado, bXML);
            }
            else
            {
                respuestaCFDI = timbradoClient.Timbrar(empresa.UserWstimbrado, empresa.PassWstimbrado, bXML);
            }
            if (respuestaCFDI.Documento == null)
            {
                Ambiente.Mensaje(respuestaCFDI.Mensaje);
                return(false);
            }
            else
            {
                File.WriteAllBytes(pathXML, respuestaCFDI.Documento);
                Deserializar(pathXML);
                Venta.CadenaOriginal = cadenaOriginal;
                Venta.SelloCfdi      = comprobante.TimbreFiscalDigital.SelloCFD;
                Venta.SelloSat       = comprobante.TimbreFiscalDigital.SelloSAT;
                Venta.UuId           = comprobante.TimbreFiscalDigital.UUID;
                Venta.NoCertificado  = noCertificado;
                Venta.RutaXml        = facturaActual;
                Venta.EstatusSat     = "Vigente";
                return(ventaController.UpdateOne(Venta));
            }
        }
예제 #2
0
        public void Cancelar()
        {
            Inicializar();
            if (Venta == null || partidas.Count == 0 || empresa == null || cliente == null)
            {
                Ambiente.Mensaje("Venta || partidas || empresa || Cliente == null");
                return;
            }

            if (cliente.Rfc == null)
            {
                Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO");
                return;
            }

            if (cliente.Rfc.Trim().Length == 0)
            {
                Ambiente.Mensaje("PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO");
                return;
            }
            if (Venta.UuId == null)
            {
                Ambiente.Mensaje("Proceso abortado, este documento no es una factura o no está timbrada");
                return;
            }



            respuestaCFDI = timbradoClient.CancelarAsincrono(
                empresa.UserWstimbrado,
                empresa.PassWstimbrado,
                File.ReadAllBytes(empresa.RutaArchivoPfx),
                Venta.UuId,
                empresa.ClavePrivada,
                (double)Venta.Total,
                empresa.Rfc,
                cliente.Rfc);

            s = respuestaCFDI.Mensaje;


            respuestaCFDI = timbradoClient.VerStatus(
                empresa.UserWstimbrado,
                empresa.PassWstimbrado,
                Venta.UuId,
                (double)Math.Round(Venta.Total, 2),
                empresa.Rfc,
                cliente.Rfc);

            s = respuestaCFDI.Mensaje;

            if (respuestaCFDI.Mensaje.Equals("Cancelado"))
            {
                Venta.EstatusSat = respuestaCFDI.Mensaje;
                ventaController.UpdateOne(Venta);
                Ambiente.Mensaje(s);
            }
        }
예제 #3
0
        public void ActualizarStatusSAT()
        {
            Inicializar();
            bool   CrearLog = false;
            string s        = "";

            if (Venta == null || partidas.Count == 0 || empresa == null || cliente == null)
            {
                CrearLog = true;
                s       += "Venta || partidas || empresa || Cliente == null";
            }

            if (cliente.Rfc == null)
            {
                CrearLog = true;
                s       += "/";
                s       += "PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO";
            }

            if (cliente.Rfc.Trim().Length == 0)
            {
                CrearLog = true;
                s       += "/";
                s       += "PROCESO ABORTADO, RFC DEL CLIENTE NO ES VÁLIDO";
            }
            if (Venta.UuId == null)
            {
                CrearLog = true;
                s       += "/";
                s       += "Proceso abortado, este documento no es una factura o no está timbrada";
            }


            if (CrearLog)
            {
                var error = new DymError();
                error.Message    = s;
                error.ToString   = s;
                error.VentaId    = Venta == null ? "NULL" : Venta.VentaId.ToString();
                error.LoggedUser = Ambiente.LoggedUser.UsuarioId;
                error.CreatedAt  = DateTime.Now;
                dymErrorController.InsertOne(error);
                return;
            }



            respuestaCFDI = timbradoClient.VerStatus(
                empresa.UserWstimbrado,
                empresa.PassWstimbrado,
                Venta.UuId,
                (double)Math.Round(Venta.Total, 2),
                empresa.Rfc,
                cliente.Rfc);
            Venta.EstatusSat = respuestaCFDI.Mensaje;
            ventaController.UpdateOne(Venta);
        }
예제 #4
0
        //Inicizalizar
        public void Inicializar()
        {
            //Controladores
            ventaController    = new VentaController();
            ventapController   = new VentapController();
            clienteController  = new ClienteController();
            empresaController  = new EmpresaController();
            dymErrorController = new DymErrorController();

            //Utils
            respuestaCFDI  = new RespuestaCFDi();
            timbradoClient = new TimbradoClient();
            selloDigital   = new SelloDigital();
            transformador  = new XslCompiledTransform();

            //Comprobante
            comprobante = new Comprobante();
            emisor      = new ComprobanteEmisor();
            receptor    = new ComprobanteReceptor();


            // Nivel concepto
            conceptos         = new List <ComprobanteConcepto>();
            concepto          = new ComprobanteConcepto();
            impuestosConcepto = new List <ComprobanteConceptoImpuestosTraslado>();
            ivaConcepto       = new ComprobanteConceptoImpuestosTraslado();
            iepsConcepto      = new ComprobanteConceptoImpuestosTraslado();



            //Nivel comprobante
            impuestosComprobante      = new List <ComprobanteImpuestosTraslado>();
            totalImpuestosComprobante = new ComprobanteImpuestos();
            ivaComprobante            = new ComprobanteImpuestosTraslado();
            iepsComprobante           = new ComprobanteImpuestosTraslado();


            //inicializacion de propiedades
            empresa  = empresaController.SelectTopOne();
            partidas = ventapController.SelectPartidas(Venta.VentaId);
            cliente  = clienteController.SelectOne(Venta.ClienteId);
            s        = "";
        }