コード例 #1
0
ファイル: Principal.cs プロジェクト: markilha/maos_a_obra
        private void GeraReltatorioOrdem_()
        {
            try
            {
                string pasta = Diretorio.CaminhoSalva("Aquivos pdf|*.pdf", "", "RelatorioPorOrdem");

                using (var doc = new Document(iTextSharp.text.PageSize.A4, 40, 40, 50, 50))
                {
                    PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(pasta, FileMode.CreateNew));
                    doc.Open();

                    //Titulo do documento
                    doc.Add(Pdf.addParagrafoCentro("Relatório das Ordens\n\n", Element.ALIGN_CENTER, FontTitulo));

                    List <string> listaDatas  = new List <string>();
                    List <string> listaOrdens = new List <string>();

                    listaDatas = EntradaController.GetLista("DataEntrada");
                    listaDatas.Sort();

                    double Total = 0;


                    if (listaDatas.Count > 0)
                    {
                        InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                            Element.ALIGN_CENTER, Element.ALIGN_CENTER, Element.ALIGN_CENTER
                        }, FontSubTitulo, new List <string> {
                            "QT", "PRODUTO", "SUBTOTAL"
                        });


                        foreach (string data in listaDatas)
                        {
                            doc.Add(Pdf.addParagrafoCentro("\n", Element.ALIGN_CENTER, FontTitulo));

                            //Todos as entrada de um determinada data
                            DataTable valores = EntradaController.GetSqlEntradas($"SELECT * FROM Entradas WHERE DataEntrada = '{data}' ORDER BY DataEntrada");

                            //lista de ordens de uma determinada ordem
                            listaOrdens = EntradaController.GetLista("Ordem", "DataEntrada", data);
                            listaOrdens.Sort();
                            string stringOrdem = "";

                            foreach (string ordem in listaOrdens)
                            {
                                double TotalOrdem        = 0;
                                var    filteredDataTable = valores.Select($"Ordem = '{ordem}'");

                                foreach (DataRow dr in filteredDataTable)
                                {
                                    string descricao = ProdutosController.GetStringProduto(Convert.ToInt32(dr["ProdutoId"].ToString()));

                                    if (ordem != stringOrdem)
                                    {
                                        string fornecedor = FornecedorController.GetStringfornecedor(Convert.ToInt32(dr["FornecedorId"].ToString()));
                                        InserirLinha(doc, new float[] { 100f }, Rectangle.NO_BORDER, new List <int> {
                                            Element.ALIGN_LEFT
                                        }, FontLinhas, new List <string> {
                                            $"ORDEM: {ordem}\nFORNECEDOR: {fornecedor}\nDATACOMPRA: {data}"
                                        });
                                        InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                            Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                        }, FontLinhas, new List <string> {
                                            dr["Quantidade"].ToString(), descricao, dr["Total"].ToString()
                                        });
                                        TotalOrdem = Convert.ToDouble(dr["Total"].ToString());
                                    }
                                    else
                                    {
                                        InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                            Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                        }, FontLinhas, new List <string> {
                                            dr["Quantidade"].ToString(), descricao, dr["Total"].ToString()
                                        });
                                        TotalOrdem += Convert.ToDouble(dr["Total"].ToString());
                                    }

                                    stringOrdem = ordem;
                                }

                                Total += TotalOrdem;
                                InserirLinha(doc, new float[] { 80f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                    Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                                }, FontTotais, new List <string> {
                                    "SUBTOTAL =", " R$ " + TotalOrdem.ToString("N2")
                                });
                            }
                        }
                    }

                    InserirLinha(doc, new float[] { 80f, 20f }, Rectangle.NO_BORDER, new List <int> {
                        Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                    }, FontTotais, new List <string> {
                        "TOTAL =", "R$ " + Total.ToString("N2")
                    });
                    doc.Close();
                    System.Diagnostics.Process.Start(pasta);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #2
