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); }
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); }
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 }); }
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)); }