Exemplo n.º 1
0
        public ActionResult Edit([Bind(Include = "OrdensServicosId,ProblemaIdentificado,InformacoesAdicionais")] EditarInformacoesDoServicoViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                OrdensServicos ordensServicos = db.OrdensServicos.Find(viewModel.OrdensServicosId);
                if (ordensServicos == null)
                {
                    return(HttpNotFound());
                }
                ordensServicos.ProblemaIdentificado  = viewModel.ProblemaIdentificado;
                ordensServicos.InformacoesAdicionais = viewModel.InformacoesAdicionais;
                db.Entry(ordensServicos).State       = EntityState.Modified;
                db.SaveChanges();
            }
            else
            {
                StringBuilder sb = new StringBuilder();

                foreach (ModelState modelState in ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        sb.Append(error.ErrorMessage + "\n");
                    }
                }
                TempData["Errors"] = sb.ToString();
            }
            return(RedirectToAction("Details", "OrdensServicos", new { id = viewModel.OrdensServicosId }));
        }
Exemplo n.º 2
0
        // GET: OrdensServicos/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            EditarInformacoesDoServicoViewModel editarInformacoes = new EditarInformacoesDoServicoViewModel();

            if (ordensServicos.InformacoesAdicionais != null)
            {
                editarInformacoes.InformacoesAdicionais = ordensServicos.InformacoesAdicionais.Trim();
            }
            editarInformacoes.OrdensServicosId = ordensServicos.Id;
            if (ordensServicos.ProblemaIdentificado != null)
            {
                editarInformacoes.ProblemaIdentificado = ordensServicos.ProblemaIdentificado.Trim();
            }
            return(View(editarInformacoes));
        }
        public void CalcularValorTotalServicosCompleto()
        {
            OrdensServicosController       ordensServicosController = new OrdensServicosController();
            OrdensServicos                 ordensServicos           = new OrdensServicos();
            List <OrdensServicosMateriais> materiais = new List <OrdensServicosMateriais>();
            OrdensServicosMateriais        material  = new OrdensServicosMateriais();

            material.PrecoTotal = 75;
            materiais.Add(material);
            material            = new OrdensServicosMateriais();
            material.PrecoTotal = 50;
            materiais.Add(material);
            ordensServicos.OrdensServicosMateriais = materiais;
            List <OrdensServicosServicos> servicos = new List <OrdensServicosServicos>();
            OrdensServicosServicos        servico  = new OrdensServicosServicos();

            servico.Valor = 135;
            servicos.Add(servico);
            servico       = new OrdensServicosServicos();
            servico.Valor = 420;
            servicos.Add(servico);
            ordensServicos.OrdensServicosServicos = servicos;
            float valor = ordensServicosController.CalcularValorTotal(ordensServicos);

            Assert.AreEqual(680, valor);
        }
Exemplo n.º 4
0
        // GET: OrdensServicos/Details/5
        public ActionResult GerarOrcamento(int?id)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            #region Validações
            List <String> errors = new List <string>();
            if (ordensServicos.ProblemaIdentificado == null)
            {
                errors.Add("Para gerar o orçamento ao cliente é preciso, primeiro, informar o problema identificado!");
            }
            if (ordensServicos.DataInicialPrevista == null)
            {
                errors.Add("Para gerar o orçamento ao cliente é preciso, primeiro, informar a data prevista para o início do trabalho!");
            }
            if (ordensServicos.OrdensServicosServicos == null || ordensServicos.OrdensServicosServicos.Count == 0 ||
                ordensServicos.OrdensServicosMateriais == null || ordensServicos.OrdensServicosMateriais.Count == 0)
            {
                errors.Add("Para gerar o orçamento ao cliente é preciso ter, ao menos, um serviço e um materia associado à ele!");
            }
            #endregion
            if (errors.Count == 0)
            {
                GeradorDePDF geradorDePDF = new GeradorDePDF(Response, Request);
                geradorDePDF.GerarOrcamentoDownload(ordensServicos);
            }
            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, errors);
            return(View("Details", model));
        }
