コード例 #1
0
ファイル: ConceptoService.cs プロジェクト: PoloRdz/cfdi
        public Dictionary <string, Object> GetConceptosFactura(int idFactura)
        {
            var res         = new Dictionary <string, Object>();
            var conceptoDAO = new ConceptosDAO();

            res.Add("conceptos", conceptoDAO.GetConceptosFatcura(idFactura));
            return(res);
        }
コード例 #2
0
ファイル: TimbradoService.cs プロジェクト: PoloRdz/cfdi
        private void createCFDI(CFDi cfdi)
        {
            //logger.Info("Proceso de timbrado iniciado. Emisor: " + cfdi.emisor.unidadOperativa.razonSocial.rfc + "; Receptor: " + cfdi.receptor.informacionFiscal.rfc);
            EmisorDAO    emisorDAO = new EmisorDAO();
            ConceptosDAO conDAO    = new ConceptosDAO();
            CFDiDAO      cfdiDAO   = new CFDiDAO();
            UsuarioDAO   uDAO      = new UsuarioDAO();
            Calculador   calc      = new Calculador();

            //if (cfdi.pagos != null && cfdi.pagos.doctoRelacionados != null && cfdi.pagos.doctoRelacionados.Length > 0)
            //{
            //    getDoctoRelacionados(cfdi.pagos.doctoRelacionados, cfdiDAO);
            //}
            cfdi.emisor = emisorDAO.GetIssuerInfo(cfdi.emisor.unidadOperativa.idUnidadOperativa,
                                                  cfdi.tipoCompra.Substring(0, 1));
            cfdi.emisor.certificado         = emisorDAO.GetIssuerCertInfo(cfdi.emisor.unidadOperativa.razonSocial.idRazonSocial);
            cfdi.receptor.usuario           = uDAO.getUsuario(cfdi.receptor.usuario.id);
            cfdi.receptor.informacionFiscal = uDAO.getUsuarioFiscales(cfdi.receptor.usuario.id);
            cfdi.conceptos = conDAO.getConceptos(cfdi.idMov, cfdi.emisor.unidadOperativa.idUnidadOperativa);
            //if(cfdi.conceptos[0].fecha.ToString("yyyy/MM/dd").Equals(DateTime.Now.ToString("yyyy/MM/dd")))
            //{
            //    throw new SameDayInvoiceException("No puedes hacer la factura el mismo día de la compra");
            //}
            //if(!cfdi.conceptos[0].fecha.ToString("yyyy/MM/dd").Equals(cfdi.fecha.ToString("yyyy/MM/dd")))
            //{
            //    throw new InvoiceDateMismatchException("La fecha que has ingresado no coincide con la fecha de la compra");
            //}
            //if(DateTime.Now.Subtract(cfdi.conceptos[0].fecha).TotalDays >= 15)
            //{
            //    throw new ExpiredInvoiceException("Solo puedes facturar hasta 15 dias después de la compra");
            //}
            //Validar si los conceptos no han sido facturados
            calc.calcularDescuentosConceptos(cfdi.conceptos);
            calc.calcularImpuestoConceptos(cfdi.conceptos, cfdi.emisor.unidadOperativa);
            calc.calcularTotal(cfdi);
            cfdi.importeLetra = ConvertidorImporte.enletras(cfdi.total, cfdi.moneda);
            cfdi.fechaCert    = DateTime.Now;
            cfdiDAO.saveCFDI(cfdi, true);
            if (cfdi.folio > 0)
            {
                CfdiXmlBuilder xmlBuilder = new CfdiXmlBuilder();
                cfdi.xml = xmlBuilder.BuildXml(cfdi);

                cfdiDAO.saveCFDI(cfdi, false);
                //timbrarFacturaWS(cfdi);
                //xmlBuilder.obtenerDatosTimbre(cfdi);
                cfdiDAO.saveCFDI(cfdi, false);
                logger.Info("Cadena original del complemento de certificacion digital del SAT: " + cfdi.cadenaCertificadoSat);
                sendMail(cfdi);
            }
            else
            {
                throw new InvalidCfdiDataException("No fue posible guardar los datos de la factura");
            }
        }