コード例 #1
0
        private SapSalesOrder setSalesOrder()
        {
            SapSalesOrder        _SapSalesOrder = new SapSalesOrder();
            List <SalesItem>     _ItemList      = new List <SalesItem>();
            List <SalesPartner>  _PartnerList   = new List <SalesPartner>();
            List <SalesSchedule> _ScheduleList  = new List <SalesSchedule>();
            SalesHeader          _Header        = new SalesHeader();

            _Header.DOC_TYPE      = "ZOR3";
            _Header.SALES_ORG     = "1000";
            _Header.DISTR_CHAN    = "10";
            _Header.DIVISION      = "13";
            _Header.PURCH_NO_C    = "C#";
            _SapSalesOrder.Header = _Header;
            SalesItem _Item = new SalesItem();

            _Item.ITM_NUMBER = "000010";
            _Item.MATERIAL   = "12-04BFFB-SL7001";
            _Item.TARGET_QTY = "555";
            _ItemList.Add(_Item);
            SalesItem _Item2 = new SalesItem();

            _Item2.ITM_NUMBER = "000020";
            _Item2.MATERIAL   = "ADC-07PMMS-LS7001";
            _Item2.TARGET_QTY = "100";
            _ItemList.Add(_Item2);
            _SapSalesOrder.ItemList = _ItemList;
            SalesPartner _Partner = new SalesPartner();

            _Partner.PARTN_ROLE = "AG";
            _Partner.PARTN_NUMB = "0010000242";
            _PartnerList.Add(_Partner);
            _SapSalesOrder.PartnerList = _PartnerList;
            SalesSchedule _Schedule = new SalesSchedule();

            _Schedule.REQ_QTY    = "555";
            _Schedule.ITM_NUMBER = "000010";
            _Schedule.SCHED_LINE = "0001";
            _Schedule.REQ_DATE   = "20190920";
            _ScheduleList.Add(_Schedule);
            SalesSchedule _Schedule2 = new SalesSchedule();

            _Schedule2.REQ_QTY    = "50";
            _Schedule2.ITM_NUMBER = "000020";
            _Schedule2.SCHED_LINE = "0001";
            _Schedule2.REQ_DATE   = "20190923";
            _ScheduleList.Add(_Schedule2);
            SalesSchedule _Schedule3 = new SalesSchedule();

            _Schedule3.REQ_QTY    = "50";
            _Schedule3.ITM_NUMBER = "000020";
            _Schedule3.SCHED_LINE = "0002";
            _Schedule3.REQ_DATE   = "20190928";
            _ScheduleList.Add(_Schedule3);
            _SapSalesOrder.ScheduleList = _ScheduleList;

            return(_SapSalesOrder);
        }