Exemplo n.º 5
0
        // GET: OrdensServicos/Details/5
        public ActionResult ReenviarOrcamento(int?id)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            List <String> errors = this.ValidarEnviarOrcamento(ordensServicos);

            if (errors.Count == 0)
            {
                String caminhoArquivo = String.Format("{0}\\EntreRodas_{1}_{2}.pdf", Directory.GetCurrentDirectory(),
                                                      DateTime.Now.Year, ordensServicos.CodigoOrdensServicos.Trim());
                GeradorDePDF geradorDePDF = new GeradorDePDF(Response, Request);
                geradorDePDF.GerarOrcamentoPasta(ordensServicos, caminhoArquivo);

                Email email = new Email();
                email.EnviarOrcamento(ordensServicos.Clientes.Email.Trim(), caminhoArquivo, ordensServicos.Clientes.Nome, ordensServicos.Veiculos.MarcasCarros.Nome,
                                      ordensServicos.Veiculos.Modelo, ordensServicos.Veiculos.Ano);
            }
            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, errors);

            return(View("Details", model));
        }
Exemplo n.º 6
0
 public ActionResult EditarFormaPagamento([Bind(Include = "OrdensServicosId,FormaPagamento,ValorAPagar,FormaPagamento,ValorDinheiro,ValorCartao,InformacoesAdicionais")] FinalizarServicoViewModel editarForma)
 {
     if (ModelState.IsValid)
     {
         OrdensServicos ordensServicos = db.OrdensServicos.Find(editarForma.OrdensServicosId);
         if (ordensServicos == null)
         {
             return(HttpNotFound());
         }
         ordensServicos.FormaPagamento = editarForma.FormaPagamento;
         ordensServicos.ValorAPagar    = editarForma.ValorAPagar;
         if (editarForma.FormaPagamento == "AM")
         {
             ordensServicos.ValorDinheiro = editarForma.ValorDinheiro;
         }
         else if (editarForma.FormaPagamento == "DI")
         {
             ordensServicos.ValorDinheiro = editarForma.ValorDinheiro;
         }
         else
         {
             ordensServicos.ValorCartao = editarForma.ValorCartao;
         }
         ordensServicos.InformacoesAdicionais = editarForma.InformacoesAdicionais;
         db.Entry(ordensServicos).State       = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Details", "OrdensServicos", new { id = editarForma.OrdensServicosId }));
     }
     return(View(editarForma));
 }
Exemplo n.º 7
0
        public ActionResult AgendarInicio([Bind(Include = "DataInicial,OrdensServicosId")] AgendarServicoViewModel viewModel)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(viewModel.OrdensServicosId);
            List <String>  errors         = new List <string>();

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            if (ModelState.IsValid)
            {
                ordensServicos.DataInicialPrevista = viewModel.DataInicial;
                db.Entry(ordensServicos).State     = EntityState.Modified;
                db.SaveChanges();
                ordensServicos = db.OrdensServicos.Find(viewModel.OrdensServicosId);
            }
            else
            {
                foreach (ModelState modelState in ModelState.Values)
                {
                    foreach (ModelError error in modelState.Errors)
                    {
                        errors.Add(error.ErrorMessage);
                    }
                }
            }
            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, errors);

            return(View("Details", model));
        }
Exemplo n.º 8
0
        // GET: OrdensServicos/Edit/5
        public ActionResult EntregarServico(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            FinalizarServicoViewModel viewModel = new FinalizarServicoViewModel();

            viewModel.OrdensServicosId = ordensServicos.Id;
            viewModel.NomeCliente      = ordensServicos.Clientes.Nome;
            viewModel.ModeloVeiculo    = String.Format("{0} {1} Ano {2}", ordensServicos.Veiculos.MarcasCarros.Nome.Trim(),
                                                       ordensServicos.Veiculos.Modelo.Trim(), ordensServicos.Veiculos.Ano);
            viewModel.SubTotalMateriais = String.Format("R${0}", this.CalcularValorTotalDeMateriais(ordensServicos.OrdensServicosMateriais.ToList()));
            viewModel.SubTotalServicos  = String.Format("R${0}", this.CalcularValorTotalDeServicos(ordensServicos.OrdensServicosServicos.ToList()));
            viewModel.ValorTotal        = String.Format("R$ {0}", ordensServicos.ValorTotal);
            viewModel.Materiais         = ordensServicos.OrdensServicosMateriais.ToList();
            viewModel.Servicos          = ordensServicos.OrdensServicosServicos.ToList();
            CombosGenericos combos = new CombosGenericos();

            ViewBag.FormaPagamento = new SelectList(combos.ListarFormasPagamento(), "Valor", "Texto");
            return(View("FinalizaServico", viewModel));
        }
