コード例 #1
0
        public FacturaDB_ToNotaCredito Convertir(Factura facturaDB, DateTime FechaEmisionOriginal)
        {
            if (!facturaDB.InformacionReferencia_Codigo.HasValue || !facturaDB.InformacionReferencia_FechaEmision.HasValue)
            {
                throw new Exception("Informacion de referencia incompleta");
            }

            NotaCreditoElectronica NotaCreditoElectronica = new NotaCreditoElectronica()
            {
                Clave          = facturaDB.Clave,
                CondicionVenta = EnumUtils.SetTypeString <NotaCreditoElectronicaCondicionVenta>(facturaDB.CondicionVenta),
                MedioPago      = new NotaCreditoElectronicaMedioPago[] {
                    EnumUtils.SetTypeString <NotaCreditoElectronicaMedioPago>(facturaDB.MedioPago)
                },
                FechaEmision      = FechaEmisionOriginal,
                NumeroConsecutivo = new ConsecutivoHacienda()
                {
                    CasaMatriz            = facturaDB.CasaMatriz,
                    PuntoVenta            = facturaDB.PuntoVenta,
                    NumeracionConsecutiva = facturaDB.NumeroConsecutivo,
                    TipoDocumento         = (Tipo_documento)facturaDB.Id_TipoDocumento
                }.ToString(),
                                   Emisor = new NotaCreditoElectronica_V4_3.EmisorType()
                {
                    CorreoElectronico = facturaDB.Emisor_CorreoElectronico,
                    Identificacion    = new NotaCreditoElectronica_V4_3.IdentificacionType()
                    {
                        Tipo   = EnumUtils.SetTypeString <NotaCreditoElectronica_V4_3.IdentificacionTypeTipo>(facturaDB.Emisor_Identificacion_Tipo),
                        Numero = facturaDB.Emisor_Identificacion_Numero
                    },
                    Nombre          = facturaDB.Emisor_Nombre,
                    NombreComercial = facturaDB.Emisor_NombreComercial,
                    Telefono        = new NotaCreditoElectronica_V4_3.TelefonoType()
                    {
                        CodigoPais  = facturaDB.Emisor_Telefono_Codigo.Value.ToString(),
                        NumTelefono = facturaDB.Emisor_Telefono_Numero.Value.ToString()
                    },
                    Ubicacion = new NotaCreditoElectronica_V4_3.UbicacionType()
                    {
                        Barrio     = facturaDB.Emisor_Ubicacion_Barrio.Value.ToString("00"),
                        Provincia  = facturaDB.Emisor_Ubicacion_Provincia.Value.ToString(),
                        Canton     = facturaDB.Emisor_Ubicacion_Canton.Value.ToString("00"),
                        Distrito   = facturaDB.Emisor_Ubicacion_Distrito.Value.ToString("00"),
                        OtrasSenas = facturaDB.Emisor_Ubicacion_OtrasSenas ?? "No indicado"
                    }
                },
                                   DetalleServicio = GetDetalleFromFacturaDB(facturaDB.Factura_Detalle).ToArray(),
                                   Receptor        = GetReceptorFromFacturaDB(facturaDB),
                                   ResumenFactura  = GetResumenFactura(facturaDB)
            };


            NotaCreditoElectronica.InformacionReferencia = new NotaCreditoElectronicaInformacionReferencia[]
            {
                new NotaCreditoElectronicaInformacionReferencia()
                {
                    TipoDoc      = NotaCreditoElectronicaInformacionReferenciaTipoDoc.Item03,
                    Numero       = facturaDB.InformacionReferencia_Numero,
                    Razon        = facturaDB.InformacionReferencia_Razon,
                    Codigo       = EnumUtils.SetTypeString <NotaCreditoElectronicaInformacionReferenciaCodigo>(facturaDB.InformacionReferencia_Codigo.Value.ToString("00")),
                    FechaEmision = facturaDB.InformacionReferencia_FechaEmision.Value
                }
            };

            DocumentoElectronico = NotaCreditoElectronica;



            requestData = new FacturaRequest()
            {
                clave  = NotaCreditoElectronica.Clave,
                emisor = new FacturaClient()
                {
                    numeroIdentificacion = NotaCreditoElectronica.Emisor.Identificacion.Numero,
                    tipoIdentificacion   = NotaCreditoElectronica.Emisor.Identificacion.Tipo.GetXmlValue()
                },
                fecha = NotaCreditoElectronica.FechaEmision.ToString("yyyy-MM-ddTHH:mm:ss"),
            };

            if (NotaCreditoElectronica.Receptor != null && NotaCreditoElectronica.Receptor.Identificacion != null)
            {
                requestData.receptor = new FacturaClient()
                {
                    tipoIdentificacion   = NotaCreditoElectronica.Receptor.Identificacion.Tipo.GetXmlValue(),
                    numeroIdentificacion = NotaCreditoElectronica.Receptor.Identificacion.Numero,
                };
            }

            return(this);
        }
