コード例 #1
0
        private void UpdateDMS_SupplySource(StoreQty2DMSSV bpObj)
        {
            string opath = "Org=@Org @AddSuptOpath ";

            if (bpObj.SupItems != null &&
                bpObj.SupItems.Count > 0
                )
            {
                string ids = bpObj.SupItems.GetOpathFromList();

                opath = opath.Replace("@AddSuptOpath"
                                      , string.Format(" and ID in ({0})", ids)
                                      );
            }
            else
            {
                opath = opath.Replace("@AddSuptOpath"
                                      , string.Empty
                                      );
            }

            SupplySource.EntityList lst = SupplySource.Finder.FindAll(opath, new OqlParam(Context.LoginOrg.ID));

            if (lst != null &&
                lst.Count > 0
                )
            {
                List <List <SupplySource> > pageList = PageList <SupplySource>(lst);

                if (pageList != null &&
                    pageList.Count > 0
                    )
                {
                    foreach (List <SupplySource> page in pageList)
                    {
                        //PubExtend.BatchSend2DMS_Async(lst, 2);
                        PubExtend.BatchSend2DMS_Async(page, 2);
                    }
                }
            }
        }
コード例 #2
0
 public void Notify(params object[] args)
 {
     if (args != null && args.Length != 0 && args[0] is EntityEvent)
     {
         BusinessEntity.EntityKey key = ((EntityEvent)args[0]).EntityKey;
         if (!(key == null))
         {
             SalePriceList SalepriceList = key.GetEntity() as SalePriceList;
             if (PubHelper.IsOrg_SalePriceList2DMS(SalepriceList))
             {
                 bool flag = PubHelper.IsUsedDMSAPI();
                 if (flag)
                 {
                     // 电动车配件价表
                     if (IsUpdateDMS(SalepriceList))
                     {
                         PI06ImplService service = new PI06ImplService();
                         // service.Url = PubHelper.GetAddress(service.Url);
                         System.Collections.Generic.List <partBaseDto> lines = new System.Collections.Generic.List <partBaseDto>();
                         foreach (SalePriceLine line in SalepriceList.SalePriceLines)
                         {
                             if (line.Active && System.DateTime.Now >= line.FromDate && (System.DateTime.Now < line.ToDate || line.ToDate.ToString() == "9999.12.31"))
                             {
                                 //SupplierItem.EntityList supitemlist = SupplierItem.Finder.FindAll(string.Format("Org={0} and ItemInfo.ItemID={1} and Effective.IsEffective=1 and '{2}' between Effective.EffectiveDate and Effective.DisableDate", Context.LoginOrg.ID.ToString(), line.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                                 //SupplySource.EntityList supitemlist = SupplySource.Finder.FindAll(string.Format("Org={0} and ItemInfo.ItemID={1} and Effective.IsEffective=1 and '{2}' between Effective.EffectiveDate and Effective.DisableDate", Context.LoginOrg.ID.ToString(), line.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                                 SupplySource.EntityList supitemlist = SupplySource.Finder.FindAll("ItemInfo.ItemCode=@ItemCode and Effective.IsEffective=1 and @Now between Effective.EffectiveDate and Effective.DisableDate"
                                                                                                   , new OqlParam(line.ItemInfo.ItemCode)
                                                                                                   , new OqlParam(System.DateTime.Today)
                                                                                                   );
                                 if (supitemlist != null && supitemlist.Count > 0)
                                 {
                                     foreach (SupplySource i in supitemlist)
                                     {
                                         partBaseDto linedto = new partBaseDto();
                                         linedto.suptCode = i.SupplierInfo.Supplier.Code;
                                         linedto.partCode = line.ItemInfo.ItemID.Code;
                                         linedto.partName = line.ItemInfo.ItemID.Name;
                                         if (line.ItemInfo.ItemID.InventoryUOM != null)
                                         {
                                             linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                         }
                                         if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                         {
                                             linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                         }
                                         linedto.salePrice   = float.Parse(line.Price.ToString());
                                         linedto.unitPrace   = linedto.salePrice;
                                         linedto.isDanger    = "0";
                                         linedto.isReturn    = "1";
                                         linedto.isSale      = "1";
                                         linedto.isFlag      = "1";
                                         linedto.isEffective = line.Active.ToString();
                                         linedto.actionType  = 2;
                                         lines.Add(linedto);
                                     }
                                 }
                                 else
                                 {
                                     partBaseDto linedto = new partBaseDto();
                                     linedto.partCode = line.ItemInfo.ItemID.Code;
                                     linedto.partName = line.ItemInfo.ItemID.Name;
                                     if (line.ItemInfo.ItemID.InventoryUOM != null)
                                     {
                                         linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                     }
                                     if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                     {
                                         linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                     }
                                     linedto.salePrice   = float.Parse(line.Price.ToString());
                                     linedto.unitPrace   = linedto.salePrice;
                                     linedto.isDanger    = "0";
                                     linedto.isReturn    = "1";
                                     linedto.isSale      = "1";
                                     linedto.isFlag      = "1";
                                     linedto.isEffective = line.Active.ToString();
                                     linedto.actionType  = 2;
                                     lines.Add(linedto);
                                 }
                             }
                         }
                         try
                         {
                             if (lines.Count > 0)
                             {
                                 partBaseDto d = service.Do(lines.ToArray());
                                 if (d != null && d.flag == 0)
                                 {
                                     throw new BusinessException(d.errMsg);
                                 }
                             }
                         }
                         catch (System.Exception e)
                         {
                             throw new BusinessException("调用DMS接口错误:" + e.Message);
                         }
                     }
                 }
             }
         }
     }
 }