Exemplo n.º 9
0
        public ActionResult Create([Bind(Include = "ClienteId,VeiculosId,ProblemaIdentificado")] OrdensServicos viewModel)
        {
            if (ModelState.IsValid)
            {
                OrdensServicos ordensServicos = new OrdensServicos();
                ordensServicos.ClienteId              = viewModel.ClienteId;
                ordensServicos.VeiculosId             = viewModel.VeiculosId;
                ordensServicos.CodigoOrdensServicos   = this.ObterCodigoOrdemServico();
                ordensServicos.FuncionarioResponsavel = Convert.ToInt32(Session["IdUser"]);
                ordensServicos.DataOrcamento          = DateTime.Now;
                ordensServicos.Status = "O";
                if (viewModel.ProblemaIdentificado != null)
                {
                    ordensServicos.ProblemaIdentificado = viewModel.ProblemaIdentificado;
                }
                db.OrdensServicos.Add(ordensServicos);
                db.SaveChanges();
                return(RedirectToAction("Details", new { id = ordensServicos.Id }));
            }

            var lista = new List <Models.Clientes>();

            lista.AddRange(db.Clientes.ToList());
            lista.Insert(0, new Clientes()
            {
                Id = -1, Nome = "--"
            });
            ViewBag.ClienteId = new SelectList(lista, "Id", "Nome");
            return(View(viewModel));
        }
Exemplo n.º 10
0
        private String ObterCodigoOrdemServico()
        {
            string         novoCodigo  = String.Empty;
            OrdensServicos ultimaOrdem = db.OrdensServicos.OrderByDescending(x => x.Id).Take(1).FirstOrDefault();

            if (ultimaOrdem == null)
            {
                novoCodigo = String.Format("{0}{1}", DateTime.Now.ToString("yyyyMM"), "0001");
            }
            else
            {
                string ultimoMes = ultimaOrdem.CodigoOrdensServicos.Substring(0, 6);
                if (ultimoMes == DateTime.Now.ToString("yyyyMM"))
                {
                    int contServicosMes = Convert.ToInt32(ultimaOrdem.CodigoOrdensServicos.Substring(6, 4));
                    contServicosMes++;
                    novoCodigo = String.Format("{0}{1}", DateTime.Now.ToString("yyyyMM"), contServicosMes.ToString().PadLeft(4, '0'));
                }
                else
                {
                    novoCodigo = String.Format("{0}{1}", DateTime.Now.ToString("yyyyMM"), "0001");
                }
            }
            return(novoCodigo);
        }
Exemplo n.º 11
0
        public ActionResult DeleteConfirmed(int id)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            db.OrdensServicos.Remove(ordensServicos);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public void CalcularValorTotalServicosSemItens()
        {
            OrdensServicosController ordensServicosController = new OrdensServicosController();
            OrdensServicos           ordensServicos           = new OrdensServicos();
            float valor = ordensServicosController.CalcularValorTotal(ordensServicos);

            Assert.AreEqual(0, valor);
        }
Exemplo n.º 13
0
        // GET: OrdensServicosServicos/Create
        public ActionResult Create(int?id)
        {
            OrdensServicos ordem = db.OrdensServicos.Find(id);

            ViewBag.OrdensServicosId = id;
            ViewBag.NomeCliente      = ordem.Clientes.Nome;
            ViewBag.ModeloCarro      = String.Format("{0} {1} Ano {2}", ordem.Veiculos.MarcasCarros.Nome.Trim(),
                                                     ordem.Veiculos.Modelo.Trim(), ordem.Veiculos.Ano);
            return(View());
        }
Exemplo n.º 14
0
        // GET: OrdensServicos/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            return(View(ordensServicos));
        }
Exemplo n.º 15
0
        // GET: OrdensServicos/Details/5
        public ActionResult ChegouPeca(int?id)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            ordensServicos.Status          = "EE";
            db.Entry(ordensServicos).State = EntityState.Modified;
            db.SaveChanges();

            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, null);

            return(View("Details", model));
        }
        public void CalcularValorTotalServicosSomenteMateriais()
        {
            OrdensServicosController       ordensServicosController = new OrdensServicosController();
            OrdensServicos                 ordensServicos           = new OrdensServicos();
            List <OrdensServicosMateriais> materiais = new List <OrdensServicosMateriais>();
            OrdensServicosMateriais        material  = new OrdensServicosMateriais();

            material.PrecoTotal = 75;
            materiais.Add(material);
            material            = new OrdensServicosMateriais();
            material.PrecoTotal = 50;
            materiais.Add(material);
            ordensServicos.OrdensServicosMateriais = materiais;
            float valor = ordensServicosController.CalcularValorTotal(ordensServicos);

            Assert.AreEqual(125, valor);
        }
        public void CalcularValorTotalServicosSomenteServicos()
        {
            OrdensServicosController      ordensServicosController = new OrdensServicosController();
            OrdensServicos                ordensServicos           = new OrdensServicos();
            List <OrdensServicosServicos> servicos = new List <OrdensServicosServicos>();
            OrdensServicosServicos        servico  = new OrdensServicosServicos();

            servico.Valor = 135;
            servicos.Add(servico);
            servico       = new OrdensServicosServicos();
            servico.Valor = 420;
            servicos.Add(servico);
            ordensServicos.OrdensServicosServicos = servicos;
            float valor = ordensServicosController.CalcularValorTotal(ordensServicos);

            Assert.AreEqual(555, valor);
        }
