private List <string> InsertRemainingImportedItems(int headerIserial, List <ImportedItemDimensionModel> importedList) { using (var entities = new WorkFlowManagerDBEntities()) { var header = entities.TblAdjustmentHeaders.FirstOrDefault(ah => ah.Iserial == headerIserial); List <string> errors = new List <string>(); try { foreach (var item in importedList) { TblAdjustmentDetail detail = PrepareDetail(entities, header, item, errors); if (detail != null) { // Add detail header.TblAdjustmentDetails.Add(detail); } } entities.SaveChanges(); //UpdateHeaderQuantities(entities, header); return(errors); } catch (Exception ex) { throw ex; } } }
private TblAdjustmentDetail DeleteAdjustmentDetail(TblAdjustmentDetail row) { using (var context = new WorkFlowManagerDBEntities()) { var oldRow = (from e in context.TblAdjustmentDetails where e.Iserial == row.Iserial select e).SingleOrDefault(); if (oldRow != null) { context.DeleteObject(oldRow); } context.SaveChanges(); } return(row); }
private int InsertImportedItems(TblAdjustmentHeader header, List <ImportedItemDimensionModel> importedList, bool Counting, out bool IsCounting) { IsCounting = Counting; List <string> errors = new List <string>(); using (var entities = new WorkFlowManagerDBEntities()) { try { header.Approved = false; foreach (var item in importedList) { TblAdjustmentDetail detail = PrepareDetail(entities, header, item, errors); if (detail != null) { header.TblAdjustmentDetails.Add(detail); } } var warehouseRec = entities.TblWarehouses.FirstOrDefault(w => w.Iserial == header.WarehouseIserial); var seq = warehouseRec.AdjustIn; var seqRow = entities.TblSequenceProductions.FirstOrDefault(x => x.Iserial == seq); header.Code = SharedOperation.HandelSequence(seqRow); header.TblWarehouse = null; header.CreationDate = DateTime.Now; header.LastChangeDate = DateTime.Now; header.LastChangeUser = header.CreatedBy; entities.TblAdjustmentHeaders.AddObject(header); entities.SaveChanges(); return(header.Iserial); } catch (Exception ex) { throw ex; } } }
private TblAdjustmentDetail UpdateOrInsertAdjustmentDetail(TblAdjustmentDetail newRow, int index, out int outindex) { outindex = index; using (var context = new WorkFlowManagerDBEntities()) { var oldRow = (from e in context.TblAdjustmentDetails where e.Iserial == newRow.Iserial select e).SingleOrDefault(); if (oldRow != null) { //context.Entry(oldRow).CurrentValues.SetValues(newRow); SharedOperation.GenericUpdate(oldRow, newRow, context); } else { context.TblAdjustmentDetails.AddObject(newRow); } context.SaveChanges(); return(newRow); } }
private static TblAdjustmentDetail PrepareDetail(WorkFlowManagerDBEntities entities, TblAdjustmentHeader header, ImportedItemDimensionModel item, List <string> errors) { string itemInfo = string.Format("Item code:{0}, Color code:{1}, Batch:{2}, Size:{3}, Quantity:{4}, Cost:{5}" , item.ItemCode, item.Color, item.BatchNo, item.Size, item.Qty, item.Cost); var items = entities.FabricAccSearches.Where(i => i.Code == item.ItemCode).ToList(); if (items.Count != 1) { if (items.Count == 0) { errors.Add(string.Format("{1} -->> Item Code not Found. More info -->> {0}", itemInfo, DateTime.Now)); } else { errors.Add(string.Format("{1} -->> Item Code found for more than one item. More info -->> {0}", itemInfo, DateTime.Now)); } return(null); } var colors = entities.TblColors.Where(i => i.Code == item.Color && i.TblLkpColorGroup != 24); if (items.FirstOrDefault().ItemGroup.ToLower().Contains("acc")) { colors = entities.TblColors.Where(i => i.Code == item.Color && i.TblLkpColorGroup == 24); } if (colors.Count() != 1) { if (colors.Count() == 0) { errors.Add(string.Format("{1} -->> Color Code not Found. More info -->> {0}", itemInfo, DateTime.Now)); } else { errors.Add(string.Format("{1} -->> Color Code found for more than one item. More info -->> {0}", itemInfo, DateTime.Now)); } return(null); } if (string.IsNullOrWhiteSpace(item.Size) && string.IsNullOrWhiteSpace(item.BatchNo)) { errors.Add(string.Format("{1} -->> Every item must have size or batch no. More info -->> {0}", itemInfo, DateTime.Now)); return(null); } // Find Or create ItemDim var warehouse = entities.TblWarehouses.FirstOrDefault(s => s.Iserial == header.WarehouseIserial); var iserial = entities.FindOrCreateItemDim(items.FirstOrDefault().Iserial, items.FirstOrDefault().ItemGroup, colors.FirstOrDefault().Iserial, item.Size, item.BatchNo, warehouse.TblSite).FirstOrDefault().Iserial; var detail = new TblAdjustmentDetail() { ItemDimIserial = iserial, AvailableQuantity = 0, // الـ StoredProcedure هتملاه CountedQuantity = item.Qty, DifferenceQuantity = 0, // الـ StoredProcedure هتملاه Cost = item.Cost, }; detail.ItemAdjustment.AvailableQuantity = 0; detail.ItemAdjustment.CountedQuantity = item.Qty; detail.ItemAdjustment.DifferenceQuantity = 0; detail.ItemAdjustment.Cost = item.Cost; return(detail); }
/// <summary> /// لازم يكون معاه الهيدر بتاعه /// </summary> /// <param name="context"></param> /// <param name="item"></param> private static void GetAdjustmentItemDetails(WorkFlowManagerDBEntities context, TblAdjustmentDetail item) { // From var tempFrom = context.GetItemDimDetails(item.ItemDimIserial); var itemDimFromResult = tempFrom.FirstOrDefault(); item.ItemAdjustment.ItemId = itemDimFromResult.ItemIserial; item.ItemAdjustment.ItemCode = context.FabricAccSearches.FirstOrDefault(fas => fas.Iserial == itemDimFromResult.ItemIserial && fas.ItemGroup == itemDimFromResult.ItemType).Code; item.ItemAdjustment.ItemName = itemDimFromResult.ItemName; item.ItemAdjustment.ItemType = itemDimFromResult.ItemType; item.ItemAdjustment.DifferenceQuantity = item.DifferenceQuantity; item.ItemAdjustment.AvailableQuantity = item.AvailableQuantity; item.ItemAdjustment.CountedQuantity = item.CountedQuantity; item.ItemAdjustment.ItemDimFromIserial = item.ItemDimIserial; item.ItemAdjustment.ColorFromId = itemDimFromResult.ColorIserial; item.ItemAdjustment.ColorFromCode = itemDimFromResult.ColorCode; item.ItemAdjustment.SizeFrom = itemDimFromResult.Size; item.ItemAdjustment.BatchNoFrom = itemDimFromResult.BatchNo; item.ItemAdjustment.SiteFromIserial = itemDimFromResult.SiteIserial; item.ItemAdjustment.Cost = item.Cost; //string warehouseCode = context.TblWarehouses.FirstOrDefault(tw => //tw.Iserial == item.TblAdjustmentHeader.WarehouseIserial).Code; //var itemdimfrom = context.TblItemDims.FirstOrDefault(id => id.Iserial == item.ItemDimIserial); //string itemCode = context.FabricAccSearches.FirstOrDefault(fas => // fas.Iserial == itemdimfrom.ItemIserial && fas.ItemGroup == itemdimfrom.ItemType).Code; //string colorCode = context.TblColors.FirstOrDefault(c => c.Iserial == itemdimfrom.TblColor).Code; //item.ItemAdjustment.AvailableQuantity = WarehouseQuantities.GetAvilableQuantity( // warehouseCode, itemCode, colorCode, itemdimfrom.Size, itemdimfrom.BatchNo); }