コード例 #3
0
 public void Notify(params object[] args)
 {
     if (args != null && args.Length != 0 && args[0] is EntityEvent)
     {
         BusinessEntity.EntityKey key = ((EntityEvent)args[0]).EntityKey;
         if (!(key == null))
         {
             SalePriceList SalepriceList = key.GetEntity() as SalePriceList;
             if (PubHelper.IsOrg_SalePriceList2DMS(SalepriceList))
             {
                 bool flag = PubHelper.IsUsedDMSAPI();
                 if (flag)
                 {
                     // 电动车配件价表
                     //if (PubHelper.PriceList2DMS.Contains(SalepriceList.Code))
                     if (SalePriceListInserted.IsUpdateDMS(SalepriceList))
                     {
                         PI06ImplService service = new PI06ImplService();
                         // service.Url = PubHelper.GetAddress(service.Url);
                         System.Collections.Generic.List <partBaseDto> lines = new System.Collections.Generic.List <partBaseDto>();
                         foreach (SalePriceLine line in SalepriceList.SalePriceLines)
                         {
                             //if (line.SysState != 8)
                             if (line.SysState != UFSoft.UBF.PL.Engine.ObjectState.Deleted)
                             {
                                 //if (line.SysState != 2)
                                 if (line.SysState != UFSoft.UBF.PL.Engine.ObjectState.Inserted)
                                 {
                                     if (line.OriginalData.Price != line.Price)
                                     {
                                         if (line.Active && System.DateTime.Now >= line.FromDate && (System.DateTime.Now < line.ToDate || line.ToDate.ToString() == "9999.12.31"))
                                         {
                                             //SupplierItem.EntityList supitemlist = SupplierItem.Finder.FindAll(string.Format("Org={0} and ItemInfo.ItemID={1} and Effective.IsEffective=1 and '{2}' between Effective.EffectiveDate and Effective.DisableDate", Context.LoginOrg.ID.ToString(), line.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                                             SupplySource.EntityList supitemlist = SupplySource.Finder.FindAll("ItemInfo.ItemCode=@ItemCode and Effective.IsEffective=1 and @Now between Effective.EffectiveDate and Effective.DisableDate"
                                                                                                               , new OqlParam(line.ItemInfo.ItemCode)
                                                                                                               , new OqlParam(System.DateTime.Today)
                                                                                                               );
                                             if (supitemlist != null && supitemlist.Count > 0)
                                             {
                                                 foreach (SupplySource i in supitemlist)
                                                 {
                                                     partBaseDto linedto = new partBaseDto();
                                                     linedto.suptCode = i.SupplierInfo.Supplier.Code;
                                                     linedto.partCode = line.ItemInfo.ItemID.Code;
                                                     linedto.partName = line.ItemInfo.ItemID.Name;
                                                     if (line.ItemInfo.ItemID.InventoryUOM != null)
                                                     {
                                                         linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                                     }
                                                     if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                                     {
                                                         linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                                     }
                                                     linedto.salePrice   = float.Parse(line.Price.ToString("G0"));
                                                     linedto.unitPrace   = linedto.salePrice;
                                                     linedto.isDanger    = "0";
                                                     linedto.isReturn    = "1";
                                                     linedto.isSale      = "1";
                                                     linedto.isFlag      = "1";
                                                     linedto.isEffective = line.Active.ToString();
                                                     linedto.actionType  = 2;
                                                     lines.Add(linedto);
                                                 }
                                             }
                                             else
                                             {
                                                 partBaseDto linedto = new partBaseDto();
                                                 linedto.partCode = line.ItemInfo.ItemID.Code;
                                                 linedto.partName = line.ItemInfo.ItemID.Name;
                                                 if (line.ItemInfo.ItemID.InventoryUOM != null)
                                                 {
                                                     linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                                 }
                                                 if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                                 {
                                                     linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                                 }
                                                 linedto.salePrice   = float.Parse(line.Price.ToString());
                                                 linedto.unitPrace   = linedto.salePrice;
                                                 linedto.isDanger    = "0";
                                                 linedto.isReturn    = "1";
                                                 linedto.isSale      = "1";
                                                 linedto.isFlag      = "1";
                                                 linedto.isEffective = line.Active.ToString();
                                                 linedto.actionType  = 2;
                                                 lines.Add(linedto);
                                             }
                                         }
                                     }
                                 }
                                 else if (line.Active && System.DateTime.Now >= line.FromDate && (System.DateTime.Now < line.ToDate || line.ToDate.ToString() == "9999.12.31"))
                                 {
                                     //SupplierItem.EntityList supitemlist = SupplierItem.Finder.FindAll(string.Format("Org={0} and ItemInfo.ItemID={1} and Effective.IsEffective=1 and '{2}' between Effective.EffectiveDate and Effective.DisableDate", Context.LoginOrg.ID.ToString(), line.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                                     //SupplySource.EntityList supitemlist = SupplySource.Finder.FindAll(string.Format("Org={0} and ItemInfo.ItemID={1} and Effective.IsEffective=1 and '{2}' between Effective.EffectiveDate and Effective.DisableDate", Context.LoginOrg.ID.ToString(), line.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                                     SupplySource.EntityList supitemlist = SupplySource.Finder.FindAll("ItemInfo.ItemCode=@ItemCode and Effective.IsEffective=1 and @Now between Effective.EffectiveDate and Effective.DisableDate"
                                                                                                       , new OqlParam(line.ItemInfo.ItemCode)
                                                                                                       , new OqlParam(System.DateTime.Today)
                                                                                                       );
                                     if (supitemlist != null && supitemlist.Count > 0)
                                     {
                                         foreach (SupplySource i in supitemlist)
                                         {
                                             partBaseDto linedto = new partBaseDto();
                                             linedto.suptCode = i.SupplierInfo.Supplier.Code;
                                             linedto.partCode = line.ItemInfo.ItemID.Code;
                                             linedto.partName = line.ItemInfo.ItemID.Name;
                                             if (line.ItemInfo.ItemID.InventoryUOM != null)
                                             {
                                                 linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                             }
                                             if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                             {
                                                 linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                             }
                                             linedto.salePrice   = float.Parse(line.Price.ToString());
                                             linedto.unitPrace   = linedto.salePrice;
                                             linedto.isDanger    = "0";
                                             linedto.isReturn    = "1";
                                             linedto.isSale      = "1";
                                             linedto.isFlag      = "1";
                                             linedto.isEffective = line.Active.ToString();
                                             linedto.actionType  = 2;
                                             lines.Add(linedto);
                                         }
                                     }
                                     else
                                     {
                                         partBaseDto linedto = new partBaseDto();
                                         linedto.partCode = line.ItemInfo.ItemID.Code;
                                         linedto.partName = line.ItemInfo.ItemID.Name;
                                         if (line.ItemInfo.ItemID.InventoryUOM != null)
                                         {
                                             linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                         }
                                         if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                         {
                                             linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                         }
                                         linedto.salePrice   = float.Parse(line.Price.ToString());
                                         linedto.unitPrace   = linedto.salePrice;
                                         linedto.isDanger    = "0";
                                         linedto.isReturn    = "1";
                                         linedto.isSale      = "1";
                                         linedto.isFlag      = "1";
                                         linedto.isEffective = line.Active.ToString();
                                         linedto.actionType  = 2;
                                         lines.Add(linedto);
                                     }
                                 }
                             }
                         }
                         // 不处理删除了,只处理生效就好了
                         using (System.Collections.Generic.IEnumerator <IPersistableObject> enumerator3 = SalepriceList.SalePriceLines.DelLists.GetEnumerator())
                         {
                             while (enumerator3.MoveNext())
                             {
                                 //SalePriceLine line = (SalePriceLine)enumerator3.Current;
                                 //partBaseDto linedto = new partBaseDto();
                                 //linedto.partCode = line.ItemInfo.ItemID.Code;
                                 //linedto.partName = line.ItemInfo.ItemID.Name;
                                 //if (line.ItemInfo.ItemID.InventoryUOM != null)
                                 //{
                                 //    linedto.unit = line.ItemInfo.ItemID.InventoryUOM.Name;
                                 //}
                                 //if (line.ItemInfo.ItemID.PurchaseInfo != null)
                                 //{
                                 //    linedto.miniPack = ((line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(line.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                                 //}
                                 //linedto.salePrice = float.Parse(line.Price.ToString());
                                 //linedto.unitPrace = linedto.salePrice;
                                 //linedto.isDanger = "0";
                                 //linedto.isReturn = "1";
                                 //linedto.isSale = "1";
                                 //linedto.isFlag = "1";
                                 //linedto.isEffective = line.Active.ToString();
                                 //linedto.actionType = 3;
                                 //lines.Add(linedto);
                             }
                         }
                         partBaseDto t = null;
                         try
                         {
                             if (lines.Count > 0)
                             {
                                 t = service.Do(lines.ToArray());
                             }
                         }
                         catch (System.Exception e)
                         {
                             throw new BusinessException("调用DMS接口异常:" + e.Message);
                         }
                         if (t != null && t.flag == 0)
                         {
                             throw new BusinessException("DMS接口返回错误:" + t.errMsg);
                         }
                     }
                 }
             }
         }
     }
 }