private void btn_AppOdr_Click(object sender, EventArgs e)
 {
     try
     {
         listpanel[index = 4].BringToFront();
         String Sts = "Approved";
         PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
         grid_AppOdr.DataSource = PO.getSpecialPurchaseOrders(Sts);
     }
     catch (SqlException)
     {
         MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (FormatException)
     {
         MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (OutOfMemoryException)
     {
         MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (Exception)
     {
         MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
 private void btn_Receive_Click(object sender, EventArgs e)
 {
     try
     {
         listpanel[index = 2].BringToFront();
         String status            = "Placed";
         PurchaseOrderDBaccess Po = new PurchaseOrderDBaccess();
         grid_RecOrds.DataSource = Po.getSpecialPurchaseOrders(status);
     }
     catch (SqlException)
     {
         MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (FormatException)
     {
         MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (OutOfMemoryException)
     {
         MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (Exception)
     {
         MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void chk_Orders_OnChange(object sender, EventArgs e)
        {
            try
            {
                SalesOrderDBaccess    SO = new SalesOrderDBaccess();
                PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
                if (rbn_SaleM.Checked)
                {
                    if (chk_Orders.Checked)
                    {
                        String Status = "Delivered";
                        grid_PurSales.DataSource = SO.getDeliveredSalesOrders(Status);
                    }
                    else
                    {
                        grid_PurSales.DataSource = SO.getSalesOrders();
                    }
                }
                if (rbn_PurM.Checked)
                {
                    if (chk_Orders.Checked)
                    {
                        String Status = "Received";
                        grid_PurSales.DataSource = PO.getRecievedPurchaseOrders(Status);
                    }
                    else
                    {
                        grid_PurSales.DataSource = PO.getPurchaseOrders();
                    }
                }
            }

            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btn_ConfirmForApp_Click(object sender, EventArgs e)
        {
            try
            {
                if (grid_Ordrs.SelectedRows.Count < 1)
                {
                    MetroMessageBox.Show(this, "\n\nSelect Record From Grid to proceed", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
                    SalesOrderDBaccess    SD = new SalesOrderDBaccess();
                    String status            = "Waiting for Approval";

                    String saleId = grid_Ordrs.CurrentRow.Cells["sale_id"].Value.ToString();
                    int    Status = PO.UpdateSalesOrderStatus(saleId, status);
                    if (Status == 1)
                    {
                        MetroMessageBox.Show(this, "\n\nSent For Approvel", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MetroMessageBox.Show(this, "\n\nFail to Sent", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    String Sts = "Pending";
                    grid_Ordrs.DataSource = SD.getSpecialSalesOrders(Sts);
                    grid_Items.DataSource = null;
                }
            }
            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btn_Order_Click_1(object sender, EventArgs e)
        {
            try
            {
                listpanel[index = 1].BringToFront();
                //Hide other text boxes when first time open
                txt_ItemType.Visible = false;
                txt_qty2.Visible     = false;
                btn_add2.Visible     = false;
                btn_remove2.Visible  = false;
                lb_other.Visible     = false;
                lb_Qty2.Visible      = false;
                lb_size.Visible      = false;
                lb_color.Visible     = false;
                cmb_color.Visible    = false;
                cmb_size.Visible     = false;

                //create object of SupplierDBaccess class
                SupplierDBaccess SA = new SupplierDBaccess();
                grid_IdNameItem.DataSource = SA.getSupplierIDNameItem();
                PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
                Grid_PurchaseOrder.DataSource = PO.getAllPurchaseOrders();

                grid_IdNameItem.ClearSelection();

                txt_POno.Text = PO.GetPurId();
            }
            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btn_NotRec_Click(object sender, EventArgs e)
        {
            try
            {
                PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
                String status            = "Not Recieved";

                String PurId  = grid_AppOdr.CurrentRow.Cells["pur_id"].Value.ToString();
                int    Status = PO.UpdatePurchaseOrderStatus(PurId, status);
                if (Status == 1)
                {
                    MetroMessageBox.Show(this, "\n\nStatus Changed", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MetroMessageBox.Show(this, "\n\nUpdate Status Fail", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                String Sts = "Placed";
                grid_AppOdr.DataSource = PO.getSpecialPurchaseOrders(Sts);
            }
            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void rbn_PurM_CheckedChanged(object sender, EventArgs e)
 {
     try
     {
         PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
         if (rbn_PurM.Checked)
         {
             lb_del.Visible = false;
             lb_res.Visible = true;
             if (chk_Orders.Checked)
             {
                 String Status = "Received";
                 grid_PurSales.DataSource = PO.getRecievedPurchaseOrders(Status);
             }
             else
             {
                 grid_PurSales.DataSource = PO.getPurchaseOrders();
             }
         }
     }
     catch (SqlException)
     {
         MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (FormatException)
     {
         MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (OutOfMemoryException)
     {
         MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (Exception)
     {
         MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private void btn_PlaceOrds_Click(object sender, EventArgs e)
        {
            try
            {
                PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();
                if (String.IsNullOrEmpty(txt_OrderSupEmail.Text) || String.IsNullOrEmpty(txt_OrderSupContact.Text))
                {
                    MetroMessageBox.Show(this, "\n\nPlease Select Approved Purchase Order To Place Order", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (rbn_byEmail.Checked == false && rbn_byContact.Checked == false)
                {
                    MetroMessageBox.Show(this, "\n\nPlease Select Communication Method To Place Order", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    String status = "Placed";

                    String PurId  = grid_AppOdr.CurrentRow.Cells["pur_id"].Value.ToString();
                    int    Status = PO.UpdatePurchaseOrderStatus(PurId, status);
                    if (Status == 1)
                    {
                        MetroMessageBox.Show(this, "\n\nOrder Is Placed", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MetroMessageBox.Show(this, "\n\n Fail To Place", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    String Sts = "Approved";
                    grid_AppOdr.DataSource = PO.getSpecialPurchaseOrders(Sts);

                    if (rbn_byEmail.Checked)
                    {
                        try
                        {
                            MailMessage message = new MailMessage();
                            SmtpClient  smtp    = new SmtpClient();

                            message.From = new MailAddress("*****@*****.**");
                            message.To.Add(new MailAddress(txt_OrderSupEmail.Text));
                            message.Subject = "Order No " + grid_AppOdr.CurrentRow.Cells["pur_id"].Value.ToString();
                            message.Body    = "Your Order Is Placed";

                            smtp.Port                  = 587;
                            smtp.Host                  = "smtp.gmail.com";
                            smtp.EnableSsl             = true;
                            smtp.UseDefaultCredentials = false;
                            smtp.Credentials           = new NetworkCredential("*****@*****.**", "0763854323xyz");
                            smtp.DeliveryMethod        = SmtpDeliveryMethod.Network;
                            smtp.Send(message);
                            MetroMessageBox.Show(this, "\n\nE-mail Sent", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }

                        catch (SqlException)
                        {
                            MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch (FormatException)
                        {
                            MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch (OutOfMemoryException)
                        {
                            MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        catch (Exception)
                        {
                            MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        private void btn_CreOdr_Click(object sender, EventArgs e)
        {
            try
            {
                if (datagrid_add.Rows.Count == 1)
                {
                    MetroMessageBox.Show(this, "Add Items Before proceed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    PurchaseOrderDBaccess PO = new PurchaseOrderDBaccess();

                    PurMaster PM = new PurMaster();
                    PM.pur_id   = txt_POno.Text;
                    PM.sup_id   = txt_OsupId.Text;
                    PM.pur_date = Picker_ReqDate.Value.Date;

                    int Status = PO.createPurOrder_master(PM);
                    if (Status == 1)
                    {
                        MetroMessageBox.Show(this, "\n\nOrder Success, And Sending For Approvel", "Success", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        txt_OsupId.Text    = null;
                        txt_OsupName.Text  = null;
                        txt_OsupEmail.Text = null;
                        cmb_ItemType.Text  = null;
                        txt_qty.Text       = null;
                        txt_qty2.Text      = null;
                        txt_ItemType.Text  = null;
                        Picker_ReqDate.ResetText();
                        datagrid_add.Rows.Clear();
                        datagrid_add.ClearSelection();
                        grid_IdNameItem.ClearSelection();
                        lb_SelectSup.Visible = true;
                        txt_POno.Text        = PO.GetPurId();
                    }
                    else
                    {
                        MetroMessageBox.Show(this, "\n\nOrder Fail", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }

                    // PurDetails PD = new PurDetails();
                    // PD.pd_id =

                    for (int i = 0; i < (datagrid_add.Rows.Count - 1); i++)
                    {
                        PurDetails PD = new PurDetails();
                        PD.pd_id        = PO.GetPDId();
                        PD.pur_id       = txt_POno.Text;
                        PD.pd_Item_type = (datagrid_add.Rows[i].Cells["Item"].Value).ToString();
                        PD.Size         = (datagrid_add.Rows[i].Cells["Size"].Value).ToString();
                        PD.color        = (datagrid_add.Rows[i].Cells["Color"].Value).ToString();
                        PD.pd_qty       = (datagrid_add.Rows[i].Cells["Qty"].Value).ToString();

                        int status = PO.createPurOrder_details(PD);
                    }
                    PurchaseOrderDBaccess Po = new PurchaseOrderDBaccess();
                    Grid_PurchaseOrder.DataSource = Po.getAllPurchaseOrders();
                }
            }
            catch (SqlException)
            {
                MetroMessageBox.Show(this, "\n\nConnecton Failed", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FormatException)
            {
                MetroMessageBox.Show(this, "\n\nInvalid Format", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OutOfMemoryException)
            {
                MetroMessageBox.Show(this, "\n\nInsuffisent memory", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception)
            {
                MetroMessageBox.Show(this, "\n\nERROR", "Fail", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }