public ActionResult FaturarOrcamento(int id, Orcamento orcamento) { try { if (ModelState.IsValid) { var orcamentoAux = _orcamento.ObterPorId(id); TratarValores tratarValores = new TratarValores(); OrcamentoService service = new OrcamentoService(); service.FaturarOrcamento(orcamento); _orcamento.Atualizar(orcamento); #region GERANDO O CONTAS A RECEBER DO ORÇAMENTO ContaReceber contaReceber = new ContaReceber(); contaReceber.EmpresaID = Convert.ToInt32(User.FindFirst(ClaimTypes.GroupSid).Value); contaReceber.DataCadastro = DateTime.Now; contaReceber.Competencia = DateTime.Now; contaReceber.DataExclusao = null; contaReceber.DataPagamento = null; contaReceber.DataVencimento = DateTime.Now.AddMonths(1); contaReceber.FlagAtivo = true; contaReceber.ClienteID = orcamentoAux.ClienteID; contaReceber.CategoriaID = null; contaReceber.SubCategoriaID = null; contaReceber.CentroDeCustoID = null; contaReceber.ContaContabilID = null; contaReceber.OrcamentoID = orcamentoAux.OrcamentoID; contaReceber.Valor = orcamentoAux.TotalOrcamento; contaReceber.Recorrente = false; contaReceber.TipoDocumento = TipoDocumento.NotaFiscal; contaReceber.NumeroDocumento = Convert.ToInt32(orcamentoAux.OrcamentoID.ToString() + tratarValores.TransformarHoraEmNumero(orcamentoAux.DataCadastro)); contaReceber.Descricao = orcamentoAux.Titulo; contaReceber.FormaPagamento = FormaPagamento.Boleto; contaReceber.Status = StatusContaReceber.Aberto; contaReceber.Desconto = 0; contaReceber.Juros = 0; contaReceber.Multa = 0; contaReceber.Observacoes = "Gerado automaticamente através do orçamento " + orcamentoAux.OrcamentoID + " - " + orcamentoAux.Cliente.RazaoSocial + " - " + orcamentoAux.Titulo; _contaReceber.Inserir(contaReceber); #endregion #region GERANDO O CONTAS A PAGAR DOS FORNECEDORES ENVOLVIDOS if (orcamento.GerarPagamentos == true) { var listaFornecedor = _orcamentoFornecedor.ObterFornecedores(orcamento.OrcamentoID); if (listaFornecedor != null) { foreach (var item in listaFornecedor) { ContaPagar contaPagar = new ContaPagar(); contaPagar.EmpresaID = Convert.ToInt32(User.FindFirst(ClaimTypes.GroupSid).Value); contaPagar.DataCadastro = DateTime.Now; contaPagar.Competencia = DateTime.Now; contaPagar.DataExclusao = null; contaPagar.DataPagamento = null; contaPagar.DataVencimento = DateTime.Now.AddMonths(1); contaPagar.FlagAtivo = true; contaPagar.FornecedorID = item.FornecedorID; contaPagar.CategoriaID = null; contaPagar.SubCategoriaID = null; contaPagar.CentroDeCustoID = null; contaPagar.ContaContabilID = null; contaPagar.OrcamentoID = orcamento.OrcamentoID; contaPagar.Valor = item.ValorTotal; contaPagar.Recorrente = false; contaPagar.TipoDocumento = TipoDocumento.NotaFiscal; contaPagar.NumeroDocumento = Convert.ToInt32(orcamento.OrcamentoID.ToString() + tratarValores.TransformarHoraEmNumero(orcamento.DataCadastro)); contaPagar.Descricao = item.Descricao; contaPagar.FormaPagamento = FormaPagamento.Boleto; contaPagar.Status = StatusContaPagar.Aberto; contaPagar.Desconto = 0; contaPagar.Juros = 0; contaPagar.Multa = 0; contaPagar.Observacoes = "Gerado automaticamente através do orçamento " + orcamento.OrcamentoID + " - " + orcamentoAux.Cliente.RazaoSocial + " - " + orcamento.Titulo; _contaPagar.Inserir(contaPagar); } } } #endregion return(RedirectToAction(nameof(Index))); } return(View(orcamento)); } catch (Exception ex) { Mensagem = ex.Message.ToString(); ModelState.AddModelError(String.Empty, Mensagem); return(View(orcamento)); } }
public ActionResult Create(ContaPagar contasPagar) { try { if (ModelState.IsValid) { contasPagar.EmpresaID = Convert.ToInt32(User.FindFirst(ClaimTypes.GroupSid).Value); ContasPagarService service = new ContasPagarService(); service.PreencherCampos(contasPagar); if (contasPagar.Recorrente == true) { int numParcela = 0; for (int i = 1; i <= 12; i++) { numParcela++; ContaPagar parcela = new ContaPagar(); parcela.CategoriaID = contasPagar.CategoriaID; parcela.SubCategoriaID = contasPagar.SubCategoriaID; parcela.CentroDeCustoID = contasPagar.CentroDeCustoID; parcela.ContaContabilID = contasPagar.ContaContabilID; parcela.DataCadastro = contasPagar.DataCadastro; parcela.DataExclusao = contasPagar.DataExclusao; parcela.DataPagamento = contasPagar.DataPagamento; if (numParcela > 1) { parcela.DataVencimento = contasPagar.DataVencimento.AddMonths(numParcela - 1); parcela.Competencia = contasPagar.Competencia.AddMonths(numParcela - 1); } else { parcela.DataVencimento = contasPagar.DataVencimento; parcela.Competencia = contasPagar.Competencia; } parcela.Status = StatusContaPagar.Aberto; parcela.Desconto = contasPagar.Desconto; parcela.Descricao = contasPagar.Descricao; parcela.EmpresaID = contasPagar.EmpresaID; parcela.FlagAtivo = contasPagar.FlagAtivo; parcela.FormaPagamento = contasPagar.FormaPagamento; parcela.FornecedorID = contasPagar.FornecedorID; parcela.Desconto = contasPagar.Desconto ?? 0; parcela.Juros = contasPagar.Juros ?? 0; parcela.Multa = contasPagar.Multa ?? 0; parcela.Recorrente = contasPagar.Recorrente; parcela.NumeroDocumento = contasPagar.NumeroDocumento + numParcela; parcela.TipoDocumento = contasPagar.TipoDocumento; parcela.Valor = contasPagar.Valor; parcela.ValorPago = contasPagar.ValorPago; parcela.Observacoes = "Gerado automaticamente através de cadastro de conta recorrente. Parcela: " + numParcela + "/12"; _contas.Inserir(parcela); } return(RedirectToAction(nameof(Index))); } else { _contas.Inserir(contasPagar); return(RedirectToAction(nameof(Index))); } } CarregarFornecedores(); CarregarCategorias(); CarregarSubCategorias(0); CarregarCentroDeCusto(); return(View(contasPagar)); } catch (Exception ex) { Mensagem = ex.Message.ToString(); ModelState.AddModelError(String.Empty, Mensagem); CarregarFornecedores(); CarregarCategorias(); CarregarSubCategorias(0); CarregarCentroDeCusto(); return(View(contasPagar)); } }