public static cfdi33.Comprobante TranslateToCFDI(BindingModels.Comprobante from) { bool MetodoPagoSpecified = false; bool formaPagoSpecified = false; var cfdi33 = new cfdi33.Comprobante() { // TODO: revisar si se aplican descuento, Emisor = new Invoicing.cfdi33.ComprobanteEmisor() { Rfc = from.Emisor.RFC, RegimenFiscal = TranslateModelsToCatalogosCFDI.TranslateRegimenFiscal(from.Emisor.RegimenFiscal), Nombre = from.Emisor.Nombre }, Receptor = new Invoicing.cfdi33.ComprobanteReceptor() { Rfc = from.Receptor.RFC, Nombre = from.Receptor.Nombre, UsoCFDI = TranslateModelsToCatalogosCFDI.TranslateUsoCFDI(from.UsoCFDI), ResidenciaFiscalSpecified = false // TODO : Revisar si se implementa la resencia fiscal y el No. de registro tributario para extranjeros }, Complemento = new Invoicing.cfdi33.ComprobanteComplemento() { Items = new object[] { TranslateModelsValesDeDespensa.TranslateTo(from.ValesDespensa), TranslatesModelsToPagos.TranslateTo((from).Pagos) } }, Impuestos = TranslateModelsToTotalImpuestos.TranslateCuadroImpuesto(from.Conceptos), Conceptos = TranslateModelConceptosToCFDI.TranslateConceptos(from.Conceptos).ToArray(), LugarExpedicion = from.LugarExpedicion, // TranslateModelsToCatalogosCFDI.TranslateCodigoPostal(from.LugarExpedicion), TipoDeComprobante = TranslateModelsToCatalogosCFDI.TranslateTipoComprobante(from.TipoComprobante), FormaPago = TranslateModelsToCatalogosCFDI.TranslateFormaPago(from.FormaPago, ref formaPagoSpecified), FormaPagoSpecified = formaPagoSpecified, Certificado = from.Certificado, NoCertificado = from.noCertificado, CondicionesDePago = from.CondicionesDePago, CondicionesDePagoSpecified = !String.IsNullOrEmpty(from.CondicionesDePago), Serie = from.Serie, Folio = from.Folio, Moneda = TranslateModelsToCatalogosCFDI.TranslateMoneda(from.Moneda), MetodoPago = TranslateModelsToCatalogosCFDI.TranslateMetodoPago(from.MetodoPago, ref MetodoPagoSpecified), MetodoPagoSpecified = MetodoPagoSpecified, Version = "3.3", SubTotal = from.SubTotal, Total = from.Total, Fecha = TranslateModelsToCatalogosCFDI.TranslateFecha(from.Fecha), }; return(cfdi33); }
public static cfdi33.PagosPago TranslateToPago(BindingModels.Pago from) { bool formaPagoSpecified = false; byte[] certPago = null; byte[] selloPago = null; if (!String.IsNullOrEmpty(from.CertPago)) { certPago = Encoding.ASCII.GetBytes(from.CertPago); } if (!String.IsNullOrEmpty(from.SelloPago)) { selloPago = Encoding.ASCII.GetBytes(from.SelloPago); } var listaDoctosRelacionados = new List <PagosPagoDoctoRelacionado>(); if (from.ListaDocumentos != null) { foreach (var item in from.ListaDocumentos) { listaDoctosRelacionados.Add(TranslateToDoctosRelacionados(item)); } } else { throw new Exception("No existen facturas relacionadas con el pago"); } var to = new cfdi33.PagosPago() { FechaPago = TranslateModelsToCatalogosCFDI.TranslateFecha(from.FechaPago.LocalDateTime), // from.FechaPago.LocalDateTime, MonedaP = TranslateModelsToCatalogosCFDI.TranslateMoneda(from.MonedaP), FormaDePagoP = TranslateModelsToCatalogosCFDI.TranslateFormaPago(from.FormaDePagoP, ref formaPagoSpecified), Monto = from.Monto, CtaBeneficiario = from.CtaBeneficiario, CadPago = from.CadPago, CertPago = certPago, CtaOrdenante = from.CtaOrdenante, NomBancoOrdExt = from.NomBancoOrdExt, NumOperacion = from.NumOperation, RfcEmisorCtaBen = from.RfcEmisorCtaBen, RfcEmisorCtaOrd = from.RfcEmisorCtaOrd, SelloPago = selloPago, TipoCadPagoSpecified = !String.IsNullOrEmpty(from.TipoCadPago), TipoCambioP = from.TipoCambioP, TipoCambioPSpecified = (from.TipoCambioP > 0), DoctoRelacionado = listaDoctosRelacionados.ToArray() // Impuestos = from.ListaImpuestos }; var TipoCadPago = TranslateModelsToCatalogosCFDI.TranslateToCadenaPago(from.TipoCadPago, out bool isNullValue); if (!isNullValue) { to.TipoCadPago = TipoCadPago; } return(to); }