public string CrearXML(EnumeradoresFEL.enmTipoDocumento tipoDoc) { var encDoc = ResolverEncabezado(tipoDoc); encDoc.Clave = Encabezado.Clave; encDoc.NumeroConsecutivo = Encabezado.NumeroConsecutivo; encDoc.FechaEmision = Encabezado.FechaEmision; encDoc.Emisor = Encabezado.Emisor; encDoc.Receptor = Validador.esReceptorValido(Encabezado.Receptor) ? Encabezado.Receptor : null; encDoc.CondicionVenta = ModFunciones.ObtenerValorEnumerador(Encabezado.CondicionVenta, Enumeradores.CondicionVenta.Item99); encDoc.PlazoCredito = Encabezado.PlazoCredito; encDoc.MedioPago = AsignarMediosPago(); encDoc.DetalleServicio = Detalles.ToArray(); encDoc.ResumenFactura = Resumen; encDoc.InformacionReferencia = CrearArregloReferencias(); encDoc.Normativa = new Normativa { NumeroResolucion = Encabezado.NormativaNombre, FechaResolucion = Encabezado.NormativaFecha }; encDoc.Otros = CrearSeccionOtros(); return(encDoc.GenerarXML()); throw new NotImplementedException(); }
public List <LineaDetalle> ParsearLineas(List <LineaDetalleSistema> lineasSistema) { var felLineas = new List <LineaDetalle>(); var cont = 0; LineaDetalle lnFel; foreach (var linea in lineasSistema) { lnFel = new LineaDetalle { Cantidad = linea.Cantidad, Codigo = new CodigoType[] { new CodigoType { Codigo = linea.Codigo, Tipo = ModFunciones.ObtenerValorEnumerador(linea.TipoCodigo, CodigoType.TipoType.Item99) } }, Detalle = linea.Detalle, NumeroLinea = (cont + 1).ToString(), UnidadMedida = ModFunciones.ObtenerValorEnumerador(linea.UnidadMedida, LineaDetalle.UnidadMedidaType.Unid), MontoDescuento = linea.MontoDescuento, MontoDescuentoSpecified = linea.MontoDescuento > 0, NaturalezaDescuento = linea.NaturalezaDescuento, NaturalezaDescuentoSpecified = !string.IsNullOrEmpty(linea.NaturalezaDescuento), MontoTotal = linea.MontoTotal, MontoTotalLinea = linea.MontoTotalLinea, PrecioUnitario = linea.PrecioUnitario, SubTotal = linea.SubTotal }; ParsearImpuesto(lnFel, linea); felLineas.Add(lnFel); cont++; } return(felLineas); }
private Enumeradores.MedioPago[] AsignarMediosPago() { var arrMediosPago = new Enumeradores.MedioPago[Encabezado.MediosPago.Length]; for (int i = 0; i < Encabezado.MediosPago.Length; i++) { arrMediosPago[i] = ModFunciones.ObtenerValorEnumerador(Encabezado.MediosPago[i], Enumeradores.MedioPago.Item99); } return(arrMediosPago); }
private Exoneracion ParsearExoneracion(ExoneracionSistema exoSis) { if (exoSis == null) { return(null); } var exo = new Exoneracion { FechaEmision = exoSis.FechaEmision, MontoExoneracion = exoSis.MontoExoneracion, NombreInstitucion = exoSis.NombreInstitucion, NumeroDocumento = exoSis.NumeroDocumento, PorcentajeExoneracion = exoSis.PorcentajeExoneracion, TipoDocumento = ModFunciones.ObtenerValorEnumerador(exoSis.TipoDocumento, Exoneracion.ExoneracionTipoDoc.Item99) }; return(exo); }
private void ParsearImpuesto(LineaDetalle lnFel, LineaDetalleSistema linea) { if (!Validador.HayImpuestosDeSistema(linea.Impuesto)) { return; } var imp = new List <Impuesto>(); linea.Impuesto.ForEach(i => { imp.Add(new Impuesto { Monto = i.Monto, Tarifa = i.Tarifa, Codigo = ModFunciones.ObtenerValorEnumerador(i.Codigo, Impuesto.ImpuestoCodigo.Item99), Exoneracion = ParsearExoneracion(i.Exoneracion) }); }); lnFel.Impuesto = imp.ToArray(); }
private InformacionReferencia[] CrearArregloReferencias() { if (DocsReferencia == null || DocsReferencia.Length <= 0) { return(null); } var lista = new List <InformacionReferencia>(); DocsReferencia.ToList().ForEach(t => { lista.Add(new InformacionReferencia { FechaEmision = t.FechaEmision, Razon = t.Razon, Codigo = ModFunciones.ObtenerValorEnumerador(t.Codigo, InformacionReferencia.InformacionReferenciaCodigo.Item99), TipoDoc = ModFunciones.ObtenerValorEnumerador(t.TipoDoc, InformacionReferencia.TipoDocumento.Item99) }); }); return(lista.ToArray()); }
private void ParsearImpuesto(LineaDetalle lnFel, LineaDetalleSistema linea) { var imp = new List <Impuesto>(); linea.Impuesto.ForEach(i => { imp.Add(new Impuesto { Codigo = ModFunciones.ObtenerValorEnumerador(i.Codigo, Impuesto.ImpuestoCodigo.Item99), CodigoTarifa = ModFunciones.ObtenerValorEnumerador(i.CodigoTarifa, Impuesto.ImpuestoTypeCodigoTarifa.Item01), Tarifa = i.Tarifa, FactorIVASpecified = i.FactorIVA > 0, FactorIVA = i.FactorIVA, Monto = i.Monto, Exoneracion = ParsearExoneracion(i.Exoneracion) }); }); lnFel.Impuesto = imp.ToArray(); }