public async Task <Resposta> CadastraSolicitacaoPagamento(Solicitacao_Pagamento solicitacaoPagamento) { try { solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoGerente; validaInformacoes(solicitacaoPagamento, false); solicitacaoPagamento.id_tipo_solicitacao_pagamento = (int)Enums.TipoSolicitacaoPagamento.Produtivo; solicitacaoPagamento.dt_criacao = DateTime.Now; solicitacaoPagamento.usuario = this.usuarioNegocio.GetUsuario().id; solicitacaoPagamento.dt_atualizacao = DateTime.Now; solicitacaoPagamento.usuario_atualizacao = this.usuarioNegocio.GetUsuario().id; await this.UploadArquivoSPLS(solicitacaoPagamento); this.dados.Solicitacao_Pagamento.Add(solicitacaoPagamento); this.dados.SaveChanges(); return(this.resposta.SetResposta("Solicitação de Pagamento lançada com sucesso!")); } catch (NegocioException ex) { return(this.resposta.SetResposta(ex.Message, false)); } catch (Exception ex) { return(this.resposta.SetResposta("Erro ao lançar Solicitação de Pagamento", false, ex)); } }
private void validaInformacoes(Solicitacao_Pagamento solicitacaoPagamento, bool fgAtualizacao) { if (!solicitacaoPagamento.Solicitacao_Pagamento_Detalhe.Any()) { throw new NegocioException("Por favor adicione pelo menos um Item"); } this.validaFornecedor(solicitacaoPagamento.numero_fornecedor.Value); if (!fgAtualizacao) { this.validaNotasFiscaisCadastradas(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.numero_fornecedor.Value); } this.validaValorTotal(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.valor_total.Value); this.validaArquivos(solicitacaoPagamento); this.validaArquivosDetalhes(solicitacaoPagamento); if (solicitacaoPagamento.Solicitacao_Pagamento_Detalhe.Select(x => x.linha).Distinct().Count() != solicitacaoPagamento.Solicitacao_Pagamento_Detalhe.Count) { throw new NegocioException("Por favor valide as Linhas dos Itens"); } solicitacaoPagamento.Solicitacao_Pagamento_Detalhe .GroupBy(key => new { key.numero_nf }, x => { this.validaDatasNotaFiscal(x); if (!Util.ValidaCampo(x.linha)) { throw new NegocioException("Por favor informe a Linha"); } else if (x.linha.ToString().Length < 2 || x.linha.ToString().Substring(x.linha.ToString().Length - 1) != "0") { throw new NegocioException("Campo Linha inválido"); } else if (!Util.ValidaCampo(x.valor)) { throw new NegocioException("Por favor informe o Valor"); } /*else if (!Util.validaCampo(x.categoria_nf)) throw new NegocioException("Por favor informe a Categoria"); * else if (Util.validaCampo(x.chave_acesso)) * { * this.validaChaveAcesso(x, solicitacaoPagamento.numero_fornecedor.Value); * }*/ if (x.dt_vencimento <= DateTime.Now.AddDays(5)) { solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoDataVencimento; } x.dt_criacao = DateTime.Now; x.dt_atualizacao = DateTime.Now; return(x); }).ToList(); }
public async Task <Resposta> AtualizaSolicitacaoPagamento(int id, Solicitacao_Pagamento solicitacaoPagamentoAtualizada) { try { var solicitacaoPagamento = this.dados.Solicitacao_Pagamento.Where(x => x.id == id).FirstOrDefault().Copy(); if (solicitacaoPagamento != null) { solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoCarPurchase; solicitacaoPagamento.numero_fornecedor = solicitacaoPagamentoAtualizada.numero_fornecedor; solicitacaoPagamento.valor_total = solicitacaoPagamentoAtualizada.valor_total; solicitacaoPagamento.id_diretoria = solicitacaoPagamentoAtualizada.id_diretoria; solicitacaoPagamento.id_forma_pagamento = solicitacaoPagamentoAtualizada.id_forma_pagamento; solicitacaoPagamento.dt_atualizacao = DateTime.Now; solicitacaoPagamento.usuario_atualizacao = this.usuarioNegocio.GetUsuario().id; solicitacaoPagamento.dt_aprovacao_gerente = null; solicitacaoPagamento.gerente = null; solicitacaoPagamento.dt_aprovacao_diretor = null; solicitacaoPagamento.diretor = null; solicitacaoPagamento.dt_aprovacao_presidente = null; solicitacaoPagamento.presidente = null; solicitacaoPagamento.dt_pagamento = null; solicitacaoPagamento.obs = solicitacaoPagamentoAtualizada.obs; solicitacaoPagamento.Solicitacao_Pagamento_Detalhe = solicitacaoPagamentoAtualizada.Solicitacao_Pagamento_Detalhe; solicitacaoPagamento.Documento_Fiscal = solicitacaoPagamentoAtualizada.Documento_Fiscal; validaInformacoes(solicitacaoPagamento, true); await this.UploadArquivoSPLS(solicitacaoPagamento); this.dados.Solicitacao_Pagamento_Detalhe.RemoveRange(this.dados.Solicitacao_Pagamento_Detalhe.Where(x => x.id_solicitacao_pagamento == id).ToArray()); this.dados.SaveChanges(); if (this.Update(solicitacaoPagamento).Status) { return(this.resposta.SetResposta("Solicitação de Pagamento atualizada com sucesso!")); } else { throw this.resposta.Exception; } } else { return(this.resposta.SetResposta("Solicitação de Pagamento não encontrada", false)); } } catch (NegocioException ex) { return(this.resposta.SetResposta(ex.Message, false)); } catch (Exception ex) { return(this.resposta.SetResposta("Erro ao atualizar Solicitação de Pagamento", false, ex)); } }
private void validaInformacoes(Solicitacao_Pagamento solicitacaoPagamento, bool fgAtualizacao) { this.validaFornecedor(solicitacaoPagamento.numero_fornecedor.Value); if (!Util.ValidaCampo(solicitacaoPagamento.dt_pagamento)) { throw new NegocioException("Por favor informe a Data de Pagamento"); } this.validaArquivos(solicitacaoPagamento); //if (solicitacaoPagamento.dt_pagamento <= DateTime.Now.AddDays(5)) solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoDataVencimento; }
private void validaInformacoes(Solicitacao_Pagamento solicitacaoPagamento, bool fgAtualizacao) { if (!solicitacaoPagamento.Solicitacao_Pagamento_Detalhe.Any()) { throw new NegocioException("Por favor adicione pelo menos um Item"); } this.validaFornecedor(solicitacaoPagamento.numero_fornecedor.Value); if (!fgAtualizacao) { this.validaNotasFiscaisCadastradas(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.numero_fornecedor.Value); } this.validaValorTotal(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.valor_total.Value); this.validaArquivos(solicitacaoPagamento); this.validaArquivosDetalhes(solicitacaoPagamento); solicitacaoPagamento.Solicitacao_Pagamento_Detalhe .GroupBy(key => new { key.numero_nf }, x => { this.validaDatasNotaFiscal(x); if (!Util.ValidaCampo(x.categoria_nf)) { throw new NegocioException("Por favor informe a Categoria"); } else if (!Util.ValidaCampo(x.reused_flag_sn)) { throw new NegocioException("Por favor informe o campo Reused Flag"); } else if (Util.ValidaCampo(x.chave_acesso)) { this.validaChaveAcesso(x, solicitacaoPagamento.numero_fornecedor.Value); } x.categoria_nf = x.categoria_nf.Substring(0, 2); if (x.dt_vencimento <= DateTime.Now.AddDays(5)) { solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoDataVencimento; } x.dt_criacao = DateTime.Now; x.dt_atualizacao = DateTime.Now; return(x); }).ToList(); }
private void EnviaSolicitacaoPagamentoTriagemALDInvoice(Solicitacao_Pagamento solicitacaoPagamento) { solicitacaoPagamento.Solicitacao_Pagamento_Detalhe .GroupBy(x => x.numero_nf) .Select(x => { var solicitacaoPagamentoDetalhe = x.FirstOrDefault(); decimal valorTotal = 0; valorTotal += x.Sum(i => i.valor).Value; valorTotal += x.Sum(i => i.opcionais_veiculo); valorTotal += x.Sum(i => i.acessorios_veiculo); valorTotal += x.Sum(i => i.ipva); valorTotal += x.Sum(i => i.dpvat); valorTotal += x.Sum(i => i.licenciamento); valorTotal += x.Sum(i => i.frete); valorTotal += x.Sum(i => i.despachante); valorTotal += x.Sum(i => i.outros_servicos); valorTotal += x.Sum(i => i.nao_rebill_ncva); valorTotal += x.Sum(i => i.nao_rebill_cva_material); valorTotal += x.Sum(i => i.nao_rebill_cva_servico); var notaFiscal = new Controle_NF { sp_nr = solicitacaoPagamento.id, nf_nr = solicitacaoPagamentoDetalhe.numero_nf, dt_emiss_nf = solicitacaoPagamentoDetalhe.dt_emissao, dt_rec = solicitacaoPagamentoDetalhe.dt_recebimento, dt_venc = solicitacaoPagamentoDetalhe.dt_vencimento, chave_acesso = solicitacaoPagamentoDetalhe.chave_acesso, chave_acesso_sn = Util.ValidaCampo(solicitacaoPagamentoDetalhe.chave_acesso) ? "S" : "N", dt_rec_tri = DateTime.Now, ged_agr = solicitacaoPagamento.id_visual, forn_cnpj = Util.FormatarCNPJ(solicitacaoPagamento.ALD_ETL_Fornecedores.CNPJ), vlr_bruto = valorTotal, nf_tipo = solicitacaoPagamentoDetalhe.categoria_nf, forn_num = solicitacaoPagamento.ALD_ETL_Fornecedores.Numero, forn_nome = solicitacaoPagamento.ALD_ETL_Fornecedores.Razao_Social, dt_input = DateTime.Now, id_fila_nf = (int)Enums.FilaNF.Triagem, usuario = solicitacaoPagamento.usuario }; this.dados.Controle_NF.Add(notaFiscal); return(x); }).ToList(); this.dados.SaveChanges(); }
private void validaInformacoes(Solicitacao_Pagamento solicitacaoPagamento, bool fgAtualizacao) { if (!solicitacaoPagamento.Solicitacao_Pagamento_Detalhe.Any()) { throw new NegocioException("Por favor adicione pelo menos um Item"); } this.validaFornecedor(solicitacaoPagamento.numero_fornecedor.Value); if (!fgAtualizacao) { this.validaNotasFiscaisCadastradas(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.numero_fornecedor.Value); } this.validaValorTotal(solicitacaoPagamento.Solicitacao_Pagamento_Detalhe, solicitacaoPagamento.valor_total.Value); this.validaArquivos(solicitacaoPagamento); this.validaArquivosDetalhes(solicitacaoPagamento); solicitacaoPagamento.Solicitacao_Pagamento_Detalhe .GroupBy(key => new { key.numero_nf }, x => { this.validaDatasNotaFiscal(x); if (!Util.ValidaCampo(x.valor)) { throw new NegocioException("Por favor informe o Valor"); } else if (!Util.ValidaCampo(x.categoria_nf)) { throw new NegocioException("Por favor informe a Categoria"); } else if (Util.ValidaCampo(x.chave_acesso)) { this.validaChaveAcesso(x, solicitacaoPagamento.numero_fornecedor.Value); } if (Util.ValidaCampo(x.placa)) { x.placa = x.placa.ToUpper(); List <ALD_ETL_Database> ALD_ETL_Database_lista = this.dados.ALD_ETL_Database.Where(d => d.Placa.ToUpper() == x.placa).ToList(); ALD_ETL_Database ALD_ETL_Database; if (!ALD_ETL_Database_lista.Any()) { throw new NegocioException("Por favor informe uma Placa válida"); } else if (Util.ValidaCampo(x.numero_contrato)) { ALD_ETL_Database = ALD_ETL_Database_lista.Where(d => d.Num_contrato == x.numero_contrato).FirstOrDefault(); if (ALD_ETL_Database == null) { throw new NegocioException("Número de Contrato não é válido para a Placa informada"); } } else { ALD_ETL_Database = ALD_ETL_Database_lista.FirstOrDefault(); } ALD_ETL_Database_lista = null; if (ALD_ETL_Database.Tipo_contrato.ToUpper().Trim() == "POO" && !Util.ValidaCampo(x.customer_rebill)) { throw new NegocioException("Por favor informe o Customer Rebill"); } } else { throw new NegocioException("Por favor informe uma Placa válida"); } if (Util.ValidaCampo(x.crep_code)) { var ALD_ETL_Crep_Code = this.dados.ALD_ETL_Crep_Code.Where(c => c.CC_Crep_Code_Numero == x.crep_code).FirstOrDefault(); if (ALD_ETL_Crep_Code == null) { throw new NegocioException("Por favor informe um Crep Code válido"); } else if (ALD_ETL_Crep_Code.CC_Crep_Code_Exige_Quantidade.ToUpper().Trim() == "S" && (!Util.ValidaCampo(x.qtd) || x.qtd == 0)) { throw new NegocioException("Por favor informe uma Quantidade válida"); } else if (ALD_ETL_Crep_Code.CC_Crep_Code_Exige_Km.ToUpper().Trim() == "S" && (!Util.ValidaCampo(x.km) || x.km == 0)) { throw new NegocioException("Por favor informe uma KM válida"); } } else { throw new NegocioException("Por favor informe um Crep Code válido"); } if (!Util.ValidaCampo(x.filial)) { x.filial = "F001"; } x.categoria_nf = x.categoria_nf.Substring(0, 2); if (x.dt_vencimento <= DateTime.Now.AddDays(5)) { solicitacaoPagamento.id_fila_solicitacao_pagamento = (int)Enums.FilaSolicitacaoPagamento.AprovacaoDataVencimento; } x.dt_criacao = DateTime.Now; x.dt_atualizacao = DateTime.Now; return(x); }).ToList(); }