Example #1
0
 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;
         }
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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;
                }
            }
        }
Example #4
0
        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);
            }
        }
Example #5
0
        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);
        }
Example #6
0
        /// <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);
        }