Example #1
0
        private void ConvertListDet(List <TTransDet> listDet)
        {
            TTransDet         det;
            TransDetViewModel detViewModel;

            ListDetTrans = new List <TransDetViewModel>();
            for (int i = 0; i < listDet.Count; i++)
            {
                det                   = listDet[i] as TTransDet;
                detViewModel          = new TransDetViewModel();
                detViewModel.TransDet = det;
                detViewModel.IsNew    = false;
                ListDetTrans.Add(detViewModel);
            }
        }
Example #2
0
        public ActionResult Update(TTransDet viewModel, FormCollection formCollection)
        {
            TTransDet transDetToInsert = new TTransDet();

            TransferFormValuesTo(transDetToInsert, viewModel);
            transDetToInsert.SetAssignedIdTo(viewModel.Id);
            transDetToInsert.CreatedDate = DateTime.Now;
            transDetToInsert.CreatedBy   = User.Identity.Name;
            transDetToInsert.DataStatus  = EnumDataStatus.New.ToString();

            TransDetViewModel detViewModel = new TransDetViewModel();

            detViewModel.TransDet = transDetToInsert;
            detViewModel.IsNew    = false;
            ListDetTrans.Add(detViewModel);
            return(Content("success"));
        }
Example #3
0
        public ActionResult Insert(TTransDet viewModel, FormCollection formCollection, bool IsAddStock, string WarehouseId)
        {
            //format numeric
            UpdateNumericData(viewModel, formCollection);
            //
            MItem item = _mItemRepository.Get(formCollection["ItemId"]);

            //check stock is enough or not if no add stock
            //return Content(IsAddStock.ToString());
            if (!IsAddStock)
            {
                MWarehouse warehouse    = _mWarehouseRepository.Get(WarehouseId);
                bool       isStockValid = Helper.CommonHelper.CheckStock(warehouse, item, viewModel.TransDetQty);
                if (!isStockValid)
                {
                    return(Content("Kuantitas barang tidak cukup"));
                }
            }

            TTransDet transDetToInsert = new TTransDet();

            TransferFormValuesTo(transDetToInsert, viewModel);
            transDetToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
            transDetToInsert.ItemId = item;
            transDetToInsert.SetAssignedIdTo(viewModel.Id);
            transDetToInsert.CreatedDate = DateTime.Now;
            transDetToInsert.CreatedBy   = User.Identity.Name;
            transDetToInsert.DataStatus  = EnumDataStatus.New.ToString();

            TransDetViewModel detViewModel = new TransDetViewModel();

            detViewModel.TransDet = transDetToInsert;
            detViewModel.IsNew    = true;
            ListDetTrans.Add(detViewModel);
            return(Content("Detail transaksi berhasil disimpan."));
        }
Example #4
0
        private void SaveTransaction(TTrans Trans, FormCollection formCollection, bool addStock, bool calculateStock, bool isEdit)
        {
            if (isEdit)
            {
                if (ListDeleteDetailTrans != null)
                {
                    if (ListDeleteDetailTrans.Count > 0)
                    {
                        DeleteTransactionDetail(Trans, addStock, calculateStock, ListDeleteDetailTrans.ToArray());
                    }
                }
            }


            Trans.TransDets.Clear();

            //save stock card

            TTransDet detToInsert;
            decimal   total = 0;
            IList <TransDetViewModel> listDetToSave = new List <TransDetViewModel>();
            TransDetViewModel         detToSave     = new TransDetViewModel();

            foreach (TransDetViewModel det in ListDetTrans)
            {
                detToSave       = new TransDetViewModel();
                detToSave.IsNew = det.IsNew;

                if (det.IsNew)
                {
                    detToInsert = new TTransDet(Trans);
                    detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
                    detToInsert.ItemId        = det.TransDet.ItemId;
                    detToInsert.ItemUomId     = det.TransDet.ItemUomId;
                    detToInsert.TransDetQty   = det.TransDet.TransDetQty;
                    detToInsert.TransDetPrice = det.TransDet.TransDetPrice;
                    detToInsert.TransDetDisc  = det.TransDet.TransDetDisc;
                    detToInsert.TransDetTotal = det.TransDet.TransDetTotal;
                    detToInsert.CreatedBy     = User.Identity.Name;
                    detToInsert.CreatedDate   = DateTime.Now;
                    detToInsert.DataStatus    = Enums.EnumDataStatus.New.ToString();
                    Trans.TransDets.Add(detToInsert);

                    detToSave.TransDet = detToInsert;
                }
                else
                {
                    detToSave.TransDet = det.TransDet;
                }
                listDetToSave.Add(detToSave);
                total += det.TransDet.TransDetTotal.HasValue ? det.TransDet.TransDetTotal.Value : 0;
            }
            Trans.TransSubTotal = total;
            if (isEdit)
            {
                _tTransRepository.Update(Trans);
            }
            else
            {
                _tTransRepository.Save(Trans);
            }
            //_tTransRepository.DbContext.CommitTransaction();

            //_tTransRepository.DbContext.BeginTransaction();
            if (calculateStock)
            {
                decimal totalHpp = 0;
                foreach (TransDetViewModel det in listDetToSave)
                {
                    if (det.IsNew)
                    {
                        //save stock
                        if (Trans.TransStatus.Equals(EnumTransactionStatus.Mutation.ToString()))
                        {
                            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.TransDet.ItemId, det.TransDet.TransDetQty, false, Trans.WarehouseId);
                            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.TransDet.ItemId, det.TransDet.TransDetQty, true, Trans.WarehouseIdTo);

                            //still to do, for mutation, price of stock must recalculate per stock,
                            //sum hpp for each stock for stock out
                            totalHpp += UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.TransDet.ItemId, det.TransDet.TransDetPrice, det.TransDet.TransDetQty, det.TransDet, false, Trans.WarehouseId);
                            UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.TransDet.ItemId, det.TransDet.TransDetPrice, det.TransDet.TransDetQty, det.TransDet, true, Trans.WarehouseIdTo);
                        }
                        else
                        {
                            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.TransDet.ItemId, det.TransDet.TransDetQty, addStock, Trans.WarehouseId);

                            //sum hpp for each stock
                            totalHpp += UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.TransDet.ItemId, det.TransDet.TransDetPrice, det.TransDet.TransDetQty, det.TransDet, addStock, Trans.WarehouseId);
                        }
                    }
                    else
                    {
                        //get HPP from existing detail
                        // totalHpp +=
                    }
                }
                ////save journal
                //SaveJournal(Trans, totalHpp);
            }
        }