Ejemplo n.º 1
0
        public BarringOrder VQuantityIsInStock(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService, IBarringService _barringService,
                                               IItemService _itemService, IWarehouseItemService _warehouseItemService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            // itemId contains Id of the blanket, leftbar, and rightbar
            IDictionary <int, int> ValuePairItemIdQuantity = new Dictionary <int, int>();

            foreach (var detail in details)
            {
                Barring barring = _barringService.GetObjectById(detail.BarringId);
                // blanket
                if (ValuePairItemIdQuantity.ContainsKey(barring.BlanketItemId))
                {
                    ValuePairItemIdQuantity[barring.BlanketItemId] += 1;
                }
                else
                {
                    ValuePairItemIdQuantity.Add(barring.BlanketItemId, 1);
                }

                // leftbar
                if (barring.LeftBarItemId != null)
                {
                    if (ValuePairItemIdQuantity.ContainsKey((int)barring.LeftBarItemId))
                    {
                        ValuePairItemIdQuantity[(int)barring.LeftBarItemId] += 1;
                    }
                    else
                    {
                        ValuePairItemIdQuantity.Add((int)barring.LeftBarItemId, 1);
                    }
                }

                // rightbar
                if (barring.RightBarItemId != null)
                {
                    if (ValuePairItemIdQuantity.ContainsKey((int)barring.RightBarItemId))
                    {
                        ValuePairItemIdQuantity[(int)barring.RightBarItemId] += 1;
                    }
                    else
                    {
                        ValuePairItemIdQuantity.Add((int)barring.RightBarItemId, 1);
                    }
                }
            }

            foreach (var ValuePair in ValuePairItemIdQuantity)
            {
                WarehouseItem warehouseItem = _warehouseItemService.FindOrCreateObject(barringOrder.WarehouseId, ValuePair.Key);
                if (warehouseItem.Quantity < ValuePair.Value)
                {
                    barringOrder.Errors.Add("Generic", "Stock quantity BoM untuk barring tidak boleh kurang dari jumlah di dalam barring order");
                    return(barringOrder);
                }
            }
            return(barringOrder);
        }
Ejemplo n.º 2
0
        public BarringOrder VQuantityReceivedEqualDetails(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            if (barringOrder.QuantityReceived != details.Count())
            {
                barringOrder.Errors.Add("QuantityReceived", "Jumlah quantity received dan jumlah barring order detail tidak sama");
            }
            return(barringOrder);
        }
Ejemplo n.º 3
0
        public BarringOrder VHasBarringOrderDetails(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            if (!details.Any())
            {
                barringOrder.Errors.Add("Generic", "Harus membuat barring order detail dahulu");
            }
            return(barringOrder);
        }
Ejemplo n.º 4
0
        public BarringOrder VAllDetailsHaveNotBeenCutNorRejected(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            foreach (var detail in details)
            {
                if (detail.IsCut || detail.IsRejected)
                {
                    barringOrder.Errors.Add("Generic", "Semua barring order detail harus belum di cut atau di reject");
                    return(barringOrder);
                }
            }
            return(barringOrder);
        }
Ejemplo n.º 5
0
        public BarringOrder VAllDetailsHaveBeenFinishedOrRejected(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService)
        {
            IList <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);

            foreach (var detail in details)
            {
                if (!detail.IsFinished && !detail.IsRejected)
                {
                    barringOrder.Errors.Add("Generic", "Semua barring order detail harus telah selesai atau di reject");
                    return(barringOrder);
                }
            }
            return(barringOrder);
        }
Ejemplo n.º 6
0
 public BarringOrder SoftDeleteObject(BarringOrder barringOrder, IBarringOrderDetailService _barringOrderDetailService)
 {
     if (_validator.ValidDeleteObject(barringOrder, _barringOrderDetailService))
     {
         ICollection <BarringOrderDetail> details = _barringOrderDetailService.GetObjectsByBarringOrderId(barringOrder.Id);
         foreach (var detail in details)
         {
             // delete details
             _barringOrderDetailService.GetRepository().SoftDeleteObject(detail);
         }
         _repository.SoftDeleteObject(barringOrder);
     }
     return(barringOrder);
 }
Ejemplo n.º 7
0
        public dynamic GetListDetail(string _search, long nd, int rows, int?page, string sidx, string sord, int id, string filters = "")
        {
            // Construct where statement

            string strWhere = GeneralFunction.ConstructWhere(filters);

            // Get Data
            var query = _barringOrderDetailService.GetObjectsByBarringOrderId(id).Where(d => d.IsDeleted == false);

            var list = query as IEnumerable <BarringOrderDetail>;

            var pageIndex    = Convert.ToInt32(page) - 1;
            var pageSize     = rows;
            var totalRecords = query.Count();
            var totalPages   = (int)Math.Ceiling((float)totalRecords / (float)pageSize);

            // default last page
            if (totalPages > 0)
            {
                if (!page.HasValue)
                {
                    pageIndex = totalPages - 1;
                    page      = totalPages;
                }
            }

            list = list.Skip(pageIndex * pageSize).Take(pageSize);

            return(Json(new
            {
                total = totalPages,
                page = page,
                records = totalRecords,
                rows = (
                    from model in list
                    select new
                {
                    id = model.Id,
                    cell = new object[] {
                        model.BarringOrderId,
                        model.BarringId,
                        _barringService.GetObjectById(model.BarringId).Name,
                        model.IsBarRequired,
                        model.HasLeftBar,
                        model.HasLeftBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).LeftBarItemId.Value).Id.ToString(),
                        model.HasLeftBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).LeftBarItemId.Value).Name.ToString(),
                        model.HasRightBar,
                        model.HasRightBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).RightBarItemId.Value).Id.ToString(),
                        model.HasRightBar == false ? "" : _itemService.GetObjectById(_barringService.GetObjectById(model.BarringId).RightBarItemId.Value).Name.ToString(),
                        model.IsCut,
                        model.IsSideSealed,
                        model.IsBarPrepared,
                        model.IsAdhesiveTapeApplied,
                        model.IsBarMounted,
                        model.IsBarHeatPressed,
                        model.IsBarPullOffTested,
                        model.IsQCAndMarked,
                        model.IsPackaged,
                        model.IsRejected,
                        model.RejectedDate,
                        model.IsFinished,
                        model.FinishedDate
                    }
                }).ToArray()
            }, JsonRequestBehavior.AllowGet));
        }