private void Form_Delivery_Confirm_Load(object sender, EventArgs e)
        {
            string        PATH_SOURCE = System.Configuration.ConfigurationSettings.AppSettings["PATH_SOURCE"].ToString();
            string        PATH_BAK    = System.Configuration.ConfigurationSettings.AppSettings["PATH_BAK"].ToString();
            string        PATH_Target = System.Configuration.ConfigurationSettings.AppSettings["PATH_TARGET"].ToString();
            string        sPrefix     = System.Configuration.ConfigurationSettings.AppSettings["PRE_FIX"].ToString();
            StringBuilder result      = new StringBuilder();
            string        sOrder_No   = string.Empty;

            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();

            string FtpSync_Inbound  = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Inbound"].ToString();
            string WorkingDirectory = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();

            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            try
            {
                string Order_No       = string.Empty;
                string Order_Type     = string.Empty;
                string Line_Number    = string.Empty;
                string PRTNUM         = string.Empty;
                string sLocation      = string.Empty;
                string LOTNUM         = string.Empty;
                string COMQTY         = string.Empty;
                string STKUOM         = string.Empty;
                string Carrie_Number  = string.Empty;
                string Value_ignored  = string.Empty;
                string TRNDTE         = string.Empty;
                string Carrie_Number2 = string.Empty;

                System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess.StartInfo.FileName         = FtpSync_Inbound;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();

                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, sPrefix + "*.xml"))
                {
                    DataSet ds = new DataSet();
                    ds.ReadXml(filepath);
                    result    = new StringBuilder();
                    Order_No  = string.Empty;
                    sOrder_No = string.Empty;
                    for (int i = 0; i < ds.Tables["SHIPMENT_LINE_SEG"].Rows.Count; i++)
                    {
                        string sTxt     = string.Empty;
                        string sCompany = System.Configuration.ConfigurationSettings.AppSettings["sCompany"].ToString();
                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString() != string.Empty)
                        {
                            Order_No = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString().Substring(7);// PAHC-SO150789-01 --> 150789-01
                            if (Order_No != string.Empty)
                            {
                                if (sOrder_No == string.Empty)
                                {
                                    sOrder_No = Order_No;
                                }
                            }
                        }
                        else
                        {
                            Order_No = string.Empty;
                        }

                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString() != string.Empty)
                        {
                            Order_Type = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString().Substring(5, 2); // PAHC-SO150789-01 --> SO
                        }
                        else
                        {
                            Order_Type = string.Empty;
                        }

                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDLIN"].ToString() != string.Empty)
                        {
                            Line_Number = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDLIN"].ToString() + "000"; // 1.001 --> 1.001000
                        }
                        else
                        {
                            Line_Number = string.Empty;
                        }

                        PRTNUM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["PRTNUM"].ToString();
                        sLocation     = "";
                        LOTNUM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["LOTNUM"].ToString();
                        COMQTY        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["COMQTY"].ToString();
                        STKUOM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["STKUOM"].ToString();
                        Carrie_Number = "";
                        Value_ignored = "";
                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["TRNDTE"].ToString() != string.Empty)
                        {
                            TRNDTE = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["TRNDTE"].ToString(); // format mm/dd/yyyy  2019-07-26T16:37:23 ~
                            TRNDTE = TRNDTE.Substring(5, 2) + "/" + TRNDTE.Substring(8, 2) + "/" + TRNDTE.Substring(0, 4);
                        }
                        else
                        {
                            TRNDTE = string.Empty;
                        }



                        sTxt  = sCompany.Trim() + "~" + Order_No.Trim() + "~" + Order_Type.Trim() + "~" + Line_Number.Trim() + "~" + PRTNUM.Trim();
                        sTxt += "~" + sLocation.Trim() + "~" + LOTNUM.Trim() + "~" + COMQTY.Trim() + "~" + STKUOM.Trim() + "~" + Carrie_Number.Trim();
                        sTxt += "~" + Value_ignored.Trim() + "~" + TRNDTE.Trim();
                        result.Append(sTxt);
                        result.AppendLine();
                    }

                    #region Create Text file
                    string       PRE_Naming = System.Configuration.ConfigurationSettings.AppSettings["PRE_Naming"].ToString();
                    string       FileName   = PRE_Naming + "_" + sOrder_No + "_" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US")));
                    StreamWriter objWriter  = new StreamWriter(PATH_Target + @"\\" + FileName + ".txt", false);
                    objWriter.Write(result.ToString());
                    objWriter.Close();

                    #endregion

                    #region Move File
                    string result_Move;
                    result_Move = Path.GetFileName(filepath);
                    string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                    bool   exists    = System.IO.Directory.Exists(sPath_bak);
                    if (!exists)
                    {
                        System.IO.Directory.CreateDirectory(sPath_bak);
                    }
                    System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                    #endregion
                    System.Threading.Thread.Sleep(1000);

                    string sSubject = PRE_Naming + "_" + sOrder_No;
                    classmail.Sendmail(MailTo, smtp, "Convert DCHDeliveryConfirm XML to Text success : " + FileName + ".txt", MailFrom, sSubject);

                    string FtpSync_Outbound = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound"].ToString();
                    System.Diagnostics.Process pProcess_out = new System.Diagnostics.Process();
                    pProcess_out.StartInfo.WorkingDirectory = WorkingDirectory;
                    pProcess_out.StartInfo.FileName         = FtpSync_Outbound;
                    pProcess_out.StartInfo.CreateNoWindow   = true; //not diplay a windows
                    pProcess_out.Start();
                    pProcess_out.WaitForExit();
                }
            }
            catch (Exception ex)
            {
                classmail.Sendmail(MailTo, smtp, "Error Convert DCHDeliveryConfirm XML to Text :" + ex.Message.ToString(), MailFrom, strSubject);
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
Esempio n. 2
0
        private void Form_SHIPCONFIRM_Load(object sender, EventArgs e)
        {
            string        PATH_SOURCE    = System.Configuration.ConfigurationSettings.AppSettings["PATH_SOURCE"].ToString();
            string        PATH_BAK       = System.Configuration.ConfigurationSettings.AppSettings["PATH_BAK"].ToString();
            string        PATH_Target    = System.Configuration.ConfigurationSettings.AppSettings["PATH_TARGET"].ToString();
            string        sPrefix        = System.Configuration.ConfigurationSettings.AppSettings["PRE_FIX"].ToString();
            string        PRE_Naming_XML = System.Configuration.ConfigurationSettings.AppSettings["PRE_Naming_XML"].ToString();
            StringBuilder result         = new StringBuilder();
            StringBuilder result_xml     = new StringBuilder();
            string        sOrder_No      = string.Empty;

            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();

            string FtpSync_Inbound  = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Inbound"].ToString();
            string WorkingDirectory = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();

            string WHSE_ID   = System.Configuration.ConfigurationSettings.AppSettings["WHSE_ID"].ToString();
            string CLIENT_ID = System.Configuration.ConfigurationSettings.AppSettings["CLIENT_ID"].ToString();

            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            try
            {
                System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess.StartInfo.FileName         = FtpSync_Inbound;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();

                string  Order_No       = string.Empty;
                string  Order_Type     = string.Empty;
                string  Line_Number    = string.Empty;
                string  PRTNUM         = string.Empty;
                string  sLocation      = string.Empty;
                string  LOTNUM         = string.Empty;
                string  COMQTY         = string.Empty;
                string  STKUOM         = string.Empty;
                string  Carrie_Number  = string.Empty;
                string  Value_ignored  = string.Empty;
                string  TRNDTE         = string.Empty;
                string  Carrie_Number2 = string.Empty;
                DataSet ds_mail        = new DataSet();
                int     nCount         = 0;
                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, sPrefix + "*.xml"))
                {
                    DataSet ds = new DataSet();
                    ds.ReadXml(filepath);

                    ds_mail   = new DataSet();
                    ds_mail   = AddCoulumn_reusultMail();
                    nCount    = nCount + 1;
                    result    = new StringBuilder();
                    Order_No  = string.Empty;
                    sOrder_No = string.Empty;
                    string ORDERNO = string.Empty;
                    for (int i = 0; i < ds.Tables["SHIPMENT_LINE_SEG"].Rows.Count; i++)
                    {
                        string sTxt     = string.Empty;
                        string sCompany = System.Configuration.ConfigurationSettings.AppSettings["sCompany"].ToString();
                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString() != string.Empty)
                        {
                            //Order_No = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString().Substring(7);// PAHC-SO150789-01 --> 150789-01
                            ORDERNO  = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString().Substring(7);
                            Order_No = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString();
                            if (Order_No != string.Empty)
                            {
                                if (sOrder_No == string.Empty)
                                {
                                    sOrder_No = Order_No;
                                }
                            }
                        }
                        else
                        {
                            Order_No = string.Empty;
                        }

                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString() != string.Empty)
                        {
                            Order_Type = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDNUM"].ToString().Substring(5, 2); // PAHC-SO150789-01 --> SO
                        }
                        else
                        {
                            Order_Type = string.Empty;
                        }

                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDLIN"].ToString() != string.Empty)
                        {
                            Line_Number = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["ORDLIN"].ToString() + "000"; // 1.001 --> 1.001000
                        }
                        else
                        {
                            Line_Number = string.Empty;
                        }

                        PRTNUM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["PRTNUM"].ToString();
                        sLocation     = "";
                        LOTNUM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["LOTNUM"].ToString();
                        COMQTY        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["COMQTY"].ToString();
                        STKUOM        = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["STKUOM"].ToString();
                        Carrie_Number = "";
                        Value_ignored = "";
                        if (ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["TRNDTE"].ToString() != string.Empty)
                        {
                            TRNDTE = ds.Tables["SHIPMENT_LINE_SEG"].Rows[i]["TRNDTE"].ToString(); // format mm/dd/yyyy  2019-07-26T16:37:23 ~
                            TRNDTE = TRNDTE.Substring(5, 2) + "/" + TRNDTE.Substring(8, 2) + "/" + TRNDTE.Substring(0, 4);
                        }
                        else
                        {
                            TRNDTE = string.Empty;
                        }

                        Carrie_Number2 = ""; // DCHShipConfirm.txt

                        sTxt  = sCompany.Trim() + "~" + ORDERNO.Trim() + "~" + Order_Type.Trim() + "~" + Line_Number.Trim() + "~" + PRTNUM.Trim();
                        sTxt += "~" + sLocation.Trim() + "~" + LOTNUM.Trim() + "~" + COMQTY.Trim() + "~" + STKUOM.Trim() + "~" + Carrie_Number.Trim();
                        sTxt += "~" + Value_ignored.Trim() + "~" + TRNDTE.Trim() + "~" + Carrie_Number2.Trim();
                        result.Append(sTxt);
                        result.AppendLine();
                    }

                    #region Create Text file
                    string       PRE_Naming = System.Configuration.ConfigurationSettings.AppSettings["PRE_Naming"].ToString();
                    string       FileName   = PRE_Naming + "_" + ORDERNO + "_" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US")));
                    StreamWriter objWriter  = new StreamWriter(PATH_Target + @"\\" + FileName + ".txt", false);
                    objWriter.Write(result.ToString());
                    objWriter.Close();

                    DataRow dr_Mail = ds_mail.Tables["Mail"].NewRow();
                    dr_Mail["LINE_NO"] = nCount;
                    dr_Mail["MESSAGE"] = "Convert Ship confirm success : " + FileName + ".txt";
                    ds_mail.Tables["Mail"].Rows.Add(dr_Mail);

                    #endregion

                    #region Create P_601_E2A_INV .XML
                    string CLIENT_ID_ORDER_NO = string.Empty;
                    CLIENT_ID_ORDER_NO = System.Configuration.ConfigurationSettings.AppSettings["TAG_ORDER_NO"].ToString() + sOrder_No;
                    result_xml         = new StringBuilder();
                    result_xml.Append(@"<?xml version='1.0' encoding= 'UTF-8'?>");
                    #region UC_INVOICE_INB_IFD
                    result_xml.Append(@"<UC_INVOICE_INB_IFD xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://jda.dch.ac2wave.com/UC_INVOICE_INB_IFD.xsd invoice_newl.xsd' xmlns='http://jda.dch.ac2wave.com/UC_INVOICE_INB_IFD.xsd'>");
                    result_xml.Append(@"<CTRL_SEG>");

                    result_xml.Append("<TRNNAM>DC_INVOICE_INB</TRNNAM>");
                    result_xml.Append("<TRNVER>2017.1</TRNVER>");
                    result_xml.Append(@"<TRNDTE>" + DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss") + "</TRNDTE>");
                    result_xml.Append("<WHSE_ID>" + WHSE_ID.Trim() + "</WHSE_ID>");

                    #region INVOICE_INB_SEG
                    result_xml.Append(@"<INVOICE_INB_SEG>");
                    result_xml.Append("<TRNTYP>C</TRNTYP>");
                    result_xml.Append("<CLIENT_ID>" + CLIENT_ID.Trim() + "</CLIENT_ID>");
                    result_xml.Append("<ORDER_NO>" + CLIENT_ID_ORDER_NO.Trim() + "</ORDER_NO>");
                    result_xml.Append("<INVOICE_NO>" + CLIENT_ID_ORDER_NO.Trim() + "</INVOICE_NO>");
                    result_xml.Append(@"<ALLOW_CANCEL_FLG/>");
                    result_xml.Append(@"</INVOICE_INB_SEG>");
                    #endregion

                    result_xml.Append(@"</CTRL_SEG>");
                    result_xml.Append("</UC_INVOICE_INB_IFD>");
                    #endregion UC_INVOICE_INB_IFD

                    FileName = PRE_Naming_XML + "_" + sOrder_No + "_" + DateTime.Now.ToString("yyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "001";

                    objWriter = new StreamWriter(System.Configuration.ConfigurationSettings.AppSettings["PATH_TARGET_To_Inbound"].ToString() + "\\" + FileName + ".xml", false);
                    objWriter.Write(result_xml.ToString());
                    objWriter.Close();



                    dr_Mail            = ds_mail.Tables["Mail"].NewRow(); //PRE_Naming_XML
                    dr_Mail["LINE_NO"] = nCount;
                    dr_Mail["MESSAGE"] = "Convert Ship confirm success : " + FileName + ".xml";
                    ds_mail.Tables["Mail"].Rows.Add(dr_Mail);
                    #endregion

                    #region Move File
                    string result_Move;
                    result_Move = Path.GetFileName(filepath);
                    string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                    bool   exists    = System.IO.Directory.Exists(sPath_bak);
                    if (!exists)
                    {
                        System.IO.Directory.CreateDirectory(sPath_bak);
                    }
                    System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                    #endregion
                    System.Threading.Thread.Sleep(1000);

                    //string sSubject = PRE_Naming + "_" + sOrder_No;
                    //classmail.Sendmail(MailTo, smtp, "Convert ShipConfirm XML to Text success : " + FileName + ".txt", MailFrom, sSubject);

                    #region send mail success
                    if (ds_mail.Tables["Mail"].Rows.Count != 0)
                    {
                        string sSubject_Mail = strSubject + ": " + result_Move;
                        classmail.Sendmail(MailTo, smtp, string.Empty, MailFrom, sSubject_Mail, ds_mail);
                    }
                    #endregion


                    //string FtpSync_Outbound = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound"].ToString();
                    //System.Diagnostics.Process pProcess_out = new System.Diagnostics.Process();
                    //pProcess_out.StartInfo.WorkingDirectory = WorkingDirectory;
                    //pProcess_out.StartInfo.FileName = FtpSync_Outbound;
                    //pProcess_out.StartInfo.CreateNoWindow = true; //not diplay a windows
                    //pProcess_out.Start();
                    //pProcess_out.WaitForExit();
                }
                string FtpSync_Outbound = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound"].ToString();
                System.Diagnostics.Process pProcess_out = new System.Diagnostics.Process();
                pProcess_out.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess_out.StartInfo.FileName         = FtpSync_Outbound;
                pProcess_out.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess_out.Start();
                pProcess_out.WaitForExit();

                string FtpSync_Outbound_in             = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound_In"].ToString();
                System.Diagnostics.Process pProcess_In = new System.Diagnostics.Process();
                pProcess_In.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess_In.StartInfo.FileName         = FtpSync_Outbound_in;
                pProcess_In.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess_In.Start();
                pProcess_In.WaitForExit();
            }
            catch (Exception ex)
            {
                classmail.Sendmail(MailTo, smtp, "Error Convert ShipConfirm XML to Text :" + ex.Message.ToString(), MailFrom, strSubject);
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
Esempio n. 3
0
        private void E2A_RCV_PO_Load(object sender, EventArgs e)
        {
            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string PRE_Naming = System.Configuration.ConfigurationSettings.AppSettings["PRE_Naming"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();

            string FtpSync_Inbound  = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Inbound"].ToString();
            string WorkingDirectory = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();

            try
            {
                string   sPath_Source = GetPATH_SOURCE();
                string   sPath_BAK    = GetPATH_BAK();
                string   GetPATHXML   = GetPATH_XML();
                string[] sFiles       = null;
                sFiles = GetPRE_FIX(sPath_Source);
                DataTable dt       = new DataTable();
                DataTable dt_no    = new DataTable();
                DataTable dtResult = new DataTable();

                StringBuilder result              = new StringBuilder();
                StringBuilder result_error        = new StringBuilder();
                string        sPrefix             = System.Configuration.ConfigurationSettings.AppSettings["PRE_FIX"].ToString();
                string        SUPNUM              = System.Configuration.ConfigurationSettings.AppSettings["SUPNUM"].ToString();
                string        CLIENT_ID           = System.Configuration.ConfigurationSettings.AppSettings["CLIENT_ID"].ToString();
                string        WHSE_ID             = System.Configuration.ConfigurationSettings.AppSettings["WHSE_ID"].ToString();
                string        SHIP_TO_JDE_ADDRESS = "";
                string        SALES_ORDER_NO      = "";
                string        SHIP_TO             = "";
                bool          bCheck              = false;
                bool          Count_error         = false;
                int           nCount              = 0;
                int           nCount_line         = 0;

                System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess.StartInfo.FileName         = FtpSync_Inbound;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();

                string Filename = string.Empty;
                foreach (string filepath in Directory.GetFiles(sPath_Source, sPrefix + "*.txt"))
                {
                    Filename    = string.Empty;
                    bCheck      = true;
                    dt          = new DataTable();
                    dt_no       = new DataTable();
                    dt          = ConvertToDataTable(filepath, out dt_no);
                    Count_error = false;
                    string searchstring = string.Empty;
                    nCount = 0;
                    DataSet ds_result = new DataSet();
                    DataSet ds_mail   = new DataSet();
                    DataRow dr;
                    Filename = Path.GetFileName(filepath);

                    ds_mail = new DataSet();
                    ds_mail = AddCoulumn_reusultMail();
                    result  = new StringBuilder();
                    for (int i = 0; i < dt_no.Rows.Count; i++) // Loop PO
                    {
                        nCount = nCount + 1;
                        if (searchstring != dt_no.Rows[i]["PO_NO"].ToString().Trim())
                        {
                            ds_result = AddCoulumn();
                        }

                        searchstring = dt_no.Rows[i]["PO_NO"].ToString();

                        dtResult = new DataTable();
                        dtResult = dt.Select("PO_NO LIKE '%" + searchstring + "%'").CopyToDataTable();

                        result = new StringBuilder();
                        result.Append(@"<?xml version='1.0' encoding= 'UTF-8'?>");

                        #region RA_INB_IFD
                        result.Append(@"<RA_INB_IFD xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>");

                        #region CTRL_SEG
                        result.Append("<CTRL_SEG>");

                        result.Append("<TRNNAM>RA_TRAN</TRNNAM>");
                        //result.AppendLine();
                        result.Append("<TRNVER>8.3</TRNVER>");
                        //result.AppendLine();
                        result.Append(@"<TRNDTE>" + DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss") + "</TRNDTE>");
                        //result.AppendLine();
                        result.Append("<WHSE_ID>" + WHSE_ID + "</WHSE_ID>");

                        #region HEADER_SEG
                        result.Append("<HEADER_SEG>");

                        result.Append("<SEGNAM>HEADER_SEG</SEGNAM>");
                        result.Append("<TRNTYP>A</TRNTYP>");
                        // PO_TYPE
                        string INVNUM = CLIENT_ID.Substring(0, 5) + "PAHC-" + dtResult.Rows[0]["PO_TYPE"].ToString().Trim() + dtResult.Rows[0]["PO_NO"].ToString().Trim();
                        if (dtResult.Rows[0]["PO_NO"].ToString().Trim() == string.Empty)
                        {
                            Count_error = true;
                            result.Append("<INVNUM/>"); //result_error

                            dr             = ds_result.Tables["ERR"].NewRow();
                            dr["LINE_NO"]  = nCount;
                            dr["PO_NO"]    = searchstring;
                            dr["TAG_NAME"] = "HEADER_SEG-INVNUM";
                            dr["VALUES"]   = "Blank";
                            ds_result.Tables["ERR"].Rows.Add(dr);
                        }
                        else
                        {
                            result.Append("<INVNUM>" + INVNUM + "</INVNUM>");
                        }

                        result.Append("<SUPNUM>" + SUPNUM + "</SUPNUM>");          // Fix ค่อยมาแก่ที่หลัง WAITING_DATA Supplier number. FIX "90000008" ไปก่อนค่อยมาแก้ทีหลัง
                        result.Append("<CLIENT_ID>" + CLIENT_ID + "</CLIENT_ID>"); // Fix ค่อยมาแก่ที่หลัง WAITING_DATA

                        result.Append("<RIMSTS>OPEN</RIMSTS>");
                        result.Append("<INVTYP>P</INVTYP>");
                        result.Append("<INVDTE>" + DateTime.Now.ToString("yyyy-MM-ddThh:mm:ss") + "</INVDTE>");
                        result.Append("<ORGREF/>");
                        result.Append("<SADNUM/>");
                        result.Append("<TPL_SHIPTONO/>");

                        #region <LINE_SEG>
                        nCount_line = 0;
                        for (int j = 0; j < dtResult.Rows.Count; j++)
                        {
                            nCount_line = nCount_line + 1;
                            result.Append("<LINE_SEG>");
                            #region  LINE_SEG Data
                            result.Append("<SEGNAM>LINE_SEG</SEGNAM>");
                            if (dtResult.Rows[j]["LineNumber"].ToString().Trim() == string.Empty)
                            {
                                Count_error = true;
                                result.Append("<INVLIN/>");
                                result.Append("<INVSLN/>");

                                dr             = ds_result.Tables["ERR"].NewRow();
                                dr["LINE_NO"]  = nCount_line;
                                dr["PO_NO"]    = searchstring;
                                dr["TAG_NAME"] = "LINE_SEG-INVLIN";
                                dr["VALUES"]   = "Blank";
                                ds_result.Tables["ERR"].Rows.Add(dr);

                                dr             = ds_result.Tables["ERR"].NewRow();
                                dr["LINE_NO"]  = nCount_line;
                                dr["PO_NO"]    = searchstring;
                                dr["TAG_NAME"] = "LINE_SEG-INVSLN";
                                dr["VALUES"]   = "Blank";
                                ds_result.Tables["ERR"].Rows.Add(dr);
                            }
                            else
                            {
                                string[] words = dtResult.Rows[j]["LineNumber"].ToString().Split('.');
                                result.Append("<INVLIN>" + words[0].ToString() + ".000" + "</INVLIN>");
                                //result.Append("<INVSLN>" + words[1].ToString() + "</INVSLN>");
                                result.Append("<INVSLN>" + dtResult.Rows[j]["LineNumber"].ToString() + "</INVSLN>");
                            }

                            if (dtResult.Rows[j]["Qty"].ToString().Trim() == string.Empty)
                            {
                                result.Append("<EXPQTY>0</EXPQTY>");
                            }
                            else
                            {
                                result.Append("<EXPQTY>" + dtResult.Rows[j]["Qty"].ToString().Trim().Split('.')[0] + "</EXPQTY>");
                            }

                            if (dtResult.Rows[j]["itemNumber"].ToString().Trim() == string.Empty)
                            {
                                Count_error = true;
                                result.Append("<PRTNUM/>");

                                dr             = ds_result.Tables["ERR"].NewRow();
                                dr["LINE_NO"]  = nCount_line;
                                dr["PO_NO"]    = searchstring;
                                dr["TAG_NAME"] = "LINE_SEG-PRTNUM";
                                dr["VALUES"]   = "Blank";
                                ds_result.Tables["ERR"].Rows.Add(dr);
                            }
                            else
                            {
                                result.Append("<PRTNUM>" + dtResult.Rows[j]["itemNumber"].ToString().Trim() + "</PRTNUM>");
                            }

                            result.Append("<LOTNUM/>");
                            result.Append("<RCVSTS>1</RCVSTS>");

                            if (dtResult.Rows[j]["UOM"].ToString().Trim() == string.Empty)
                            {
                                result.Append("<INV_ATTR_STR1/>");
                            }
                            else
                            {
                                result.Append("<INV_ATTR_STR1>" + dtResult.Rows[j]["UOM"].ToString().Trim() + "</INV_ATTR_STR1>");
                            }

                            result.Append("<TPL_LOC/>");
                            result.Append("<TPL_LOTNUM/>");

                            #endregion LINE_SEG Data
                            result.Append("</LINE_SEG>");
                        }
                        #endregion <LINE_SEG>

                        result.Append("</HEADER_SEG>");
                        #endregion HEADER_SEG

                        result.Append("</CTRL_SEG>");
                        #endregion CTRL_SEG

                        result.Append("</RA_INB_IFD>");
                        #endregion RA_INB_IFD


                        if (Count_error) // Error
                        {
                            #region Create file error

                            string sSubject = "Error file Name : " + Filename;
                            classmail.Sendmail(MailTo, smtp, string.Empty, MailFrom, sSubject, ds_result);
                            System.Threading.Thread.Sleep(1000); //searchstring
                            #endregion
                        }
                        else // Not error
                        {
                            #region Create File
                            string       FileName  = PRE_Naming + "_" + searchstring.PadLeft(8, '0') + "_" + DateTime.Now.ToString("yyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "001";
                            StreamWriter objWriter = new StreamWriter(GetPATHXML + "\\" + FileName + ".xml", false);
                            objWriter.Write(result.ToString());
                            objWriter.Close();
                            System.Threading.Thread.Sleep(1000);

                            //if (bCheck) // Convert XML success  Send mail
                            //{
                            //    string sSubject = PRE_Naming + "_" + "_" + searchstring;
                            //    classmail.Sendmail(MailTo, smtp, "Convert text file to XML success : " + FileName + ".xml", MailFrom, sSubject);
                            //}

                            //string sSubject = PRE_Naming + "_" + searchstring;
                            //classmail.Sendmail(MailTo, smtp, "Convert text file to XML success : " + FileName + ".xml", MailFrom, sSubject);


                            DataRow dr_Mail = ds_mail.Tables["Mail"].NewRow();
                            dr_Mail["LINE_NO"] = nCount;
                            dr_Mail["MESSAGE"] = "Convert text file to XML success : " + FileName + ".xml";
                            ds_mail.Tables["Mail"].Rows.Add(dr_Mail);
                            #endregion
                        }
                    }
                    #region Move File
                    string result_Move;
                    result_Move = Path.GetFileName(filepath);

                    #region send mail success
                    if (ds_mail.Tables.Count != 0)
                    {
                        string sSubject_Mail = strSubject + ": " + result_Move;
                        classmail.Sendmail(MailTo, smtp, string.Empty, MailFrom, sSubject_Mail, ds_mail);
                    }
                    #endregion

                    string sPath_bak = sPath_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                    bool   exists    = System.IO.Directory.Exists(sPath_bak);
                    if (!exists)
                    {
                        System.IO.Directory.CreateDirectory(sPath_bak);
                    }

                    System.IO.File.Move(sPath_Source + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                    #endregion
                }

                string FtpSync_Outbound = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound"].ToString();
                System.Diagnostics.Process pProcess_out = new System.Diagnostics.Process();
                pProcess_out.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess_out.StartInfo.FileName         = FtpSync_Outbound;
                pProcess_out.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess_out.Start();
                pProcess_out.WaitForExit();
            }
            catch (Exception ex)
            {
                classmail.Sendmail(MailTo, smtp, "Error PO :" + ex.Message.ToString(), MailFrom, strSubject);
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
        private void Form_A2E_RCV_PO_Load(object sender, EventArgs e)
        {
            string        PATH_SOURCE = System.Configuration.ConfigurationSettings.AppSettings["PATH_SOURCE"].ToString();
            string        PATH_BAK    = System.Configuration.ConfigurationSettings.AppSettings["PATH_BAK"].ToString();
            string        PATH_Target = System.Configuration.ConfigurationSettings.AppSettings["PATH_TARGET"].ToString();
            string        sPrefix     = System.Configuration.ConfigurationSettings.AppSettings["PRE_FIX"].ToString();
            StringBuilder result      = new StringBuilder();
            string        sOrder_No   = string.Empty;

            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();

            string FtpSync_Inbound  = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Inbound"].ToString();
            string WorkingDirectory = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();

            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            try
            {
                System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess.StartInfo.FileName         = FtpSync_Inbound;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();

                string INVNUM  = string.Empty;
                string PO_Type = string.Empty;
                string INVLIN  = string.Empty;
                string PRTNUM  = string.Empty;
                string RCVQTY  = string.Empty;
                string STKUOM  = string.Empty;

                string LOTNUM     = string.Empty;
                string TRNDTE     = string.Empty;
                string EXPIRE_DTE = string.Empty;
                string SHORTITEM  = string.Empty;
                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, sPrefix + "*.xml"))
                {
                    DataSet ds = new DataSet();
                    ds.ReadXml(filepath);

                    for (int i = 0; i < ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows.Count; i++)
                    {
                        string sTxt     = string.Empty;
                        string sCompany = "00125";
                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["INVNUM"].ToString() != string.Empty)
                        {
                            INVNUM = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["INVNUM"].ToString().Substring(7);// PO306768
                        }
                        else
                        {
                            INVNUM = string.Empty;
                        }

                        PO_Type = "OP";

                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["INVLIN"].ToString() != string.Empty)
                        {
                            INVLIN = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["INVLIN"].ToString();
                        }
                        else
                        {
                            INVLIN = string.Empty;
                        }

                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["PRTNUM"].ToString() != string.Empty)
                        {
                            PRTNUM = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["PRTNUM"].ToString();
                        }
                        else
                        {
                            PRTNUM = string.Empty;
                        }

                        RCVQTY = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["RCVQTY"].ToString();
                        STKUOM = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["STKUOM"].ToString();

                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["LOTNUM"].ToString() != string.Empty)
                        {
                            LOTNUM = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["LOTNUM"].ToString();
                        }
                        else
                        {
                            LOTNUM = string.Empty;
                        }


                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["TRNDTE"].ToString() != string.Empty)
                        {
                            TRNDTE = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["TRNDTE"].ToString(); // format mm/dd/yyyy  2019-07-26T16:37:23 |
                            TRNDTE = TRNDTE.Substring(5, 2) + "/" + TRNDTE.Substring(8, 2) + "/" + TRNDTE.Substring(0, 4);
                        }
                        else
                        {
                            TRNDTE = string.Empty;
                        }

                        if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["EXPIRE_DTE"].ToString() != string.Empty)
                        {
                            EXPIRE_DTE = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["EXPIRE_DTE"].ToString(); // format mm/dd/yyyy  2019-07-26T16:37:23 |
                            EXPIRE_DTE = EXPIRE_DTE.Substring(5, 2) + "/" + EXPIRE_DTE.Substring(8, 2) + "/" + EXPIRE_DTE.Substring(0, 4);
                        }
                        else
                        {
                            EXPIRE_DTE = string.Empty;
                        }

                        //if (ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["SHORTITEM"].ToString() != string.Empty)
                        //{
                        //    SHORTITEM = ds.Tables["INVENTORY_RECEIPT_IFD_SEG"].Rows[i]["SHORTITEM"].ToString();
                        //}
                        //else
                        //{
                        //    SHORTITEM = string.Empty;
                        //}

                        SHORTITEM = string.Empty;

                        sTxt  = sCompany.Trim() + "|" + INVNUM.Trim() + "|" + PO_Type.Trim() + "|" + INVLIN.Trim() + "|" + PRTNUM.Trim();
                        sTxt += "|" + RCVQTY.Trim() + "|" + STKUOM.Trim() + "|" + LOTNUM.Trim() + "|" + TRNDTE.Trim() + "|" + EXPIRE_DTE.Trim();
                        sTxt += "|" + SHORTITEM.Trim();
                        result.Append(sTxt);
                        result.AppendLine();
                    }

                    #region Create Text file
                    string       PRE_Naming = System.Configuration.ConfigurationSettings.AppSettings["PRE_Naming"].ToString();
                    string       FileName   = PRE_Naming + "_" + INVNUM + "_" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US")));
                    StreamWriter objWriter  = new StreamWriter(PATH_Target + @"\\" + FileName + ".txt", false);
                    objWriter.Write(result.ToString());
                    objWriter.Close();

                    #endregion

                    #region Move File
                    string result_Move;
                    result_Move = Path.GetFileName(filepath);

                    string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                    bool   exists    = System.IO.Directory.Exists(sPath_bak);
                    if (!exists)
                    {
                        System.IO.Directory.CreateDirectory(sPath_bak);
                    }

                    System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                    #endregion
                    System.Threading.Thread.Sleep(1000);

                    string sSubject = PRE_Naming + "_" + INVNUM;
                    classmail.Sendmail(MailTo, smtp, "Convert A2E_RCV XML to Text success : " + FileName + ".txt", MailFrom, sSubject);

                    string FtpSync_Outbound = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Outbound"].ToString();
                    System.Diagnostics.Process pProcess_out = new System.Diagnostics.Process();
                    pProcess_out.StartInfo.WorkingDirectory = WorkingDirectory;
                    pProcess_out.StartInfo.FileName         = FtpSync_Outbound;
                    pProcess_out.StartInfo.CreateNoWindow   = true; //not diplay a windows
                    pProcess_out.Start();
                    pProcess_out.WaitForExit();
                }
            }
            catch (Exception ex)
            {
                classmail.Sendmail(MailTo, smtp, "Error Convert A2E_RCV XML to Text :" + ex.Message.ToString(), MailFrom, strSubject);
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
Esempio n. 5
0
        private void Form1_Load(object sender, EventArgs e)
        {
            string PathInput  = System.Configuration.ConfigurationSettings.AppSettings["PathInput"].ToString();
            string PathOutput = System.Configuration.ConfigurationSettings.AppSettings["PathOutput"].ToString();
            string PathBack   = System.Configuration.ConfigurationSettings.AppSettings["PathBack"].ToString();
            string PathError  = System.Configuration.ConfigurationSettings.AppSettings["PathError"].ToString();

            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();
            string Pathhsefle = System.Configuration.ConfigurationSettings.AppSettings["Pathhsefle"].ToString();

            string FtpSync_Inbound  = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Inbound"].ToString();
            string WorkingDirectory = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory"].ToString();

            string FtpSync_Bat2          = System.Configuration.ConfigurationSettings.AppSettings["FtpSync_Bat2"].ToString();
            string WorkingDirectory_Bat2 = System.Configuration.ConfigurationSettings.AppSettings["WorkingDirectory_Bat2"].ToString();


            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            string fileName = string.Empty;

            try
            {
                foreach (string filepaths in Directory.GetFiles(Pathhsefle, "*.hse"))
                {
                    bool bResult = false;
                    fileName = string.Empty;
                    fileName = filepaths;
                    bResult  = CopyFile(Pathhsefle, filepaths, PathInput);
                }

                foreach (string filepath in Directory.GetFiles(PathInput, "*.hse"))
                {
                    fileName = string.Empty;
                    fileName = filepath;
                    bool bResult = false;
                    bResult = ConvertAnsiToUTF8(filepath, PathOutput + "/" + Path.GetFileName(filepath));
                    if (BackUpfile(PathInput, filepath, PathBack))
                    {
                    }
                }
                #region SFTP
                System.Diagnostics.Process pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory;
                pProcess.StartInfo.FileName         = FtpSync_Inbound;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();
                #endregion

                #region Bat TTN
                pProcess = new System.Diagnostics.Process();
                pProcess.StartInfo.WorkingDirectory = WorkingDirectory_Bat2;
                pProcess.StartInfo.FileName         = FtpSync_Bat2;
                pProcess.StartInfo.CreateNoWindow   = true; //not diplay a windows
                pProcess.Start();
                pProcess.WaitForExit();
                #endregion

                classmail.Sendmail(MailTo, smtp, "Success Convert TTN ANSI to UTF-8", MailFrom, "Success TTN Convert ANSI to UTF-8");
            }
            catch (Exception ex)
            {
                classmail.Sendmail(MailTo, smtp, "Error Convert TTN ANSI to UTF-8 File : " + fileName + " " + ex.Message.ToString(), MailFrom, strSubject);
                if (BackUpfile(PathInput, fileName, PathError))
                {
                }
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
Esempio n. 6
0
        private void CONVERT_POD_Load(object sender, EventArgs e)
        {
            string        PATH_SOURCE = System.Configuration.ConfigurationSettings.AppSettings["PATH_SOURCE"].ToString();
            string        PATH_TARGET = System.Configuration.ConfigurationSettings.AppSettings["PATH_TARGET"].ToString();
            string        PATH_BAK    = System.Configuration.ConfigurationSettings.AppSettings["PATH_BAK"].ToString();
            DataTable     dt_output   = new DataTable();
            StringBuilder result      = new StringBuilder();
            string        HEAD        = System.Configuration.ConfigurationSettings.AppSettings["HEAD"].ToString();
            string        TRAN        = System.Configuration.ConfigurationSettings.AppSettings["TRAN"].ToString();
            string        sAMT        = System.Configuration.ConfigurationSettings.AppSettings["AMT"].ToString();
            string        PATH_Error  = System.Configuration.ConfigurationSettings.AppSettings["PATH_Error"].ToString();

            string MailFrom   = System.Configuration.ConfigurationSettings.AppSettings["MailFrom"].ToString();
            string MailTo     = System.Configuration.ConfigurationSettings.AppSettings["MailTo"].ToString();
            string smtp       = System.Configuration.ConfigurationSettings.AppSettings["SMTP"].ToString();
            string strSubject = System.Configuration.ConfigurationSettings.AppSettings["sSubjectmail"].ToString();

            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            try
            {
                // Header
                bool   bResult;
                string sError = string.Empty;
                string result_Move;
                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, HEAD + "*.xlsx"))
                {
                    bResult     = false;
                    dt_output   = new DataTable();
                    dt_output   = ReadExcel(filepath, ".xlsx", HEAD, out bResult, out sError);
                    result_Move = Path.GetFileName(filepath);
                    if (bResult)
                    {
                        #region Create Text file
                        string FileName = Path.GetFileNameWithoutExtension(filepath);
                        WriteDataToFile(dt_output, PATH_TARGET + @"\\" + FileName + ".txt");
                        #endregion

                        #region Move File



                        string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists    = System.IO.Directory.Exists(sPath_bak);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_bak);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                        classmail.Sendmail(MailTo, smtp, "Success Convert POD xlsx to Text Header ", MailFrom, "Success Convert POD");
                        #endregion
                    }
                    else // Send email error
                    {
                        string sPath_error = PATH_Error + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists      = System.IO.Directory.Exists(sPath_error);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_error);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_error + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);

                        classmail.Sendmail(MailTo, smtp, "Error Convert POD xlsx to Text Header :" + sError.ToString(), MailFrom, strSubject);
                    }


                    System.Threading.Thread.Sleep(1000);
                }

                // Transaction
                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, TRAN + "*.xlsx"))
                {
                    bResult     = false;
                    dt_output   = new DataTable();
                    dt_output   = ReadExcel(filepath, ".xlsx", TRAN, out bResult, out sError);
                    result_Move = Path.GetFileName(filepath);
                    if (bResult)
                    {
                        #region Create Text file
                        string FileName = Path.GetFileNameWithoutExtension(filepath);
                        WriteDataToFile(dt_output, PATH_TARGET + @"\\" + FileName + ".txt");
                        #endregion

                        #region Move File



                        string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists    = System.IO.Directory.Exists(sPath_bak);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_bak);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                        classmail.Sendmail(MailTo, smtp, "Success Convert POD xlsx to Text Transaction ", MailFrom, "Success Convert POD");
                        #endregion
                    }
                    else // Send email error
                    {
                        string sPath_error = PATH_Error + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists      = System.IO.Directory.Exists(sPath_error);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_error);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_error + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);

                        classmail.Sendmail(MailTo, smtp, "Error Convert POD xlsx to Text Transaction :" + sError.ToString(), MailFrom, strSubject);
                    }

                    System.Threading.Thread.Sleep(1000);
                }

                // AMT
                foreach (string filepath in Directory.GetFiles(PATH_SOURCE, sAMT + "*.xlsx"))
                {
                    bResult     = false;
                    dt_output   = new DataTable();
                    dt_output   = ReadExcel(filepath, ".xlsx", sAMT, out bResult, out sError);
                    result_Move = Path.GetFileName(filepath);
                    if (bResult)
                    {
                        #region Create Text file
                        string FileName = Path.GetFileNameWithoutExtension(filepath);
                        WriteDataToFile(dt_output, PATH_TARGET + @"\\" + FileName + ".txt");
                        #endregion

                        #region Move File



                        string sPath_bak = PATH_BAK + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists    = System.IO.Directory.Exists(sPath_bak);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_bak);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_bak + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);
                        classmail.Sendmail(MailTo, smtp, "Success Convert POD xlsx to Text AMT ", MailFrom, "Success Convert POD");
                        #endregion
                    }
                    else // Send email error
                    {
                        string sPath_error = PATH_Error + "/" + DateTime.Now.ToString("yyyyMMdd");
                        bool   exists      = System.IO.Directory.Exists(sPath_error);
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(sPath_error);
                        }

                        System.IO.File.Move(PATH_SOURCE + "/" + result_Move, sPath_error + "/" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US"))) + "_" + result_Move);

                        classmail.Sendmail(MailTo, smtp, "Error Convert POD xlsx to Text AMT :" + sError.ToString(), MailFrom, strSubject);
                    }

                    System.Threading.Thread.Sleep(1000);
                }
            }
            catch (Exception ex)
            {
                return;
            }
            finally
            {
                this.Dispose();
            }
        }
