Beispiel #1
0
        public void Ejecutar()
        {
            var config = new ConfiguracionComunicacionHacienda
            {
                ClientID          = "api-stag",
                ClientSecret      = "",
                GrantType         = "password",
                TipoAutenticacion = "bearer",
                UrlApiHacienda    = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/recepcion",
                UrlIdpLogIn       = "******",
                UrlIdpLogOut      = "https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/logout",
                IdpUsuario        = "*****@*****.**",
                IdpContrasenna    = "/.1_4BhBuD&)a!r{v_@$"
            };

            var despechador = new DespachadorDocumentosAHacienda(config);

            List <DocumentoDto> listadocs = new List <DocumentoDto>();
            DocumentoDto        doc       = new DocumentoDto {
                clave          = "50611111800010956066400110000040000000002198999075", //la clave de 50 caracteres
                comprobanteXml = obtenerXML("50611111800010956066400110000040000000002198999075"),
                emisor         = new PersonaDocumentoDto {                             //la informacion del emisor
                    numeroIdentificacion = "304810266",
                    tipoIdentificacion   = "02"
                },

                fecha = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssZ") //la fecha de la factura-> cuando la factura se hizo
            };

            listadocs.Add(doc);

            despechador.EjecutarProceso(listadocs);
        }
        public PostRespuestaEnvioHacienda EnviarDocumentoAHacienda(DocumentoDto data)
        {
            var respuesta = new PostRespuestaEnvioHacienda();

            respuesta.Clave = data.clave;
            var jsonEnvio    = ConvertirObjetoAEnviarEnJson(data);
            var respuestaApi = PostDocumento(jsonEnvio);

            respuesta.TramaRecibida = respuestaApi.Content.ReadAsStringAsync().Result;
            if (string.IsNullOrEmpty(respuesta.TramaRecibida))
            {
                respuesta.TramaRecibida = respuestaApi.ToString();
            }
            respuesta.Mensaje = respuestaApi.ReasonPhrase;
            IEnumerable <string> valoresHeader;

            if (respuestaApi.IsSuccessStatusCode)
            {
                respuesta.DocumentoEnviado = true;
                if (respuestaApi.Headers.TryGetValues("Location", out valoresHeader))
                {
                    respuesta.RutaConsultaEstadoDocumento = valoresHeader.FirstOrDefault();
                }
            }
            else
            {
                if (respuestaApi.Headers.TryGetValues("X-Error-Cause", out valoresHeader))
                {
                    respuesta.Mensaje          = valoresHeader.FirstOrDefault();
                    respuesta.DocumentoEnviado = respuesta.Mensaje.Contains("ya fue recibido");
                }
            }
            return(respuesta);
        }
        public void Salvar(DocumentoDto pDocumentoDto, Usuarios pUsuario)
        {
            var BdDocumento = _documentosCollection.Find(
                Builders <Documentos> .Filter.Eq(doc => doc.UsuarioId, pUsuario.UsuarioId)
                ).FirstOrDefault();

            if (Utils.DocumentoValido(pDocumentoDto.Numero, pDocumentoDto.Tipo) && BdDocumento == null)
            {
                var collectionName = _documentosCollection.CollectionNamespace.CollectionName;
                var lDocumentoId   = new SequenciasBusiness(_mongoDb).ProximoValor(collectionName);

                var lDocumento = new Documentos
                                 (
                    pDocumentoDto.Tipo,
                    pDocumentoDto.Numero
                                 );

                lDocumento.DocumentoId = lDocumentoId;
                lDocumento.UsuarioId   = pUsuario.UsuarioId;


                _documentosCollection.InsertOne(lDocumento);
            }
            else
            {
                throw new Exception("Nao foi possivel salvar o documento");
            }
        }
        private string ConvertirObjetoAEnviarEnJson(DocumentoDto documento)
        {
            documento.comprobanteXml = ConvertirStringABase64(documento.comprobanteXml);

            return(Newtonsoft.Json.JsonConvert.SerializeObject(documento,
                                                               Newtonsoft.Json.Formatting.None,
                                                               new Newtonsoft.Json.JsonSerializerSettings()
            {
                NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore
            }));
        }