Exemplo n.º 18
0
        // GET: OrdensServicos/Details/5
        public ActionResult FinalizaServico(int?id)
        {
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            ordensServicos.ValorTotal      = this.CalcularValorTotal(ordensServicos);
            ordensServicos.Status          = "PT";
            db.Entry(ordensServicos).State = EntityState.Modified;
            db.SaveChanges();

            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, null);

            return(View("Details", model));
        }
Exemplo n.º 19
0
        // GET: OrdensServicos/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }

            VisualizarServicoViewModel model = ConfigurVisualizacao(ordensServicos, null);

            return(View(model));
        }
Exemplo n.º 20
0
        // GET: OrdensServicos/AgendarInicio/5
        public ActionResult AgendarInicio(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            OrdensServicos ordensServicos = db.OrdensServicos.Find(id);

            if (ordensServicos == null)
            {
                return(HttpNotFound());
            }
            AgendarServicoViewModel viewModel = new AgendarServicoViewModel();

            viewModel.OrdensServicosId = ordensServicos.Id;
            return(View(viewModel));
        }
Exemplo n.º 21
0
        private List <String> ValidarEnviarOrcamento(OrdensServicos ordensServicos)
        {
            List <String> errors = new List <string>();

            if (ordensServicos.ProblemaIdentificado == null)
            {
                errors.Add("Para o envio do orçamento ao cliente é preciso, primeiro, informar o problema identificado!");
            }
            if (ordensServicos.DataInicialPrevista == null)
            {
                errors.Add("Para o envio do orçamento ao cliente é preciso, primeiro, informar a data prevista para o início do trabalho!");
            }
            if (ordensServicos.OrdensServicosServicos == null || ordensServicos.OrdensServicosServicos.Count == 0 ||
                ordensServicos.OrdensServicosMateriais == null || ordensServicos.OrdensServicosMateriais.Count == 0)
            {
                errors.Add("Para o envio do orçamento ao cliente é preciso ter, ao menos, um serviço e um materia associado à ele!");
            }
            return(errors);
        }
Exemplo n.º 22
0
        public ActionResult Create([Bind(Include = "Id,OrdensServicosId,Descricao,Valor")] OrdensServicosServicos ordensServicosServicos)
        {
            if (ModelState.IsValid)
            {
                OrdensServicosServicos servico = new OrdensServicosServicos();
                servico.Descricao        = ordensServicosServicos.Descricao.Trim();
                servico.Valor            = ordensServicosServicos.Valor;
                servico.OrdensServicosId = ordensServicosServicos.OrdensServicosId;
                db.OrdensServicosServicos.Add(servico);
                db.SaveChanges();
                return(RedirectToAction("Details", "OrdensServicos", new { id = servico.OrdensServicosId }));
            }

            OrdensServicos ordem = db.OrdensServicos.Find(ordensServicosServicos.OrdensServicosId);

            ViewBag.OrdensServicosId = ordensServicosServicos.OrdensServicosId;
            ViewBag.NomeCliente      = ordem.Clientes.Nome;
            ViewBag.ModeloCarro      = String.Format("{0} {1} Ano {2}", ordem.Veiculos.MarcasCarros.Nome.Trim(),
                                                     ordem.Veiculos.Modelo.Trim(), ordem.Veiculos.Ano);
            return(View(ordensServicosServicos));
        }