コード例 #2
0
        /// <summary>
        /// for mouser
        /// </summary>
        /// <param name="b"></param>
        /// <returns></returns>
        public override string Parse(EdiBatch b, Edi_Customer c, string parserFile)
        {
            int                  _ItemNumber    = 1;
            string               _CustomerName  = "";
            string               _Log           = "";
            SapSalesOrder        _SapSalesOrder = new SapSalesOrder();
            List <SalesItem>     _ItemList      = new List <SalesItem>();
            List <SalesPartner>  _PartnerList   = new List <SalesPartner>();
            List <SalesSchedule> _ScheduleList  = new List <SalesSchedule>();
            SalesHeader          _Header        = new SalesHeader();

            _Header.DOC_TYPE   = c.DOC_TYPE;   //need to discuss
            _Header.SALES_ORG  = c.SALES_ORG;  //need to discuss
            _Header.DISTR_CHAN = c.DISTR_CHAN; //need to discuss
            _Header.DIVISION   = c.DIVISION;   //need to discuss
            try
            {
                EdiTrans   _PO  = b.Interchanges[0].Groups[0].Transactions[0];
                EdiSegment _BEG = (EdiSegment)_PO.Content.FirstOrDefault(l => l.Definition.Name == "BEG");
                if (_BEG != null)
                {
                    _Header.PURCH_NO_C = _BEG.Content[2].ToString();
                    _Header.PURCH_DATE = _BEG.Content[4].ToString();
                }
                _SapSalesOrder.Header = _Header;

                var listL_N1 = _PO.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_N1)).Select(l => l).ToList();
                foreach (EdiLoop n1 in listL_N1)
                {
                    SalesPartner _Partner = new SalesPartner();
                    // var _N1Loop = (EdiLoop)n1;
                    EdiSegment _N1 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N1");
                    if (_N1 != null)
                    {
                        if ((_N1.Content[0].ToString() == "BT") || (_N1.Content[0].ToString() == "BY"))
                        {
                            _Partner.PARTN_ROLE = "AG";
                        }
                        else if (_N1.Content[0].ToString() == "ST")
                        {
                            _Partner.PARTN_ROLE = "WE";
                        }

                        if (c.EdiType == 1)
                        {
                            _Partner.PARTN_NUMB = c.SapCustomerId;                //how to know what code in altw sap ,loop edi table
                        }
                        else
                        {
                            _Partner.PARTN_NUMB = _N1.Content[3].ToString();
                        }
                        _CustomerName = _N1.Content[1].ToString();
                    }
                    EdiSegment _N3 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N3");
                    if (_N3 != null)
                    {
                        _Partner.STREET = _N3.Content[0].ToString();
                    }
                    EdiSegment _N4 = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "N4");
                    if (_N4 != null)
                    {
                        _Partner.CITY       = _N4.Content[0].ToString();
                        _Partner.POSTL_CODE = _N4.Content[2].ToString();
                        _Partner.COUNTRY    = _N4.Content[3].ToString();
                        _Partner.REGION     = _N4.Content[1].ToString();
                    }
                    EdiSegment _PER = (EdiSegment)n1.Content.FirstOrDefault(l => l.Definition.Name == "PER");
                    if (_PER != null)
                    {
                        _Partner.NAME      = _PER.Content[1].ToString();
                        _Partner.TELEPHONE = _PER.Content[3].ToString();
                    }
                    _PartnerList.Add(_Partner);
                }
                _SapSalesOrder.PartnerList = _PartnerList;
                var listL_PO1 = _PO.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_PO1)).Select(l => l).ToList();
                foreach (EdiLoop po1 in listL_PO1)
                {
                    int       _SchedLine = 1;
                    SalesItem _Item      = new SalesItem();
                    // var _PO1Loop = (EdiLoop)po1;
                    EdiSegment _PO1 = (EdiSegment)po1.Content.FirstOrDefault(l => l.Definition.Name == "PO1");
                    if (_PO1 != null)
                    {
                        _Item.ITM_NUMBER = (_ItemNumber * 10).ToString().PadLeft(6, '0'); //need use altw rule 000010
                                                                                          //mouser special logic PO111 is part number
                                                                                          // if(c.SapCustomerId== "0010000136") _Item.MATERIAL = _PO1.Content[10].ToString();
                                                                                          //else _Item.MATERIAL = _PO1.Content[8].ToString();
                        _Item.MATERIAL            = _PO1.Content[Convert.ToInt32(c.PartNumberIndex)].ToString();
                        _Item.TARGET_QTY          = _PO1.Content[1].ToString();
                        _Item.CUST_MAT35          = _PO1.Content[6].ToString();
                        _Item.CustomerItemNumber  = _PO1.Content[0].ToString();
                        _Item.CustomerPrice       = _PO1.Content[3].ToString();
                        _Item.CustomerUnit        = _PO1.Content[2].ToString();
                        _Item.CustomerUnitOfPrice = _PO1.Content[4].ToString();
                    }
                    _ItemList.Add(_Item);
                    var listL_SCH = po1.Content.Where(l => l.Definition.GetType() == typeof(M_850.L_SCH)).Select(l => l).ToList();
                    foreach (EdiLoop sch in listL_SCH)
                    {
                        SalesSchedule _Schedule = new SalesSchedule();
                        // var _SCHLoop = (EdiLoop)sch;
                        EdiSegment _SCH = (EdiSegment)sch.Content.FirstOrDefault(l => l.Definition.Name == "SCH");
                        if (_SCH != null)
                        {
                            _Schedule.REQ_QTY    = _SCH.Content[0].ToString();
                            _Schedule.ITM_NUMBER = _Item.ITM_NUMBER;
                            _Schedule.SCHED_LINE = _SchedLine.ToString().PadLeft(4, '0');
                            _Schedule.REQ_DATE   = _SCH.Content[5].ToString();
                        }
                        _ScheduleList.Add(_Schedule);
                        _SchedLine++;
                    }
                    _ItemNumber++;
                }
                _SapSalesOrder.ItemList     = _ItemList;
                _SapSalesOrder.ScheduleList = _ScheduleList;
                _SapSalesOrder.CustomerName = _CustomerName;
                _SapSalesOrder.CreateBy     = "Edi";
                _SapSalesOrder.SalesEmail   = c.SalesEmail;
                edi.SapSalesOrder           = _SapSalesOrder;
            }
            catch (Exception ex)
            {
                _Log = "\r\n" + DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + " setSalesOrderByEdi: Customer Id:" + c.SapCustomerId + " File :" + parserFile + "\r\n" + ex.Message;
                logger.Error(_Log);
                edi.Log = _Log;
            }
            return(_Log);
        }