コード例 #1
0
        public static void GetOfficeGroupByERPID(String _CompanyID, String _Org, ref String _Office, ref String _Group)
        {
            SAP_DIMCOMPANY sd = MyAdvantechContext.Current.SAP_DIMCOMPANY.Where(d => d.ORG_ID.Equals(_Org) && d.COMPANY_ID.Equals(_CompanyID)).FirstOrDefault();

            if (sd != null)
            {
                _Office = sd.SALESOFFICE;
                _Group  = sd.SALESGROUP;
            }
        }
コード例 #2
0
        public static List <SAP_DIMCOMPANY> GetSAPDIMCompanyEndCustomerByID(String _SoldtoID, String _ORGID, String _EndCustomerID, String _EndCustomerName)
        {
            if (String.IsNullOrEmpty(_SoldtoID))
            {
                return(new List <SAP_DIMCOMPANY>());
            }

            List <SAP_DIMCOMPANY> result = new List <SAP_DIMCOMPANY>();
            //List<String> EndCustomers = (from SAPDimCompany in MyAdvantechContext.Current.SAP_DIMCOMPANY
            //                             join SAPCompanyPartners in MyAdvantechContext.Current.SAP_COMPANY_PARTNERS on SAPDimCompany.COMPANY_ID equals SAPCompanyPartners.COMPANY_ID
            //                             where SAPDimCompany.COMPANY_ID.Equals(_SoldtoID, StringComparison.OrdinalIgnoreCase) &&
            //                                   SAPCompanyPartners.PARTNER_FUNCTION.Equals("EM") &&
            //                                   !String.IsNullOrEmpty(SAPCompanyPartners.PARENT_COMPANY_ID) &&
            //                                   (String.IsNullOrEmpty(_ORGID) ? true : SAPCompanyPartners.ORG_ID.Equals(_ORGID, StringComparison.OrdinalIgnoreCase))
            //                             orderby SAPCompanyPartners.DEFPA descending
            //                             select "'" + SAPCompanyPartners.PARENT_COMPANY_ID + "'").ToList();


            String sql = " SELECT distinct A.KUNN2 AS company_id, A.VKORG as ORG_ID, B.NAME1 AS COMPANY_NAME, " +
                         " D.street || ' ' || D.city1 || ' ' || D.region || ' ' || D.post_code1 || ' ' || (select e.landx from saprdp.t005t e where e.land1 = B.land1 and e.spras = 'E' and rownum = 1) AS Address, " +
                         " B.Land1 AS COUNTRY, B.Ort01 AS CITY, B.STRAS as STREET, " +
                         " B.PSTLZ AS ZIP_CODE, D.region AS STATE, B.TELF1 AS TEL_NO, B.TELFX AS FAX_NO, D.NAME_CO as Attention, " +
                         " '' as PARTNER_FUNCTION, " +
                         " E.VKBUR as SalesOffice, E.VKGRP As SalesGroup, E.SPART As division, D.STR_SUPPL3, A.DEFPA" +
                         " From saprdp.kna1 B " +
                         " Left join saprdp.adr6 C on B.adrnr = C.addrnumber " +
                         " inner join  saprdp.knvp A on A.KUNN2 = B.KUNNR " +
                         " inner join saprdp.adrc D on D.country = B.land1 And D.addrnumber = B.adrnr " +
                         " inner join saprdp.knvv E on B.KUNNR = E.KUNNR " +
                         " where B.loevm <> 'X' AND A.PARVW ='EM' " +
                         " AND A.KUNNR = '" + _SoldtoID + "' AND A.VKORG = '" + _ORGID + "'";

            if (!String.IsNullOrEmpty(_EndCustomerID))
            {
                sql += String.Format(" AND A.KUNN2 like '%{0}%' ", _EndCustomerID.Replace("'", "''").Trim());
            }
            if (!String.IsNullOrEmpty(_EndCustomerName))
            {
                sql += String.Format(" and (Upper(B.NAME1) LIKE '%{0}%' or B.NAME2 like '%{0}%') ", _EndCustomerName.Replace("'", "''").Trim());
            }
            sql += " ORDER BY A.DEFPA desc, A.KUNN2";

            DataTable dt = OracleProvider.GetDataTable("SAP_PRD", sql);

            if (dt != null && dt.Rows.Count > 0)
            {
                DataRow dr = dt.NewRow();
                if (dt.Select("DEFPA = 'X'").Count() > 0)
                {
                    dr = dt.Select("DEFPA = 'X'")[0];
                }
                else if (dt.Select("company_id = '" + _SoldtoID + "'").Count() > 0)
                {
                    dr = dt.Select("company_id = '" + _SoldtoID + "'")[0];
                }
                else
                {
                    dr = dt.Rows[0];
                }



                SAP_DIMCOMPANY sd = new SAP_DIMCOMPANY();
                sd.COMPANY_ID   = dr["company_id"].ToString();
                sd.COMPANY_NAME = dr["COMPANY_NAME"].ToString();
                sd.ADDRESS      = dr["Address"].ToString();
                sd.CITY         = dr["CITY"].ToString();
                sd.REGION_CODE  = dr["STATE"].ToString();
                sd.ZIP_CODE     = dr["ZIP_CODE"].ToString();
                sd.COUNTRY      = dr["COUNTRY"].ToString();
                sd.ATTENTION    = dr["Attention"].ToString();
                sd.TEL_NO       = dr["TEL_NO"].ToString();

                result.Add(sd);
            }

            return(result);
        }