Exemplo n.º 23
0
        public float CalcularValorTotal(OrdensServicos ordensServicos)
        {
            float valorTotal = 0;

            if (ordensServicos.OrdensServicosMateriais != null && ordensServicos.OrdensServicosMateriais.Count > 0)
            {
                foreach (OrdensServicosMateriais materiais in ordensServicos.OrdensServicosMateriais)
                {
                    valorTotal += materiais.PrecoTotal;
                }
            }
            if (ordensServicos.OrdensServicosServicos != null && ordensServicos.OrdensServicosServicos.Count > 0)
            {
                foreach (OrdensServicosServicos servico in ordensServicos.OrdensServicosServicos)
                {
                    valorTotal += servico.Valor;
                }
            }

            return(valorTotal);
        }
        public ActionResult Create([Bind(Include = "Id,OrdensServicosId,Descricao,PrecoUnitario,Quantidade")] OrdensServicosMateriais ordensServicosMateriais)
        {
            if (ModelState.IsValid)
            {
                OrdensServicosMateriais material = new OrdensServicosMateriais();
                material.Descricao     = ordensServicosMateriais.Descricao.Trim();
                material.Quantidade    = ordensServicosMateriais.Quantidade;
                material.PrecoUnitario = ordensServicosMateriais.PrecoUnitario;
                float valor = ordensServicosMateriais.PrecoUnitario * ordensServicosMateriais.Quantidade;
                material.PrecoTotal       = valor;
                material.OrdensServicosId = ordensServicosMateriais.OrdensServicosId;
                db.OrdensServicosMateriais.Add(material);
                db.SaveChanges();
                return(RedirectToAction("Details", "OrdensServicos", new { id = material.OrdensServicosId }));
            }

            OrdensServicos ordem = db.OrdensServicos.Find(ordensServicosMateriais.OrdensServicosId);

            ViewBag.OrdensServicosId = ordensServicosMateriais.OrdensServicosId;
            ViewBag.NomeCliente      = ordem.Clientes.Nome;
            ViewBag.ModeloCarro      = String.Format("{0} {1} Ano {2}", ordem.Veiculos.MarcasCarros.Nome.Trim(),
                                                     ordem.Veiculos.Modelo.Trim(), ordem.Veiculos.Ano);
            return(View(ordensServicosMateriais));
        }
