Exemple #1
0
        public InvoiceForm(int id)
        {
            InitializeComponent();

            user = new Users();

            my_controller = new InvoiceController();

            this.Find_btn.Click += new System.EventHandler(my_controller.Find_btn_Click);
            this.Send_btn.Click += new System.EventHandler(my_controller.Send_btn_Click);
            this.Preview_btn.Click += new System.EventHandler(my_controller.Preview_btn_Click);
            Issued.Value = DateTime.Today;

            //Combobox datasource fill in
            t = new Term();
            DataTable ts = new DataTable();
            ts = t.get().Tables[0];
            txtTerm.DataSource = ts;
            txtTerm.DisplayMember = ts.Columns[0].ToString();

            //User label
            userid = id;
            setup(userid.ToString(), "FAFOS Invoice Form");

            DataTable dt = new SalesOrder().getDone(userid.ToString()).Tables[0];
            DataTable orders = dt.Clone();
            orders.Rows.Add(new String[] { "", "0" });
            foreach (DataRow r in dt.Rows)
                orders.ImportRow(r);

            txtSalesOrder.DataSource = orders;
            txtSalesOrder.DisplayMember = orders.Columns[0].ToString();
            txtSalesOrder.ValueMember = orders.Columns[1].ToString();
        }
Exemple #2
0
        public View()
        {
            InitializeComponent();

            services = new ContractService[30];
            orders = new WorkOrder[30];

            pnlLogin.Location = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width / 2 - Convert.ToInt32(pnlLogin.Size.Width) / 2,
                System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height / 2 - Convert.ToInt32(pnlLogin.Size.Height) / 2);

            pnlMenu.Size = new System.Drawing.Size(pnlMenu.Size.Width,
                System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height);
            lblTitleFAFOS.Location = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - lblTitleFAFOS.Size.Width,
                lblTitleFAFOS.Location.Y);

            user = new Users();

            screenWidth = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width;
            screenHeight = System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height;
            this.Size = new System.Drawing.Size((int)screenWidth, (int)screenHeight);

            FireAlertLogo.Location = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - 350,40);
            SEdgeLogo.Location = new Point(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - 250,
                System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height - 100);

            pnlPage.Size = new Size(System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Width - pnlPage.Location.X,
                System.Windows.Forms.SystemInformation.PrimaryMonitorSize.Height - pnlPage.Location.Y);
        }
        public SupplierForm(MaintainClientController parent)
        {
            InitializeComponent();
            my_controller = parent;

            noChanges = true;

            #region Form Event Handlers

            this.txtSupplierSelect.SelectedValueChanged += new System.EventHandler(my_controller.Supplier_Changed);
            this.btnAddSupplier.Click += new System.EventHandler(my_controller.add_supplier_btn_click);
            this.btnDeleteSupplier.Click += new System.EventHandler(my_controller.delete_supplier_btn_click);
            #endregion

            here: try { SetSupplierBox(Supplier.GetList(), "0"); }
            catch (Exception)
            {
                if (MessageBox.Show("Error connecting to Database\nDo you want to retry?", "Connection Problems", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    goto here;
            }

            //User label
            user = new Users();

            setup(userid.ToString(), "FAFOS Supplier Form");
        }
 public InventoryController()
 {
     franchisee_inventory = new Inventory();
     //inventory_transaction = new InventoryTransaction();
     category = new Category();
     supplier = new Supplier();
     user = new Users();
 }
Exemple #5
0
        public PaymentForm(int id)
        {
            InitializeComponent();

            //User label
            userid = id;
            user = new Users();
            setup(userid.ToString(), "FAFOS Payment Form");

            payment = new Payment();
            txtInvoice.DataSource = payment.getNotPaid(userid);
            txtInvoice.DisplayMember = "id";
            txtInvoice.ValueMember = "id";

            // Enable the owner draw on the ComboBox.
            this.txtInvoice.DrawMode = DrawMode.OwnerDrawFixed;
            // Handle the DrawItem event to draw the items.
            this.txtInvoice.DrawItem += delegate(object cmb, DrawItemEventArgs args)
            {
                // Draw the default background
                args.DrawBackground();

                // The ComboBox is bound to a DataTable,
                // so the items are DataRowView objects.
                DataRowView drv = (DataRowView)this.txtInvoice.Items[args.Index];

                // Retrieve the value of each column.
                string paymentid = drv["id"].ToString();
                string date = drv["Date Issued"].ToString();
                string due = drv["Date Due"].ToString();
                string total = drv["Total"].ToString();
                // Get the bounds for the first column
                Rectangle r1 = args.Bounds;
                r1.Width =400/ 4;

                // Draw the text on the first column
                using (SolidBrush sb = new SolidBrush(args.ForeColor))
                {
                    args.Graphics.DrawString(paymentid,  new Font(args.Font.FontFamily, args.Font.Size, FontStyle.Bold), sb, r1);
                }

                Rectangle r2 = drawColumns(args, r1, date, 100);
               Rectangle r3 = drawColumns(args, r2, due,200);
               drawColumns(args, r3, total, 300);

               txtInvoice.DropDownWidth = 450;

            };
        }
Exemple #6
0
        public PurchaseRecord(int id)
        {
            InitializeComponent();
            my_controller = new InventoryController();

            this.Load += new EventHandler(my_controller.purchaseLoad);
            this.comboSupplier.SelectedIndexChanged +=new EventHandler(my_controller.fillItemList);
            this.purchaseRecordsdgv.CellValueChanged +=new DataGridViewCellEventHandler(my_controller.PurchaseRecords_CellValueChanged);
            this.purchaseRecordsdgv.CellValidated += new DataGridViewCellEventHandler(PurchaseRecords_CellValidated);
            this.SavePurchase_btn.Click +=new EventHandler(my_controller.purchaseRecord_btn_Click);

            //User label
            user = new Users();
            userid = id;
               // lblUserInfo.Text = "Logged in:\n " + user.getName(Convert.ToInt32(userid));
            setup(userid.ToString(), "FAFOS Purchase Records");
        }
Exemple #7
0
        public InventoryForm(int id)
        {
            InitializeComponent();
            my_controller = new InventoryController();
            userid = id;

            this.Save_btn.Click += new System.EventHandler(my_controller.Save_btn_Click);
            this.AddProduct_btn.Click += new System.EventHandler(my_controller.addProduct_btn_Click);
            this.AddService_btn.Click += new EventHandler(my_controller.addService_btn_Click);
            this.Load += new System.EventHandler(my_controller.Load);
            this.productsdgv.ColumnHeaderMouseClick +=new DataGridViewCellMouseEventHandler(productsdgv_ColumnHeaderMouseClick);
            this.productsdgv.CellContentClick+=new DataGridViewCellEventHandler(my_controller.Delete_Product_btn_Click);
            this.servicesdgv.CellContentClick+=new DataGridViewCellEventHandler(my_controller.Delete_Service_btn_Click);
            this.productsdgv.AutoGenerateColumns = false;
            productsdgv.DataError += new DataGridViewDataErrorEventHandler(productsdgv_DataError);
            servicesdgv.DataError += new DataGridViewDataErrorEventHandler(servicesdgv_DataError);
            productsdgv.CellEndEdit += new DataGridViewCellEventHandler(productsdgv_CellEndEdit);
            servicesdgv.CellEndEdit += new DataGridViewCellEventHandler(servicesdgv_CellEndEdit);

            //User label
            user = new Users();
            userid = id;
            setup(userid.ToString(), "FAFOS Inventory");
        }
Exemple #8
0
        // update the view
        public void Preview(String address, String clientInfo, String franchiseeInfo)
        {
            try
            {
                //start creating the PDF

                //Create a Catalog Dictionary
                CatalogDict catalogDict = new CatalogDict();

                //Create a Page Tree Dictionary
                PageTreeDict pageTreeDict = new PageTreeDict();

                //Create a Font Dictionary - Only the standard fonts Time, Helvetica and courier etc can be created by this method.
                //See Adobe doco for more info on other fonts
                FontDict TimesRoman = new FontDict();
                FontDict TimesItalic = new FontDict();
                FontDict TimesBold = new FontDict();
                FontDict Courier = new FontDict();

                //Create the info Dictionary
                InfoDict infoDict = new InfoDict();
                Invoice invoice = new Invoice();
                //Create the font called Times Roman
                TimesRoman.CreateFontDict("T1", "Times-Roman");

                //Create the font called Times Italic
                TimesItalic.CreateFontDict("T2", "Times-Italic");

                //Create the font called Times Bold
                TimesBold.CreateFontDict("T3", "Times-Bold");

                //Create the font called Courier
                Courier.CreateFontDict("T4", "Courier");

                //Set the info Dictionary. xxx will be the invoice number
                infoDict.SetInfo("Invoice " + invoice.getID(), "System Generated", "Fire-Alert");

                //Create a utility object
                Utility pdfUtility = new Utility();
                String FilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\Invoice.pdf";

                //Open a file specifying the file name as the output pdf file

                FileStream file = new FileStream(FilePath, FileMode.Create);
                int size = 0;
                file.Write(pdfUtility.GetHeader("1.5", out size), 0, size);
                file.Close();

                //Finished the first step
                //Create a Page Dictionary , this represents a visible page
                PageDict page = new PageDict();
                ContentDict content = new ContentDict();

                //The page size object will hold all the page size information
                //also holds the dictionary objects for font, images etc.
                //A4 595,842
                //Letter 612,792
                PageSize pSize = new PageSize(612, 792); //A4 paper portrait in 1/72" measurements
                pSize.SetMargins(10, 10, 10, 10);

                //create the page main details
                page.CreatePage(pageTreeDict.objectNum, pSize);

                //add a page
                pageTreeDict.AddPage(page.objectNum);

                //add the fonts to this page
                page.AddResource(TimesRoman, content.objectNum);
                page.AddResource(TimesItalic, content.objectNum);
                page.AddResource(TimesBold, content.objectNum);
                page.AddResource(Courier, content.objectNum);

                //Create a Text And Table Object that presents the text elements in the page
                TextAndTables textAndtable = new TextAndTables(pSize);

                //create the reference to an image and the data that represents it
                String ImagePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\logo.jpg";   //file path to image source
                ImageDict I1 = new ImageDict();                     //new image dictionary object
                I1.CreateImageDict("I1", ImagePath);                //create the object which describes the image
                page.AddImageResource(I1.PDFImageName, I1, content.objectNum);  //create a reference where the PDF can identify which object
                //describes the image when we want to draw it on the page

                /*
                 * draw the image to page (add the instruction to the content stream which says draw the image called I1 starting
                 * at X = 269, Y = 20 and with an ACTUAL image size on the page of w = 144 and h = 100)
                 */
                PageImages pi = new PageImages();
                content.SetStream(pi.ShowImage("I1", 400, 680, 155, 85));   //tell the PDF we want to draw an image called 'I1', where and what size

                String[] sAd = new String[6];
                sAd = address.Split(',');

                String[] client = new String[9];
                client = clientInfo.Split(',');

                String[] franchisee = new String[6];
                franchisee = franchiseeInfo.Split(',');

                String userInfo = new Users().get(userid.ToString());
                String[] user = new String[4];
                user = userInfo.Split(',');

                //Add text to the page
                textAndtable.AddText(50, 50, "Invoice: "+invoice.getID(), 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 60, "Total: " + txtTotal.Text, 10, "T3", Align.LeftAlign);

                textAndtable.AddText(50, 100, "Bill To: "+client[0], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 110, client[4], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 120, client[6] + ", " + client[7] + ", " + client[8] + " " + client[2], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 130, "Primary Contact: "+client[5], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 140, "Ph: "+client[3], 10, "T1", Align.LeftAlign);

                textAndtable.AddText(300, 100, "Forward Payment To: ", 10, "T3", Align.LeftAlign);
                textAndtable.AddText(300, 110, franchisee[5], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(300, 120, franchisee[0], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 130, franchisee[2] + ", " + franchisee[3] + ", " + franchisee[4] + " " + franchisee[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 140, "Contact: " + user[0]+ " "+ user[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 150, "Ph: " + user[2], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 160, "Email: " + user[3], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 170, "Web: http://www.fire-alert.ca", 10, "T1", Align.LeftAlign);

                textAndtable.AddText(50, 150, "WO, ID: "+txtSalesOrder.SelectedValue.ToString(), 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 160, "Service Address: ", 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 170, sAd[0], 10, "T1", Align.LeftAlign);
               // textAndtable.AddText(50, 180, sAd[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 180, sAd[3]+ ", "+sAd[4]+", "+sAd[5]+" "+sAd[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 190, "On-site Contact: ", 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 200, sAd[2], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 210, "Date of Service: ", 10, "T1", Align.LeftAlign);

                //Add table to the page
                Align[] alignC = new Align[4];
                alignC[0] = Align.CenterAlign;
                alignC[1] = Align.CenterAlign;
                alignC[2] = Align.CenterAlign;
                alignC[3] = Align.CenterAlign;

                Align[] alignR = new Align[4];
                alignR[0] = Align.LeftAlign;
                alignR[1] = Align.LeftAlign;
                alignR[2] = Align.LeftAlign;
                alignR[3] = Align.LeftAlign;

                //Specify the color for the cell and the line
                ColorSpec cellColor = new ColorSpec(196, 34, 34);
                ColorSpec lineColor = new ColorSpec(1, 1, 1);

                //Fill in the parameters for the table
                TableParams table = new TableParams(4, 235, 90, 75, 75);
                table.yPos = 550;
                table.xPos = 50;
                table.rowHeight = 15;

                //Set the parameters of this table
                textAndtable.SetParams(table, cellColor, Align.CenterAlign, 3);
                textAndtable.AddRow(false, 8, "T3", alignC, true, "Terms", "Purchase Order", "Date Issued", "Due Date");
                //After drawing table and text add them to the page
                content.SetStream(textAndtable.EndTable(lineColor,true));

                TextAndTables textAndtable2 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell1 = new ColorSpec(255, 255, 255);
                ColorSpec line1 = new ColorSpec(1, 1, 1);
                TableParams table2 = new TableParams(4, 235, 90, 75, 75);
                table2.yPos = 535;
                table2.xPos = 50;
                table2.rowHeight = 15;
                textAndtable2.SetParams(table2, cell1, Align.CenterAlign, 3);
                textAndtable2.AddRow(false, 8, "T3", alignR, false, "Net"+txtTerm.Text, txtSalesOrder.SelectedValue.ToString(),
                    Issued.Value.ToShortDateString(), Issued.Value.AddDays(Convert.ToDouble(txtTerm.Text)).ToShortDateString());
                content.SetStream(textAndtable2.EndTable(line1, true));

                Align[] alignC2 = new Align[7];
                alignC2[0] = Align.CenterAlign;
                alignC2[1] = Align.CenterAlign;
                alignC2[2] = Align.CenterAlign;
                alignC2[3] = Align.CenterAlign;
                alignC2[4] = Align.CenterAlign;
                alignC2[5] = Align.CenterAlign;
                alignC2[6] = Align.CenterAlign;

                Align[] alignR2 = new Align[7];
                alignR2[0] = Align.LeftAlign;
                alignR2[1] = Align.LeftAlign;
                alignR2[2] = Align.LeftAlign;
                alignR2[3] = Align.LeftAlign;
                alignR2[4] = Align.RightAlign;
                alignR2[5] = Align.RightAlign;
                alignR2[6] = Align.RightAlign;

                TextAndTables textAndtable3 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell2 = new ColorSpec(196, 34, 34);
                ColorSpec line2 = new ColorSpec(1, 1, 1);
                TableParams table3 = new TableParams(7, 15, 100, 160, 40,40,60,60);
                table3.yPos = 510;
                table3.xPos = 50;
                table3.rowHeight = 15;
                textAndtable3.SetParams(table3, cell2, Align.CenterAlign, 3);
                textAndtable3.AddRow(false, 8, "T3", alignC2, true, "#", "Item", "Description", "Hours", "Qty", "Price", "Line Total");
                content.SetStream(textAndtable3.EndTable(line2, true));

                TextAndTables textAndtable4 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell3 = new ColorSpec(255, 255, 255);
                ColorSpec line3 = new ColorSpec(1, 1, 1);
                TableParams table4 = new TableParams(7, 15, 100, 160, 40, 40, 60, 60);
                table4.yPos = 495;
                table4.xPos = 50;
                table4.rowHeight = 15;
                textAndtable4.SetParams(table4, cell3, Align.CenterAlign, 3);
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    textAndtable4.AddRow(false, 8, "T3", alignR2, false, dataGridView1.Rows[i].Cells[0].Value.ToString(),
                        dataGridView1.Rows[i].Cells[1].Value.ToString(), dataGridView1.Rows[i].Cells[2].Value.ToString(),
                        dataGridView1.Rows[i].Cells[3].Value.ToString(), dataGridView1.Rows[i].Cells[4].Value.ToString(),
                        dataGridView1.Rows[i].Cells[5].Value.ToString(), dataGridView1.Rows[i].Cells[6].Value.ToString());
                }
                content.SetStream(textAndtable4.EndTable(line3, true));

                textAndtable.AddText(400, 650, "Subtotal ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 665, "HST ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 680, "Total ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 695, "Payment Made ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 710, "Balance Due ", 10, "T1", Align.LeftAlign);

                TextAndTables textAndtable5 = new TextAndTables(pSize);
                Align[] align = new Align[1];
                align[0] = Align.RightAlign;
                //Specify the color for the cell and the line
                TableParams table5 = new TableParams(1,60);
                table5.yPos = 152;
                table5.xPos = 100;
                table5.rowHeight = 15;
                textAndtable5.SetParams(table5, cell3, Align.RightAlign, 3);
                textAndtable5.AddRow(false, 10, "T3", align, false, txtSub.Text);
                textAndtable5.AddRow(false, 10, "T3", align, false, txtTax.Text);
                content.SetStream(textAndtable5.EndTable(line3, true));

                TextAndTables textAndtable6 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                TableParams table6 = new TableParams(1, 60);
                table6.yPos = 122;
                table6.xPos = 100;
                table6.rowHeight = 15;
                textAndtable6.SetParams(table6, cell2, Align.RightAlign, 3);
                textAndtable6.AddRow(false, 10, "T3", align, true, txtTotal.Text);

                if (txtAmount.Text =="")
                    txtAmount.Text="$0.00";
                textAndtable6.AddRow(false, 10, "T3", align, true, "$" + String.Format("{0:0.00}", Math.Round(Convert.ToDouble(txtAmount.Text.Replace("$", "")))));
                textAndtable6.AddRow(false, 10, "T3", align, true, "$" + String.Format("{0:0.00}", Math.Round(Convert.ToDouble(txtTotal.Text.Replace("$", "")) -
                    Convert.ToDouble(txtAmount.Text.Replace("$", "")), 2)));
                content.SetStream(textAndtable6.EndTable(line2, true));

                content.SetStream(textAndtable.EndText());

                //All done - send the information to the PDF file

                size = 0;
                file = new FileStream(FilePath, FileMode.Append);
                file.Write(page.GetPageDict(file.Length, out size), 0, size);
                file.Write(content.GetContentDict(file.Length, out size), 0, size);
                file.Close();

                file = new FileStream(FilePath, FileMode.Append);
                file.Write(catalogDict.GetCatalogDict(pageTreeDict.objectNum, file.Length, out size), 0, size);
                file.Write(pageTreeDict.GetPageTree(file.Length, out size), 0, size);
                file.Write(TimesRoman.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesItalic.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesBold.GetFontDict(file.Length, out size), 0, size);
                file.Write(Courier.GetFontDict(file.Length, out size), 0, size);

                //write image dict
                file.Write(I1.GetImageDict(file.Length, out size), 0, size);

                file.Write(infoDict.GetInfoDict(file.Length, out size), 0, size);
                file.Write(pdfUtility.CreateXrefTable(file.Length, out size), 0, size);
                file.Write(pdfUtility.GetTrailer(catalogDict.objectNum, infoDict.objectNum, out size), 0, size);
                file.Close();

                //Messages.Visible = true;
                Preview testDialog = new Preview(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\Invoice.pdf");
                testDialog.ShowDialog(this);
            }
            catch (Exception ex)
            {
               MessageBox.Show("Could not display the document with the incorrect Information");
            }
        }
Exemple #9
0
        private void generateReport()
        {
            try
            {
                String equipmentName = "";

                document = new Document(PageSize.LETTER);

                String FilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\" + inspectionType.Text + "_" + DateTime.Today.ToString("yyyy-MM-dd") +".pdf";

                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(FilePath, FileMode.OpenOrCreate));
                document.Open();

                document.AddTitle("Report");
                document.AddSubject("Equipment Report");
                document.AddKeywords("Csharp, PDF, iText");
                document.AddAuthor("");
                document.AddCreator("");

                iTextSharp.text.Image pdfLogo = iTextSharp.text.Image.GetInstance(AppDomain.CurrentDomain.BaseDirectory + "\\Resources\\" + "logo.JPG");

                pdfLogo.Alignment = iTextSharp.text.Image.ALIGN_RIGHT;
                pdfLogo.ScaleAbsolute(150, 85);

                document.Add(pdfLogo);
                Paragraph preface = new Paragraph("Fire-Alert" + "\n" + "Report of " + inspectionType.Text + "\n", TimesTitle);

                preface.Alignment = Element.ALIGN_CENTER;

                document.Add(preface);
                document.Add(new Paragraph(" "));

                #region Inspection table

                PdfPTable inspectionTable = new PdfPTable(1);

                if (inspectionType.Text.Contains("Extinguisher"))
                    equipmentName = "Extinguisher";
                else if (inspectionType.Text.Contains("Hose"))
                    equipmentName = "FireHoseCabinet";
                else if (inspectionType.Text.Contains("Light"))
                    equipmentName = "EmergencyLight";

                // Load XML inspection file from resources
                string url = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\inspection.xml";
                XmlDocument doc = new System.Xml.XmlDocument();
                doc.Load(url);
                XmlElement docElement = doc.DocumentElement;

                // loop through all childNodes
                XmlNode start = docElement.FirstChild;              // franchisee
                foreach (XmlNode c1 in start)                       // contracts
                {
                    foreach (XmlNode c2 in c1.ChildNodes)        // addresses
                    {

                        // Skip if not matching contract ID
                        if (Convert.ToInt32(c2.Attributes["id"].InnerText) == Convert.ToInt32(addressBox.SelectedValue))
                        {
                            Console.WriteLine(Convert.ToInt32(c1.Attributes["id"].InnerText));
                            Console.WriteLine(Convert.ToInt32(addressBox.SelectedValue));

                            #region Address info table

                            PdfPTable addrTable = new PdfPTable(4);
                            addrTable.HorizontalAlignment = Element.ALIGN_LEFT;
                            addrTable.TotalWidth = 530f;
                            addrTable.LockedWidth = true;

                            float[] addrWidths = new float[] { 50f, 100f, 50f, 100f };
                            addrTable.SetWidths(addrWidths);

                            XmlAttributeCollection billTo = c1.ParentNode.Attributes;
                            XmlAttributeCollection location = c2.Attributes;

                            string[] billToAddr = billTo["address"].InnerText.Split(',');

                            addCell(addrTable, "Bill To:", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, billTo["name"].InnerText, 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, "Location:", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);

                            addCell(addrTable, location["contact"].InnerText, 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);
                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, billToAddr[0], 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, location["address"].InnerText, 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);
                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, billToAddr[2] + "," + billToAddr[1], 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, location["city"].InnerText, 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);
                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, billToAddr[3], 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, " ", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, location["postalCode"].InnerText, 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, "Tel:", 2, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, new Franchisee().getAddress(Convert.ToInt32(start.Attributes["id"].InnerText))[0], 2, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            String clientInfo = new Client().get(new ClientContract().getClient(addressBox.SelectedValue.ToString()));
                            String[] client = new String[9];
                            client = clientInfo.Split(',');

                            if (client.Length < 6)
                                client = new String[6] {"", "", "", "", "", "No client found" };

                            addCell(addrTable, "Contact:", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, client[5], 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);
                            addCell(addrTable, "Tel:", 1, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, client[3], 1, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, " ", 4, 4, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            string technicianID = c2.Attributes["InspectorID"].InnerText;
                            string technicianName = new Users().getName(Convert.ToInt32(technicianID));
                            if (technicianName == null || technicianName == "")
                                technicianName = "Technician Not Found";

                            addCell(addrTable, "Technician: ", 2, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, technicianName, 2, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            addCell(addrTable, "Date: ", 2, 1, 0, BaseColor.WHITE, Times, PdfPCell.ALIGN_RIGHT);
                            addCell(addrTable, DateTime.Now.ToString("MMMM d, yyyy"), 2, 1, 0, BaseColor.WHITE, TimesRegular, PdfPCell.ALIGN_LEFT);

                            for (int i = 0; i < addrTable.Rows.Count; i++)
                                for (int j = 0; j < addrTable.Rows[i].GetCells().Length; j++)
                                {
                                    if (addrTable.Rows[i].GetCells()[j] == null)
                                        continue;

                                    if (j % 2 != 0)     // Add bottom border to info cells
                                        addrTable.Rows[i].GetCells()[j].Border = iTextSharp.text.Rectangle.BOTTOM_BORDER;
                                    else                // Remove bottom border from titles
                                        addrTable.Rows[i].GetCells()[j].Border = iTextSharp.text.Rectangle.NO_BORDER;
                                }

                            #endregion

                            document.Add(addrTable);

                            foreach (XmlNode c3 in c2.ChildNodes)   // floors
                            {
                                foreach (XmlNode c4 in c3.ChildNodes)    //rooms
                                {
                                    bool isFirstEquipment = true;
                                    int itemNum = 1;
                                    foreach (XmlNode c5 in c4.ChildNodes)    // equipment
                                    {
                                        if (c5.Name.Equals(equipmentName))
                                        {
                                            #region Set up header

                                            if (isFirstEquipment)   // Set up table header based on first piece of equipment
                                            {
                                                isFirstEquipment = false;

                                                inspectionTable = new PdfPTable(c5.Attributes.Count + c5.ChildNodes.Count + 1);
                                                inspectionTable.HorizontalAlignment = 0;
                                                inspectionTable.TotalWidth = 530f;
                                                inspectionTable.LockedWidth = true;
                                                float []iWidths = new float[c5.Attributes.Count + c5.ChildNodes.Count + 1];

                                                iWidths[0] = 20f;
                                                for (int i = 1; i < iWidths.Length; i++)
                                                {
                                                    if (i < c5.Attributes.Count + 1)
                                                        iWidths[i] = 35f;
                                                    else
                                                        iWidths[i] = 20f;
                                                }
                                                inspectionTable.SetWidths(iWidths);

                                                createHeader(inspectionTable, c5);
                                            }

                                            #endregion

                                            addEquipmentRow(inspectionTable, c5, itemNum);
                                            itemNum++;
                                        }

                                    }
                                }
                            }
                        }
                    }
                }
                document.Add(new Paragraph(" "));
                document.Add(inspectionTable);

                #endregion

                document.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Could not display the document because " + ex.ToString());
            }
        }
        /********************************* Constructor *******************************/
        public AddEditContractForm(MaintainClientController parent,bool edit, int id,String ctID)
        {
            InitializeComponent();
            my_controller = parent;
            isEdit = edit;
            userid = id;
            contractID = ctID;
            noChanges = true;

            #region Handlers

            this.Ok_Button.Click += new EventHandler(my_controller.Contract_Ok_Button_Click);
            this.FormClosing += new FormClosingEventHandler(my_controller.Contract_Closing);
            this.delete_Button.Click += new EventHandler(my_controller.Contract_Delete_Button_Click);

            this.ServiceAddrGridView.CellContentClick += new DataGridViewCellEventHandler(my_controller.Contract_Cell_Click);
            this.ServiceAddrGridView.CellValueChanged += new DataGridViewCellEventHandler(ServiceAddrGridView_CellValueChanged);
            this.ServiceAddrGridView.RowsAdded += new DataGridViewRowsAddedEventHandler(ServiceAddrGridView_RowsAdded);

            this.linkableClientBox.SelectedValueChanged += new EventHandler(my_controller.Contract_ClientBox_Select_Changed);
            this.TermsBox.TextChanged += new EventHandler(my_controller.Contract_Text_Changed);
            this.StartDatePicker.ValueChanged += new EventHandler(my_controller.Contract_Text_Changed);
            this.EndDatePicker.ValueChanged += new EventHandler(my_controller.Contract_Text_Changed);
            this.contractNameBox.TextChanged += new EventHandler(my_controller.Contract_Text_Changed);
            #endregion

            if (isEdit)
            {
                #region Set Edit Fields
                DataTable contracts = MClientContract.GetList();
                nameComboBox = new ComboBox();
                nameComboBox.Location = new Point(511, 25);
                nameComboBox.Font = new Font(nameComboBox.Font.FontFamily, 8);
                nameComboBox.Size = new Size(195, 28);

                DataTable dt = new DataTable();
                dt = contracts.Clone();
                dt.Rows.Add(new String[]{null,"<Select Contract>"});
                foreach (DataRow r in contracts.Rows)
                    dt.ImportRow(r);

                nameComboBox.DataSource = dt;
                nameComboBox.DisplayMember = dt.Columns[1].ToString();
                nameComboBox.ValueMember = dt.Columns[0].ToString();

                nameComboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                nameComboBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
                for (int i = 0; i < contracts.Rows.Count; i++)
                    nameComboBox.AutoCompleteCustomSource.Add(contracts.Rows[i][1].ToString());

                nameComboBox.SelectedValueChanged += new EventHandler(my_controller.Edit_Contract_Populate);
                this.Controls.Add(nameComboBox);
                #endregion
            }
            if (!isEdit)
            {
                ClientOptions(true);
            }

            //User label
            userid = id;
            user = new Users();
            setup(userid.ToString(), "FAFOS Contract Form");
               // lblUserInfo.Text = "Logged in:\n " + user.getName(id);
             //   lblUserInfo.Location = new Point(Screen.PrimaryScreen.Bounds.Right - 100, 10);
        }
        public AddEditClientForm(MaintainClientController parent, bool edit, int id)
        {
            InitializeComponent();
            my_controller = parent;
            isEdit = edit;
            userid = id;
            noChanges = true;

            #region Form Event Handlers

               /* this.Back_Button.Click += new System.EventHandler(my_controller.Client_Cancel_Button_Click);
            this.Back_Button.MouseEnter += new EventHandler(button1_MouseEnter);
            this.Back_Button.MouseLeave += new EventHandler(button1_MouseLeave);
            this.Back_Button.Location = new Point(65, 38);
            this.Back_Button.BackgroundImage = ((System.Drawing.Image)(Properties.Resources.Back2));
            Back_Button.FlatAppearance.MouseOverBackColor = System.Drawing.Color.Transparent;
            Back_Button.FlatAppearance.MouseDownBackColor = System.Drawing.Color.Transparent;
            */
               // this.contract_Button.Click += new EventHandler(my_controller.Client_Contract_Button_Click);
            this.Ok_Button.Click += new System.EventHandler(my_controller.Client_Ok_Button_Click);
               // this.Cancel_Button.Click += new System.EventHandler(my_controller.Client_Cancel_Button_Click);
            this.delete_Button.Click += new EventHandler(my_controller.Client_Delete_Button_Click);
            this.CountryBox.SelectedValueChanged += new System.EventHandler(my_controller.Country_Changed);
            this.ProvStateBox.SelectedValueChanged += new EventHandler(my_controller.Province_Changed);
            this.CityBox.SelectedValueChanged += new EventHandler(my_controller.City_Changed);

            this.nameTxtBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.typeTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.addrTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.postalCodeTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.PoBoxTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.EmailTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.mainPhoneTxtBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.SecondPhoneTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.FaxTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            this.PrimContactTextBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
            #endregion

            if (isEdit)
            {
                #region Create and set a combo selection box
                DataTable clients = MClient.GetList();
                nameComboBox = new ComboBox();
                nameComboBox.Location = new Point(300, 31);
                nameComboBox.Font = new Font(nameComboBox.Font.FontFamily, 10);
                nameComboBox.Size = new Size(195, 28);

                DataTable dt = new DataTable();
                dt = clients.Clone();
                dt.Rows.Add(new String[] { null, "<Select Client>" });
                foreach (DataRow r in clients.Rows)
                    dt.ImportRow(r);

                nameComboBox.DataSource = dt;
                nameComboBox.DisplayMember = dt.Columns[1].ToString();
                nameComboBox.ValueMember = dt.Columns[0].ToString();

                nameComboBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
                nameComboBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
                for (int i = 0; i < clients.Rows.Count; i++)
                    nameComboBox.AutoCompleteCustomSource.Add(clients.Rows[i][1].ToString());

                nameComboBox.TextChanged += new EventHandler(my_controller.Client_Text_Changed);
                nameComboBox.SelectedValueChanged += new EventHandler(my_controller.Edit_Client_Populate);
                this.Controls.Add(nameComboBox);

                Label nameSelection = new Label();
                nameSelection.Text = "Select Client:";
                nameSelection.Font = new Font(nameComboBox.Font.FontFamily, 10);
                nameSelection.Location = new Point(490, 166);
                this.Controls.Add(nameSelection);
                #endregion
            }

            here: try { SetCountryBox(MCountry.GetList(), "0"); }
            catch (Exception)
            {
                if (MessageBox.Show("Error connecting to Database\nDo you want to retry?", "Connection Problems", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    goto here;
            }

            //User label
            user = new Users();
            userid = id;
            setup(userid.ToString(), "FAFOS Client Form");
        }
Exemple #12
0
        // update the view
        public void preview(object sender, EventArgs e)
        {
            QuoteForm quoteForm = (QuoteForm)((Button)sender).FindForm();
            try
            {
                //start creating the PDF

                //Create a Catalog Dictionary
                CatalogDict catalogDict = new CatalogDict();

                //Create a Page Tree Dictionary
                PageTreeDict pageTreeDict = new PageTreeDict();

                //Create a Font Dictionary - Only the standard fonts Time, Helvetica and courier etc can be created by this method.
                //See Adobe doco for more info on other fonts
                FontDict TimesRoman = new FontDict();
                FontDict TimesItalic = new FontDict();
                FontDict TimesBold = new FontDict();
                FontDict Courier = new FontDict();

                //Create the info Dictionary
                InfoDict infoDict = new InfoDict();
                //Create the font called Times Roman
                TimesRoman.CreateFontDict("T1", "Times-Roman");

                //Create the font called Times Italic
                TimesItalic.CreateFontDict("T2", "Times-Italic");

                //Create the font called Times Bold
                TimesBold.CreateFontDict("T3", "Times-Bold");

                //Create the font called Courier
                Courier.CreateFontDict("T4", "Courier");

                //Set the info Dictionary. xxx will be the invoice number
                infoDict.SetInfo("Quote xxx" /*+ quoteForm.getID()*/, "System Generated", "Fire-Alert");

                //Create a utility object
                Utility pdfUtility = new Utility();
                String FilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\Quote.pdf";

                //Open a file specifying the file name as the output pdf file
                //String FilePath = @"C:\Users\Hassan\Desktop\Preview.pdf";

                FileStream file = new FileStream(FilePath, FileMode.Create);
                int size = 0;
                file.Write(pdfUtility.GetHeader("1.5", out size), 0, size);
                file.Close();

                //Finished the first step

                //Create a Page Dictionary , this represents a visible page
                PageDict page = new PageDict();
                ContentDict content = new ContentDict();

                //The page size object will hold all the page size information
                //also holds the dictionary objects for font, images etc.
                //A4 595,842
                //Letter 612,792
                PageSize pSize = new PageSize(612, 792); //A4 paper portrait in 1/72" measurements
                pSize.SetMargins(10, 10, 10, 10);

                //create the page main details
                page.CreatePage(pageTreeDict.objectNum, pSize);

                //add a page
                pageTreeDict.AddPage(page.objectNum);

                //add the fonts to this page
                page.AddResource(TimesRoman, content.objectNum);
                page.AddResource(TimesItalic, content.objectNum);
                page.AddResource(TimesBold, content.objectNum);
                page.AddResource(Courier, content.objectNum);

                //Create a Text And Table Object that presents the text elements in the page
                TextAndTables textAndtable = new TextAndTables(pSize);

                //create the reference to an image and the data that represents it
                String ImagePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\logo.jpg";   //file path to image source
                ImageDict I1 = new ImageDict();                     //new image dictionary object
                I1.CreateImageDict("I1", ImagePath);                //create the object which describes the image
                page.AddImageResource(I1.PDFImageName, I1, content.objectNum);  //create a reference where the PDF can identify which object
                //describes the image when we want to draw it on the page

                /*
                 * draw the image to page (add the instruction to the content stream which says draw the image called I1 starting
                 * at X = 269, Y = 20 and with an ACTUAL image size on the page of w = 144 and h = 100)
                 */
                PageImages pi = new PageImages();
                content.SetStream(pi.ShowImage("I1", 400, 680, 155, 85));   //tell the PDF we want to draw an image called 'I1', where and what size

                String[] sAd = new String[6];
                sAd = new ServiceAddress().get(quoteForm.getServiceAddressId()).Split(',');

                String[] client = new String[9];
                client = new Client().get(new ClientContract().getClient(quoteForm.getServiceAddressId())).Split(',');

                String[] franchisee = new String[6];
                franchisee = new Franchisee().get(new ClientContract().getFranchisee(quoteForm.getServiceAddressId())).Split(',');

                String[] user = new String[4];
                user = new Users().get(franchiseeUserId).Split(',');

                //Add text to the page
                textAndtable.AddText(50, 50, "Quote: " + ((type == 2) ? quoteForm.getId() : "To Be Created"), 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 60, "Date Issued: "/* + quoteForm.getDateIssued()*/, 10, "T3", Align.LeftAlign);

                textAndtable.AddText(50, 100, "To: " + client[0], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 110, client[4], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 120, client[6] + ", " + client[7] + ", " + client[8] + " " + client[2], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 130, "Primary Contact: " + client[5], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 140, "Ph: " + client[3], 10, "T1", Align.LeftAlign);

                textAndtable.AddText(300, 100, "Prepared By: ", 10, "T3", Align.LeftAlign);
                textAndtable.AddText(300, 110, franchisee[5], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(300, 120, franchisee[0], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 130, franchisee[2] + ", " + franchisee[3] + ", " + franchisee[4] + " " + franchisee[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 140, "Contact: " + user[0] + " " + user[1], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 150, "Ph: " + user[2], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 160, "Email: " + user[3], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(300, 170, "Web: http://www.fire-alert.ca", 10, "T1", Align.LeftAlign);

                textAndtable.AddText(50, 160, "Service Location: ", 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 170, sAd[0], 10, "T1", Align.LeftAlign);
                textAndtable.AddText(50, 180, sAd[3] + ", " + sAd[4] + ", " + sAd[5] + " " + sAd[1], 10, "T1", Align.LeftAlign);

                //Add table to the page
                Align[] alignC = new Align[4];
                alignC[0] = Align.CenterAlign;
                alignC[1] = Align.CenterAlign;
                alignC[2] = Align.CenterAlign;
                alignC[3] = Align.CenterAlign;

                Align[] alignR = new Align[4];
                alignR[0] = Align.LeftAlign;
                alignR[1] = Align.LeftAlign;
                alignR[2] = Align.LeftAlign;
                alignR[3] = Align.LeftAlign;

                //Specify the color for the cell and the line
                ColorSpec cellColor = new ColorSpec(196, 34, 34);
                ColorSpec lineColor = new ColorSpec(1, 1, 1);

                //Fill in the parameters for the table
                TableParams table = new TableParams(2, 235, 90, 75, 75);
                table.yPos = 550;
                table.xPos = 50;
                table.rowHeight = 15;

                //Set the parameters of this table
                textAndtable.SetParams(table, cellColor, Align.CenterAlign, 3);
                textAndtable.AddRow(false, 8, "T3", alignC, true, "Service Rep.", "Valid Until");
                //After drawing table and text add them to the page
                content.SetStream(textAndtable.EndTable(lineColor, true));

                TextAndTables textAndtable2 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell1 = new ColorSpec(255, 255, 255);
                ColorSpec line1 = new ColorSpec(1, 1, 1);
                TableParams table2 = new TableParams(2, 235, 90, 75, 75);
                table2.yPos = 535;
                table2.xPos = 50;
                table2.rowHeight = 15;
                textAndtable2.SetParams(table2, cell1, Align.CenterAlign, 3);
                textAndtable2.AddRow(false, 8, "T3", alignR, false, "", "");
                content.SetStream(textAndtable2.EndTable(line1, true));

                Align[] alignC2 = new Align[7];
                alignC2[0] = Align.CenterAlign;
                alignC2[1] = Align.CenterAlign;
                alignC2[2] = Align.CenterAlign;
                alignC2[3] = Align.CenterAlign;
                alignC2[4] = Align.CenterAlign;
                alignC2[5] = Align.CenterAlign;
                alignC2[6] = Align.CenterAlign;

                Align[] alignR2 = new Align[7];
                alignR2[0] = Align.LeftAlign;
                alignR2[1] = Align.LeftAlign;
                alignR2[2] = Align.LeftAlign;
                alignR2[3] = Align.LeftAlign;
                alignR2[4] = Align.RightAlign;
                alignR2[5] = Align.RightAlign;
                alignR2[6] = Align.RightAlign;

                TextAndTables textAndtable3 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell2 = new ColorSpec(196, 34, 34);
                ColorSpec line2 = new ColorSpec(1, 1, 1);
                TableParams table3 = new TableParams(7, 15, 100, 160, 40, 40, 60, 60);
                table3.yPos = 510;
                table3.xPos = 50;
                table3.rowHeight = 15;
                textAndtable3.SetParams(table3, cell2, Align.CenterAlign, 3);
                textAndtable3.AddRow(false, 8, "T3", alignC2, true, "#", "Charge", "Description", "Hours", "Qty", "Price", "Line Total");
                content.SetStream(textAndtable3.EndTable(line2, true));

                TextAndTables textAndtable4 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                ColorSpec cell3 = new ColorSpec(255, 255, 255);
                ColorSpec line3 = new ColorSpec(1, 1, 1);
                TableParams table4 = new TableParams(7, 15, 100, 160, 40, 40, 60, 60);
                table4.yPos = 495;
                table4.xPos = 50;
                table4.rowHeight = 15;
                textAndtable4.SetParams(table4, cell3, Align.CenterAlign, 3);
                DataGridView dgvSalesOrder = quoteForm.getQuoteItems();
                for (int i = 0; i < dgvSalesOrder.Rows.Count - 1; i++)
                {
                    textAndtable4.AddRow(false, 8, "T3", alignR2, false, dgvSalesOrder.Rows[i].Cells[0].Value.ToString(),
                        dgvSalesOrder.Rows[i].Cells[1].FormattedValue.ToString(), dgvSalesOrder.Rows[i].Cells[2].Value.ToString(),
                        (dgvSalesOrder.Rows[i].Cells[3].Value == null || dgvSalesOrder.Rows[i].Cells[3].Value.ToString() == "") ? "-" : dgvSalesOrder.Rows[i].Cells[3].Value.ToString(),
                        (dgvSalesOrder.Rows[i].Cells[4].Value == null || dgvSalesOrder.Rows[i].Cells[4].Value.ToString() == "") ? "-" : dgvSalesOrder.Rows[i].Cells[4].Value.ToString(),
                        dgvSalesOrder.Rows[i].Cells[5].Value.ToString(), dgvSalesOrder.Rows[i].Cells[6].Value.ToString());
                }
                content.SetStream(textAndtable4.EndTable(line3, true));

                textAndtable.AddText(400, 650, "Subtotal ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 665, "HST ", 10, "T1", Align.LeftAlign);
                textAndtable.AddText(400, 680, "Total ", 10, "T1", Align.LeftAlign);

                TextAndTables textAndtable5 = new TextAndTables(pSize);
                Align[] align = new Align[1];
                align[0] = Align.RightAlign;
                //Specify the color for the cell and the line
                TableParams table5 = new TableParams(1, 60);
                table5.yPos = 152;
                table5.xPos = 100;
                table5.rowHeight = 15;
                textAndtable5.SetParams(table5, cell3, Align.RightAlign, 3);
                textAndtable5.AddRow(false, 10, "T3", align, false, quoteForm.getSubtotal());
                textAndtable5.AddRow(false, 10, "T3", align, false, quoteForm.getHST());
                content.SetStream(textAndtable5.EndTable(line3, true));

                TextAndTables textAndtable6 = new TextAndTables(pSize);
                //Specify the color for the cell and the line
                TableParams table6 = new TableParams(1, 60);
                table6.yPos = 122;
                table6.xPos = 100;
                table6.rowHeight = 15;
                textAndtable6.SetParams(table6, cell2, Align.RightAlign, 3);
                textAndtable6.AddRow(false, 10, "T3", align, true, "$" + quoteForm.getTotal());

                content.SetStream(textAndtable.EndText());

                //All done - send the information to the PDF file

                size = 0;
                file = new FileStream(FilePath, FileMode.Append);
                file.Write(page.GetPageDict(file.Length, out size), 0, size);
                file.Write(content.GetContentDict(file.Length, out size), 0, size);
                file.Close();

                file = new FileStream(FilePath, FileMode.Append);
                file.Write(catalogDict.GetCatalogDict(pageTreeDict.objectNum, file.Length, out size), 0, size);
                file.Write(pageTreeDict.GetPageTree(file.Length, out size), 0, size);
                file.Write(TimesRoman.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesItalic.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesBold.GetFontDict(file.Length, out size), 0, size);
                file.Write(Courier.GetFontDict(file.Length, out size), 0, size);

                //write image dict
                file.Write(I1.GetImageDict(file.Length, out size), 0, size);

                file.Write(infoDict.GetInfoDict(file.Length, out size), 0, size);
                file.Write(pdfUtility.CreateXrefTable(file.Length, out size), 0, size);
                file.Write(pdfUtility.GetTrailer(catalogDict.objectNum, infoDict.objectNum, out size), 0, size);
                file.Close();

                //Messages.Visible = true;
                Preview testDialog = new Preview(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\Quote.pdf");
                testDialog.ShowDialog(quoteForm);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Could not display the document because " + ex.ToString());
            }
        }
Exemple #13
0
        private void generateStatement()
        {
            try
            {
                //start creating the PDF

                //Create a Catalog Dictionary
                CatalogDict catalogDict = new CatalogDict();

                //Create a Page Tree Dictionary
                PageTreeDict pageTreeDict = new PageTreeDict();

                //Create a Font Dictionary - Only the standard fonts Time, Helvetica and courier etc can be created by this method.
                //See Adobe doco for more info on other fonts
                FontDict TimesRoman = new FontDict();
                FontDict TimesItalic = new FontDict();
                FontDict TimesBold = new FontDict();
                FontDict Courier = new FontDict();

                //Create the info Dictionary
                InfoDict infoDict = new InfoDict();
                Invoice invoice = new Invoice();
                //Create the font called Times Roman
                TimesRoman.CreateFontDict("T1", "Times-Roman");

                //Create the font called Times Italic
                TimesItalic.CreateFontDict("T2", "Times-Italic");

                //Create the font called Times Bold
                TimesBold.CreateFontDict("T3", "Times-Bold");

                //Create the font called Courier
                Courier.CreateFontDict("T4", "Times-Roman");

                //Set the info Dictionary. xxx will be the invoice number
                infoDict.SetInfo("Statement of " + cbClients.Text, "System Generated", "Fire-Alert");

                //Create a utility object
                Utility pdfUtility = new Utility();
                String FilePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\Statement_"+cbClients.SelectedValue+".pdf";

                //Open a file specifying the file name as the output pdf file
                //String FilePath = @"C:\Users\Hassan\Desktop\Preview.pdf";

                FileStream file = new FileStream(FilePath, FileMode.Create);
                int size = 0;
                file.Write(pdfUtility.GetHeader("1.5", out size), 0, size);
                file.Close();

                //Finished the first step

                //Create a Page Dictionary , this represents a visible page
                PageDict page = new PageDict();
                ContentDict content = new ContentDict();

                //The page size object will hold all the page size information
                //also holds the dictionary objects for font, images etc.
                //A4 595,842
                //Letter 612,792
                PageSize pSize = new PageSize(612, 792); //A4 paper portrait in 1/72" measurements
                pSize.SetMargins(10, 10, 10, 10);

                //create the page main details
                page.CreatePage(pageTreeDict.objectNum, pSize);

                //add a page
                pageTreeDict.AddPage(page.objectNum);

                //add the fonts to this page
                page.AddResource(TimesRoman, content.objectNum);
                page.AddResource(TimesItalic, content.objectNum);
                page.AddResource(TimesBold, content.objectNum);
                page.AddResource(Courier, content.objectNum);

                //Create a Text And Table Object that presents the text elements in the page
                TextAndTables textAndtable = new TextAndTables(pSize);

                //create the reference to an image and the data that represents it
                String ImagePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory) + "\\Resources\\logo.jpg";   //file path to image source
                ImageDict I1 = new ImageDict();                     //new image dictionary object
                I1.CreateImageDict("I1", ImagePath);                //create the object which describes the image
                page.AddImageResource(I1.PDFImageName, I1, content.objectNum);  //create a reference where the PDF can identify which object
                //describes the image when we want to draw it on the page

                /*
                 * draw the image to page (add the instruction to the content stream which says draw the image called I1 starting
                 * at X = 269, Y = 20 and with an ACTUAL image size on the page of w = 144 and h = 100)
                 */
                PageImages pi = new PageImages();
                content.SetStream(pi.ShowImage("I1", 450, 690, 155, 85));   //tell the PDF we want to draw an image called 'I1', where and what size

                String clientInfo = new Client().get(cbClients.SelectedValue.ToString());
                String[] client = new String[9];
                client = clientInfo.Split(',');

                String franchiseeInfo = new Franchisee().get(new ClientContract().getFranchiseeOfClient(cbClients.SelectedValue.ToString()));
                String[] franchisee = new String[6];
                franchisee = franchiseeInfo.Split(',');

                if (franchisee.Length < 6)
                    franchisee = new String[6] { "", "", "", "", "", "" };

                String userInfo = new Users().get(userid.ToString());
                String[] user = new String[4];
                user = userInfo.Split(',');

                //Add text to the page
                textAndtable.AddText(260, 50, "STATEMENT", 20, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 80, franchisee[5], 16, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 90, franchisee[0], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 100, franchisee[2] + ", " + franchisee[3] + ", " + franchisee[4] + " " + franchisee[1], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 110, user[2], 10, "T3", Align.LeftAlign);
               // textAndtable.AddText(50, 60, "Total: " + txtTotal.Text, 10, "T3", Align.LeftAlign);

                textAndtable.AddText(50, 190, client[0], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(50, 205, client[5], 10, "T4", Align.LeftAlign);
                textAndtable.AddText(50, 215, client[1], 10, "T4", Align.LeftAlign);
                textAndtable.AddText(50, 225, client[6] + ", " + client[7] + " " + client[2], 10, "T4", Align.LeftAlign);
                textAndtable.AddText(50, 235, client[8], 10, "T4", Align.LeftAlign);

                textAndtable.AddText(430, 150, "PLEASE RETURN THIS PORTION WITH", 8, "T4", Align.LeftAlign);
                textAndtable.AddText(430, 160, "YOUR PAYMENT", 8, "T4", Align.LeftAlign);
                textAndtable.AddText(400, 175, client[0], 10, "T3", Align.LeftAlign);
                textAndtable.AddText(430, 210, "IF PAYING BY INVOICE CHECK", 8, "T4", Align.LeftAlign);
                textAndtable.AddText(430, 220, "INDIVIDUAL INVOICES PAID", 8, "T4", Align.LeftAlign);
                textAndtable.AddText(435, 240, "AMOUNT REMITTED __________", 8, "T4", Align.LeftAlign);

                Align[] alignC = new Align[1];
                alignC[0] = Align.CenterAlign;

                //Specify the color for the cell and the line
                ColorSpec cellColor = new ColorSpec(255, 255, 255);
                ColorSpec lineColor = new ColorSpec(1, 1, 1);

                //Fill in the parameters for the table
                TableParams table = new TableParams(1, 100);
                table.yPos = 700;
                table.xPos = 50;
                table.rowHeight = 15;

                //Set the parameters of this table
                textAndtable.SetParams(table, cellColor, Align.RightAlign, 3);
                textAndtable.AddRow(false, 10, "T3", alignC, false, "Statement Date");
                textAndtable.AddRow(false, 10, "T4", alignC, false, DateTime.Today.ToShortDateString());

                //After drawing table and text add them to the page
                content.SetStream(textAndtable.EndTable(lineColor, true));

                table.yPos = 630;
                table.xPos = 0;
                //Set the parameters of this table
                textAndtable.SetParams(table, cellColor, Align.CenterAlign, 3);
                textAndtable.AddRow(false, 10, "T3", alignC, false, "Statement Date");
                textAndtable.AddRow(false, 10, "T4", alignC, false, DateTime.Today.ToShortDateString());

                //After drawing table and text add them to the page
                content.SetStream(textAndtable.EndTable(lineColor, true));

                textAndtable.AddText(50, 275, "Page:    1", 10, "T4", Align.LeftAlign);
                Align[] alignC1 = new Align[5];
                alignC1[0] = Align.CenterAlign;
                alignC1[1] = Align.CenterAlign;
                alignC1[2] = Align.CenterAlign;
                alignC1[3] = Align.CenterAlign;
                alignC1[4] = Align.CenterAlign;

                Align[] alignC2 = new Align[5];
                alignC2[0] = Align.LeftAlign;
                alignC2[1] = Align.LeftAlign;
                alignC2[2] = Align.RightAlign;
                alignC2[3] = Align.RightAlign;
                alignC2[4] = Align.CenterAlign;

                //Fill in the parameters for the table
                TableParams table2 = new TableParams(5, 150,90,90,90,40);
                table2.yPos = 510;
                table2.xPos = 37;
                table2.rowHeight = 15;

                //Set the parameters of this table
                textAndtable.SetParams(table2, cellColor, Align.LeftAlign, 3);
               // MessageBox.Show("\u221A");
                textAndtable.AddRow(false, 10, "T3", alignC1, false, "Statement Date", "Invoice No.", "Balance", "Total Due", "");
                String[] rows = new Invoice().getOutstandingInvoices(cbClients.SelectedValue.ToString());
                double total = 0;
                double interestTotal = 0;
                double interest = 0;
                double below30 = 0;
                double between3160 = 0;
                double over60 = 0;
                DateTime interestDate = DateTime.Today.Date.AddDays(-30);
                for (int i = 0; i < rows.Length; i++)
                {
                    String[] cells = new String[3];
                    cells = rows[i].Split(',');
                    total += Convert.ToDouble(cells[2]);
                    if (Convert.ToDateTime(cells[0]) < interestDate)
                        interestTotal += Convert.ToDouble(cells[2]);
                    if (Convert.ToDateTime(cells[0]) > interestDate)
                        below30 += Convert.ToDouble(cells[2]);
                    if (Convert.ToDateTime(cells[0]) < DateTime.Today.Date.AddDays(-30) && Convert.ToDateTime(cells[0]) >= DateTime.Today.Date.AddDays(-60))
                        between3160 += Convert.ToDouble(cells[2]);
                    if (Convert.ToDateTime(cells[0]) < DateTime.Today.Date.AddDays(-60))
                        over60 += Convert.ToDouble(cells[2]);
                    Console.WriteLine(cells[0] + " " + cells[1]);
                    textAndtable.AddRow(false, 10, "T4", alignC2, false, cells[0], cells[1], "$" + cells[2], "$" + total.ToString(), "");
                }
                interest = interestTotal * 0.02;
                total += interest;
                below30 += interest;
                textAndtable.AddRow(false, 10, "T4", alignC2, false, "2% interest on balance over 30 days", "", "$" + (interest).ToString(), "$" + total.ToString(), "");

                //After drawing table and text add them to the page
                content.SetStream(textAndtable.EndTable(lineColor, true));

                Align[] alignC3 = new Align[5];
                alignC3[0] = Align.LeftAlign;
                alignC3[1] = Align.RightAlign;
                alignC3[2] = Align.RightAlign;
                alignC3[3] = Align.RightAlign;
                alignC3[4] = Align.CenterAlign;

                //Fill in the parameters for the table  120,100,100,100,40 = 460
                TableParams table3 = new TableParams(5, 100, 90, 90, 90, 90);
                table3.yPos = 100;
                table3.xPos = 37;
                table3.rowHeight = 15;

                //Set the parameters of this table
                textAndtable.SetParams(table3, cellColor, Align.LeftAlign, 3);
                // MessageBox.Show("\u221A");
                textAndtable.AddRow(false, 10, "T3", alignC3, false, "Age", "Current ", "31-60 ", "Over 60 ", "Total");
                textAndtable.AddRow(false, 10, "T3", alignC3, false, "Amount", below30.ToString(), between3160.ToString(), over60.ToString(), total.ToString());
                content.SetStream(textAndtable.EndTable(lineColor, true));

                content.SetStream(textAndtable.EndText());

                //All done - send the information to the PDF file

                size = 0;
                file = new FileStream(FilePath, FileMode.Append);
                file.Write(page.GetPageDict(file.Length, out size), 0, size);
                file.Write(content.GetContentDict(file.Length, out size), 0, size);
                file.Close();

                file = new FileStream(FilePath, FileMode.Append);
                file.Write(catalogDict.GetCatalogDict(pageTreeDict.objectNum, file.Length, out size), 0, size);
                file.Write(pageTreeDict.GetPageTree(file.Length, out size), 0, size);
                file.Write(TimesRoman.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesItalic.GetFontDict(file.Length, out size), 0, size);
                file.Write(TimesBold.GetFontDict(file.Length, out size), 0, size);
                file.Write(Courier.GetFontDict(file.Length, out size), 0, size);

                //write image dict
               file.Write(I1.GetImageDict(file.Length, out size), 0, size);

                file.Write(infoDict.GetInfoDict(file.Length, out size), 0, size);
                file.Write(pdfUtility.CreateXrefTable(file.Length, out size), 0, size);
                file.Write(pdfUtility.GetTrailer(catalogDict.objectNum, infoDict.objectNum, out size), 0, size);
                file.Close();

            }
            catch (Exception ex)
            {
                MessageBox.Show("Could not display the document because " + ex.ToString());
            }
        }