Exemple #1
0
        public async Task <ActionResult> Edit(OSSB ossb)
        {
            if (ModelState.IsValid)
            {
                _db.Configuration.ValidateOnSaveEnabled = false;

                ossb.OCORRENCIA = ossb.OCORRENCIA?.ToUpper() ?? "";

                ossb.PRAZO_EXECUCAO  = String.IsNullOrWhiteSpace(ossb.PRAZO_EXECUCAO) ? null : ossb.PRAZO_EXECUCAO;
                ossb.PRAZO_PAGAMENTO = String.IsNullOrWhiteSpace(ossb.PRAZO_PAGAMENTO) ? null : ossb.PRAZO_PAGAMENTO;

                var entry = _db.Entry(ossb);

                _db.OSSB.Attach(ossb);

                entry.Property(pp => pp.PROJETO).IsModified     = true;
                entry.Property(pp => pp.CLIENTE).IsModified     = true;
                entry.Property(pp => pp.CONTRATO).IsModified    = true;
                entry.Property(pp => pp.LOJA).IsModified        = true;
                entry.Property(pp => pp.RESPONSAVEL).IsModified = true;
                entry.Property(pp => pp.OCORRENCIA).IsModified  = true;

                entry.Property(pp => pp.PORTE).IsModified           = true;
                entry.Property(pp => pp.AMBIENTE).IsModified        = true;
                entry.Property(pp => pp.TIPO).IsModified            = true;
                entry.Property(pp => pp.OBSERVACAO).IsModified      = true;
                entry.Property(pp => pp.PRAZO_EXECUCAO).IsModified  = true;
                entry.Property(pp => pp.PRAZO_PAGAMENTO).IsModified = true;


                _db.SaveChanges();

                return(RedirectToAction("Index", new
                {
                    num = ossb.ID
                }));
            }


            ViewBag.PROJETO = new SelectList(await _db.PROJETO.ToArrayAsync(), "ID", "DESCRICAO", ossb.PROJETO);

            ViewBag.CLIENTE = new SelectList(await _db.PESSOA.Where(p => p.CLIENTE == 1)
                                             .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "NOME_COMPLETO", ossb.CLIENTE);

            ViewBag.RESPONSAVEL = new SelectList(await _db.PESSOA.Where(p => p.RESPONSAVEL == 1)
                                                 .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "NOME_COMPLETO", ossb.RESPONSAVEL);

            ViewBag.ORCAMENTISTA = new SelectList(await _db.PESSOA.Where(p => p.FUNCIONARIO == 1)
                                                  .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "NOME_COMPLETO", ossb.ORCAMENTISTA);

            ViewBag.CONTRATO = new SelectList(await _db.CONTRATO.Where(c => c.SITUACAO == "A")
                                              .Where(c => c.CLIENTE == ossb.CLIENTE).ToArrayAsync(), "ID", "DESCRICAO", ossb.CONTRATO);

            ViewBag.LOJA = new SelectList(await _db.LOJA.Where(l => l.SITUACAO == "A")
                                          .Where(l => l.CLIENTE == ossb.CLIENTE).ToArrayAsync(), "ID", "APELIDO", ossb.LOJA);


            return(View(ossb));
        }