Beispiel #5
0
        public IActionResult AnexarDocumentos(DocumentoDto documentoDto)
        {
            var doc = _documentoService.AnexarArquivo(documentoDto);

            if (doc == null)
            {
                return(NoContent());
            }

            return(Created($"{Request.Path}/{doc.Id}", doc));
        }
        public async Task <IActionResult> Delete(DocumentoDto dto)
        {
            var result = new HttpResult <DocumentoDto>(this._logger);

            try
            {
                await this._app.Remove(dto);

                return(result.ReturnCustomResponse(this._app, dto));
            }
            catch (Exception ex)
            {
                return(result.ReturnCustomException(ex, "Target.Pendencias - Documento", dto));
            }
        }
        public Documento AnexarArquivo(DocumentoDto documentoDto)
        {
            //Limpar o Hash enviado
            var data = new Regex(@"^data:application/pdf;base64,").Replace(documentoDto.Arquivo, "");

            //Gerar um array de Bytes
            var arquivo = Convert.FromBase64String(data);

            var documento = new Documento
            {
                Arquivo   = arquivo,
                Categoria = documentoDto.Categoria,
                Matricula = documentoDto.Matricula
            };

            _documentoRepository.Save(documento);

            var doc = _documentoRepository.GetDocumentosAnexado(documento.Matricula);

            return(this.Converte(doc));
        }
        public Documentos AlterarDocumento(int pId, DocumentoDto pDocumentoDto, Usuarios pUsuario)
        {
            var BdDocumento = _documentosCollection.Find(
                Builders <Documentos> .Filter.Eq(doc => doc.UsuarioId, pUsuario.UsuarioId)
                ).FirstOrDefault();

            if (Utils.DocumentoValido(pDocumentoDto.Numero, pDocumentoDto.Tipo) && BdDocumento != null)
            {
                return(_documentosCollection.FindOneAndUpdate(
                           Builders <Documentos> .Filter.Eq(doc => doc.DocumentoId, pId),
                           Builders <Documentos> .Update
                           .Set(doc => doc.DocumentoId, pId)
                           .Set(doc => doc.UsuarioId, pUsuario.UsuarioId)
                           .Set(doc => doc.Numero, pDocumentoDto.Numero)
                           .Set(doc => doc.Tipo, pDocumentoDto.Tipo)
                           ));
            }
            else
            {
                throw new System.Exception("Não foi possível editar o documento");
            }
        }
Beispiel #9
0
        public void Ejecutar()
        {
            var config = new ConfiguracionComunicacionHacienda
            {
                ClientID          = "api-stag",
                ClientSecret      = "",
                GrantType         = "password",
                TipoAutenticacion = "bearer",
                UrlApiHacienda    = "https://api.comprobanteselectronicos.go.cr/recepcion-sandbox/v1/recepcion",
                UrlIdpLogIn       = "******",
                UrlIdpLogOut      = "https://idp.comprobanteselectronicos.go.cr/auth/realms/rut-stag/protocol/openid-connect/logout",
                IdpUsuario        = "*****@*****.**",
                IdpContrasenna    = "E>++}6U6W:;rE?gvF;-("
            };

            var despechador = new DespachadorDocumentosAHacienda(config);

            List <DocumentoDto> listadocs = new List <DocumentoDto>();
            DocumentoDto        doc       = new DocumentoDto {
                clave          = "50622101800030385010000100001010000000493140264212", //la clave de 50 caracteres
                comprobanteXml = "<Tiquete Electronico></TiqueteElectronico>",         //el comprobante en formato XML
                emisor         = new PersonaDocumentoDto {                             //la informacion del emisor
                    numeroIdentificacion = "304810266",
                    tipoIdentificacion   = "02"
                },
                receptor = new PersonaDocumentoDto { //la info del receptor
                    numeroIdentificacion = "909990999",
                    tipoIdentificacion   = "02"
                },
                fecha = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssZ") //la fecha de la factura-> cuando la factura se hizo
            };

            listadocs.Add(doc);

            var resp = despechador.EjecutarProceso(listadocs);

            Console.WriteLine(resp[0]);
        }
