Exemple #1
0
        private int DeleteAdjustment(TblAdjustmentHeader row)
        {
            using (var context = new WorkFlowManagerDBEntities())
            {
                var oldRow = context.TblAdjustmentHeaders
                             .FirstOrDefault(e => e.Iserial == row.Iserial);
                if (oldRow != null)
                {
                    context.DeleteObject(oldRow);
                }

                context.SaveChanges();
            }
            return(row.Iserial);
        }
Exemple #2
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;
                }
            }
        }
Exemple #3
0
        private TblAdjustmentHeader UpdateOrInsertAdjustmentHeader(TblAdjustmentHeader newRow, int index, int userIserial, out int outindex)// )
        {
            outindex = index;
            using (var context = new WorkFlowManagerDBEntities())
            {
                try
                {
                    var oldRow = context.TblAdjustmentHeaders.Include(nameof(TblAdjustmentHeader.TblAdjustmentDetails)).Include(nameof(
                                                                                                                                    TblAdjustmentHeader.TblWarehouse)).FirstOrDefault(th => th.Iserial == newRow.Iserial);
                    var tempwarhouse = newRow.TblWarehouse;
                    newRow.TblWarehouse = null;
                    foreach (var item in newRow.TblAdjustmentDetails)
                    {
                        item.AvailableQuantity  = item.ItemAdjustment.AvailableQuantity;
                        item.DifferenceQuantity = item.ItemAdjustment.DifferenceQuantity;
                        item.CountedQuantity    = item.ItemAdjustment.CountedQuantity;
                        item.Cost = item.ItemAdjustment.Cost;
                    }
                    if (oldRow != null)// الهيدر موجود قبل كده
                    {
                        //// هحذف الى اتحذف
                        //foreach (var item in oldRow.TblAdjustmentDetails)
                        //{
                        //    if (!newRow.TblAdjustmentDetails.Any(td => td.Iserial == item.Iserial))// مش موجود فى الجديد يبقى اتحذف
                        //        DeleteAdjustmentDetail(item);
                        //}
                        foreach (var item in newRow.TblAdjustmentDetails.ToArray())
                        {
                            // هشوف بقى الى اتعدل والجديد
                            int temp, headeriserial;//item.ItemAdjustment
                            headeriserial                = item.AdjustmentHeaderIserial;
                            item.TblAdjustmentHeader     = null;
                            item.AdjustmentHeaderIserial = headeriserial;
                            UpdateOrInsertAdjustmentDetail(item, 1, out temp);
                            item.TblAdjustmentHeader = newRow;
                        }
                        //context.Entry(oldRow).CurrentValues.SetValues(newRow);
                        var result = SharedOperation.GenericUpdate(oldRow, newRow, context);

                        if (result.Count() > 0)
                        {
                            newRow.LastChangeUser = userIserial;
                            newRow.LastChangeDate = DateTime.Now;
                        }
                    }
                    else// الهيدر ده جديد
                    {
                        var warehouse = context.TblWarehouses.FirstOrDefault(w => w.Iserial == newRow.WarehouseIserial);
                        var seq       = warehouse.AdjustIn;
                        var seqRow    = context.TblSequenceProductions.FirstOrDefault(x => x.Iserial == seq);
                        newRow.Code = SharedOperation.HandelSequence(seqRow);

                        newRow.CreatedBy      = userIserial;
                        newRow.CreationDate   = DateTime.Now;
                        newRow.LastChangeDate = DateTime.Now;
                        newRow.LastChangeUser = userIserial;

                        context.TblAdjustmentHeaders.AddObject(newRow);
                    }
                    context.SaveChanges();
                    //if (newRow.EntityState != System.Data.EntityState.Detached && newRow.EntityState != System.Data.EntityState.Added)
                    //    context.Detach(newRow);
                    //if (newRow.TblWarehouse == null)
                    //    newRow.TblWarehouse = context.TblWarehouses.AsNoTracking().FirstOrDefault(w => w.Iserial == newRow.WarehouseIserial);// tempwarhouse;
                    foreach (var item in newRow.TblAdjustmentDetails)
                    {
                        GetAdjustmentItemDetails(context, item);
                    }
                }
                catch (Exception ex) { throw ex; }
                return(newRow);
            }
        }
Exemple #4
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);
        }