0
ファイル: Principal.cs プロジェクト: markilha/maos_a_obra
        private void GeraReltatorioOrdem()
        {
            try
            {
                string pasta = Diretorio.CaminhoSalva("Aquivos pdf|*.pdf", "", "RelatorioPorOrdem");

                using (var doc = new Document(iTextSharp.text.PageSize.A4, 40, 40, 50, 50))
                {
                    PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(pasta, FileMode.CreateNew));
                    doc.Open();

                    //Titulo do documento
                    doc.Add(Pdf.addParagrafoCentro("Relatório das Ordens\n\n", Element.ALIGN_CENTER, FontTitulo));

                    double Total = 0;


                    doc.Add(Pdf.addParagrafoCentro("\n", Element.ALIGN_CENTER, FontTitulo));

                    //Todos as entrada de um determinada data
                    DataTable valores     = EntradaController.GetSqlEntradas("SELECT A.Ordem, B.NomeFantasia, A.DataEntrada, A.quantidade, C.descricao, A.total FROM Entradas as A INNER JOIN Fornecedores as B ON B.Id = A.FornecedorId INNER JOIN Produtos as C on C.Id = A.ProdutoId ORDER by A.DataEntrada DESC;");
                    string    stringOrdem = "";
                    bool      inicio      = true;
                    double    TotalOrdem  = 0;

                    if (valores.Rows.Count > 0)
                    {
                        foreach (DataRow dr in valores.Rows)
                        {
                            DateTime dt   = DateTime.Parse(dr["DATAENTRADA"].ToString());
                            string   data = dt.ToString("dd/MM/yyyy");

                            //var filteredDataTable = valores.Select($"Ordem = '{ordem}'");

                            if (dr["ORDEM"].ToString() != stringOrdem)
                            {
                                if (inicio == true)
                                {
                                    InserirLinha(doc, new float[] { 100f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_LEFT
                                    }, FontLinhas, new List <string> {
                                        $"ORDEM: {dr["ORDEM"].ToString()}\nFORNECEDOR: {dr["NOMEFANTASIA"].ToString()}\nDATA: {data}"
                                    });
                                    InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_CENTER, Element.ALIGN_CENTER, Element.ALIGN_CENTER
                                    }, FontSubTitulo, new List <string> {
                                        "QT", "PRODUTO", "SUBTOTAL"
                                    });
                                    InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                    }, FontLinhas, new List <string> {
                                        dr["QUANTIDADE"].ToString(), dr["DESCRICAO"].ToString(), dr["TOTAL"].ToString()
                                    });
                                    inicio = false;
                                }
                                else
                                {
                                    InserirLinha(doc, new float[] { 80f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                                    }, FontTotais, new List <string> {
                                        "", " R$ " + TotalOrdem.ToString("N2")
                                    });

                                    InserirLinha(doc, new float[] { 100f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_LEFT
                                    }, FontLinhas, new List <string> {
                                        $"ORDEM: {dr["ORDEM"].ToString()}\nFORNECEDOR: {dr["NOMEFANTASIA"].ToString()}\nDATA: {data}"
                                    });
                                    InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_CENTER, Element.ALIGN_CENTER, Element.ALIGN_CENTER
                                    }, FontSubTitulo, new List <string> {
                                        "QT", "PRODUTO", "SUBTOTAL"
                                    });
                                    InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                        Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                    }, FontLinhas, new List <string> {
                                        dr["QUANTIDADE"].ToString(), dr["DESCRICAO"].ToString(), dr["TOTAL"].ToString()
                                    });
                                }

                                TotalOrdem = Convert.ToDouble(dr["Total"].ToString());
                            }
                            else
                            {
                                InserirLinha(doc, new float[] { 10f, 75f, 20f }, Rectangle.NO_BORDER, new List <int> {
                                    Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                }, FontLinhas, new List <string> {
                                    dr["QUANTIDADE"].ToString(), dr["DESCRICAO"].ToString(), dr["TOTAL"].ToString()
                                });
                                TotalOrdem += Convert.ToDouble(dr["TOTAL"].ToString());
                            }

                            stringOrdem = dr["ORDEM"].ToString();
                            Total      += double.Parse(dr["TOTAL"].ToString());
                        }
                    }


                    InserirLinha(doc, new float[] { 80f, 20f }, Rectangle.NO_BORDER, new List <int> {
                        Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                    }, FontTotais, new List <string> {
                        "TOTAL =", "R$ " + Total.ToString("N2")
                    });
                    doc.Close();
                    System.Diagnostics.Process.Start(pasta);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #3
