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"));
        }
Beispiel #7
0
        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);
        }
Beispiel #9
0
        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));
            }
        }
Beispiel #10
0
        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));
            }
        }