コード例 #3
0
        public static Boolean isATWPartsWithoutZMIP(List <String> _parts, String _org, String _companyID, ref List <String> _invalidparts)
        {
            List <String> StandardParts            = new List <String>();
            List <String> StandardPartsProductType = new List <string> {
                "ZFIN", "ZOEM", "T"
            };

            foreach (String part in _parts)
            {
                List <String> temp = new List <string>();

                // Split pipeline items
                if (part.Contains("|"))
                {
                    foreach (var i in part.Split('|').ToList())
                    {
                        temp.Add(i);
                    }
                }
                else
                {
                    temp.Add(part);
                }

                foreach (String t in temp)
                {
                    SAP_PRODUCT sp = MyAdvantechDAL.GetSAPProduct(t);
                    if (sp != null && StandardPartsProductType.Contains(sp.PRODUCT_TYPE))
                    {
                        StandardParts.Add(t);
                    }
                }
            }

            if (StandardParts.Count > 0)
            {
                SAP_DIMCOMPANY sc = DataAccess.DataCore.MyAdvantech.SAPCompanyHelper.GetSAPDIMCompanyByID(_companyID).FirstOrDefault();

                Order _order = new Order();
                _order.Currency    = (sc != null && !String.IsNullOrEmpty(sc.CURRENCY)) ? sc.CURRENCY : "TWD";
                _order.OrgID       = _org;
                _order.DistChannel = "10";
                _order.Division    = "00";
                foreach (String part in StandardParts)
                {
                    _order.AddLooseItem(part);
                }
                _order.SetOrderPartnet(new OrderPartner(_companyID, _org, OrderPartnerType.SoldTo));
                _order.SetOrderPartnet(new OrderPartner(_companyID, _org, OrderPartnerType.ShipTo));
                _order.SetOrderPartnet(new OrderPartner(_companyID, _org, OrderPartnerType.BillTo));

                // Do order simulation
                String _errMsg = String.Empty;
                Advantech.Myadvantech.DataAccess.SAPDAL.SimulateOrder(ref _order, ref _errMsg);

                if (_order != null && String.IsNullOrEmpty(_errMsg))
                {
                    foreach (Product p in _order.LineItems)
                    {
                        if (p.MinimumPrice != null && (p.MinimumPrice == -1 || p.MinimumPrice == 0))
                        {
                            _invalidparts.Add(p.PartNumber);
                        }
                    }
                }
            }

            if (_invalidparts.Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #4
0
        /// <summary>
        /// Use eStore B+B function to calcaulate freight
        /// </summary>
        /// <returns></returns>
        public static Tuple <bool, Response> CalculateBBFreight(SAP_DIMCOMPANY _Soldto, SAP_DIMCOMPANY _Shipto, SAP_DIMCOMPANY _Billto, List <cart_DETAIL_V2> _CartItems)
        {
            shippingrate target = new shippingrate();

            target.Timeout = 30000;
            //target.Url = "http://buy.advantech.com/services/shippingrate.asmx"; AUS eStore URL

            DataAccess.bbeStoreFreightAPI.Order order = new DataAccess.bbeStoreFreightAPI.Order();
            order.StoreId = "ABB";

            // Shipto settings
            Address shipto = new Address();

            if (_Shipto != null)
            {
                shipto.Countrycode = _Shipto.COUNTRY;
                shipto.Zipcode     = _Shipto.ZIP_CODE;
                shipto.StateCode   = _Shipto.REGION_CODE;
                order.Shipto       = shipto;
            }

            // Bill to settings
            Address billto = new Address();

            if (_Billto != null)
            {
                billto.Countrycode = _Billto.COUNTRY;
                billto.Zipcode     = _Billto.ZIP_CODE;
                billto.StateCode   = _Billto.REGION_CODE;
                order.Billto       = billto;
            }

            // Loose Items settings
            List <Item>           items      = new List <Item>();
            List <cart_DETAIL_V2> LooseItems = _CartItems.Where(d => d.otype == 0).ToList();

            if (LooseItems.Count > 0)
            {
                foreach (cart_DETAIL_V2 LooseItem in LooseItems)
                {
                    items.Add(new Item()
                    {
                        ProductID = LooseItem.Part_No,
                        Qty       = (int)LooseItem.Qty
                    });
                }
            }

            // System Items settings
            List <ConfigSystem>   systems     = new List <ConfigSystem>();
            List <cart_DETAIL_V2> ParentItems = _CartItems.Where(d => d.otype == -1).ToList();

            foreach (cart_DETAIL_V2 ParentItem in ParentItems)
            {
                int          _sys1Qty = 1;
                ConfigSystem _sys1    = new ConfigSystem();
                _sys1.Qty       = (int)ParentItem.Qty;
                _sys1.ProductID = ParentItem.Part_No;
                _sys1Qty        = _sys1.Qty;

                List <cart_DETAIL_V2> ChildItems = _CartItems.Where(d => d.otype == 1 && d.higherLevel == ParentItem.Line_No).ToList();
                List <Item>           _ds        = new List <Item>();
                foreach (cart_DETAIL_V2 ChildItem in ChildItems)
                {
                    _ds.Add(new Item()
                    {
                        ProductID = ChildItem.Part_No,
                        Qty       = (Int32)Math.Ceiling((double)(Convert.ToDouble(ChildItem.Qty / (double)_sys1Qty)))
                    });
                }

                _sys1.Details = _ds.ToArray();
                systems.Add(_sys1);
            }
            order.Items   = items.ToArray();
            order.Systems = systems.ToArray();



            Response actual;

            actual = target.getShippingRate(order);
            if (actual != null && actual.Status == "1")
            {
                return(new Tuple <bool, Response>(true, actual));
            }
            else
            {
                return(new Tuple <bool, Response>(false, actual));
            }
        }