Beispiel #10
0
        public IEnumerable <PacienteDto> MapperListPacientesDto(IEnumerable <Paciente> pacientes)
        {
            var pacientesDto = new List <PacienteDto>();

            foreach (var paciente in pacientes)
            {
                var pacienteDto   = new PacienteDto();
                var documentosDto = new List <DocumentoDto>();
                var enderecosDto  = new List <EnderecoDto>();
                var telefonesDto  = new List <TelefoneDto>();
                var emailsDto     = new List <EmailDto>();

                //Paciente
                pacienteDto.Id           = paciente.Id;
                pacienteDto.Nome         = paciente.Nome;
                pacienteDto.Tipo         = paciente.Tipo;
                pacienteDto.Status       = paciente.Status;
                pacienteDto.IdProntuario = paciente.IdProntuario;

                if (paciente.Documentos != null)
                {
                    //Documentos do Paciente
                    foreach (var documento in paciente.Documentos)
                    {
                        var documentoDto = new DocumentoDto();

                        documentoDto.Id     = documento.Id;
                        documentoDto.Tipo   = documento.Tipo;
                        documentoDto.Numero = documento.Numero;

                        documentosDto.Add(documentoDto);
                    }
                    pacienteDto.Enderecos = enderecosDto;
                }

                if (paciente.Enderecos != null)
                {
                    //Endereços do Paciente
                    foreach (var endereco in paciente.Enderecos)
                    {
                        var enderecoDto = new EnderecoDto();

                        enderecoDto.Id          = endereco.Id;
                        enderecoDto.Tipo        = endereco.Tipo;
                        enderecoDto.Logradouro  = endereco.Logradouro;
                        enderecoDto.Numero      = endereco.Numero;
                        enderecoDto.Complemento = endereco.Complemento;
                        enderecoDto.Cep         = endereco.Cep;
                        enderecoDto.Bairro      = endereco.Bairro;
                        enderecoDto.Municipio   = endereco.Municipio;
                        enderecoDto.Estado      = endereco.Estado;
                        enderecoDto.Latitude    = endereco.Latitude;
                        enderecoDto.Longetude   = endereco.Longetude;

                        enderecosDto.Add(enderecoDto);
                    }
                    pacienteDto.Enderecos = enderecosDto;
                }

                if (paciente.Telefones != null)
                {
                    //Telefones do Paciente
                    foreach (var telefone in paciente.Telefones)
                    {
                        var telefoneDto = new TelefoneDto();

                        telefoneDto.Id          = telefone.Id;
                        telefoneDto.Tipo        = telefone.Tipo;
                        telefoneDto.DDI         = telefone.DDI;
                        telefoneDto.DDD         = telefone.DDD;
                        telefoneDto.Numero      = telefone.Numero;
                        telefoneDto.Recado      = telefone.Recado;
                        telefoneDto.Complemento = telefone.Complemento;

                        telefonesDto.Add(telefoneDto);
                    }

                    pacienteDto.Telefones = telefonesDto;
                }

                if (paciente.Emails != null)
                {
                    //Emails do Paciente
                    foreach (var telefone in paciente.Emails)
                    {
                        var emailDto = new EmailDto();

                        emailDto.Id       = telefone.Id;
                        emailDto.Tipo     = telefone.Tipo;
                        emailDto.Endereco = telefone.Endereco;
                        emailDto.Status   = telefone.Status;

                        emailsDto.Add(emailDto);
                    }

                    pacienteDto.Emails = emailsDto;
                }

                pacientesDto.Add(pacienteDto);
            }

            return(pacientesDto);
        }