0
ファイル: Principal.cs プロジェクト: markilha/maos_a_obra
        private void GeraReltatorioComprador()
        {
            string pasta = Diretorio.CaminhoSalva("Aquivos pdf|*.pdf", "", "RolComprador");

            using (var doc = new Document(iTextSharp.text.PageSize.A4, 40, 40, 50, 50))
            {
                PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(pasta, FileMode.CreateNew));
                doc.Open();

                PdfPTable pdfTable = new PdfPTable(new float[] { 100f });
                pdfTable.WidthPercentage = 100f;
                Pdf.AddCelula(1, 0, FontTitulo, pdfTable, $"Relatorio Gastros por Compradores\n\n");
                doc.Add(pdfTable);



                List <string> lista = new List <string>();
                lista = EntradaController.GetLista("Comprador");
                lista.Sort();

                double        total      = 0;
                List <string> listaTotal = new List <string>();



                if (lista.Count > 0)
                {
                    foreach (string item in lista)
                    {
                        PdfPTable pdfTable3 = new PdfPTable(new float[] { 100f });
                        pdfTable3.WidthPercentage = 100f;
                        Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.LEFT_BORDER, FontSubTitulo, pdfTable3, item);
                        doc.Add(pdfTable3);

                        PdfPTable pdfTable2 = new PdfPTable(new float[] { 20f, 60f, 20f });
                        pdfTable2.WidthPercentage = 100f;
                        Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.NO_BORDER, FontSubTitulo, pdfTable2, "DATA");
                        Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.NO_BORDER, FontSubTitulo, pdfTable2, "PRODUTO");
                        Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.NO_BORDER, FontSubTitulo, pdfTable2, "SUBTOTAL");
                        doc.Add(pdfTable2);

                        double    valor   = 0;
                        DataTable valores = EntradaController.GetSqlEntradas($"SELECT DATAENTRADA, PRODUTOID,Total FROM Entradas WHERE Comprador = '{item}' ORDER BY DATAENTRADA DESC ");


                        if (valores.Rows.Count > 0)
                        {
                            foreach (DataRow dr in valores.Rows)
                            {
                                string produto = ProdutosController.GetStringProduto(int.Parse(dr["ProdutoId"].ToString()));
                                string data    = DateTime.Parse(dr["DataEntrada"].ToString()).ToString("dd/MM/yyyy");

                                if (dr["Total"].ToString().Length > 0)
                                {
                                    valor += Convert.ToDouble(dr["Total"].ToString());
                                }

                                PdfPTable tab = new PdfPTable(new float[] { 15f, 65f, 20f });
                                tab.WidthPercentage = 100f;
                                Pdf.AddCelula(Element.ALIGN_LEFT, Rectangle.LEFT_BORDER, FontLinhas, tab, data);
                                Pdf.AddCelula(Element.ALIGN_LEFT, Rectangle.LEFT_BORDER, FontLinhas, tab, produto);
                                Pdf.AddCelula(Element.ALIGN_RIGHT, Rectangle.LEFT_BORDER, FontLinhas, tab, dr["Total"].ToString());
                                doc.Add(tab);
                            }
                        }

                        listaTotal.Add($"{item};{valor.ToString("N2")}");

                        doc.Add(Pdf.addParagrafoCentro("\n\n", Element.ALIGN_CENTER, FontTitulo));
                    }
                }


                if (listaTotal.Count > 0)
                {
                    foreach (string item in listaTotal)
                    {
                        string[] vetor = item.Split(';');

                        PdfPTable tab3 = new PdfPTable(new float[] { 80f, 20f });
                        tab3.WidthPercentage    = 100f;
                        tab3.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
                        Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontLinhas, tab3, vetor[0] + ": ");
                        Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontTotais, tab3, $"R$ {vetor[1]}");
                        doc.Add(tab3);

                        total += double.Parse(vetor[1]);
                    }
                }

                PdfPTable pdfTable4 = new PdfPTable(new float[] { 70f, 30f });
                pdfTable4.WidthPercentage    = 100f;
                pdfTable4.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
                Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontLinhas, pdfTable4, "");
                Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontTotais, pdfTable4, $"Total: {total.ToString("N2")}");
                doc.Add(pdfTable4);


                //doc.Add(Pdf.addParagrafoCentro("Relatório\n\n", Element.ALIGN_CENTER, FontTitulo));


                doc.Close();
                System.Diagnostics.Process.Start(pasta);
            }
        }
