public ActionResult Edit(int id, OrcamentoViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var orcamento = OrcamentoService.getOrcamento(id); if (orcamento == null) { this.addMensagemErro("Orçamento não encontrado."); return(RedirectToAction("Index")); } orcamento = LoadOrcamento(orcamento, model); OrcamentoService.saveOrcamento(orcamento); this.addMensagemSucesso("Orçamento alterado com sucesso."); if (model.EhServico) { return(RedirectToAction("IndexServico")); } return(RedirectToAction("Index")); }
public ActionResult Edit(int id) { var orcamento = OrcamentoService.getOrcamento(id); if (orcamento == null) { this.addMensagemErro("Orçamento não encontrado."); return(RedirectToAction("Index")); } var model = LoadOrcamentoModel(orcamento); prepareModelLists(model); return(View(model)); }
public ActionResult Refuse(int id) { var orcamento = OrcamentoService.getOrcamento(id); if (orcamento == null) { this.addMensagemErro("Orçamento não encontrado."); return(RedirectToAction("Index")); } orcamento.Status = (int)StatusOrcamento.Recusado; OrcamentoService.saveOrcamento(orcamento); this.addMensagemSucesso("Orçamento recusado com sucesso."); return(RedirectToAction("Index", "Orcamento")); }
public ActionResult CreatePurchaseOrder(int id) { var orcamento = OrcamentoService.getOrcamento(id); if (orcamento == null) { this.addMensagemErro("Orçamento não encontrado."); return(RedirectToAction("Index")); } orcamento.Status = (int)StatusOrcamento.Aprovado; orcamento.Orcamento = false; OrcamentoService.saveOrcamento(orcamento); this.addMensagemSucesso("Pedido criado com sucesso."); return(RedirectToAction("Index", "Pedido")); }
public ActionResult Create(OrcamentoViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var orcamento = LoadNewOrcamento(model); OrcamentoService.saveOrcamento(orcamento); this.addMensagemSucesso("Orçamento criado com sucesso."); if (model.EhServico) { return(RedirectToAction("IndexServico")); } return(RedirectToAction("Index")); }
public ActionResult Delete(int id) { var orcamento = OrcamentoService.getOrcamento(id); if (orcamento == null) { this.addMensagemErro("Orçamento não encontrado."); return(RedirectToAction("Index")); } try { OrcamentoService.deleteOrcamento(id); } catch (BusinessException ex) { this.addMensagemErro(ex.Message); return(RedirectToAction("Index")); } this.addMensagemSucesso("Orçamento excluído com sucesso."); return(RedirectToAction("Index")); }
public ActionResult ReprovarOrcamento(int id) { var orcamento = _orcamento.ObterPorId(id); if (orcamento == null) { return(NotFound()); } if (orcamento.StatusOrcamento == StatusOrcamento.Aberto) { OrcamentoService service = new OrcamentoService(); service.ReprovarOrcamento(orcamento); _orcamento.Atualizar(orcamento); return(RedirectToAction(nameof(Index))); } else { return(BadRequest()); } }
public FileResult DownloadOrder(int id) { var orcamento = OrcamentoService.getOrcamento(id); var cliente = ClienteService.getCliente(orcamento.IDCliente); var usuarioResponsavel = UsuarioService.getUsuario(orcamento.IDUsuario); var dictValue = new Dictionary <string, string>(); var dateTimeNow = DateTime.Now; dictValue.Add("DataEscrito", String.Format("{0} de {1} de {2}", dateTimeNow.Day, dateTimeNow.ToString("MMM", new CultureInfo("pt-BR")), dateTimeNow.Year)); dictValue.Add("IDOrcamento", orcamento.IDOrcamento.ToString()); dictValue.Add("NomeCliente", cliente.Nome); dictValue.Add("NomeAeronave", ""); dictValue.Add("PrefixoAeronave", ""); dictValue.Add("YYYY", dateTimeNow.Year.ToString()); dictValue.Add("EmailResponsavel", usuarioResponsavel.Email); dictValue.Add("NomeResponsavel", usuarioResponsavel.Nome); StringBuilder sbCondicao = new StringBuilder(); foreach (PagamentosOrcamento pagamento in orcamento.PagamentosOrcamento) { sbCondicao.AppendFormat(" R$ {0} em {1}, ", pagamento.Preco.ToString(new CultureInfo("pt-BR")), pagamento.DataPagamento.ToShortDateString()); } if (sbCondicao.Length > 0) { sbCondicao.Remove(sbCondicao.Length - 2, 2); } dictValue.Add("CondicaoPagamento", sbCondicao.ToString()); DataTable dataTable = new DataTable(); dataTable.Columns.Add("Item"); dataTable.Columns.Add("Descrição"); dataTable.Columns.Add("QTDE"); dataTable.Columns.Add("Valor"); double precoTotal = 0; foreach (ItensOrcamento itemOrcamento in orcamento.ItensOrcamento) { string descricaoServico = "Equipamento"; if (orcamento.Servico) { var servico = ServicoService.getServico(itemOrcamento.IDServico.Value); descricaoServico = servico.Descricao.ToUpper(); } double precoUnitarioReal = Math.Round(itemOrcamento.PrecoUnitario * orcamento.CotacaoDolar, 2, MidpointRounding.ToEven); precoTotal += precoUnitarioReal; dataTable.Rows.Add(itemOrcamento.Equipamentos.Descricao, descricaoServico, itemOrcamento.Quantidade.ToString(), "R$ " + precoUnitarioReal.ToString(new CultureInfo("pt-BR"))); } dataTable.Rows.Add("", "", "Total", "R$ " + precoTotal.ToString(new CultureInfo("pt-BR"))); var b = new CTMStorageService().GetOrcamentoPreenchidoAzure("OrcamentoTimbrado.docx", dataTable, dictValue); var fileResult = new FileContentResult(b, "application/vnd.openxmlformats-officedocument.wordprocessingml.document"); fileResult.FileDownloadName = String.Format("Orcamento{0}-{1}.docx", orcamento.IDOrcamento.ToString(), dateTimeNow.Year.ToString()); return(fileResult); }
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(Orcamento orcamento) { try { if (ModelState.IsValid) { orcamento.EmpresaID = Convert.ToInt32(User.FindFirst(ClaimTypes.GroupSid).Value); OrcamentoService service = new OrcamentoService(); service.PreencherCampos(orcamento); _orcamento.Inserir(orcamento); //Tratar o JSON da lista de serviços e transformar no objeto OrcamentoPublicidadeServicos if (!String.IsNullOrEmpty(orcamento.ServicosJSON)) { List <OrcamentoServico> ListaServicos = JsonConvert.DeserializeObject <List <OrcamentoServico> >(orcamento.ServicosJSON); if (ListaServicos.Count >= 1) { for (int i = 0; i < ListaServicos.Count; i++) { var os = new OrcamentoServico(); os.EmpresaID = orcamento.EmpresaID; os.OrcamentoID = orcamento.OrcamentoID; os.ServicoPrestadoID = ListaServicos[i].ServicoPrestadoID; os.Quantidade = ListaServicos[i].Quantidade; os.ValorTotal = ListaServicos[i].ValorTotal; OrcamentoServicoService oss = new OrcamentoServicoService(); oss.ValidarCampos(os); _orcamentoServico.Inserir(os); } } } //Tratar o JSON da lista de Fornecedores e transformar no objeto OrcamentoFornecedores if (!String.IsNullOrEmpty(orcamento.FornecedoresJSON)) { List <OrcamentoFornecedor> ListaFornecedores = JsonConvert.DeserializeObject <List <OrcamentoFornecedor> >(orcamento.FornecedoresJSON); if (ListaFornecedores.Count >= 1) { for (int i = 0; i < ListaFornecedores.Count; i++) { var of = new OrcamentoFornecedor(); of.EmpresaID = orcamento.EmpresaID; of.OrcamentoID = orcamento.OrcamentoID; of.FornecedorID = ListaFornecedores[i].FornecedorID; of.Descricao = ListaFornecedores[i].Descricao; of.Quantidade = ListaFornecedores[i].Quantidade; of.ValorUnitario = ListaFornecedores[i].ValorUnitario; of.ValorTotal = ListaFornecedores[i].ValorTotal; OrcamentoFornecedorService opfs = new OrcamentoFornecedorService(); opfs.ValidarCampos(of); _orcamentoFornecedor.Inserir(of); } } } //Tratar o JSON da lista de Custos de Produção e transformar no objeto OrcamentoCustos if (!String.IsNullOrEmpty(orcamento.CustoProducaoJSON)) { List <OrcamentoCustos> ListaCustos = JsonConvert.DeserializeObject <List <OrcamentoCustos> >(orcamento.CustoProducaoJSON); if (ListaCustos.Count >= 1) { for (int i = 0; i < ListaCustos.Count; i++) { var oc = new OrcamentoCustos(); oc.EmpresaID = orcamento.EmpresaID; oc.OrcamentoID = orcamento.OrcamentoID; oc.Descricao = ListaCustos[i].Descricao; oc.Quantidade = ListaCustos[i].Quantidade; oc.ValorUnitario = ListaCustos[i].ValorUnitario; oc.UnidadeValor = ListaCustos[i].UnidadeValor; oc.ValorTotal = ListaCustos[i].ValorTotal; OrcamentoCustosService opcs = new OrcamentoCustosService(); opcs.ValidarCampos(oc); _orcamentoCusto.Inserir(oc); } } } return(RedirectToAction(nameof(Index))); } CarregarCampos(); return(View(orcamento)); } catch (Exception ex) { Mensagem = ex.Message.ToString(); ModelState.AddModelError(String.Empty, Mensagem); return(View(orcamento)); } }