Exemplo n.º 25
0
        public void GerarOrcamentoPasta(OrdensServicos ordem, String caminhoArquivo)
        {
            try
            {
                Document  pdfDoc      = new Document(PageSize.A4, 10, 10, 80, 80);
                PdfWriter pdfWriter   = PdfWriter.GetInstance(pdfDoc, new FileStream(caminhoArquivo, FileMode.Create));
                Image     imagemLogo  = Image.GetInstance(request.MapPath("~/Content/Imagens/logo.png"));
                Image     imagemGmail = Image.GetInstance(request.MapPath("~/Content/Imagens/gmail.png"));
                Image     imagemWhats = Image.GetInstance(request.MapPath("~/Content/Imagens/whats.png"));
                Image     imagemMaps  = Image.GetInstance(request.MapPath("~/Content/Imagens/maps.png"));
                pdfWriter.PageEvent = new ITextEvents()
                {
                    ImagemLogo = imagemLogo, ImagemEmail = imagemGmail, ImagemWhats = imagemWhats, ImagemMaps = imagemMaps
                };
                pdfDoc.Open();

                PdfPCell celunaVazia;
                PdfPCell celunaConteudo;

                #region Cabeçalho
                PdfPTable tabela;
                PdfPCell  celula;
                //Table
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                tabela.SpacingBefore   = 5f;
                //Cell
                celula                   = new PdfPCell(new Phrase(String.Format("ORÇAMENTO {0}", ordem.CodigoOrdensServicos), new Font(Font.FontFamily.TIMES_ROMAN, 20, Font.BOLD)));
                celula.FixedHeight       = 30.0f;
                celula.Border            = 0;
                celula.BackgroundColor   = new BaseColor(221, 221, 221);
                celula.VerticalAlignment = Element.ALIGN_TOP;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);

                #endregion
                #region Informações da ordem de serviço
                pdfDoc.Add(this.MontarLinhaSubtitulo("INFORMAÇÕES DA ORDEM DE SERVIÇOS", 0, true));
                tabela = new PdfPTable(4);
                tabela.WidthPercentage = 100;
                float[] larguras = new float[] { 6f, 44f, 10f, 20f };
                tabela.SetWidths(larguras);
                celula                 = new PdfPCell(new Phrase("Cliente:", fonteNegrito));
                celula.Border          = 0;
                celula.BorderWidthLeft = larguraBordas;
                tabela.AddCell(celula);
                celula        = new PdfPCell(new Phrase(ordem.Clientes.Nome, fonteNormal));
                celula.Border = 0;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                celula        = new PdfPCell(new Phrase("Modelo/Ano:", fonteNegrito));
                celula.Border = 0;
                tabela.AddCell(celula);
                celula                  = new PdfPCell(new Phrase(String.Format("{0} {1}", ordem.Veiculos.Modelo, ordem.Veiculos.Ano), fonteNormal));
                celula.Border           = 0;
                celula.BorderWidthRight = larguraBordas;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);

                tabela = new PdfPTable(4);
                tabela.WidthPercentage = 100;
                larguras = new float[] { 16f, 30f, 14f, 20 };
                tabela.SetWidths(larguras);
                celula                 = new PdfPCell(new Phrase("Funcionário responsável:", fonteNegrito));
                celula.Border          = 0;
                celula.BorderWidthLeft = larguraBordas;
                tabela.AddCell(celula);
                celula        = new PdfPCell(new Phrase("Alan", fonteNormal));
                celula.Border = 0;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                celula        = new PdfPCell(new Phrase("Data do orçamento:", fonteNegrito));
                celula.Border = 0;
                tabela.AddCell(celula);
                celula                  = new PdfPCell(new Phrase(ordem.DataInicialPrevista.Value.ToString("dd/MM/yyyy"), fonteNormal));
                celula.Border           = 0;
                celula.BorderWidthRight = 1.0f;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                celula                  = new PdfPCell(new Phrase("Problema identificado junto ao cliente:", fonteNegrito));
                celula.Border           = 0;
                celula.BorderWidthLeft  = larguraBordas;
                celula.BorderWidthRight = larguraBordas;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                celula                   = new PdfPCell(new Phrase(ordem.ProblemaIdentificado, new Font(Font.FontFamily.TIMES_ROMAN, 12)));
                celula.Border            = 0;
                celula.BorderWidthBottom = larguraBordas;
                celula.BorderWidthLeft   = larguraBordas;
                celula.BorderWidthRight  = larguraBordas;
                celula.PaddingBottom     = 8f;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                #endregion
                #region Serviços
                pdfDoc.Add(this.MontarLinhaSubtitulo("SERVIÇOS", 390.00, true));
                pdfDoc.Add(this.MontarCabecalhoTabelaDeItens(TipoItens.Servicos));
                tabela = new PdfPTable(4);
                tabela.WidthPercentage = 100;
                larguras = new float[] { 1f, 75f, 10f, 1f };
                tabela.SetWidths(larguras);
                //Percorre a lista de serviços
                for (int i = 0; i < ordem.OrdensServicosServicos.Count; i++)
                {
                    celunaVazia                 = new PdfPCell();
                    celunaVazia.FixedHeight     = 15.0f;
                    celunaVazia.Border          = 0;
                    celunaVazia.BorderWidthLeft = larguraBordas;
                    if (i + 1 == ordem.OrdensServicosServicos.Count)
                    {
                        celunaVazia.BorderWidthBottom = larguraBordas;
                    }
                    tabela.AddCell(celunaVazia);
                    celunaConteudo                   = new PdfPCell(new Phrase(ordem.OrdensServicosServicos.ToList()[i].Descricao, fonteNormal));
                    celunaConteudo.FixedHeight       = 15.0f;
                    celunaConteudo.Border            = 0;
                    celunaConteudo.BorderWidthBottom = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaConteudo             = new PdfPCell(new Phrase(String.Format("R${0}", ordem.OrdensServicosServicos.ToList()[i].Valor), fonteNormal));
                    celunaConteudo.FixedHeight = 15.0f;
                    celunaConteudo.Border      = 0;

                    celunaConteudo.HorizontalAlignment = Element.ALIGN_RIGHT;
                    celunaConteudo.BorderWidthBottom   = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaVazia                  = new PdfPCell();
                    celunaVazia.FixedHeight      = 15.0f;
                    celunaVazia.Border           = 0;
                    celunaVazia.BorderWidthRight = larguraBordas;
                    if (i + 1 == ordem.OrdensServicosServicos.Count)
                    {
                        celunaVazia.BorderWidthBottom = larguraBordas;
                    }
                    tabela.AddCell(celunaVazia);
                }
                pdfDoc.Add(tabela);
                #endregion
                #region Materiais
                pdfDoc.Add(this.MontarLinhaSubtitulo("MATERIAIS", 900.12, true));
                pdfDoc.Add(this.MontarCabecalhoTabelaDeItens(TipoItens.Materiais));
                tabela = new PdfPTable(6);
                tabela.WidthPercentage = 100;
                larguras = new float[] { 1f, 45f, 15f, 15f, 10f, 1f };
                tabela.SetWidths(larguras);
                //Percorre a lista de serviços
                for (int i = 0; i < ordem.OrdensServicosMateriais.Count; i++)
                {
                    celunaVazia                 = new PdfPCell();
                    celunaVazia.FixedHeight     = 15.0f;
                    celunaVazia.Border          = 0;
                    celunaVazia.BorderWidthLeft = larguraBordas;
                    if (i + 1 == ordem.OrdensServicosMateriais.Count)
                    {
                        celunaVazia.BorderWidthBottom = larguraBordas;
                    }
                    tabela.AddCell(celunaVazia);
                    celunaConteudo                   = new PdfPCell(new Phrase(ordem.OrdensServicosMateriais.ToList()[i].Descricao, fonteNormal));
                    celunaConteudo.FixedHeight       = 15.0f;
                    celunaConteudo.Border            = 0;
                    celunaConteudo.BorderWidthBottom = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaConteudo                   = new PdfPCell(new Phrase(ordem.OrdensServicosMateriais.ToList()[i].Quantidade.ToString(), fonteNormal));
                    celunaConteudo.FixedHeight       = 15.0f;
                    celunaConteudo.Border            = 0;
                    celunaConteudo.BorderWidthBottom = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaConteudo                   = new PdfPCell(new Phrase(String.Format("R${0}", ordem.OrdensServicosMateriais.ToList()[i].PrecoUnitario), fonteNormal));
                    celunaConteudo.FixedHeight       = 15.0f;
                    celunaConteudo.Border            = 0;
                    celunaConteudo.BorderWidthBottom = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaConteudo                     = new PdfPCell(new Phrase(String.Format("R${0}", ordem.OrdensServicosMateriais.ToList()[i].PrecoTotal), fonteNormal));
                    celunaConteudo.FixedHeight         = 15.0f;
                    celunaConteudo.Border              = 0;
                    celunaConteudo.HorizontalAlignment = Element.ALIGN_RIGHT;
                    celunaConteudo.BorderWidthBottom   = larguraBordas;
                    tabela.AddCell(celunaConteudo);
                    celunaVazia                  = new PdfPCell();
                    celunaVazia.FixedHeight      = 15.0f;
                    celunaVazia.Border           = 0;
                    celunaVazia.BorderWidthRight = larguraBordas;
                    if (i + 1 == ordem.OrdensServicosMateriais.Count)
                    {
                        celunaVazia.BorderWidthBottom = larguraBordas;
                    }
                    tabela.AddCell(celunaVazia);
                }
                pdfDoc.Add(tabela);
                #endregion
                pdfDoc.Add(this.MontarLinhaSubtitulo("Total", 1290.12, false));
                #region Informações adicionais
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                celula        = new PdfPCell(new Phrase("Informações adicionais", fonteNegrito));
                celula.Border = 0;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                celula        = new PdfPCell(new Phrase(ordem.InformacoesAdicionais, new Font(Font.FontFamily.TIMES_ROMAN, 12)));
                celula.Border = 0;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                #endregion
                #region Rodapé
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                tabela.SpacingBefore   = 10f;
                celula        = new PdfPCell(new Phrase(String.Format("São Leopoldo, {0}", DateTime.Now.ToString("dd/MM/yyyy"), fonteNormal)));
                celula.Border = 0;
                celula.HorizontalAlignment = Element.ALIGN_CENTER;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                tabela = new PdfPTable(1);
                tabela.WidthPercentage = 100;
                tabela.SpacingBefore   = 10f;
                celula        = new PdfPCell(new Phrase("Entre Rodas Assistência Técnica Automotiva", fonteNegrito));
                celula.Border = 0;
                celula.HorizontalAlignment = Element.ALIGN_CENTER;
                tabela.AddCell(celula);
                pdfDoc.Add(tabela);
                #endregion
                pdfWriter.CloseStream = true;
                pdfDoc.Close();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 26
0
        private VisualizarServicoViewModel ConfigurVisualizacao(OrdensServicos ordensServicos, List <String> errors)
        {
            VisualizarServicoViewModel model = new VisualizarServicoViewModel();

            #region Dados do serviço
            model.Id = ordensServicos.Id;
            model.CodigoOrdemServico = ordensServicos.CodigoOrdensServicos;
            if (ordensServicos.DataOrcamento != null)
            {
                model.DataOrcamento = ordensServicos.DataOrcamento.ToString("dd/MM/yyyy");
            }
            else
            {
                model.DataOrcamento = "--";
            }
            model.Status = ordensServicos.Status;
            if (model.Status == "F")
            {
                model.AprovacaoCliente = ordensServicos.AprovacaoCliente;
            }
            if (ordensServicos.ProblemaIdentificado != null)
            {
                model.ProblemaIdentificado = ordensServicos.ProblemaIdentificado;
            }
            else
            {
                model.ProblemaIdentificado = "--";
            }
            AspNetUsers funcionario = db.AspNetUsers.Find(ordensServicos.FuncionarioResponsavel);
            if (funcionario != null)
            {
                model.NomeFuncionarioResponsavel = funcionario.Nome;
            }
            else
            {
                model.NomeFuncionarioResponsavel = "--";
            }
            if (ordensServicos.DataFinal != null)
            {
                model.DataFinal = ordensServicos.DataFinal.Value.ToString("dd/MM/yyyy");
            }
            if (ordensServicos.DataInicial != null)
            {
                model.DataInicial = ordensServicos.DataInicial.Value.ToString("dd/MM/yyyy");
            }
            if (ordensServicos.DataInicialPrevista != null)
            {
                model.DataInicialPrevista = ordensServicos.DataInicialPrevista.Value.ToString("dd/MM/yyyy");
            }
            else
            {
                model.DataInicialPrevista = "--";
            }
            model.Materiais = ordensServicos.OrdensServicosMateriais.ToList();
            model.Servicos  = ordensServicos.OrdensServicosServicos.ToList();
            if (ordensServicos.ValorTotal == null)
            {
                model.ValorTotal = String.Format("R${0}", this.CalcularValorTotal(ordensServicos));
            }
            else
            {
                model.ValorTotal = String.Format("R${0}", ordensServicos.ValorTotal);
            }
            if (ordensServicos.FormaPagamento == null)
            {
                model.FormaPagamento = "--";
            }
            else
            {
                if (ordensServicos.FormaPagamento.Trim() == "DI")
                {
                    model.FormaPagamento = "Dinheiro";
                }
                else if (ordensServicos.FormaPagamento.Trim() == "CQ")
                {
                    model.FormaPagamento = "Cheque";
                }
                else if (ordensServicos.FormaPagamento.Trim() == "CA")
                {
                    model.FormaPagamento = "Cartão de crédito";
                }
                else if (ordensServicos.FormaPagamento.Trim() == "TD")
                {
                    model.FormaPagamento = "Todos";
                }
            }
            if (ordensServicos.ValorAPagar == null)
            {
                model.ValorAPagar = "--";
            }
            else
            {
                model.ValorAPagar = String.Format("R${0}", ordensServicos.ValorAPagar);
            }
            if (ordensServicos.ValorCartao == null)
            {
                model.ValorCartao = "--";
            }
            else
            {
                model.ValorCartao = String.Format("R${0}", ordensServicos.ValorCartao);
            }
            if (ordensServicos.ValorDinheiro == null)
            {
                model.ValorDinheiro = "--";
            }
            else
            {
                model.ValorDinheiro = String.Format("R${0}", ordensServicos.ValorDinheiro);
            }
            model.InformacoesAdicionais = ordensServicos.InformacoesAdicionais;
            model.SubTotalMateriais     = String.Format("R${0}", this.CalcularValorTotalDeMateriais(ordensServicos.OrdensServicosMateriais.ToList()));
            model.SubTotalServicos      = String.Format("R${0}", this.CalcularValorTotalDeServicos(ordensServicos.OrdensServicosServicos.ToList()));
            #endregion
            #region Dados do cliente
            model.ClienteId    = ordensServicos.ClienteId;
            model.NomeCliente  = ordensServicos.Clientes.Nome.Trim();
            model.EmailCliente = ordensServicos.Clientes.Email.Trim();
            if (ordensServicos.Clientes.Telefone != null)
            {
                model.FonesCliente = String.Format("{0}/{1}", ordensServicos.Clientes.Telefone.Trim(), ordensServicos.Clientes.Celular.Trim());
            }
            else
            {
                model.FonesCliente = ordensServicos.Clientes.Celular.Trim();
            }
            model.VeiculoId     = ordensServicos.VeiculosId;
            model.ModeloVeiculo = ordensServicos.Veiculos.Modelo.Trim();
            model.PlacaVeiculo  = ordensServicos.Veiculos.Placa.Trim();
            model.AnoVeiculo    = ordensServicos.Veiculos.Ano;
            #endregion
            #region Erros
            if (errors != null)
            {
                if (errors.Count > 0)
                {
                    model.Erros = errors;
                }
            }
            #endregion
            return(model);
        }