コード例 #4
0
ファイル: Principal.cs プロジェクト: markilha/maos_a_obra
        private void GeraReltatorioProduto()
        {
            string pasta = Diretorio.CaminhoSalva("Aquivos pdf|*.pdf", "", "");

            using (var doc = new Document(iTextSharp.text.PageSize.A4, 40, 40, 50, 50))
            {
                PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(pasta, FileMode.CreateNew));
                doc.Open();

                //Titulo do documento
                doc.Add(Pdf.addParagrafoCentro("Relatório dos Materiais utilizados\n\n", Element.ALIGN_CENTER, FontTitulo));
                InserirLinha(doc, new float[] { 10f, 70f, 20f }, Rectangle.NO_BORDER, new List <int> {
                    Element.ALIGN_CENTER, Element.ALIGN_CENTER, Element.ALIGN_CENTER
                }, FontSubTitulo, new List <string> {
                    "QT", "Produto", "SubTotal"
                });

                List <string> lista         = new List <string>();
                List <string> ListaProdutos = new List <string>();
                lista = EntradaController.GetLista("Categoria");
                double Total = 0;

                if (lista.Count > 0)
                {
                    foreach (string item in lista)
                    {
                        double TotalCategoria = 0;
                        doc.Add(Pdf.addParagrafoCentro("\n", Element.ALIGN_CENTER, FontTitulo));

                        InserirLinha(doc, new float[] { 100f }, Rectangle.NO_BORDER, new List <int> {
                            Element.ALIGN_CENTER
                        }, FontTitulo, new List <string> {
                            item.ToUpper()
                        });



                        DataTable valores = EntradaController.GetSqlEntradas($"SELECT * FROM Entradas WHERE Categoria = '{item}' ORDER BY Categoria ");

                        //DataRow[] result = valores.Select("Date > #6/1/2001#");
                        List <string> produtos = new List <string>();

                        if (valores.Rows.Count > 0)
                        {
                            foreach (DataRow dr in valores.Rows)
                            {
                                string produto = ProdutosController.GetStringProduto(Convert.ToInt32(dr["ProdutoId"].ToString()));
                                produtos.Add(produto);
                            }
                        }
                        produtos.Sort();
                        string anterior = "";


                        if (produtos.Count > 0)
                        {
                            foreach (string prod in produtos)
                            {
                                if (prod != anterior)
                                {
                                    int    id       = ProdutosController.GetIdProduto(prod);
                                    double contar   = 0;
                                    double subtotal = 0;

                                    DataTable dt = EntradaController.GetSqlEntradas($"SELECT * FROM Entradas WHERE ProdutoId = {id} ");
                                    if (dt.Rows.Count > 0)
                                    {
                                        foreach (DataRow dr in dt.Rows)
                                        {
                                            contar   += Convert.ToDouble(dr["Quantidade"]);
                                            subtotal += Convert.ToDouble(dr["Total"]);
                                        }
                                    }

                                    InserirLinha(doc, new float[] { 10f, 70f, 20f }, Rectangle.LEFT_BORDER, new List <int> {
                                        Element.ALIGN_LEFT, Element.ALIGN_LEFT, Element.ALIGN_RIGHT
                                    }, FontLinhas, new List <string> {
                                        contar.ToString(), prod, "R$ " + subtotal.ToString("N2")
                                    });
                                    Total          += subtotal;
                                    TotalCategoria += subtotal;
                                }

                                anterior = prod;
                            }
                        }
                        InserirLinha(doc, new float[] { 10f, 20f, 70f }, Rectangle.NO_BORDER, new List <int> {
                            Element.ALIGN_RIGHT, Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                        }, FontTotais, new List <string> {
                            "", "", " SUBTOTAL = R$ " + TotalCategoria.ToString("N2")
                        });
                    }
                }

                InserirLinha(doc, new float[] { 10f, 20f, 70f }, Rectangle.NO_BORDER, new List <int> {
                    Element.ALIGN_RIGHT, Element.ALIGN_RIGHT, Element.ALIGN_RIGHT
                }, FontTotais, new List <string> {
                    "", "", " TOTAL = R$ " + Total.ToString("N2")
                });
                doc.Close();
                System.Diagnostics.Process.Start(pasta);
            }
        }