Exemple #2
0
        public async Task <ActionResult> Create(OSSB ossb)
        {
            if (ModelState.IsValid)
            {
                ossb.OCORRENCIA = ossb.OCORRENCIA?.ToUpper() ?? "";


                ossb.PRAZO_EXECUCAO  = String.IsNullOrWhiteSpace(ossb.PRAZO_EXECUCAO) ? null : ossb.PRAZO_EXECUCAO;
                ossb.PRAZO_PAGAMENTO = String.IsNullOrWhiteSpace(ossb.PRAZO_PAGAMENTO) ? null : ossb.PRAZO_PAGAMENTO;

                var returnCode = new SqlParameter("@ReturnCode", System.Data.SqlDbType.Int)
                {
                    Direction = System.Data.ParameterDirection.Output
                };

                var id = await _db.Database.ExecuteSqlCommandAsync("EXEC @ReturnCode = [saobento_sistema].CREATE_ORDEM_SERVICO @RESPONSAVEL, @SUPERVISOR, @CONTRATO, @PROJETO, @CLIENTE, @LOJA, @OCORRENCIA, @PORTE, @AMBIENTE, @TIPO, @SITUACAO, @OBSERVACAO, @ORCAMENTISTA, @PRAZO_PAGAMENTO, @PRAZO_EXECUCAO",
                                                                   returnCode,
                                                                   new SqlParameter("@RESPONSAVEL", (object)ossb.RESPONSAVEL ?? (object)DBNull.Value),
                                                                   new SqlParameter("@SUPERVISOR", (object)ossb.SUPERVISOR ?? (object)DBNull.Value),
                                                                   new SqlParameter("@CONTRATO", (object)ossb.CONTRATO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@PROJETO", (object)ossb.PROJETO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@CLIENTE", (object)ossb.CLIENTE ?? (object)DBNull.Value),
                                                                   new SqlParameter("@LOJA", (object)ossb.LOJA ?? (object)DBNull.Value),
                                                                   new SqlParameter("@OCORRENCIA", (object)ossb.OCORRENCIA ?? (object)DBNull.Value),
                                                                   new SqlParameter("@PORTE", (object)ossb.PORTE ?? (object)DBNull.Value),
                                                                   new SqlParameter("@AMBIENTE", (object)ossb.AMBIENTE ?? (object)DBNull.Value),
                                                                   new SqlParameter("@TIPO", (object)ossb.TIPO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@SITUACAO", (object)ossb.SITUACAO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@OBSERVACAO", (object)ossb.OBSERVACAO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@ORCAMENTISTA", (object)ossb.ORCAMENTISTA ?? (object)DBNull.Value),
                                                                   new SqlParameter("@PRAZO_PAGAMENTO", (object)ossb.PRAZO_PAGAMENTO ?? (object)DBNull.Value),
                                                                   new SqlParameter("@PRAZO_EXECUCAO", (object)ossb.PRAZO_EXECUCAO ?? (object)DBNull.Value)
                                                                   );

                await _db.SaveChangesAsync();

                return(RedirectToAction("Index", new { num = returnCode.Value }));
            }


            ViewBag.PROJETO = new SelectList(await _db.PROJETO.ToArrayAsync(), "ID", "DESCRICAO", ossb.PROJETO);

            ViewBag.CLIENTE = new SelectList(await _db.PESSOA.Where(p => p.CLIENTE == 1)
                                             .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "NOME_COMPLETO", ossb.CLIENTE);

            ViewBag.RESPONSAVEL = new SelectList(await _db.PESSOA.Where(p => p.RESPONSAVEL == 1)
                                                 .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "NOME_COMPLETO", ossb.RESPONSAVEL);

            ViewBag.CONTRATO = new SelectList(await _db.CONTRATO.Where(c => c.SITUACAO == "A")
                                              .Where(c => c.CLIENTE == ossb.CLIENTE).ToArrayAsync(), "ID", "DESCRICAO", ossb.CONTRATO);

            ViewBag.LOJA = new SelectList(await _db.LOJA.Where(l => l.SITUACAO == "A")
                                          .Where(l => l.CLIENTE == ossb.CLIENTE).ToArrayAsync(), "ID", "APELIDO", ossb.LOJA);


            return(View(ossb));
        }
Exemple #3
0
        public async Task <ActionResult> Edit(OSSB ossb)
        {
            if (Session.IsFuncionario())
            {
                if (ModelState.IsValid)
                {
                    _db.Entry(ossb).State = EntityState.Modified;

                    try
                    {
                        await _db.SaveChangesAsync();
                    }
                    catch (DbEntityValidationException e)
                    {
                        StringBuilder sb = new StringBuilder();

                        foreach (var eve in e.EntityValidationErrors)
                        {
                            sb.AppendFormat("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                            eve.Entry.Entity.GetType().Name, eve.Entry.State);
                            sb.AppendLine();

                            foreach (var ve in eve.ValidationErrors)
                            {
                                sb.AppendFormat("- Property: \"{0}\", Error: \"{1}\"",
                                                ve.PropertyName, ve.ErrorMessage);

                                sb.AppendLine();
                            }
                        }

                        throw new Exception(sb.ToString());
                    }
                    return(RedirectToAction("Index", "VisitaInicial"));
                }


                ViewBag.ORCAMENTISTA = new SelectList(await _db.PESSOA.Where(p => p.FORNECEDOR == 1 || p.TERCEIRO == 1)
                                                      .Where(p => p.SITUACAO == "A").ToArrayAsync(), "ID", "RAZAO", ossb.ORCAMENTISTA);

                return(View(ossb));
            }
            else
            {
                return(RedirectToAction("", ""));
            }
        }
        public async Task <ActionResult> Edit(OSSB ossb)
        {
            if (ModelState.IsValid)
            {
                _db.Entry(ossb).State = EntityState.Modified;

                try
                {
                    await _db.SaveChangesAsync();
                }
                catch (DbEntityValidationException e)
                {
                    StringBuilder sb = new StringBuilder();

                    foreach (var eve in e.EntityValidationErrors)
                    {
                        sb.AppendFormat("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        sb.AppendLine();

                        foreach (var ve in eve.ValidationErrors)
                        {
                            sb.AppendFormat("- Property: \"{0}\", Error: \"{1}\"",
                                            ve.PropertyName, ve.ErrorMessage);

                            sb.AppendLine();
                        }
                    }

                    throw new Exception(sb.ToString());
                }

                return(RedirectToAction("Index", "VisitaInicial"));
            }

            return(View(ossb));
        }
Exemple #5
0
        public FileContentResult GetRelatorioPDF(int id = 0)
        {
            if (Session.IsFuncionario())
            {
                OSSB ossb = _db.OSSB
                            .Include(o => o.PESSOA)
                            .Include(o => o.PROJETO1)
                            .Include(o => o.CONTRATO1)
                            .FirstOrDefault(o => o.ID == id);

                if (ossb != null)
                {
                    try
                    {
                        var fs = new MemoryStream();

                        Document doc = new Document(PageSize.A4, 25, 25, 30, 65);

                        PdfWriter writer = PdfWriter.GetInstance(doc, fs);

                        var capturarBytes   = System.IO.File.ReadAllBytes(Server.MapPath(@"~/Images/Capturar.PNG"));
                        var backgroundBytes = System.IO.File.ReadAllBytes(Server.MapPath(@"~/Images/background.png"));

                        writer.PageEvent = new PageEventHandler(this);

                        var albuns = _db.OSSB_ALBUM
                                     .Include(ab => ab.OSSB_IMAGEM)
                                     .Include(ab => ab.OSSB_IMAGEM.Select(im => im.ANEXO1))
                                     .Where(ab => ab.OSSB == id)
                                     .ToArray();

                        doc.Open();

                        {
                            var normalFont = FontFactory.GetFont(FontFactory.TIMES, 10);
                            var normalDesc = FontFactory.GetFont(FontFactory.TIMES, 9);
                            var boldFont   = FontFactory.GetFont(FontFactory.TIMES_BOLD, 10);
                            var titleBold  = FontFactory.GetFont(FontFactory.TIMES_BOLD, 12);

                            {
                                {
                                    Image img = Image.GetInstance(capturarBytes, true);

                                    img.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

                                    doc.Add(img);
                                }


                                doc.Add(new LineSeparator()
                                {
                                    LineColor = new BaseColor(98, 36, 35)
                                });

                                {
                                    var cb = writer.DirectContentUnder;

                                    cb.SaveState();


                                    var img = Image.GetInstance(backgroundBytes, true);

                                    Rectangle r = new Rectangle(doc.PageSize);

                                    img.SetAbsolutePosition(doc.PageSize.GetRight(doc.RightMargin) - img.Right, doc.PageSize.GetBottom(doc.BottomMargin) - img.Bottom);

                                    cb.AddImage(img);

                                    cb.RestoreState();
                                }

                                doc.Add(new Paragraph(new Chunk("São Paulo SP, " + System.DateTime.Today.ToLongDateString(), normalFont)));
                                doc.Add(new Paragraph(Environment.NewLine));
                                doc.Add(new Paragraph(Environment.NewLine));

                                doc.Add(new Paragraph(new Chunk(ossb.PESSOA.RAZAO, normalFont)));

                                if (ossb.LOJA1 != null)
                                {
                                    doc.Add(new Paragraph(new Chunk(ossb.LOJA1.APELIDO, normalFont)));
                                    doc.Add(new Paragraph(new Chunk(ossb.LOJA1.ENDERECO + (String.IsNullOrEmpty(ossb.LOJA1.COMPLEMENTO) ? "" : (", " + ossb.LOJA1.COMPLEMENTO)), normalFont)));
                                }

                                doc.Add(new Paragraph(new Chunk("OS: " + ossb.ID, normalFont)));
                                doc.Add(new Paragraph(new Chunk("STATUS: " + ossb.TEXTO_SITUACAO, normalFont)));



                                doc.Add(new Paragraph(Environment.NewLine));

                                var phrase = new Phrase();

                                phrase.Add(new Chunk("Estamos apresentando nosso ", normalFont));
                                phrase.Add(new Chunk("RELATORIO FOTOGRAFICO", boldFont));
                                phrase.Add(new Chunk(" referente à execução dos serviços em pauta.", normalFont));

                                doc.Add(phrase);

                                doc.Add(new Paragraph(Environment.NewLine));

                                doc.Add(new Paragraph(ossb.OCORRENCIA, normalFont));

                                doc.Add(new Paragraph(Environment.NewLine));

                                phrase = new Phrase();

                                phrase.Add(new Chunk("A nossa atuação será desenvolvida com base nos preceitos estabelecidos na ", normalFont));
                                phrase.Add(new Chunk("POLÍTICA DA QUALIDADE da SÃO BENTO ENGENHARIA", boldFont));
                                phrase.Add(new Chunk(" e as atividades de manutenção serão executadas em conformidade com os Procedimentos de Engenharia e Manutenção, desenvolvidos pela ", normalFont));
                                phrase.Add(new Chunk("SÃO BENTO ENGENHARIA", boldFont));
                                phrase.Add(new Chunk(", ao longo de anos de atuação no mercado.", normalFont));

                                doc.Add(phrase);

                                doc.Add(new Paragraph(Environment.NewLine));

                                doc.Add(new Paragraph(new Chunk("Colocamo-nos à disposição para quaisquer esclarecimentos necessários.", normalFont))
                                {
                                    Alignment = Element.ALIGN_CENTER
                                });
                            }


                            foreach (var album in albuns)
                            {
                                foreach (var imageSplit in TakeChunks(album.OSSB_IMAGEM, 4))
                                {
                                    doc.NewPage();

                                    {
                                        Image img = Image.GetInstance(capturarBytes, true);

                                        img.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

                                        doc.Add(img);

                                        doc.Add(new LineSeparator()
                                        {
                                            LineColor = new BaseColor(98, 36, 35)
                                        });
                                    }

                                    PdfPTable table;

                                    if (imageSplit.Count() == 1)
                                    {
                                        table = new PdfPTable(imageSplit.Count());
                                    }
                                    else
                                    {
                                        table = new PdfPTable(2);
                                    }

                                    table.WidthPercentage = 100;



                                    foreach (var image in imageSplit)
                                    {
                                        var cell = new PdfPCell()
                                        {
                                            BorderWidth = 1,
                                            Padding     = 3
                                        };



                                        Image img = Image.GetInstance(image.ANEXO1.BUFFER, true);
                                        img.ScaleToFit(250, 200);

                                        img.Alignment = iTextSharp.text.Image.ALIGN_CENTER;
                                        cell.AddElement(img);

                                        var p = new Paragraph(new Chunk(image.DESCRICAO, normalDesc));

                                        p.Alignment = Element.ALIGN_CENTER;

                                        cell.AddElement(p);

                                        cell.FixedHeight = 300;

                                        table.AddCell(cell);
                                    }

                                    if (imageSplit.Count() % 2 == 1 && imageSplit.Count() > 1)
                                    {
                                        table.AddCell(new PdfPCell());
                                    }

                                    doc.Add(table);
                                }

                                if (!String.IsNullOrWhiteSpace(album.DESCRICAO))
                                {
                                    doc.NewPage();

                                    {
                                        Image img = Image.GetInstance(capturarBytes, true);

                                        img.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

                                        doc.Add(img);

                                        doc.Add(new LineSeparator()
                                        {
                                            LineColor = new BaseColor(98, 36, 35)
                                        });
                                    }

                                    doc.Add(new Paragraph(new Chunk("CONCLUSÃO", titleBold))
                                    {
                                        Alignment = Element.ALIGN_CENTER
                                    });

                                    doc.Add(new Paragraph(new Chunk(album.DESCRICAO, normalDesc))
                                    {
                                        Alignment = Element.ALIGN_CENTER
                                    });
                                }
                            }
                        }

                        doc.Close();
                        writer.Close();

                        Response.AppendHeader("Content-Disposition", "inline; filename=orcamento.pdf;");

                        return(new FileContentResult(fs.ToArray(), System.Net.Mime.MediaTypeNames.Application.Pdf));
                    }
                    catch (Exception ex)
                    {
                    }
                }

                return(null);
            }
            else
            {
                return(null);
            }
        }
        public async Task <ActionResult> Create(RecorrenciaViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    OSSB ossb = null;

                    var contrato = await _db.CONTRATO.FirstOrDefaultAsync(ct => ct.ID == viewModel.CONTRATO);



                    foreach (var item in viewModel.RECORRENCIA.OrderBy(r => r))
                    {
                        if (ossb == null || new DateTime(item.Year, item.Month, 1) != new DateTime(ossb.DATA_CADASTRO.Year, ossb.DATA_CADASTRO.Month, 1))
                        {
                            ossb = new OSSB()
                            {
                                SITUACAO      = "E",
                                CLIENTE       = viewModel.CLIENTE,
                                CONTRATO      = viewModel.CONTRATO,
                                LOJA          = viewModel.LOJA,
                                OBSERVACAO    = "",
                                OCORRENCIA    = "",
                                PORTE         = "G",
                                AMBIENTE      = "I",
                                TIPO          = "P",
                                PROJETO       = viewModel.PROJETO,
                                DATA_CADASTRO = item.Date,
                            };

                            ossb.OSSB_SERVICO.Add(new OSSB_SERVICO()
                            {
                                DESCRICAO  = contrato.DESCRICAO,
                                SUBDIVISAO = "",
                                OSSB       = ossb.ID,
                                QUANTIDADE = 1,
                                UNIDADE    = viewModel.UNIDADE,
                                VALOR_MO   = Convert.ToDecimal(viewModel.VALOR),
                                VALOR_MA   = 0,
                            });

                            _db.OSSB.Add(ossb);

                            await _db.SaveChangesAsync();
                        }

                        ossb.OSSB_CHECK_LIST.Add(new OSSB_CHECK_LIST()
                        {
                            OSSB = ossb.ID, AGENDADO = item.Add(TimeSpan.Parse(viewModel.DE))
                        });

                        await _db.SaveChangesAsync();
                    }

                    return(RedirectToAction("Index", "Loja", new { id = viewModel.CLIENTE }));
                }


                /*
                 * foreach (var item in viewModel.RECORRENCIA)
                 * {
                 *  var ossb = new OSSB()
                 *  {
                 *      SITUACAO = "I",
                 *      CLIENTE = viewModel.CLIENTE,
                 *      CONTRATO = viewModel.CONTRATO,
                 *      LOJA = viewModel.LOJA,
                 *      OBSERVACAO = "",
                 *      OCORRENCIA = "",
                 *      PORTE = "G",
                 *      AMBIENTE = "I",
                 *      TIPO = "C",
                 *      PROJETO = viewModel.PROJETO,
                 *      DATA_CADASTRO = DateTime.Parse(item.DATA),
                 *  };
                 *
                 *  _db.OSSB.Add(ossb);
                 *
                 *  await _db.SaveChangesAsync();
                 *
                 *  var servico = new OSSB_SERVICO()
                 *  {
                 *      OSSB = ossb.ID,
                 *      SERVICO = int.Parse(item.SERVICO),
                 *      VALOR_MO = decimal.Parse(viewModel.VALOR),
                 *      QUANTIDADE = decimal.Parse(viewModel.QUANTIDADE),
                 *      AREA_MANUTENCAO = int.Parse(item.AREA_MANUTENCAO),
                 *      UNIDADE = viewModel.UNIDADE,
                 *  };
                 *
                 *  _db.OSSB_SERVICO.Add(servico);
                 *
                 *  await _db.SaveChangesAsync();
                 * }
                 * }
                 */
                catch (DbEntityValidationException e)
                {
                    StringBuilder sb = new StringBuilder();

                    foreach (var eve in e.EntityValidationErrors)
                    {
                        sb.AppendFormat("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                        eve.Entry.Entity.GetType().Name, eve.Entry.State);
                        sb.AppendLine();

                        foreach (var ve in eve.ValidationErrors)
                        {
                            sb.AppendFormat("- Property: \"{0}\", Error: \"{1}\"",
                                            ve.PropertyName, ve.ErrorMessage);

                            sb.AppendLine();
                        }
                    }

                    throw new Exception(sb.ToString());
                }
            }

            ViewBag.PROJETO = new SelectList(await _db
                                             .PROJETO
                                             .ToArrayAsync(), "ID", "DESCRICAO", viewModel.PROJETO);

            ViewBag.CONTRATO = new SelectList(await _db
                                              .CONTRATO.Where(l => l.SITUACAO == "A" && l.CLIENTE == viewModel.CLIENTE)
                                              .ToArrayAsync(), "ID", "DESCRICAO", viewModel.CONTRATO);

            ViewBag.UNIDADE = new SelectList(await _db.
                                             UNIDADE.ToArrayAsync(), "ID", "SIGLA", viewModel.UNIDADE);

            return(View(viewModel));
        }