Esempio n. 7
0
        private void Form1_Load(object sender, EventArgs e)
        {
            ClassLibrarySendMail.ClassLibrarySendMail classmail = new ClassLibrarySendMail.ClassLibrarySendMail();
            string        Constr = System.Configuration.ConfigurationSettings.AppSettings["Constr"].ToString();
            StringBuilder result = new StringBuilder();
            int           j      = 0;
            int           k      = 0;

            try
            {
                //string sql = @"SELECT System,SMTP,Mail_From,Mail_To,sSubject,sBody,battachment,sServer,sUser,sPassword,sSql,sPath,sPath_Bak,bActive,sDataBase,sPreFix
                //                FROM POD_31.dbo.TMConfig with(nolock) Where bActive = 1 ";

                string sql = @"SELECT System,SMTP,Mail_From,Mail_To,sSubject,sBody,battachment,sServer,sUser,sPassword,sSql,sPath,sPath_Bak,bActive,sDataBase,sPreFix
                                FROM dbo.TMConfig with(nolock) Where bActive = 1 ";

                SqlDataAdapter da = new SqlDataAdapter(sql, Constr);
                DataTable      dt = new DataTable();
                da.Fill(dt);
                if (dt.Rows.Count != 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        // Data Source=10.15.52.23;Initial Catalog=POD_31;Persist Security Info=True;User ID=sa;Password=sasa
                        string sql_Connstr = @"Data Source= " + dt.Rows[i]["sServer"].ToString() + ";Initial Catalog= " + dt.Rows[i]["sDataBase"].ToString() + ";Persist Security Info=True;User ID= " + dt.Rows[i]["sUser"].ToString() + ";Password= "******"sPassword"].ToString() + "";
                        string Sql_data    = dt.Rows[i]["sSql"].ToString();

                        #region Create Directory
                        bool exists = System.IO.Directory.Exists(dt.Rows[i]["sPath"].ToString());
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(dt.Rows[i]["sPath"].ToString());
                        }

                        exists = System.IO.Directory.Exists(dt.Rows[i]["sPath_Bak"].ToString());
                        if (!exists)
                        {
                            System.IO.Directory.CreateDirectory(dt.Rows[i]["sPath_Bak"].ToString());
                        }


                        #endregion
                        DataSet ds = new DataSet();
                        da = new SqlDataAdapter(Sql_data, sql_Connstr);
                        da.Fill(ds);

                        //da = new SqlDataAdapter(Sql_data, sql_Connstr);
                        //DataTable dt_da = new DataTable();
                        //da.Fill(dt_da);
                        string FileName = string.Empty;
                        if (ds.Tables.Count != 0)
                        {
                            bool bAttch = Convert.ToBoolean((dt.Rows[i]["battachment"].ToString().Trim()));
                            if (bAttch)
                            {
                                for (int M = 0; M < ds.Tables.Count; M++)
                                {
                                    result = new StringBuilder();
                                    #region Get Name Column
                                    for (j = 0; j < ds.Tables[M].Columns.Count - 1; j++)
                                    {
                                        result.Append(ds.Tables[M].Columns[j].ColumnName + "|");
                                    }
                                    result.Append(ds.Tables[M].Columns[j].ColumnName);
                                    result.AppendLine();
                                    #endregion

                                    #region Detail
                                    foreach (DataRow row in ds.Tables[M].Rows)
                                    {
                                        object[] array = row.ItemArray;

                                        for (k = 0; k < array.Length - 1; k++)
                                        {
                                            result.Append(array[k].ToString() + "|");
                                        }
                                        result.Append(array[k].ToString());
                                        result.AppendLine();
                                    }
                                    #endregion

                                    #region Create Text file
                                    FileName = dt.Rows[i]["sPreFix"].ToString() + "_" + DateTime.Now.ToString("yyyyMMddhhmmss", (new System.Globalization.CultureInfo("en-US")));
                                    StreamWriter objWriter = new StreamWriter(dt.Rows[i]["sPath"].ToString().Trim() + @"\\" + FileName + ".txt", false);
                                    objWriter.WriteLine(result.ToString());
                                    objWriter.Close();
                                    System.Threading.Thread.Sleep(1000);
                                    #endregion
                                }
                            }


                            //#region Get Name Column
                            //for (j = 0; j < dt_da.Columns.Count - 1; j++)
                            //{
                            //    result.Append(dt_da.Columns[j].ColumnName + "|");
                            //}
                            //result.Append(dt_da.Columns[j].ColumnName);
                            //result.AppendLine();
                            //#endregion

                            //#region Detail
                            //foreach (DataRow row in dt_da.Rows)
                            //{
                            //    object[] array = row.ItemArray;

                            //    for (k = 0; k < array.Length - 1; k++)
                            //    {
                            //        result.Append(array[k].ToString() + "|");
                            //    }
                            //    result.Append(array[k].ToString());
                            //    result.AppendLine();
                            //}
                            //#endregion


                            classmail.Sendmail(dt.Rows[i]["Mail_To"].ToString().Trim(), dt.Rows[i]["SMTP"].ToString().Trim(), dt.Rows[i]["sBody"].ToString().Trim(), dt.Rows[i]["Mail_From"].ToString().Trim(), dt.Rows[i]["sSubject"].ToString().Trim(), bAttch, dt.Rows[i]["sPath"].ToString().Trim(), FileName + ".ZIP", false, dt.Rows[i]["sPath_Bak"].ToString().Trim(), ds);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            finally
            {
                this.Dispose();
            }
        }