// go to previous screen.
 /// <summary>
 /// Handles the Click event of the Back_Btn control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
 private void Back_Btn_Click(object sender, RoutedEventArgs e)
 {
     SecJobGui SJG = new SecJobGui();
     SJG.Show();
     Login.close = 1;
     this.Close();
 }
        /// <summary>
        /// Handles the Click event of the ADD_Btn control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RoutedEventArgs"/> instance containing the event data.</param>
        private void ADD_Btn_Click(object sender, RoutedEventArgs e)
        {
            string jobid, orderid, jobdes;
            // if dates were intered.
            if (startdatePicker.Text != "" && finishdatePicker.Text != "")
            {

                orderid = orderID_textBox.Text;
                if (!string.IsNullOrWhiteSpace(orderID_textBox.Text))
                {
                    string today = DateTime.Now.ToString("yyyy-MM-dd");
                    try
                    {
                        Console.WriteLine("שורה 467");
                        MySqlConnection MySqlConn = new MySqlConnection(Login.Connectionstring);
                        MySqlConn.Open();
                        string Query1 = ("SELECT jobid FROM project.jobs WHERE orderid='" + orderid + "' AND startDate<='" + today + "' ORDER BY startDate DESC LIMIT 1 "); //to see if the orderid already in the system.
                        MySqlCommand MSQLcrcommand1 = new MySqlCommand(Query1, MySqlConn);
                        MSQLcrcommand1.ExecuteNonQuery();
                       // int times = Convert.ToInt32(MSQLcrcommand1.ExecuteScalar());
                        MySqlDataReader dr = MSQLcrcommand1.ExecuteReader();
                        MySqlDataAdapter mysqlDAdp = new MySqlDataAdapter(MSQLcrcommand1);
                        Console.WriteLine("שורה 476");
                        while (dr.Read())
                          {
                              if (!dr.IsDBNull(0))
                              {
                                  Console.WriteLine("שורה 480");
                                  if (MessageBox.Show("מספר הזמנה זהה כבר קיים האחרון ביותר היה עבור מספר עבודה "+dr.GetString(0)+"\n?האם ברצונך להוסיף בכל זאת", "מספר הזמנה קיים", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No)
                                  {
                                      MySqlConn.Close();
                                      return; //if user answerd NO
                                  }
                              }
                          }

                        MySqlConn.Close();

                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        return; ;
                    }

                    // get the latest jobid this year.
                    string fullyear = DateTime.Now.ToString("yyyy");
                    string twodigyear = DateTime.Now.ToString("yy");
                    int jobid1=0;
                    string[] arry;
                    string tosplit,first;
                    try
                    {
                        Console.WriteLine("שורה 508");
                        MySqlConnection MySqlConn = new MySqlConnection(Login.Connectionstring);
                        MySqlConn.Open();
                        string Query1 = ("SELECT MAX(jobid) FROM project.jobs WHERE startDate BETWEEN '" + fullyear + "-01-01' AND '" + fullyear + "-12-31' ");
                        MySqlCommand MSQLcrcommand1 = new MySqlCommand(Query1, MySqlConn);
                        MSQLcrcommand1.ExecuteNonQuery();
                        MySqlDataReader dr = MSQLcrcommand1.ExecuteReader();
                        Console.WriteLine("שורה 515");
                        while (dr.Read())
                        {
                            if (dr.IsDBNull(0))
                            {
                                Console.WriteLine("שורה 520");
                                jobid1 = 0;
                            }
                            else
                            {
                                Console.WriteLine("שורה 525");
                                tosplit = dr.GetString(0);
                                Console.WriteLine(tosplit);
                                arry = tosplit.Split('/');
                                first = arry[0].ToString();
                                Console.WriteLine(first);
                                jobid1 = Convert.ToInt32(first);
                                Console.WriteLine(first);
                            }
                        }
                        Console.WriteLine("שורה 535");
                        MySqlDataAdapter mysqlDAdp = new MySqlDataAdapter(MSQLcrcommand1);
                        MySqlConn.Close();
                        jobid1++;
                        jobid = jobid1.ToString() + "/" + twodigyear;
                        Console.WriteLine("שורה 540");
                        Console.WriteLine(jobid);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                        return; ;
                    }

                    jobdes = jobdes_textbox.Text;
                    String start, end;
                    DateTime s = (DateTime)Convert.ToDateTime(startdatePicker.Text);
                    DateTime f = (DateTime)Convert.ToDateTime(finishdatePicker.Text);
                    TimeSpan ts = f - s;

                    // if the days are ok.
                    if (ts.Days >= 0)
                    {
                        start = Convert.ToDateTime(startdatePicker.Text).ToString("yyyy-MM-dd");
                        end = Convert.ToDateTime(finishdatePicker.Text).ToString("yyyy-MM-dd");
                    }
                    else { MessageBox.Show(".תאריך ההתחלה שנבחר הוא לאחר תאריך הסיום", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return; }
                }
                else { MessageBox.Show("לא הוכנסה מספר הזמנה", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return; }
            }// the if (startdatePicker.Text != "" && finishdatePicker.Text != "") closer.
            else { MessageBox.Show(".לא נבחרו 2 התאריכים", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return; }

            DataTable changedRecordsItemsTable = dt1.GetChanges();
            //DataTable changedRecordsTableCust = dt.GetChanges();
            int sizeofItemsnewtable;
            //sizeofCustnewtable, custcheck=0;
            //string customerid1;
            try
            {
                // sizeofCustnewtable = changedRecordsTableCust.Rows.Count; // will give an exp if the size of the new cust table is zero.
                DataRowView row = (DataRowView)dataGrid1.SelectedItems[0];

                try
                {
                    DataRowView row1 = (DataRowView)dataGrid3.SelectedItems[0];

                    try
                    {
                        string contactid = row1["מספר איש קשר"].ToString();
                        string selected = row["חפ לקוח"].ToString();

                        sizeofItemsnewtable = changedRecordsItemsTable.Rows.Count; // will give an exp if the size of the new items table is zero.
                        int itemNum = 0;
                        string itemStatus = "רישום", itemStageOrder = "1", job_status = "נרשמה";

                        jobdes = jobdes_textbox.Text;
                        String start = Convert.ToDateTime(startdatePicker.Text).ToString("yyyy-MM-dd"), end = Convert.ToDateTime(finishdatePicker.Text).ToString("yyyy-MM-dd");
                        // customerid1 = customerid1_label.Content.ToString();

                        int count = 0; // will count the number of rows with cell "" in the  changedRecordsItemsTable.

                        // input checks for כמות.
                        foreach (DataRow testrow in changedRecordsItemsTable.Rows)// for every row in the updateds table.
                        {
                            string q = testrow["כמות"].ToString();
                            Console.WriteLine("q = " + q);
                            try
                            {

                                if (q != "") // in case the user deleted a cell in the item and now it have a string of-  "" .
                                {
                                    int new_item_quantity = Convert.ToInt32(q);
                                    if (new_item_quantity > 0)
                                    {
                                        Console.WriteLine("הקלט היה טוב במקט מספר =" + testrow["מקט פריט"].ToString());
                                    }//end if (item_quantity > 0)
                                    else
                                    {
                                        MessageBox.Show("שדה הכמות מכיל כמות שלילית או 0 במקט פריט - " + testrow["מקט פריט"].ToString() + "", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error);
                                        return;
                                    }

                                } // if (q != "")
                                else { count++; }

                            }// end try
                            catch
                            {
                                MessageBox.Show("שדה הכמות לא כולל רק מספרים במקט פריט - " + testrow["מקט פריט"].ToString() + "", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error);
                                return;
                            }

                        } // end of foreach to test the input
                        if (count == changedRecordsItemsTable.Rows.Count)
                        {
                            MessageBox.Show("  לא נבחרו פריטים מהטבלה ", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error);
                            return;
                        }
                        /*
                        foreach (DataRow quantity_row in changedRecordsItemsTable.Rows)
                        {
                            try
                            {
                                if(quantity_row["כמות"].ToString()!="")
                                {
                                int item_quantity = Convert.ToInt32(quantity_row["כמות"].ToString());
                                }
                            }// end try
                            catch
                            { MessageBox.Show(" אחד שדה הכמות לא כולל רק מספרים בפריט מספר - " + quantity_row["מקט פריט"].ToString() + ""); return; }
                        }
                        */

                        count = 0;
                        foreach (DataRow dri in changedRecordsItemsTable.Rows)
                        {
                            itemNum = 0;
                            string q = dri["כמות"].ToString();
                            string cosItemID = dri["מקט לקוח"].ToString();
                            if (cosItemID=="")
                             {
                                 cosItemID = "לא הוזן מקט לקוח";
                             }
                            try
                            {

                                if (q != "") // in case the user deleted a cell in the item and now it have a string of-  "" .
                                {
                                    int item_quantity = Convert.ToInt32(q);

                                    if (item_quantity > 0)
                                    {
                                        for (int i = 1; i <= item_quantity; i++)
                                        {
                                            Console.WriteLine("לפני שאילתא");
                                            itemNum++;
                                            string itemid = dri["מקט פריט"].ToString();
                                            try
                                            {
                                                MySqlConnection MySqlConn = new MySqlConnection(Login.Connectionstring);
                                                MySqlConn.Open();
                                                string Query1 = ("INSERT INTO project.jobs (jobid, itemid,itemNum, expectedItemQuantity,costumerid, jobdescription, startDate, expectedFinishDate, contact_id,orderid,group_costomer_itemid ,reg_date) VALUES ('" + jobid + "','" + itemid + "','" + itemNum + "','" + item_quantity + "','" + selected + "','" + jobdes + "','" + start + "','" + end + "','" + contactid + "','" + orderid + "','" + cosItemID + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "')");
                                                Console.WriteLine("השאילתא הנשלחת  - " + Query1 + "");
                                                MySqlCommand MSQLcrcommand1 = new MySqlCommand(Query1, MySqlConn);
                                                MSQLcrcommand1.ExecuteNonQuery();
                                                MySqlDataAdapter mysqlDAdp = new MySqlDataAdapter(MSQLcrcommand1);
                                                MySqlConn.Close();

                                            }
                                            catch (Exception ex)
                                            {
                                                MessageBox.Show(ex.Message);
                                                return;
                                            }

                                            Console.WriteLine("הלקוח הוא  - " + selected + "");
                                            Console.WriteLine("הכמות היא  - " + item_quantity + " ומספר הפריט הוא -  " + dri["מקט פריט"].ToString() + "");
                                            Console.WriteLine("מספר עבודה - " + jobid + "");
                                            Console.WriteLine("מספר הזמנה - " + orderid + "");
                                            Console.WriteLine("מספר איש קשר - " + contactid + "");
                                        }
                                    }//end if (item_quantity > 0)
                                    else { MessageBox.Show("שדה הכמות מכיל כמות שלילית או 0 בפריט מספר - " + dri["מקט פריט"].ToString() + "", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return; }

                                } // if (q != "")
                                else { count++; }

                            }// end try
                            catch
                            { MessageBox.Show("שדה הכמות לא כולל רק מספרים בפריט מספר - " + dri["מקט פריט"].ToString() + "", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return; }

                        }// end foreach (DataRow dri in changedRecordsTable.Rows)
                        if (count == changedRecordsItemsTable.Rows.Count)
                            {
                                MessageBox.Show("  לא נבחרו פריטים מהטבלה ", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); return;
                            }

                        else
                        {
                            MessageBox.Show("!העבודה נוספה למערכת", "!הצלחה", MessageBoxButton.OK, MessageBoxImage.Information);
                            SecJobGui SJG = new SecJobGui();
                            SJG.Show();
                            Login.close = 1;
                            this.Close();
                        }
                    }
                    catch
                    {
                        MessageBox.Show("לא נבחרו פריטים", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error);
                        //Reload_Items_Table();

                        return;
                    }
                }
                catch { MessageBox.Show("לא נבחר איש קשר", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); Console.WriteLine("לא נבחר איש קשר"); return; }

            }
            catch { MessageBox.Show("לא נבחר לקוח", "!שים לב", MessageBoxButton.OK, MessageBoxImage.Error); Console.WriteLine("לא נבחר לקוח"); return; }
        }