예제 #1
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;


                    // 不处理删除了,只处理生效就好了
                    return;

                    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>();
                                using (System.Collections.Generic.IEnumerator <IPersistableObject> enumerator = SalepriceList.SalePriceLines.DelLists.GetEnumerator())
                                {
                                    while (enumerator.MoveNext())
                                    {
                                        SalePriceLine line    = (SalePriceLine)enumerator.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);
                                    }
                                }
                                try
                                {
                                    if (lines.Count > 0)
                                    {
                                        partBaseDto t = service.Do(lines.ToArray());
                                        if (t != null && t.flag == 0)
                                        {
                                            throw new BusinessException(t.errMsg);
                                        }
                                    }
                                }
                                catch (System.Exception e)
                                {
                                    throw new BusinessException("调用DMS接口错误:" + e.Message);
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #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))
         {
             SupplySource supplierItem = key.GetEntity() as SupplySource;
             //if (Context.LoginOrg.Code == "10")
             if (PubHelper.IsOrg_SupplierItem2DMS())
             {
                 bool flag = PubHelper.IsUsedDMSAPI();
                 if (flag)
                 {
                     if (IsUpdateDMS(supplierItem)
                         )
                     {
                         try
                         {
                             PI06ImplService service = new PI06ImplService();
                             // service.Url = PubHelper.GetAddress(service.Url);
                             partBaseDto linedto = new partBaseDto();
                             System.Collections.Generic.List <partBaseDto> lines = new System.Collections.Generic.List <partBaseDto>();
                             if (supplierItem.SupplierInfo != null && supplierItem.SupplierInfo.SupplierKey != null)
                             {
                                 linedto.suptCode = supplierItem.SupplierInfo.Supplier.Code;
                             }
                             if (supplierItem.ItemInfo != null && supplierItem.ItemInfo.ItemIDKey != null)
                             {
                                 linedto.partCode = supplierItem.ItemInfo.ItemID.Code;
                                 linedto.partName = supplierItem.ItemInfo.ItemID.Name;
                             }
                             if (supplierItem.ItemInfo.ItemID.InventoryUOM != null)
                             {
                                 linedto.unit = supplierItem.ItemInfo.ItemID.InventoryUOM.Name;
                             }
                             if (supplierItem.ItemInfo.ItemID.PurchaseInfo != null)
                             {
                                 linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
                             }
                             linedto.isFlag = "2";
                             //SalePriceLine line = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", Context.LoginOrg.ID.ToString(), supplierItem.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
                             SalePriceLine line = PubHelper.GetSalePriceList(supplierItem);
                             if (line != null)
                             {
                                 linedto.salePrice = float.Parse(line.Price.ToString("G0"));
                                 linedto.unitPrace = linedto.salePrice;
                             }
                             else
                             {
                                 linedto.salePrice = 0f;
                                 linedto.unitPrace = 0f;
                             }
                             linedto.isDanger    = "0";
                             linedto.isReturn    = "1";
                             linedto.isSale      = "1";
                             linedto.isEffective = supplierItem.Effective.IsEffective.ToString();
                             linedto.actionType  = 1;
                             lines.Add(linedto);
                             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
 private static System.Collections.Generic.List <partBaseDto> GetUpdateDMSDTO(SupplySource supplierItem)
 {
     //// 如果修改供应商、和料品,那么删除旧的,新增新的;如果这两个不修改,就不需要更新DMS了;
     System.Collections.Generic.List <partBaseDto> lines = new System.Collections.Generic.List <partBaseDto>();
     // 关键字段改变,先删除旧的、再新增新的;
     if (IsKeyChanged(supplierItem))
     {
         partBaseDto linedto = new partBaseDto();
         if (supplierItem.OriginalData.SupplierInfo != null && supplierItem.OriginalData.SupplierInfo.SupplierKey != null)
         {
             linedto.suptCode = supplierItem.OriginalData.SupplierInfo.Supplier.Code;
         }
         if (supplierItem.OriginalData.ItemInfo != null && supplierItem.OriginalData.ItemInfo.ItemIDKey != null)
         {
             linedto.partCode = supplierItem.OriginalData.ItemInfo.ItemID.Code;
             linedto.partName = supplierItem.OriginalData.ItemInfo.ItemID.Name;
         }
         if (supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM != null)
         {
             linedto.unit = supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM.Name;
         }
         if (supplierItem.OriginalData.ItemInfo.ItemID.PurchaseInfo != null)
         {
             linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
         }
         //SalePriceLine line = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", Context.LoginOrg.ID.ToString(), supplierItem.OriginalData.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
         SalePriceLine line = PubHelper.GetSalePriceList(supplierItem);
         if (line != null)
         {
             linedto.salePrice = float.Parse(line.Price.ToString());
             linedto.unitPrace = linedto.salePrice;
         }
         else
         {
             linedto.salePrice = 0f;
             linedto.unitPrace = 0f;
         }
         linedto.isFlag      = "2";
         linedto.isDanger    = "0";
         linedto.isReturn    = "1";
         linedto.isSale      = "1";
         linedto.isEffective = supplierItem.OriginalData.Effective.IsEffective.ToString();
         linedto.actionType  = 3;
         lines.Add(linedto);
         linedto = new partBaseDto();
         if (supplierItem.SupplierInfo != null && supplierItem.SupplierInfo.SupplierKey != null)
         {
             linedto.suptCode = supplierItem.SupplierInfo.Supplier.Code;
         }
         if (supplierItem.ItemInfo != null && supplierItem.ItemInfo.ItemIDKey != null)
         {
             linedto.partCode = supplierItem.ItemInfo.ItemID.Code;
             linedto.partName = supplierItem.ItemInfo.ItemID.Name;
         }
         if (supplierItem.ItemInfo.ItemID.InventoryUOM != null)
         {
             linedto.unit = supplierItem.ItemInfo.ItemID.InventoryUOM.Name;
         }
         if (supplierItem.ItemInfo.ItemID.PurchaseInfo != null)
         {
             linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
         }
         SalePriceLine line2 = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", supplierItem.MasterOrg.ID.ToString(), supplierItem.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
         if (line2 != null)
         {
             linedto.salePrice = float.Parse(line2.Price.ToString());
             linedto.unitPrace = linedto.salePrice;
         }
         else
         {
             linedto.salePrice = 0f;
             linedto.unitPrace = 0f;
         }
         linedto.isFlag      = "2";
         linedto.isDanger    = "0";
         linedto.isReturn    = "1";
         linedto.isSale      = "1";
         linedto.isEffective = supplierItem.Effective.IsEffective.ToString();
         linedto.actionType  = 1;
         lines.Add(linedto);
     }
     // UI更新,不管是否关键字段,都更新DMS(熊彬想实现手动同步dms操作)
     else // if(supplierItem.ActiveType == ActivityTypeEnum.SrvUpdate)
     {
         partBaseDto linedto = new partBaseDto();
         if (supplierItem.OriginalData.SupplierInfo != null && supplierItem.OriginalData.SupplierInfo.SupplierKey != null)
         {
             linedto.suptCode = supplierItem.OriginalData.SupplierInfo.Supplier.Code;
         }
         if (supplierItem.OriginalData.ItemInfo != null && supplierItem.OriginalData.ItemInfo.ItemIDKey != null)
         {
             linedto.partCode = supplierItem.OriginalData.ItemInfo.ItemID.Code;
             linedto.partName = supplierItem.OriginalData.ItemInfo.ItemID.Name;
         }
         if (supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM != null)
         {
             linedto.unit = supplierItem.OriginalData.ItemInfo.ItemID.InventoryUOM.Name;
         }
         if (supplierItem.OriginalData.ItemInfo.ItemID.PurchaseInfo != null)
         {
             linedto.miniPack = ((supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty > 0) ? System.Convert.ToInt32(supplierItem.ItemInfo.ItemID.PurchaseInfo.MinRcvQty) : 1);
         }
         //SalePriceLine line = SalePriceLine.Finder.Find(string.Format("SalePriceList.Org={0} and ItemInfo.ItemID={1} and Active=1 and '{2}' between FromDate and ToDate", Context.LoginOrg.ID.ToString(), supplierItem.OriginalData.ItemInfo.ItemID.ID.ToString(), System.DateTime.Now.ToString()), new OqlParam[0]);
         SalePriceLine line = PubHelper.GetSalePriceList(supplierItem);
         if (line != null)
         {
             linedto.salePrice = float.Parse(line.Price.ToString());
             linedto.unitPrace = linedto.salePrice;
         }
         else
         {
             linedto.salePrice = 0f;
             linedto.unitPrace = 0f;
         }
         linedto.isFlag      = "2";
         linedto.isDanger    = "0";
         linedto.isReturn    = "1";
         linedto.isSale      = "1";
         linedto.isEffective = supplierItem.OriginalData.Effective.IsEffective.ToString();
         linedto.actionType  = 2;
         lines.Add(linedto);
     }
     return(lines);
 }