예제 #1
0
        private NotaFiscal NotaFiscal(NovaNotaRequisicao requisicao, DateTime dataUpload)
        {
            var clinica     = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
            var responsavel = _funcionarioRepositorio.ObterPor(requisicao.CodigoDoResponsavel);
            var programa    = _programaRepositorio.ObterPor(requisicao.CodigoDoPrograma);
            var nota        = new NotaFiscal
            {
                Clinica         = clinica,
                Responsavel     = responsavel,
                Valor           = requisicao.Valor,
                Numero          = requisicao.Numero,
                Data            = requisicao.Data,
                DataRecebimento = requisicao.DataRecebimento,
                Arquivo         = new Arquivo(requisicao.DescricaoDoArquivo, requisicao.NomeDoArquivo, dataUpload),
                Programa        = programa
            };


            foreach (var infusaoAssociar in requisicao.Infusoes)
            {
                var infusao = _infusaoRepositorio.ObterPor(infusaoAssociar.Codigo);

                infusao.EmAberto();
                if (infusaoAssociar.Glosar)
                {
                    infusao.Glosar();
                }

                nota.Infusoes.Add(infusao);
            }
            return(nota);
        }
예제 #2
0
        private NotaFiscal NotaFiscalDevolucao(NovaNotaRequisicao requisicao, DateTime dataUpload)
        {
            var clinica     = _clinicaRepositorio.ObterPor(requisicao.CodigoDaClinica);
            var responsavel = _funcionarioRepositorio.ObterPor(requisicao.CodigoDoResponsavel);
            var programa    = _programaRepositorio.ObterPor(requisicao.CodigoDoPrograma);
            var nota        = new NotaFiscal
            {
                Clinica         = clinica,
                Responsavel     = responsavel,
                Valor           = requisicao.Valor,
                Numero          = requisicao.Numero,
                Data            = requisicao.Data,
                DataRecebimento = requisicao.DataRecebimento,
                Arquivo         = new Arquivo(requisicao.DescricaoDoArquivo, requisicao.NomeDoArquivo, dataUpload),
                Programa        = programa
            };

            //IMPLEMENTAR VINCULO NF DEVOLVIDA COM INFUSAO.

            //foreach (var infusaoAssociar in requisicao.Infusoes)
            //{
            //    var infusao = _infusaoRepositorio.ObterPor(infusaoAssociar.Codigo);

            //    infusao.EmAberto();
            //    if (infusaoAssociar.Glosar)
            //        infusao.Glosar();

            //    nota.Infusoes.Add(infusao);
            //}

            return(nota);
        }
예제 #3
0
        public NovaNotaResposta NovaNota(NovaNotaRequisicao requisicao)
        {
            int      tentativa  = 0;
            bool     sucesso    = false;
            DateTime dataUpload = SystemTime.Now;
            var      nota       = NotaFiscal(requisicao, dataUpload);

            _notaFiscalRepositorio.Adicionar(nota);
            while (sucesso != true)
            {
                tentativa++;
                try
                {
                    _unitOfWork.Commit();
                    sucesso = true;
                }
                catch (Exception ex)
                {
                    if (tentativa >= 5)
                    {
                        throw ex;
                    }
                }
            }

            _repositorioDeArquivos.ArmazenarArquivo(requisicao.Arquivo, requisicao.NomeDoArquivo, dataUpload);
            return(new NovaNotaResposta {
                Sucesso = true
            });
        }
예제 #4
0
        public JsonResult Receber(ViewReceberNotaFiscal view)
        {
            var arquivo = Session["Arquivo"] as HttpPostedFileWrapper;

            Session.Remove("Arquivo");
            var requisicao = new NovaNotaRequisicao
            {
                CodigoDoPrograma    = Session.ProgramaAtivo().Codigo,
                CodigoDoResponsavel = User.ToPessoa().Codigo,
                CodigoDaClinica     = view.CodigoDaClinica,
                Arquivo             = arquivo.InputStream,
                DescricaoDoArquivo  = arquivo.FileName,
                NomeDoArquivo       = arquivo.FileName,
                //Data = view.Data,
                Data            = Convert.ToDateTime(view.Data),
                DataRecebimento = view.DataRecebimento,
                Numero          = view.Numero,
                Valor           = view.Valor,
                Infusoes        = view.Infusoes
            };
            var resposta = _faturamentoServicoDeAplicacao.NovaNota(requisicao);

            return(Json(resposta));
        }