public ActionResult Create(ContaReceber contaReceber) { try { if (ModelState.IsValid) { contaReceber.EmpresaID = Convert.ToInt32(User.FindFirst(ClaimTypes.GroupSid).Value); ContaReceberService service = new ContaReceberService(); service.PreencherCampos(contaReceber); if (contaReceber.Recorrente == true) { int numParcela = 0; for (int i = 1; i <= 12; i++) { numParcela++; ContaReceber parcela = new ContaReceber(); parcela.CategoriaID = contaReceber.CategoriaID; parcela.SubCategoriaID = contaReceber.SubCategoriaID; parcela.CentroDeCustoID = contaReceber.CentroDeCustoID; parcela.ContaContabilID = contaReceber.ContaContabilID; parcela.DataCadastro = contaReceber.DataCadastro; parcela.DataExclusao = contaReceber.DataExclusao; parcela.DataPagamento = contaReceber.DataPagamento; if (numParcela > 1) { parcela.DataVencimento = contaReceber.DataVencimento.AddMonths(numParcela - 1); parcela.Competencia = contaReceber.Competencia.AddMonths(numParcela - 1); } else { parcela.DataVencimento = contaReceber.DataVencimento; parcela.Competencia = contaReceber.Competencia; } parcela.Status = StatusContaReceber.Aberto; parcela.Desconto = contaReceber.Desconto; parcela.Descricao = contaReceber.Descricao; parcela.EmpresaID = contaReceber.EmpresaID; parcela.FlagAtivo = contaReceber.FlagAtivo; parcela.FormaPagamento = contaReceber.FormaPagamento; parcela.ClienteID = contaReceber.ClienteID; parcela.Desconto = contaReceber.Desconto ?? 0; parcela.Juros = contaReceber.Juros ?? 0; parcela.Multa = contaReceber.Multa ?? 0; parcela.Recorrente = contaReceber.Recorrente; parcela.NumeroDocumento = contaReceber.NumeroDocumento + numParcela; parcela.TipoDocumento = contaReceber.TipoDocumento; parcela.Valor = contaReceber.Valor; parcela.ValorRecebido = contaReceber.ValorRecebido; parcela.Observacoes = "Gerado automaticamente através de cadastro de conta recorrente. Parcela: " + numParcela + "/12"; _contas.Inserir(parcela); } return(RedirectToAction(nameof(Index))); } else { _contas.Inserir(contaReceber); return(RedirectToAction(nameof(Index))); } } CarregarClientes(); CarregarCategorias(); CarregarSubCategorias(0); CarregarCentroDeCusto(); return(View(contaReceber)); } catch (Exception ex) { Mensagem = ex.Message.ToString(); ModelState.AddModelError(String.Empty, Mensagem); CarregarClientes(); CarregarCategorias(); CarregarSubCategorias(0); CarregarCentroDeCusto(); return(View(contaReceber)); } }
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)); } }