Beispiel #11
0
        public PacienteDto MapperEntityToDto(Paciente paciente)
        {
            var pacienteDto   = new PacienteDto();
            var documentosDto = new List <DocumentoDto>();
            var enderecosDto  = new List <EnderecoDto>();
            var telefonesDto  = new List <TelefoneDto>();
            var emailsDto     = new List <EmailDto>();

            pacienteDto.Id           = paciente.Id;
            pacienteDto.Nome         = paciente.Nome;
            pacienteDto.Tipo         = paciente.Tipo;
            pacienteDto.Status       = paciente.Status;
            pacienteDto.IdProntuario = paciente.IdProntuario;

            if (paciente.Documentos != null)
            {
                foreach (var item in paciente.Documentos)
                {
                    var documentoDto = new DocumentoDto()
                    {
                        Id     = item.Id,
                        Tipo   = item.Tipo,
                        Numero = item.Numero
                    };

                    documentosDto.Add(documentoDto);
                }

                pacienteDto.Documentos = documentosDto;
            }

            if (paciente.Enderecos != null)
            {
                foreach (var item in paciente.Enderecos)
                {
                    var enderecoDto = new EnderecoDto()
                    {
                        Id          = item.Id,
                        Tipo        = item.Tipo,
                        Logradouro  = item.Logradouro,
                        Numero      = item.Numero,
                        Complemento = item.Complemento,
                        Cep         = item.Cep,
                        Bairro      = item.Bairro,
                        Municipio   = item.Municipio,
                        Estado      = item.Estado,
                        Latitude    = item.Latitude,
                        Longetude   = item.Longetude
                    };

                    enderecosDto.Add(enderecoDto);
                }

                pacienteDto.Enderecos = enderecosDto;
            }

            if (paciente.Telefones != null)
            {
                foreach (var item in paciente.Telefones)
                {
                    var telefoneDto = new TelefoneDto()
                    {
                        Id          = item.Id,
                        Tipo        = item.Tipo,
                        DDI         = item.DDI,
                        DDD         = item.DDD,
                        Numero      = item.Numero,
                        Recado      = item.Recado,
                        Complemento = item.Complemento
                    };

                    telefonesDto.Add(telefoneDto);
                }

                pacienteDto.Enderecos = enderecosDto;
            }

            if (paciente.Emails != null)
            {
                foreach (var item in paciente.Emails)
                {
                    var emailDto = new EmailDto()
                    {
                        Id       = item.Id,
                        Tipo     = item.Tipo,
                        Endereco = item.Endereco,
                        Status   = item.Status
                    };

                    emailsDto.Add(emailDto);
                }

                pacienteDto.Emails = emailsDto;
            }

            return(pacienteDto);
        }
        public IEnumerable <FuncionarioDto> MapperListFuncionariosDto(IEnumerable <Funcionario> funcionarios)
        {
            var funcionariosDto = new List <FuncionarioDto>();

            foreach (var funcionario in funcionarios)
            {
                var funcionarioDto = new FuncionarioDto();
                var documentosDto  = new List <DocumentoDto>();
                var enderecosDto   = new List <EnderecoDto>();
                var telefonesDto   = new List <TelefoneDto>();
                var emailsDto      = new List <EmailDto>();

                //Paciente
                funcionarioDto.Id       = funcionario.Id;
                funcionarioDto.Nome     = funcionario.Nome;
                funcionarioDto.Tipo     = funcionario.Tipo;
                funcionarioDto.Admissao = funcionario.Admissao;
                funcionarioDto.Status   = funcionario.Status;
                funcionarioDto.IdCargo  = funcionario.IdCargo;

                if (funcionario.Documentos != null)
                {
                    //Documentos do Paciente
                    foreach (var documento in funcionario.Documentos)
                    {
                        var documentoDto = new DocumentoDto();

                        documentoDto.Id     = documento.Id;
                        documentoDto.Tipo   = documento.Tipo;
                        documentoDto.Numero = documento.Numero;

                        documentosDto.Add(documentoDto);
                    }
                    funcionarioDto.Enderecos = enderecosDto;
                }

                if (funcionario.Enderecos != null)
                {
                    //Endereços do Paciente
                    foreach (var endereco in funcionario.Enderecos)
                    {
                        var enderecoDto = new EnderecoDto();

                        enderecoDto.Id          = endereco.Id;
                        enderecoDto.Tipo        = endereco.Tipo;
                        enderecoDto.Logradouro  = endereco.Logradouro;
                        enderecoDto.Numero      = endereco.Numero;
                        enderecoDto.Complemento = endereco.Complemento;
                        enderecoDto.Cep         = endereco.Cep;
                        enderecoDto.Bairro      = endereco.Bairro;
                        enderecoDto.Municipio   = endereco.Municipio;
                        enderecoDto.Estado      = endereco.Estado;
                        enderecoDto.Latitude    = endereco.Latitude;
                        enderecoDto.Longetude   = endereco.Longetude;

                        enderecosDto.Add(enderecoDto);
                    }
                    funcionarioDto.Enderecos = enderecosDto;
                }

                if (funcionario.Telefones != null)
                {
                    //Telefones do Paciente
                    foreach (var telefone in funcionario.Telefones)
                    {
                        var telefoneDto = new TelefoneDto();

                        telefoneDto.Id          = telefone.Id;
                        telefoneDto.Tipo        = telefone.Tipo;
                        telefoneDto.DDI         = telefone.DDI;
                        telefoneDto.DDD         = telefone.DDD;
                        telefoneDto.Numero      = telefone.Numero;
                        telefoneDto.Recado      = telefone.Recado;
                        telefoneDto.Complemento = telefone.Complemento;

                        telefonesDto.Add(telefoneDto);
                    }

                    funcionarioDto.Telefones = telefonesDto;
                }

                if (funcionario.Emails != null)
                {
                    //Emails do Paciente
                    foreach (var telefone in funcionario.Emails)
                    {
                        var emailDto = new EmailDto();

                        emailDto.Id       = telefone.Id;
                        emailDto.Tipo     = telefone.Tipo;
                        emailDto.Endereco = telefone.Endereco;
                        emailDto.Status   = telefone.Status;

                        emailsDto.Add(emailDto);
                    }

                    funcionarioDto.Emails = emailsDto;
                }

                funcionariosDto.Add(funcionarioDto);
            }

            return(funcionariosDto);
        }
        public FuncionarioDto MapperEntityToDto(Funcionario funcionario)
        {
            var funcionarioDto = new FuncionarioDto();
            var documentosDto  = new List <DocumentoDto>();
            var enderecosDto   = new List <EnderecoDto>();
            var telefonesDto   = new List <TelefoneDto>();
            var emailsDto      = new List <EmailDto>();

            funcionarioDto.Id       = funcionario.Id;
            funcionarioDto.Nome     = funcionario.Nome;
            funcionarioDto.Tipo     = funcionario.Tipo;
            funcionarioDto.Admissao = funcionario.Admissao;
            funcionarioDto.Status   = funcionario.Status;
            funcionario.IdCargo     = funcionarioDto.IdCargo;

            if (funcionario.Documentos != null)
            {
                foreach (var item in funcionario.Documentos)
                {
                    var documentoDto = new DocumentoDto()
                    {
                        Id     = item.Id,
                        Tipo   = item.Tipo,
                        Numero = item.Numero
                    };

                    documentosDto.Add(documentoDto);
                }

                funcionarioDto.Documentos = documentosDto;
            }

            if (funcionario.Enderecos != null)
            {
                foreach (var item in funcionario.Enderecos)
                {
                    var enderecoDto = new EnderecoDto()
                    {
                        Id          = item.Id,
                        Tipo        = item.Tipo,
                        Logradouro  = item.Logradouro,
                        Numero      = item.Numero,
                        Complemento = item.Complemento,
                        Cep         = item.Cep,
                        Bairro      = item.Bairro,
                        Municipio   = item.Municipio,
                        Estado      = item.Estado,
                        Latitude    = item.Latitude,
                        Longetude   = item.Longetude
                    };

                    enderecosDto.Add(enderecoDto);
                }

                funcionarioDto.Enderecos = enderecosDto;
            }

            if (funcionario.Telefones != null)
            {
                foreach (var item in funcionario.Telefones)
                {
                    var telefoneDto = new TelefoneDto()
                    {
                        Id          = item.Id,
                        Tipo        = item.Tipo,
                        DDI         = item.DDI,
                        DDD         = item.DDD,
                        Numero      = item.Numero,
                        Recado      = item.Recado,
                        Complemento = item.Complemento
                    };

                    telefonesDto.Add(telefoneDto);
                }

                funcionarioDto.Enderecos = enderecosDto;
            }

            if (funcionario.Emails != null)
            {
                foreach (var item in funcionario.Emails)
                {
                    var emailDto = new EmailDto()
                    {
                        Id       = item.Id,
                        Tipo     = item.Tipo,
                        Endereco = item.Endereco,
                        Status   = item.Status
                    };

                    emailsDto.Add(emailDto);
                }

                funcionarioDto.Emails = emailsDto;
            }

            return(funcionarioDto);
        }