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); }
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"); } }