public static EngineData Instance()
 {
     if ((valor == null))
     {
         valor = new EngineData();
     }
     return(valor);
 }
        public ComprobanteElectronicoCRI ObjComprobanteElectronicoCRI(string tipoDocumento)
        {
            this.clave             = MCodigo.Clave(tipoDocumento, EngineData.msjEmisor);
            this.numeroConsecutivo = MCodigo.NumeroConsecutivo(tipoDocumento);
            this.fechaEmision      = Convert.ToDateTime(DateTime.UtcNow.ToString(EngineData.dateFormat));

            //***************************************************************************************************

            EngineData Valor = EngineData.Instance();
            List <ComprobanteElectronicoCRIDetalle> Detalle = new List <ComprobanteElectronicoCRIDetalle>();
            ComprobanteElectronicoCRI value = new ComprobanteElectronicoCRI
            {
                //ENCABEZADO
                Clave             = this.clave,
                NumeroConsecutivo = this.numeroConsecutivo,
                FechaEmision      = fechaEmision,
                //EMISOR
                ComprobanteElectronicoCRIEntidadJuridicaEmisor = new ComprobanteElectronicoCRIEntidadJuridica
                {
                    Nombre             = Valor.NombreEmisor(),
                    Identificacion     = Valor.NumeroIdentificacionEmisor(),
                    TipoIdentificacion = Valor.TipoEmisor(),
                    NombreComercial    = Valor.NombreEmisor(),
                    CodigoProvincia    = Valor.ProvinciaEmisor(),
                    CodigoCanton       = Valor.CantonEmisor(),
                    CodigoDistrito     = Valor.DistritoEmisor(),
                    CodigoBarrio       = Valor.BarrioEmisor(),
                    OtrasSennas        = Valor.OtrasSenasEmisor(),
                    CodigoPaisTelefono = Valor.CodigoPaisEmisor(),
                    NumeroTelefono     = Valor.TelefonoEmisor(),
                    CodigoPaisFax      = Valor.CodigoPaisEmisor(),
                    NumeroFax          = Valor.FaxEmisor(),
                    CorreoElectronico  = Valor.EmailEmisor()

                                         /* Nombre = "Byron Alejandro Rojas Burgos",
                                          * Identificacion = "303970663",
                                          * TipoIdentificacion = "Item01",
                                          * NombreComercial = "Byron Alejandro Rojas Burgos",
                                          * CodigoProvincia = "3",
                                          * CodigoCanton = "01",
                                          * CodigoDistrito = "11",
                                          * CodigoBarrio = "01",
                                          * OtrasSennas = "Condominio ALBACETE, casa 29A",
                                          * CodigoPaisTelefono = "506",
                                          * NumeroTelefono = "40701590",
                                          * CodigoPaisFax = "506",
                                          * NumeroFax = "40701590",
                                          * CorreoElectronico = "*****@*****.**"*/
                },
                //RECEPTOR
                ComprobanteElectronicoCRIEntidadJuridicaReceptor = new ComprobanteElectronicoCRIEntidadJuridica
                {
                    Nombre             = "Dental Care",
                    Identificacion     = "3001123208",
                    TipoIdentificacion = "Item02",
                    NombreComercial    = "Dental Care",
                    CodigoProvincia    = "1",
                    CodigoCanton       = "01",
                    CodigoDistrito     = "01",
                    CodigoBarrio       = "01",
                    OtrasSennas        = "Amon",
                    CodigoPaisTelefono = "506",
                    NumeroTelefono     = "40701590",
                    CodigoPaisFax      = "506",
                    NumeroFax          = "40701590",
                    CorreoElectronico  = "*****@*****.**"

                                         /*Nombre = Valor.NombreReceptor(),
                                          * Identificacion = Valor.NumeroIdentificacionReceptor(),
                                          * TipoIdentificacion = Valor.TipoReceptor(),
                                          * NombreComercial = Valor.NombreReceptor(),
                                          * CodigoProvincia = Valor.ProvinciaReceptor(),
                                          * CodigoCanton = Valor.CantonReceptor(),
                                          * CodigoDistrito = Valor.DistritoReceptor(),
                                          * CodigoBarrio = Valor.BarrioReceptor(),
                                          * OtrasSennas = Valor.OtrasSenasReceptor(),
                                          * CodigoPaisTelefono = Valor.CodigoPaisReceptor(),
                                          * NumeroTelefono = Valor.TelefonoReceptor(),
                                          * CodigoPaisFax = Valor.CodigoPaisReceptor(),
                                          * NumeroFax = Valor.FaxReceptor(),
                                          * CorreoElectronico = Valor.EmailReceptor()*/
                },
                //INFORMACION DE LA VENTA
                CondicionVenta = "Item01",
                PlazoCredito   = "",
                MedioPago      = "Item01",
                //DETALLE
                ListaComprobanteElectronicoCRIDetalle = DetalleDocumento(Detalle),
                //RESUMEN
                CodigoMoneda            = "CRC",
                TipoCambio              = 1,
                TotalServGravados       = 97000.6M / 2,
                TotalServExentos        = 0,
                TotalMercanciasGravadas = 97000.6M / 2,
                TotalMercanciasExentas  = 0,
                TotalGravado            = 97000.6M,       // TotalServGravado + TotalMercanciasGravadas
                TotalExento             = 0,
                TotalVenta              = 97000.6M,       // TotalGravado + TotalExcento

                TotalDescuentos  = 0,                     //Sumatoria de los descuentos
                TotalVentaNeta   = 97000.6M,              //TotalVenta - TotalDescuentos
                TotalImpuesto    = 9750 + 2860.078M,      // Sumatoria Impuestos
                TotalComprobante = 97000.6M + 12610.078M, // TotalVentaNeta + MontoTotalImpuesto
                //REFERENCIA
                InformacionReferenciaTipoDocumento = "Item01",
                InformacionReferenciaNumero        = this.numeroConsecutivo, //string 50
                InformacionReferenciaFechaEmision  = this.fechaEmision,
                InformacionReferenciaCodigo        = "Item01",
                InformacionReferenciaRazon         = "Descripcion del Codigo Utilizado",
                //NORMATIVA
                NumeroResolucion = Valor.ResolucionFactura(),
                FechaResolucion  = Valor.FechaResolucionFactura(),
                //OTROS
                OtrosCodigo    = "OTRO CODIGO",
                OtrosOtroTexto = "VALOR DEL OTRO CODIGO"
            };

            return(value);
        }