示例#1
0
        private void SaveTransDetailItem(TTransDet det)
        {
            MAction       action  = det.ActionId;
            TTransDetItem detItem = null;

            //get action items
            foreach (MActionItem actionItem in action.ActionItems)
            {
                //save detail items
                detItem           = new TTransDetItem(det);
                detItem.ItemId    = actionItem.ItemId;
                detItem.ItemQty   = actionItem.ActionItemQty * det.TransDetQty;
                detItem.ItemDesc  = actionItem.ActionItemDesc;
                detItem.ItemUomId = actionItem.ItemUomId;
                detItem.SetAssignedIdTo(Guid.NewGuid().ToString());
                detItem.CreatedDate = DateTime.Now;
                detItem.CreatedBy   = User.Identity.Name;
                detItem.DataStatus  = EnumDataStatus.New.ToString();
                _tTransDetItemRepository.Save(detItem);
            }
        }
        public virtual ActionResult DetailItem(FormCollection formCollection, string detailId, string packetId, decimal?transDetQty)
        {
            string Message = "Data berhasil disimpan";
            bool   Success = true;

            _tTransDetItemRepository.DbContext.BeginTransaction();
            TTransDet det = (TTransDet)Session[CONST_TRANSDET];

            _tTransDetRepository.Save(det);

            TTransDetItem detItem;

            //loop item cat packet
            MPacketItemCat         packetItemCat;
            IList <MPacketItemCat> list = _mPacketItemCatRepository.GetByPacketId(packetId);

            bool  isStockValid = true;
            MItem item;

            for (int i = 0; i < list.Count; i++)
            {
                packetItemCat = list[i];
                item          = _mItemRepository.Get(formCollection["txtItemId_" + packetItemCat.ItemCatId.Id]);
                isStockValid  = Helper.CommonHelper.CheckStock(Helper.CommonHelper.GetDefaultWarehouse(), item, transDetQty * packetItemCat.ItemCatQty);
                if (!isStockValid)
                {
                    Success = false;
                    Message = "Data tidak berhasi disimpan, kuantitas tidak mencukupi.";
                    break;
                }
                detItem = new TTransDetItem(det);
                detItem.SetAssignedIdTo(Guid.NewGuid().ToString());
                detItem.ItemCatId   = packetItemCat.ItemCatId;
                detItem.ItemId      = _mItemRepository.Get(formCollection["txtItemId_" + packetItemCat.ItemCatId.Id]);
                detItem.ItemQty     = transDetQty * packetItemCat.ItemCatQty;
                detItem.CreatedBy   = User.Identity.Name;
                detItem.CreatedDate = DateTime.Now;
                _tTransDetItemRepository.Save(detItem);
            }

            if (isStockValid)
            {
                try
                {
                    _tTransDetItemRepository.DbContext.CommitTransaction();
                    TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
                }
                catch (Exception ex)
                {
                    Success = false;
                    Message = ex.Message;
                    _tTransDetItemRepository.DbContext.RollbackTransaction();
                    TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
                }
            }
            else
            {
                _tTransDetItemRepository.DbContext.RollbackTransaction();
            }

            var e = new
            {
                Success,
                Message
            };

            return(Json(e, JsonRequestBehavior.AllowGet));
        }