コード例 #2
0
        public XmlDocument  CrearDocumentoXml(ComprobanteElectronicoCRI objComprobanteElectronicoCRI, string tipoDocumento)
        {
            XmlDocument    documentoXml   = new XmlDocument();
            XmlDeclaration xmlDeclaracion = documentoXml.CreateXmlDeclaration("1.0", "UTF-8", null);
            XmlElement     root           = documentoXml.DocumentElement;

            documentoXml.InsertBefore(xmlDeclaracion, root);

            switch (tipoDocumento)
            {
            case EngineData.facturaElectronica:
                CreadorFactura     XmlFactura = new CreadorFactura();
                FacturaElectronica Factura    = new FacturaElectronica();
                Factura = XmlFactura.CrearEstructuraFactura(objComprobanteElectronicoCRI);
                var navFactura = documentoXml.CreateNavigator();
                using (writer = navFactura.AppendChild())
                {
                    var serializer = new XmlSerializer(typeof(FacturaElectronica));
                    serializer.Serialize(writer, Factura);
                }
                break;

            case EngineData.notaCreditoElectronica:
                CreadorNotaCredito     XmlNotaCredito = new CreadorNotaCredito();
                NotaCreditoElectronica NotaCredito    = new NotaCreditoElectronica();
                NotaCredito = XmlNotaCredito.CrearEstructuraNotaCredito(objComprobanteElectronicoCRI);
                var navNotaCredito = documentoXml.CreateNavigator();
                using (writer = navNotaCredito.AppendChild())
                {
                    var serializer = new XmlSerializer(typeof(NotaCreditoElectronica));
                    serializer.Serialize(writer, NotaCredito);
                }
                break;

            case EngineData.notaDebitoElectronica:
                CreadorNotaDebito     XmlNotaDebito = new CreadorNotaDebito();
                NotaDebitoElectronica NotaDebito    = new NotaDebitoElectronica();
                NotaDebito = XmlNotaDebito.CrearEstructuraNotaDebito(objComprobanteElectronicoCRI);
                var navNotaDebito = documentoXml.CreateNavigator();
                using (writer = navNotaDebito.AppendChild())
                {
                    var serializer = new XmlSerializer(typeof(NotaDebitoElectronica));
                    serializer.Serialize(writer, NotaDebito);
                }
                break;

            case EngineData.tiqueteElectronico:
                CreadorTiquete     XmlTiquete         = new CreadorTiquete();
                TiqueteElectronico TiqueteElectronico = new TiqueteElectronico();
                TiqueteElectronico = XmlTiquete.CrearEstructuraTiquete(objComprobanteElectronicoCRI);
                var navTiquete = documentoXml.CreateNavigator();
                using (writer = navTiquete.AppendChild())
                {
                    var serializer = new XmlSerializer(typeof(TiqueteElectronico));
                    serializer.Serialize(writer, TiqueteElectronico);
                }
                break;
            }

            return(documentoXml);
        }
