コード例 #1
0
        /// <summary>
        /// get Sap ZSDT046 table SAP_PROC = ''
        /// get status = 'S'  sap order
        /// 855 message:according to 850 table & sap order data
        /// insert 855 data to database
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnOrderComfirm_Click(object sender, EventArgs e)
        {
            string _Log         = "";
            string _OrderNumber = "";

            try
            {
                string _EdiBase = ConfigurationManager.AppSettings["EdiBase"];
                btnLogin.PerformClick();
                btnGet.PerformClick();
                List <Edi_SalesHeader> _SalesHeaderList     = getSalesHeaderList();
                Edi_SalesOrder_855     _Edi_SalesOrder_855  = new Edi_SalesOrder_855();
                TestWebApi.BLL.Edi.Edi_SalesHeader_855 _855 = new TestWebApi.BLL.Edi.Edi_SalesHeader_855();
                List <EdiStatus> _EdiStatusList             = GetSapEdiStatusList();
                foreach (EdiStatus s in _EdiStatusList)
                {
                    _OrderNumber = s.VBELN;
                    _Log         = "\r\n" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + " CreateOrderComfirm: Order Number:" + _OrderNumber;
                    List <SOrder>            _SOrderList        = GetSapSalesHeaderList(s.VBELN);
                    List <Edi_SalesItem>     _SalesItemList     = getSalesItemList(s.VBELN);
                    List <Edi_SalesSchedule> _SalesScheduleList = getSalesScheduleList(s.VBELN);
                    if (_SOrderList.Count > 0)
                    {
                        Edi_SalesHeader _Edi_SalesHeader = _SalesHeaderList.Where(x => x.OrderNumber == s.VBELN).First();
                        if (_edi_Customerlist.Where(x => x.SapCustomerId == _SOrderList.First().KUNNR).ToList().Count > 0)
                        {
                            Edi_Customer c = _edi_Customerlist.Where(x => x.SapCustomerId == _SOrderList.First().KUNNR).First();
                            _Edi_SalesOrder_855 = _855.LineItemStatus(_Edi_SalesHeader, _SOrderList, _SalesItemList, _SalesScheduleList);
                            if (_855.ListError.Count == 0)
                            {
                                string _Mode = c.Mode == true ? "P" : "T";
                                if (c.Mode == _EdiMode)//PRD
                                {
                                    string _855Msg = _855.X12_855(_Edi_SalesOrder_855, _Mode, c.ReceiverId);
                                    insertEdi_855(_Edi_SalesOrder_855);
                                    string _FileName        = "855_" + _Edi_SalesOrder_855.Header.PURCH_NO_C + "_" + DateTime.Now.ToString("yyyyMMdd") + "_" + Guid.NewGuid().ToString("N") + ".edi";
                                    string _EdiCustomerSend = c.RSSBus_PortId + "/Send";
                                    //write edi file
                                    FtpFile.CopyTo("Edi", _EdiCustomerSend, _FileName, _855Msg);
                                    //upload to RSSBus send directory
                                    FtpFile.Upload("Edi", _EdiCustomerSend, _EdiBase, _FileName);
                                    if (c.Mode == true)
                                    {
                                        updateZSDT046(s.VBELN);
                                    }
                                }
                            }
                            else
                            {
                                _Log = _Log + "\r\n" + _855.ListError[0];
                                logger.Error(_Log);
                                txtLog.Text += _Log;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _Log = "\r\n" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + " OrderComfirm:Order Number:" + _OrderNumber + "\r\n" + ex.Message;
                logger.Error(_Log);
                txtLog.Text += _Log;
            }
        }