コード例 #5
0
ファイル: Principal.cs プロジェクト: markilha/maos_a_obra
        private void GeraReltatorio()
        {
            string pasta = Diretorio.CaminhoSalva("Aquivos pdf|*.pdf", "", "");

            using (var doc = new Document(iTextSharp.text.PageSize.A4, 40, 40, 50, 50))
            {
                PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream(pasta, FileMode.CreateNew));
                doc.Open();

                PdfPTable pdfTable = new PdfPTable(new float[] { 100f });
                pdfTable.WidthPercentage = 100f;
                Pdf.AddCelula(1, 0, FontTitulo, pdfTable, $"Relatorio Gastros por Fornecedores\n\n");
                doc.Add(pdfTable);

                PdfPTable pdfTable2 = new PdfPTable(new float[] { 70f, 30f });
                pdfTable2.WidthPercentage = 100f;
                Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.NO_BORDER, FontSubTitulo, pdfTable2, "FORNECEDOR");
                Pdf.AddCelula(Element.ALIGN_CENTER, Rectangle.NO_BORDER, FontSubTitulo, pdfTable2, "SUBTOTAL");
                doc.Add(pdfTable2);

                List <string> lista = new List <string>();
                lista = EntradaController.GetLista("FornecedorId");

                double    total = 0;
                DataTable dt    = new DataTable();
                dt.Columns.Add("Fornecedor");
                dt.Columns.Add("Valor");

                if (lista.Count > 0)
                {
                    foreach (string item in lista)
                    {
                        double    valor      = 0;
                        DataTable valores    = EntradaController.GetSqlEntradas($"SELECT Total FROM Entradas WHERE FornecedorId = '{item}' ORDER BY FornecedorId ");
                        string    fornecedor = EntradaController.GetString($"SELECT NomeFantasia FROM Fornecedores where Id ='{item}'", "NomeFantasia");


                        if (valores.Rows.Count > 0)
                        {
                            foreach (DataRow dr in valores.Rows)
                            {
                                if (dr["Total"].ToString().Length > 0)
                                {
                                    valor += Convert.ToDouble(dr["Total"].ToString());
                                }
                            }
                        }



                        dt.Rows.Add(fornecedor, valor.ToString("N2"));

                        total += valor;
                    }
                }

                dt.DefaultView.Sort = "Fornecedor ASC";
                dt = dt.DefaultView.ToTable();

                if (dt.Rows.Count > 0)
                {
                    foreach (DataRow dr in dt.Rows)
                    {
                        PdfPTable pdfTable3 = new PdfPTable(new float[] { 70f, 30f });
                        pdfTable3.WidthPercentage = 100f;
                        Pdf.AddCelula(Element.ALIGN_LEFT, Rectangle.LEFT_BORDER, FontLinhas, pdfTable3, dr["Fornecedor"].ToString());
                        Pdf.AddCelula(Element.ALIGN_RIGHT, Rectangle.LEFT_BORDER, FontLinhas, pdfTable3, dr["Valor"].ToString());
                        doc.Add(pdfTable3);
                    }
                }

                PdfPTable pdfTable4 = new PdfPTable(new float[] { 70f, 30f });
                pdfTable4.WidthPercentage    = 100f;
                pdfTable4.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
                Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontLinhas, pdfTable4, "");
                Pdf.AddCelula(Element.ALIGN_RIGHT, 0, FontTotais, pdfTable4, $"Total: {total.ToString("N2")}");
                doc.Add(pdfTable4);


                //doc.Add(Pdf.addParagrafoCentro("Relatório\n\n", Element.ALIGN_CENTER, FontTitulo));


                doc.Close();
                System.Diagnostics.Process.Start(pasta);
            }
        }