コード例 #3
0
ファイル: FrmGenerarNota.aspx.cs プロジェクト: yeco96/FE
        protected async void btnCrearNota_Click(object sender, EventArgs e)
        {
            try
            {
                Thread.CurrentThread.CurrentCulture = Utilidades.getCulture();


                List <string> cc        = new List <string>();
                Regex         validator = new Regex(@"\s*\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*\s*");

                foreach (var correo in this.txtCorreoReceptor.Tokens)
                {
                    if (validator.IsMatch(correo))
                    {
                        cc.Add(correo);
                    }
                    else
                    {
                        this.alertMessages.Attributes["class"] = "alert alert-danger";
                        this.alertMessages.InnerText           = String.Format("Favor verifique el formato de la dirección {0}", correo);
                        return;
                    }
                }
                cc.RemoveAt(0);


                DetalleServicio detalle = (DetalleServicio)Session["detalleServicio"];
                if (detalle.lineaDetalle.Count == 0)
                {
                    this.alertMessages.Attributes["class"] = "alert alert-danger";
                    this.alertMessages.InnerText           = "Debe agregar almenos una linea de detalle a la factura";
                    return;
                }

                // datos de la factura original
                FacturaElectronica factura = new FacturaElectronica();
                string             clave   = Session["clave"].ToString();
                using (var conexion = new DataModelFE())
                {
                    WSRecepcionPOST datoPost   = conexion.WSRecepcionPOST.Find(clave);
                    string          xmlFactura = datoPost.comprobanteXml;
                    factura = (FacturaElectronica)EncodeXML.XMLUtils.getObjetcFromXML(xmlFactura, typeof(FacturaElectronica));

                    DocumentoElectronico dato = null;
                    if (TipoDocumento.NOTA_CREDITO.Equals(Session["tipoNota"].ToString()))
                    {
                        dato = new NotaCreditoElectronica();
                    }
                    else
                    {
                        dato = new NotaDebitoElectronica();
                    }


                    /* ENCABEZADO */
                    dato.medioPago      = factura.medioPago;
                    dato.plazoCredito   = factura.plazoCredito;
                    dato.condicionVenta = factura.condicionVenta;
                    dato.fechaEmision   = Date.DateTimeNow().ToString("yyyy-MM-ddTHH:mm:ss") + "-06:00";
                    /* DETALLE */
                    dato.detalleServicio = detalle;

                    /* EMISOR */
                    dato.emisor = factura.emisor;


                    /* RECEPTOR */
                    dato.receptor = factura.receptor;


                    /* INFORMACION DE REFERENCIA */
                    InformacionReferencia informacionReferencia = new InformacionReferencia();
                    informacionReferencia.numero        = factura.clave;
                    informacionReferencia.fechaEmision  = factura.fechaEmision;
                    informacionReferencia.codigo        = this.cmbCodigoReferencia.Value.ToString();
                    informacionReferencia.razon         = this.txtRazón.Text;
                    informacionReferencia.tipoDocumento = TipoDocumento.FACTURA_ELECTRONICA;
                    dato.informacionReferencia.Add(informacionReferencia);

                    /* RESUMEN */
                    dato.resumenFactura.tipoCambio   = factura.resumenFactura.tipoCambio;
                    dato.resumenFactura.codigoMoneda = factura.resumenFactura.codigoMoneda;
                    foreach (var item in dato.detalleServicio.lineaDetalle)
                    {
                        if (item.tipoServMerc == null)
                        {
                            Producto producto = conexion.Producto.Where(x => x.codigo == item.codigo.codigo && x.emisor == dato.emisor.identificacion.numero).FirstOrDefault();
                            item.tipoServMerc = producto.tipoServMerc;
                            item.producto     = producto.codigo;
                        }
                    }
                    dato.resumenFactura.calcularResumenFactura(dato.detalleServicio.lineaDetalle);

                    /* VERIFICA VACIOS PARA XML */
                    dato.verificaDatosParaXML();

                    //genera el consecutivo del documento
                    string   sucursal = this.cmbSucursalCaja.Value.ToString().Substring(0, 3);
                    string   caja     = this.cmbSucursalCaja.Value.ToString().Substring(3, 5);
                    object[] key      = new object[] { dato.emisor.identificacion.numero, sucursal, caja, this.cmbTipoDocumento.Value.ToString() };
                    ConsecutivoDocElectronico consecutivo = conexion.ConsecutivoDocElectronico.Find(key);
                    if (consecutivo != null)
                    {
                        dato.clave             = consecutivo.getClave(Date.DateTimeNow().ToString("yyyyMMdd"));
                        dato.numeroConsecutivo = consecutivo.getConsecutivo();

                        consecutivo.consecutivo          += 1;
                        conexion.Entry(consecutivo).State = EntityState.Modified;
                    }
                    else
                    {
                        consecutivo                   = new ConsecutivoDocElectronico();
                        consecutivo.sucursal          = ConsecutivoDocElectronico.DEFAULT_SUCURSAL;
                        consecutivo.caja              = ConsecutivoDocElectronico.DEFAULT_CAJA;
                        consecutivo.digitoVerificador = ConsecutivoDocElectronico.DEFAULT_DIGITO_VERIFICADOR;
                        consecutivo.emisor            = dato.emisor.identificacion.numero;
                        consecutivo.tipoDocumento     = this.cmbTipoDocumento.Value.ToString();
                        consecutivo.consecutivo       = 1;
                        consecutivo.estado            = Estado.ACTIVO.ToString();
                        consecutivo.fechaCreacion     = Date.DateTimeNow();

                        dato.clave             = consecutivo.getClave(Date.DateTimeNow().ToString("yyyyMMdd"));
                        dato.numeroConsecutivo = consecutivo.getConsecutivo();

                        consecutivo.consecutivo += 1;
                        conexion.ConsecutivoDocElectronico.Add(consecutivo);
                    }

                    EmisorReceptorIMEC elEmisor     = (EmisorReceptorIMEC)Session["elEmisor"];
                    string             responsePost = await Services.enviarDocumentoElectronico(false, dato, elEmisor, this.cmbTipoDocumento.Value.ToString(), Session["usuario"].ToString());

                    if (responsePost.Equals("Success"))
                    {
                        this.alertMessages.Attributes["class"] = "alert alert-info";
                        this.alertMessages.InnerText           = String.Format("Documento #{0} enviada.", dato.numeroConsecutivo);

                        if (!string.IsNullOrWhiteSpace(dato.receptor.correoElectronico) || this.txtCorreoReceptor.Tokens.Count > 0)
                        {
                            string xml = EncodeXML.XMLUtils.getXMLFromObject(dato);

                            Utilidades.sendMail(Session["emisor"].ToString(), dato.receptor.correoElectronico,
                                                string.Format("{0} - {1}", dato.numeroConsecutivo, elEmisor.nombre),
                                                Utilidades.mensageGenerico(), "Documento Electrónico", xml, dato.numeroConsecutivo, dato.clave, cc);
                        }
                    }
                    else if (responsePost.Equals("Error"))
                    {
                        this.alertMessages.Attributes["class"] = "alert alert-danger";
                        this.alertMessages.InnerText           = String.Format("Documento #{0} con errores.", dato.numeroConsecutivo);
                        return;
                    }
                    else
                    {
                        this.alertMessages.Attributes["class"] = "alert alert-warning";
                        this.alertMessages.InnerText           = String.Format("Documento #{0} pendiente de envío", dato.numeroConsecutivo);
                    }

                    conexion.SaveChanges();


                    Response.Redirect("~/Pages/Consulta/" + dato.clave);
                }
            }
            catch (Exception ex)
            {
                this.alertMessages.Attributes["class"] = "alert alert-danger";
                this.alertMessages.InnerText           = Utilidades.validarExepcionSQL(ex);
            }
            finally
            {
                //refescar los datos
                this.refreshData();
            }
        }
