private void GetInitialData()
 {
     try
     {
         frmIssueQuotationController issueQuotation = new frmIssueQuotationController();
         DataTable result = issueQuotation.GetInitialData(CompanyNoBox, REQ_SEQ, out uIUtility.MetaData);
         if (result.Rows.Count > 0)
         {
             SetValues(result.Rows[0]);
         }
     }
     catch (System.TimeoutException)
     {
         MetroMessageBox.Show(this, "\n" + Messages.General.ServerTimeOut, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (System.Net.WebException)
     {
         MetroMessageBox.Show(this, "\n" + Messages.General.NoConnection, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
     catch (Exception ex)
     {
         Utility.WriteErrorLog(ex.Message, ex, false);
         MetroMessageBox.Show(this, "\n" + Messages.General.ThereWasAnError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
        private async void BtnPreview_Click(object sender, EventArgs e)
        {
            try
            {
                if (ValidateInputs())
                {
                    frmIssueQuotationController oController = new frmIssueQuotationController();
                    decimal   decSpecialAmt = 0;
                    DataTable dtExportInfo  = new DataTable();
                    dtExportInfo.Columns.Add("ExportType");
                    dtExportInfo.Columns.Add("SpecialDiscount");
                    if (chkInitialQuot.Checked) //Initial
                    {
                        decimal.TryParse(txtInitialSpecialDiscount.Text, out decSpecialAmt);
                        decSpecialAmt = decSpecialAmt * -1;
                        DataRow dr = dtExportInfo.NewRow();
                        dr["ExportType"]      = "1";
                        dr["SpecialDiscount"] = decSpecialAmt.ToString("N0");
                        dtExportInfo.Rows.Add(dr);
                    }
                    if (chkMonthlyQuote.Checked)//Monthly
                    {
                        decimal.TryParse(txtMonthlySpecialDiscount.Text, out decSpecialAmt);
                        decSpecialAmt = decSpecialAmt * -1;

                        DataRow dr = dtExportInfo.NewRow();
                        dr["ExportType"]      = "2";
                        dr["SpecialDiscount"] = decSpecialAmt.ToString("N0");
                        dtExportInfo.Rows.Add(dr);
                    }
                    if (chkProductionInfo.Checked)//PIBrowsing
                    {
                        decimal IntialDiscount = 0;
                        decimal.TryParse(txtInitialSpecialDiscount.Text, out IntialDiscount);
                        decimal YearlyDsicount = 0;
                        decimal.TryParse(txtYearlySpecialDiscount.Text, out YearlyDsicount);
                        decSpecialAmt = (IntialDiscount + YearlyDsicount) * -1;

                        DataRow dr = dtExportInfo.NewRow();
                        dr["ExportType"]      = "4";
                        dr["SpecialDiscount"] = decSpecialAmt.ToString("N0");
                        dtExportInfo.Rows.Add(dr);
                    }
                    if (chkOrderForm.Checked)//Order Form
                    {
                        if (CONTRACT_PLAN != "PRODUCT")
                        {
                            decimal.TryParse(txtInitialSpecialDiscount.Text, out decSpecialAmt);
                            decSpecialAmt = decSpecialAmt * -1;
                        }
                        else if (CONTRACT_PLAN == "PRODUCT")
                        {
                            decimal IntialDiscount = 0;
                            decimal.TryParse(txtInitialSpecialDiscount.Text, out IntialDiscount);
                            decimal YearlyDiscount = 0;
                            decimal.TryParse(txtYearlySpecialDiscount.Text, out YearlyDiscount);
                            decSpecialAmt = (IntialDiscount + YearlyDiscount) * -1;
                        }

                        DataRow dr = dtExportInfo.NewRow();
                        dr["ExportType"]      = "3";
                        dr["SpecialDiscount"] = decSpecialAmt.ToString("N0");
                        dtExportInfo.Rows.Add(dr);
                    }

                    decimal decTaxAmount  = (decimal)0;
                    string  strStartDate  = "";
                    int     ExpireDay     = 0;
                    string  strPeroidFrom = "";
                    string  strPeroidTo   = "";
                    string  strExpireDate = "";
                    int.TryParse(txtQuotationExpireDay.Text, out ExpireDay);
                    decimal.TryParse(txtTax.Text, out decTaxAmount);
                    if (CheckUtility.SearchConditionCheck(this, lblQuotationStartDate.Text, txtQuotationStartDate.Text, false, Utility.DataType.DATE, 255, 0))
                    {
                        strStartDate  = DateConverter(txtQuotationStartDate.Text).ToString("yyyyMMdd");
                        strExpireDate = DateConverter(txtQuotationStartDate.Text).AddDays(ExpireDay).ToString("yyyyMMdd");
                    }
                    else
                    {
                        strStartDate = DateTime.Now.ToString("yyyyMMdd");
                    }

                    if (CheckUtility.SearchConditionCheck(this, lblPeriod.Text, txtPeriodFrom.Text, false, Utility.DataType.DATE, 255, 0))
                    {
                        strPeroidFrom = DateConverter(txtPeriodFrom.Text).ToString("yyyyMMdd");
                    }
                    else
                    {
                        strPeroidFrom = DateTime.Now.ToString("yyyyMMdd");
                    }

                    if (CheckUtility.SearchConditionCheck(this, lblPeriod.Text, txtPeriodTo.Text, false, Utility.DataType.DATE, 255, 0))
                    {
                        strPeroidTo = DateConverter(txtPeriodTo.Text).ToString("yyyyMMdd");
                    }
                    else
                    {
                        strPeroidTo = DateTime.Now.ToString("yyyyMMdd");
                    }
                    string    strExportInfo = Utility.DtToJSon(dtExportInfo, "ReqestPDF");
                    DataTable result        = oController.PreviewFunction(txtCompanyNoBox.Text, txtCompanyName.Text, REQ_SEQ, decTaxAmount, strStartDate, txtQuotationExpireDay.Text.Trim(), strPeroidFrom, strPeroidTo, strExportInfo, CONTRACT_PLAN, txtInitialRemark.Text.Trim(), txtMonthlyRemark.Text.Trim(), txtProductionInfoRemark.Text.Trim(), txtOrderRemark.Text.Trim());
                    string    error_message = "";
                    for (int i = 0; i < result.Rows.Count; i++)
                    {
                        CREATED_TIME  = Convert.ToString(result.Rows[i]["Created Time"]);
                        error_message = Convert.ToString(result.Rows[i]["Error Message"]);
                        if (!string.IsNullOrEmpty(error_message))
                        {
                            Dialog = DialogResult.Cancel;
                            MetroMessageBox.Show(this, "\n" + error_message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            return;
                        }
                    }

                    DataTable dt = DTParameter();

                    #region CallPreviewScreen
                    string temp_deirectory = System.IO.Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + @"\Temp";

                    if (!Directory.Exists(temp_deirectory))
                    {
                        Directory.CreateDirectory(temp_deirectory);
                    }

                    //delete temp files
                    Utility.DeleteFiles(temp_deirectory);

                    string destinationpath = temp_deirectory;
                    btnPreview.Enabled = false;
                    bool success = false;
                    result.Columns.Add("LocalPath");
                    result.Columns.Add("FileName");
                    for (int i = 0; i < result.Rows.Count; i++)
                    {
                        string filename          = Convert.ToString(result.Rows[i]["FILENAME"]);
                        string without_timestamp = Utility.RemoveTimpStampFromFileName(filename, ".pdf");
                        success = await Core.WebUtility.Download(Properties.Settings.Default.GetTempFile + "?FILENAME=" + filename, destinationpath + @"\" + without_timestamp);

                        if (success)
                        {
                            result.Rows[i]["LocalPath"] = destinationpath + @"\" + without_timestamp;
                            result.Rows[i]["FileName"]  = filename;
                        }
                    }
                    if (success)
                    {
                        frmIssueQuotationPrevew frm = new frmIssueQuotationPrevew(dt, result);
                        if (frm.ShowDialog() == DialogResult.OK)
                        {
                            Dialog          = DialogResult.OK;
                            QUOTIATION_DATE = txtQuotationStartDate.Text.Trim();
                            UPDATED_AT      = frm.UPDATED_AT;
                            UPDATED_AT_RAW  = frm.UPDATED_AT_RAW;
                            this.Show();
                            this.BringToFront();
                        }
                        else
                        {
                            Dialog = DialogResult.OK;
                        }
                    }
                    btnPreview.Enabled = true;
                    #endregion
                }
            }
            catch (System.TimeoutException)
            {
                MetroMessageBox.Show(this, "\n" + Messages.General.ServerTimeOut, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (System.Net.WebException)
            {
                MetroMessageBox.Show(this, "\n" + Messages.General.NoConnection, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex)
            {
                Utility.WriteErrorLog(ex.Message, ex, false);
                MetroMessageBox.Show(this, "\n" + Messages.General.ThereWasAnError, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }