public void Update(Edi_SalesHeader instance)
 {
     if (instance == null)
     {
         throw new ArgumentNullException();
     }
     this._repository.Update(instance);
 }
 public string Create(Edi_SalesHeader instance)
 {
     if (instance == null)
     {
         throw new ArgumentNullException();
     }
     return(this._repository.Create(instance));
 }
Пример #3
0
        /// <summary>
        /// insert 850 table
        /// Edi_SalesHeader/Edi_SalesItem/Edi_SalesPartner/Edi_SalesSchedule
        /// Is_Proc:V success F fail
        /// CreateBy:Edi/Web
        /// </summary>
        /// <param name="sapSalesOrder"></param>
        /// <param name="orderNumber"></param>
        public void InsertSapSalesOrder(SapSalesOrder sapSalesOrder, string orderNumber)
        {
            Edi_SalesHeader _Edi_SalesHeader = new Edi_SalesHeader();

            _Edi_SalesHeader.DOC_TYPE    = sapSalesOrder.Header.DOC_TYPE;
            _Edi_SalesHeader.SALES_ORG   = sapSalesOrder.Header.SALES_ORG;
            _Edi_SalesHeader.DISTR_CHAN  = sapSalesOrder.Header.DISTR_CHAN;
            _Edi_SalesHeader.DIVISION    = sapSalesOrder.Header.DIVISION;
            _Edi_SalesHeader.PURCH_NO_C  = sapSalesOrder.Header.PURCH_NO_C;
            _Edi_SalesHeader.PURCH_DATE  = sapSalesOrder.Header.PURCH_DATE;
            _Edi_SalesHeader.Is_Proc     = orderNumber != "" ? "V" : "F";
            _Edi_SalesHeader.DateTime    = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss:");
            _Edi_SalesHeader.OrderNumber = orderNumber;
            _Edi_SalesHeader.CreateBy    = sapSalesOrder.CreateBy;
            this._edi_SalesHeaderService.Create(_Edi_SalesHeader);
            foreach (SalesItem si in sapSalesOrder.ItemList)
            {
                Edi_SalesItem _Edi_SalesItem = new Edi_SalesItem();
                _Edi_SalesItem.OrderNumber         = orderNumber;
                _Edi_SalesItem.ITM_NUMBER          = si.ITM_NUMBER;
                _Edi_SalesItem.MATERIAL            = si.MATERIAL;
                _Edi_SalesItem.CUST_MAT35          = si.CUST_MAT35;
                _Edi_SalesItem.CustomerItemNumber  = si.CustomerItemNumber;
                _Edi_SalesItem.CustomerUnit        = si.CustomerUnit;
                _Edi_SalesItem.CustomerPrice       = si.CustomerPrice;
                _Edi_SalesItem.DateTime            = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");
                _Edi_SalesItem.CustomerUnitOfPrice = si.CustomerUnitOfPrice;
                this._edi_SalesItemService.Create(_Edi_SalesItem);
            }
            foreach (SalesSchedule ss in sapSalesOrder.ScheduleList)
            {
                Edi_SalesSchedule _Edi_SalesSchedule = new Edi_SalesSchedule();
                _Edi_SalesSchedule.OrderNumber = orderNumber;
                _Edi_SalesSchedule.ITM_NUMBER  = ss.ITM_NUMBER;
                _Edi_SalesSchedule.REQ_DATE    = ss.REQ_DATE;
                _Edi_SalesSchedule.SCHED_LINE  = ss.SCHED_LINE;
                _Edi_SalesSchedule.DateTime    = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");
                _Edi_SalesSchedule.REQ_QTY     = ss.REQ_QTY;
                this._edi_SalesScheduleService.Create(_Edi_SalesSchedule);
            }
            foreach (SalesPartner sp in sapSalesOrder.PartnerList)
            {
                Edi_SalesPartner _Edi_SalesPartner = new Edi_SalesPartner();
                _Edi_SalesPartner.OrderNumber = orderNumber;
                _Edi_SalesPartner.PARTN_ROLE  = sp.PARTN_ROLE;
                _Edi_SalesPartner.PARTN_NUMB  = sp.PARTN_NUMB;
                _Edi_SalesPartner.STREET      = sp.STREET;
                _Edi_SalesPartner.CITY        = sp.CITY;
                _Edi_SalesPartner.REGION      = sp.REGION;
                _Edi_SalesPartner.POSTL_CODE  = sp.POSTL_CODE;
                _Edi_SalesPartner.COUNTRY     = sp.COUNTRY;
                _Edi_SalesPartner.NAME        = sp.NAME;
                _Edi_SalesPartner.DateTime    = DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss");
                _Edi_SalesPartner.TELEPHONE   = sp.TELEPHONE;
                this._edi_SalesPartnerService.Create(_Edi_SalesPartner);
            }
        }
        public Edi_SalesOrder_855  LineItemStatus(Edi_SalesHeader edi_SalesHeader, List <SOrder> sorderList, List <Edi_SalesItem> edi_SalesItemList, List <Edi_SalesSchedule> edi_SalesScheduleList)
        {
            string             _Log                = "";
            string             _LineItemStatus     = "IA";
            string             _ItemNumber         = "";
            Edi_SalesOrder_855 _Edi_SalesOrder_855 = new  Edi_SalesOrder_855();

            try
            {
                List <WebApi.Models.Edi_SalesItem_855>     _Edi_SalesItem_855List     = new List <WebApi.Models.Edi_SalesItem_855>();
                List <WebApi.Models.Edi_SalesSchedule_855> _Edi_SalesSchedule_855List = new List <WebApi.Models.Edi_SalesSchedule_855>();
                WebApi.Models.Edi_SalesHeader_855          _Edi_SalesHeader_855       = new WebApi.Models.Edi_SalesHeader_855();
                _Edi_SalesHeader_855.PURCH_NO_C  = edi_SalesHeader.PURCH_NO_C;
                _Edi_SalesHeader_855.PURCH_DATE  = edi_SalesHeader.PURCH_DATE;
                _Edi_SalesHeader_855.DateTime    = DateTime.Now.ToString("yyyyMMdd");
                _Edi_SalesHeader_855.OrderNumber = edi_SalesHeader.OrderNumber;
                foreach (Edi_SalesItem s in edi_SalesItemList)
                {
                    List <Edi_SalesSchedule> _Edi_SalesScheduleList = edi_SalesScheduleList.Where(x => x.ITM_NUMBER == s.ITM_NUMBER).ToList();
                    _ItemNumber = s.ITM_NUMBER;
                    WebApi.Models.Edi_SalesItem_855 _Edi_SalesItem_855 = new WebApi.Models.Edi_SalesItem_855();
                    _Edi_SalesItem_855.OrderNumber         = s.OrderNumber;
                    _Edi_SalesItem_855.CUST_MAT35          = s.CUST_MAT35;
                    _Edi_SalesItem_855.ITM_NUMBER          = s.ITM_NUMBER;
                    _Edi_SalesItem_855.MATERIAL            = s.MATERIAL;
                    _Edi_SalesItem_855.CustomerUnit        = s.CustomerUnit;
                    _Edi_SalesItem_855.CustomerItemNumber  = s.CustomerItemNumber;
                    _Edi_SalesItem_855.DateTime            = DateTime.Now.ToString("yyyyMMdd");
                    _Edi_SalesItem_855.CustomerUnitOfPrice = s.CustomerUnitOfPrice;
                    List <SOrder> _SOrderList = sorderList.Where(x => x.POSNR == s.ITM_NUMBER).ToList();
                    if (_SOrderList.Count > 0)
                    {
                        _Edi_SalesItem_855.TARGET_QTY = Convert.ToString(_SOrderList.First().KWMENG);
                        _Edi_SalesItem_855.Price      = Convert.ToString(Decimal.Round(_SOrderList.First().PRICE, 6));
                        if (_SOrderList.First().LIFSP != "")
                        {
                            _LineItemStatus = "IH";
                        }
                        if (_SOrderList.First().PRICE != Convert.ToDecimal(s.CustomerPrice))
                        {
                            _LineItemStatus = "IP";
                        }
                        if (_SOrderList.First().ABGRU != "")
                        {
                            _LineItemStatus = "IR";
                        }
                        if (_Edi_SalesScheduleList.Count > 0)
                        {
                            if (_SOrderList.First().EDATU != _Edi_SalesScheduleList.First().REQ_DATE)
                            {
                                _LineItemStatus = "DR";
                            }
                            if (_SOrderList.First().LFSTA == "C")
                            {
                                _LineItemStatus = "AC";
                            }
                            if (_SOrderList.First().KWMENG != Convert.ToDecimal(_Edi_SalesScheduleList.First().REQ_QTY))
                            {
                                _LineItemStatus = "IQ";
                            }
                        }
                    }
                    else
                    {
                        _Edi_SalesItem_855.Price = s.CustomerPrice;
                        if (_Edi_SalesScheduleList.Count > 0)
                        {
                            _Edi_SalesItem_855.TARGET_QTY = _Edi_SalesScheduleList.First().REQ_QTY;
                        }
                        _LineItemStatus = "ID";
                    }
                    _Edi_SalesItem_855List.Add(_Edi_SalesItem_855);
                    WebApi.Models.Edi_SalesSchedule_855 _Edi_SalesSchedule_855 = new WebApi.Models.Edi_SalesSchedule_855();
                    _Edi_SalesSchedule_855.OrderNumber  = s.OrderNumber;
                    _Edi_SalesSchedule_855.ITM_NUMBER   = s.ITM_NUMBER;
                    _Edi_SalesSchedule_855.CustomerUnit = s.CustomerUnit;
                    _Edi_SalesSchedule_855.Status       = _LineItemStatus;
                    _Edi_SalesSchedule_855.DateTime     = DateTime.Now.ToString("yyyyMMdd");
                    _Edi_SalesSchedule_855.DateTimeCode = "017";
                    _Edi_SalesSchedule_855.REQ_DATE     = _SOrderList.Count > 0?_SOrderList.First().EDATU: _Edi_SalesScheduleList.First().REQ_DATE;
                    _Edi_SalesSchedule_855.REQ_QTY      = _SOrderList.Count > 0? Convert.ToString(_SOrderList.First().KWMENG) : _Edi_SalesScheduleList.First().REQ_QTY;
                    _Edi_SalesSchedule_855List.Add(_Edi_SalesSchedule_855);
                }
                string _HeaderStatus = "AC";
                if (_LineItemStatus == "IR")
                {
                    _HeaderStatus = "RD";
                }
                else if (_LineItemStatus == "IA")
                {
                    _HeaderStatus = "AD";
                }
                _Edi_SalesHeader_855.Status      = _HeaderStatus;
                _Edi_SalesOrder_855.Header       = _Edi_SalesHeader_855;
                _Edi_SalesOrder_855.ItemList     = _Edi_SalesItem_855List;
                _Edi_SalesOrder_855.ScheduleList = _Edi_SalesSchedule_855List;
            }
            catch (Exception ex)
            {
                _Log = "\r\n" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + " Edi_SalesHeader_855:LineItemStatus: row : order:" + edi_SalesHeader.OrderNumber + " item:" + _ItemNumber + " , row data has error format:\r\n" + ex.Message;
                this.ListError.Add(_Log);
                logger.Error(_Log);
            }
            return(_Edi_SalesOrder_855);
        }
Пример #5
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;
            }
        }