コード例 #4
0
        public NotaCreditoElectronica CrearEstructuraNotaCredito(ComprobanteElectronicoCRI value)
        {
            NotaCreditoElectronica NotaCreditoElectronica = new NotaCreditoElectronica()
            {
                Clave             = value.Clave,
                NumeroConsecutivo = value.NumeroConsecutivo,
                FechaEmision      = value.FechaEmision,

                Emisor = new EmisorTypeNC
                {
                    Nombre         = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.Nombre,
                    Identificacion = new IdentificacionTypeNC
                    {
                        Numero = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.Identificacion,
                        Tipo   = (IdentificacionTypeTipoNC)Enum.Parse(typeof(IdentificacionTypeTipoNC), value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.TipoIdentificacion)
                    },
                    NombreComercial = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NombreComercial,
                    Ubicacion       = new UbicacionTypeNC
                    {
                        Provincia  = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoProvincia,
                        Canton     = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoCanton,
                        Distrito   = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoDistrito,
                        Barrio     = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoBarrio,
                        OtrasSenas = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.OtrasSennas
                    },
                    Telefono = new TelefonoTypeNC
                    {
                        CodigoPais  = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoPaisTelefono,
                        NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NumeroTelefono
                    },
                    Fax = new TelefonoTypeNC
                    {
                        CodigoPais  = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CodigoPaisFax,
                        NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.NumeroFax
                    },
                    CorreoElectronico = value.ComprobanteElectronicoCRIEntidadJuridicaEmisor.CorreoElectronico
                },
                //FIN EMISOR
                Receptor = new ReceptorTypeNC
                {
                    Nombre         = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Nombre,
                    Identificacion = new IdentificacionTypeNC
                    {
                        Numero = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.Identificacion,
                        Tipo   = (IdentificacionTypeTipoNC)Enum.Parse(typeof(IdentificacionTypeTipoNC), value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.TipoIdentificacion)
                    },
                    IdentificacionExtranjero = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.IdentificacionExtranjero,
                    NombreComercial          = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NombreComercial,
                    Ubicacion = new UbicacionTypeNC
                    {
                        Provincia  = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoProvincia,
                        Canton     = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoCanton,
                        Distrito   = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoDistrito,
                        Barrio     = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoBarrio,
                        OtrasSenas = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.OtrasSennas
                    },
                    Telefono = new TelefonoTypeNC
                    {
                        CodigoPais  = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoPaisTelefono,
                        NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NumeroTelefono
                    },
                    Fax = new TelefonoTypeNC
                    {
                        CodigoPais  = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CodigoPaisFax,
                        NumTelefono = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.NumeroFax
                    },
                    CorreoElectronico = value.ComprobanteElectronicoCRIEntidadJuridicaReceptor.CorreoElectronico
                },
                // FIN RECEPTOR
                CondicionVenta = (NotaCreditoElectronicaCondicionVenta)Enum.Parse(typeof(NotaCreditoElectronicaCondicionVenta), value.CondicionVenta),
                PlazoCredito   = value.PlazoCredito,
                MedioPago      = new NotaCreditoElectronicaMedioPago[] { (NotaCreditoElectronicaMedioPago)Enum.Parse(typeof(NotaCreditoElectronicaMedioPago), value.MedioPago) },
                // FIN INFORMACON DE LA VENTA

                DetalleServicio = DetalleNotaCredito(value).ToArray(), //DETALLE DE LA NOTA DE CREDITO

                ResumenFactura = new NotaCreditoElectronicaResumenFactura()
                {
                    CodigoMoneda                     = (NotaCreditoElectronicaResumenFacturaCodigoMoneda)Enum.Parse(typeof(NotaCreditoElectronicaResumenFacturaCodigoMoneda), value.CodigoMoneda),
                    CodigoMonedaSpecified            = EngineDocumento.InsertFieldBoolCadena(value.CodigoMoneda),
                    TipoCambio                       = value.TipoCambio.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                    TipoCambioSpecified              = EngineDocumento.InsertFieldBoolCantidad(value.TipoCambio),
                    TotalServGravados                = value.TotalServGravados.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                    TotalServGravadosSpecified       = EngineDocumento.InsertFieldBoolCantidad(value.TotalServGravados),
                    TotalServExentos                 = value.TotalServExentos.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                    TotalServExentosSpecified        = EngineDocumento.InsertFieldBoolCantidad(value.TotalServExentos),
                    TotalMercanciasGravadas          = value.TotalMercanciasGravadas.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                    TotalMercanciasGravadasSpecified = EngineDocumento.InsertFieldBoolCantidad(value.TotalMercanciasGravadas),
                    TotalMercanciasExentas           = value.TotalMercanciasExentas.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),
                    TotalMercanciasExentasSpecified  = EngineDocumento.InsertFieldBoolCantidad(value.TotalMercanciasExentas),
                    TotalGravado                     = value.TotalGravado.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),     //TotalServGravados + TotalMercanciasgravadas
                    TotalGravadoSpecified            = EngineDocumento.InsertFieldBoolCantidad(value.TotalGravado),
                    TotalExento                      = value.TotalExento.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),      //totalServExcento + totalMercanciasexentas
                    TotalExentoSpecified             = EngineDocumento.InsertFieldBoolCantidad(value.TotalExento),
                    TotalVenta                       = value.TotalVenta.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),       //totalGravado + totalExento
                    TotalDescuentos                  = value.TotalDescuentos.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),  // suma de todos los campos de “monto dedescuentos concedidos
                    TotalDescuentosSpecified         = EngineDocumento.InsertFieldBoolCantidad(value.TotalDescuentos),
                    TotalVentaNeta                   = value.TotalVentaNeta.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),   //totalVenta - totaDescuentos
                    TotalImpuesto                    = value.TotalImpuesto.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture),    //suma  de  todos los campos denominados Monto del impuesto.
                    TotalImpuestoSpecified           = EngineDocumento.InsertFieldBoolCantidad(value.TotalImpuesto),
                    TotalComprobante                 = value.TotalComprobante.ToString(EngineData.decimalFormat5, CultureInfo.InvariantCulture), //totalVentaNeta + totalImpuesto
                },                                                                                                                               //FIN RESUMEN DE LA FACTURA

                InformacionReferencia = new NotaCreditoElectronicaInformacionReferencia[]
                {
                    new NotaCreditoElectronicaInformacionReferencia
                    {
                        TipoDoc      = (NotaCreditoElectronicaInformacionReferenciaTipoDoc)Enum.Parse(typeof(NotaCreditoElectronicaInformacionReferenciaTipoDoc), value.InformacionReferenciaTipoDocumento),
                        Numero       = value.InformacionReferenciaNumero,
                        FechaEmision = value.InformacionReferenciaFechaEmision,
                        Codigo       = (NotaCreditoElectronicaInformacionReferenciaCodigo)Enum.Parse(typeof(NotaCreditoElectronicaInformacionReferenciaCodigo), value.InformacionReferenciaCodigo),
                        Razon        = value.InformacionReferenciaRazon
                    }
                },
                //FIN REFERENCIA DE LA FACTURA

                Normativa = new NotaCreditoElectronicaNormativa
                {
                    NumeroResolucion = value.NumeroResolucion,
                    FechaResolucion  = value.FechaResolucion
                },
                //FIN NORMATIVA DE LA NOTA DE CREDITO

                Otros = new NotaCreditoElectronicaOtros
                {
                    OtroTexto = new NotaCreditoElectronicaOtrosOtroTexto[]
                    {
                        new NotaCreditoElectronicaOtrosOtroTexto
                        {
                            codigo = value.OtrosCodigo,
                            Value  = value.OtrosOtroTexto
                        }
                    },

                    /* OtroContenido = new NotaCreditoElectronicaOtrosOtroContenido[]
                     * {
                     *    new NotaCreditoElectronicaOtrosOtroContenido
                     *    {
                     *      codigo ="obs",
                     *    }
                     * }*/
                } // FIN OTROS CONTENIDOS
            };

            return(NotaCreditoElectronica);
        }