public static ICInvStatusComUnitsInfo GetInventory(BusinessObject objRealCompanyUnit, Guid itemID) { GECompanyUnitsInfo obj = CompanyUnitProvider.GetCompanyUnit(objRealCompanyUnit); if (obj == null) { return(null); } return(GetInventory(obj.GECompanyUnitID, itemID)); }
public static void DoInventoryAction(List <BusinessObject> lstObjects, bool isCalcInventoryReport) { #region Init Dictionary <String, List <BusinessObject> > lstDictObjects = new Dictionary <string, List <BusinessObject> >(); foreach (BusinessObject obj in lstObjects) { if (lstDictObjects.ContainsKey(obj.AATableName) == false) { lstDictObjects.Add(obj.AATableName, new List <BusinessObject>() { obj }); } else { lstDictObjects[obj.AATableName].Add(obj); } } #endregion Dictionary <Guid, List <Guid> > lstProductIDs = new Dictionary <Guid, List <Guid> >(); CriteriaToExpressionConverter converter = new CriteriaToExpressionConverter(); foreach (String strTableName in lstDictObjects.Keys) { if (IsNeedCalculateInventory(strTableName)) { #region Calculate Inventory foreach (ICInventoryConfigsInfo config in GetConfigs(strTableName)) { if (!config.IsShipment || !config.IsLost || !config.IsReceive) { continue; } DevExpress.Data.Filtering.CriteriaOperator operatorConvert = DevExpress.Data.Filtering.CriteriaOperator.Parse(config.VoucherConditionString); List <BusinessObject> lstFilteredObjects = ((IQueryable <BusinessObject>)lstDictObjects[strTableName].AsQueryable().AppendWhere(converter, operatorConvert)).ToList(); foreach (BusinessObject obj in lstFilteredObjects) { #region companyUnitID Guid companyUnitID = Guid.Empty; if (!String.IsNullOrWhiteSpace(config.VoucherComUnitIDField)) { companyUnitID = ABCHelper.DataConverter.ConvertToGuid(ABCDynamicInvoker.GetValue(obj, config.VoucherComUnitIDField)); } else if (!String.IsNullOrWhiteSpace(config.VoucherRealComUnitIDField) && !String.IsNullOrWhiteSpace(config.VoucherTableName)) { companyUnitID = ABCHelper.DataConverter.ConvertToGuid(ABCDynamicInvoker.GetValue(obj, config.VoucherRealComUnitIDField)); companyUnitID = CompanyUnitProvider.GetCompanyUnitID(config.VoucherTableName, companyUnitID); } if (companyUnitID == Guid.Empty) { continue; } #endregion Guid productID = ABCHelper.DataConverter.ConvertToGuid(ABCDynamicInvoker.GetValue(obj, config.ProductIDField)); String strSKU = ABCDynamicInvoker.GetValue(obj, config.SKUField).ToString(); double qty = Convert.ToDouble(ABCDynamicInvoker.GetValue(obj, config.QtyField)); DateTime date = Convert.ToDateTime(ABCDynamicInvoker.GetValue(obj, config.DateField)); if (productID != Guid.Empty && qty != 0 && date != null && date != DateTime.MinValue && date != DateTime.MaxValue) { if (config.IsShipment || config.IsLost) { DoShipment(companyUnitID, productID, strSKU, qty, date); } else if (config.IsReceive) { DoReceipt(companyUnitID, productID, strSKU, qty, date); } if (lstProductIDs.ContainsKey(companyUnitID) == false) { lstProductIDs.Add(companyUnitID, new List <Guid>() { productID }); } else { lstProductIDs[companyUnitID].Add(productID); } } } } #endregion } } if (isCalcInventoryReport) { //foreach ( Guid comUnitID in lstProductIDs.Keys ) //{ // foreach(Guid productID in lstProductIDs[comUnitID]) // InventoryReportCalculate(comUnitID,productID, //} } }