Пример #1
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();

            ListDetTrans.Add(transDetToInsert);
            return(Content("success"));
        }
Пример #2
0
        private void SaveCommission(TTransDet det, decimal?commission, string employeeId, EnumCommissionPeople commissionPeople)
        {
            //search employee commission
            MEmployee   emp            = _mEmployeeRepository.Get(employeeId);
            string      typeCommission = EnumCommissionType.Fix.ToString();
            decimal?    commissionVal  = commission;
            MActionComm actionComm     = _mActionCommRepository.GetByEmployeeAndAction(emp, det.ActionId);

            if (actionComm != null)
            {
                typeCommission = actionComm.ActionCommType;
                commissionVal  = actionComm.ActionCommVal;
                if (typeCommission == EnumCommissionType.Percent.ToString())
                {
                    commission = det.TransDetTotal.Value * (commissionVal / 100);
                }
                else
                {
                    commission = commissionVal;
                }
            }
            TCommission comm = new TCommission(det);

            comm.SetAssignedIdTo(Guid.NewGuid().ToString());
            comm.EmployeeId      = emp;
            comm.CommissionType  = commissionPeople.ToString();
            comm.CommissionValue = commission;
            comm.CreatedDate     = DateTime.Now;
            comm.CreatedBy       = User.Identity.Name;
            comm.DataStatus      = EnumDataStatus.New.ToString();

            _tCommissionRepository.Save(comm);
        }
Пример #3
0
 private void TransferFormValuesTo(TTransDet transDet, TTransDet viewModel)
 {
     transDet.TransDetNo    = ListDetTrans.Count + 1;
     transDet.TransDetQty   = viewModel.TransDetQty;
     transDet.TransDetPrice = viewModel.TransDetPrice;
     transDet.TransDetDisc  = viewModel.TransDetDisc;
     transDet.TransDetTotal = viewModel.TransDetTotal;
     transDet.TransDetDesc  = viewModel.TransDetDesc;
 }
Пример #4
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();

            ListDetTrans.Add(transDetToInsert);
            return(Content("success"));
        }
Пример #5
0
        private string GetCommissionEmployeeName(TTransDet det, EnumCommissionPeople enumCommissionPeople)
        {
            TCommission commission = _tCommissionRepository.GetByTransDetAndCommissionType(det, enumCommissionPeople);

            if (commission != null)
            {
                if (commission.EmployeeId != null)
                {
                    return(commission.EmployeeId.PersonId.PersonName);
                }
            }
            return(null);
        }
Пример #6
0
        public ActionResult Delete(TTransDet viewModel, FormCollection formCollection)
        {
            //remove use native predicate function from list, awesome, no need foreach anymore
            ListDetTrans.Remove(ListDetTrans.Find(ByTransDetId(viewModel.Id)));


            if (ListDeleteDetailTrans == null)
            {
                ListDeleteDetailTrans = new ArrayList();
            }
            ListDeleteDetailTrans.Add(viewModel.Id);
            return(Content("success"));
        }
Пример #7
0
        public TCommission GetByTransDetAndCommissionType(TTransDet det, EnumCommissionPeople enumCommissionPeople)
        {
            StringBuilder sql = new StringBuilder();

            sql.AppendLine(@"   select com
                                from TCommission as com
                                        where com.TransDetId = :det
                                    and com.CommissionType = :commissionPeople ");
            IQuery q = Session.CreateQuery(sql.ToString());

            q.SetString("commissionPeople", enumCommissionPeople.ToString());
            q.SetEntity("det", det);
            return(q.UniqueResult <TCommission>());
        }
        public ActionResult InsertBill(TTransDet viewModel, FormCollection formCollection, string transId)
        {
            //_tTransDetRepository.DbContext.BeginTransaction();
            TTrans trans = _tTransRepository.Get(transId);

            UpdateNumericData(viewModel, formCollection);
            TTransDet transDetToInsert = new TTransDet(trans);
            MEmployee emp    = _mEmployeeRepository.Get(formCollection["EmployeeId"]);
            MPacket   packet = _mPacketRepository.Get(formCollection["PacketId"]);

            TransferFormValuesTo(transDetToInsert, viewModel);
            transDetToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
            transDetToInsert.PacketId   = packet;
            transDetToInsert.EmployeeId = emp;

            decimal?TotalToCalculate = transDetToInsert.TransDetTotal -
                                       (transDetToInsert.TransDetTotal * trans.TransDiscount / 100);

            transDetToInsert.TransDetCommissionService = CalculateCommission(emp, packet, TotalToCalculate);

            transDetToInsert.CreatedDate = DateTime.Now;
            transDetToInsert.CreatedBy   = User.Identity.Name;
            transDetToInsert.DataStatus  = EnumDataStatus.New.ToString();
            //_tTransDetRepository.Save(transDetToInsert);
            //try
            //{
            //    _tTransDetRepository.DbContext.CommitTransaction();
            //    TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
            //    return Content("success");
            //}
            //catch (Exception ex)
            //{
            //    _tTransDetRepository.DbContext.RollbackTransaction();
            //    TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
            //    return Content(ex.Message);
            //}

            //save temporary to session, then display transdetitem form
            Session[CONST_TRANSDET] = transDetToInsert;
            var e = new
            {
                transDetToInsert.Id,
                PacketId = transDetToInsert.PacketId.Id,
                transDetToInsert.TransDetQty
            };

            return(Json(e, JsonRequestBehavior.AllowGet));
        }
Пример #9
0
 private static void UpdateNumericData(TTransDet viewModel, FormCollection formCollection)
 {
     if (!string.IsNullOrEmpty(formCollection["TransDetQty"]))
     {
         string  wide = formCollection["TransDetQty"].Replace(",", "");
         decimal?qty  = Convert.ToDecimal(wide);
         viewModel.TransDetQty = qty;
     }
     else
     {
         viewModel.TransDetQty = null;
     }
     if (!string.IsNullOrEmpty(formCollection["TransDetPrice"]))
     {
         string  wide  = formCollection["TransDetPrice"].Replace(",", "");
         decimal?price = Convert.ToDecimal(wide);
         viewModel.TransDetPrice = price;
     }
     else
     {
         viewModel.TransDetPrice = null;
     }
     if (!string.IsNullOrEmpty(formCollection["TransDetDisc"]))
     {
         string  wide = formCollection["TransDetDisc"].Replace(",", "");
         decimal?disc = Convert.ToDecimal(wide);
         viewModel.TransDetDisc = disc;
     }
     else
     {
         viewModel.TransDetDisc = null;
     }
     if (!string.IsNullOrEmpty(formCollection["TransDetTotal"]))
     {
         string  wide  = formCollection["TransDetTotal"].Replace(",", "");
         decimal?total = Convert.ToDecimal(wide);
         viewModel.TransDetTotal = total;
     }
     else
     {
         viewModel.TransDetTotal = null;
     }
 }
Пример #10
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 ActionResult DeleteBill(TTransDet viewModel, FormCollection formCollection)
        {
            _tTransDetRepository.DbContext.BeginTransaction();
            TTransDet det = _tTransDetRepository.Get(viewModel.Id);

            if (det != null)
            {
                _tTransDetRepository.Delete(det);
            }
            try
            {
                _tTransDetRepository.DbContext.CommitTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
                return(Content("success"));
            }
            catch (Exception ex)
            {
                _tTransDetRepository.DbContext.RollbackTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
                return(Content(ex.Message));
            }
        }
        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));
        }
Пример #13
0
        private ActionResult SaveTransaction(TTrans Trans, FormCollection formCollection)
        {
            _tTransRepository.DbContext.BeginTransaction();
            if (Trans == null)
            {
                Trans = new TTrans();
            }
            Trans.SetAssignedIdTo(formCollection["Trans.Id"]);
            Trans.WarehouseId = _mWarehouseRepository.Get(formCollection["Trans.WarehouseId"]);
            if (!string.IsNullOrEmpty(formCollection["Trans.WarehouseIdTo"]))
            {
                Trans.WarehouseIdTo = _mWarehouseRepository.Get(formCollection["Trans.WarehouseIdTo"]);
            }
            Trans.CreatedDate = DateTime.Now;
            Trans.CreatedBy   = User.Identity.Name;
            Trans.DataStatus  = Enums.EnumDataStatus.New.ToString();

            Trans.TransDets.Clear();

            //save stock card
            bool addStock                = true;
            bool calculateStock          = false;
            EnumTransactionStatus status = (EnumTransactionStatus)Enum.Parse(typeof(EnumTransactionStatus), Trans.TransStatus);

            TransactionFormViewModel.GetIsCalculateStock(status, out addStock, out calculateStock);


            TTransDet         detToInsert;
            IList <TTransDet> listDet = new List <TTransDet>();
            decimal           total   = 0;

            foreach (TTransDet det in ListDetTrans)
            {
                detToInsert = new TTransDet(Trans);
                detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
                detToInsert.ItemId        = det.ItemId;
                detToInsert.ItemUomId     = det.ItemUomId;
                detToInsert.TransDetQty   = det.TransDetQty;
                detToInsert.TransDetPrice = det.TransDetPrice;
                detToInsert.TransDetDisc  = det.TransDetDisc;
                detToInsert.TransDetTotal = det.TransDetTotal;
                detToInsert.CreatedBy     = User.Identity.Name;
                detToInsert.CreatedDate   = DateTime.Now;
                detToInsert.DataStatus    = Enums.EnumDataStatus.New.ToString();
                Trans.TransDets.Add(detToInsert);
                total += det.TransDetTotal.HasValue ? det.TransDetTotal.Value : 0;
                listDet.Add(detToInsert);
            }
            Trans.TransSubTotal = total;
            _tTransRepository.Save(Trans);
            //_tTransRepository.DbContext.CommitTransaction();

            //_tStockCardRepository.DbContext.BeginTransaction();
            if (calculateStock)
            {
                decimal totalHpp = 0;
                foreach (TTransDet det in listDet)
                {
                    //save stock
                    if (Trans.TransStatus.Equals(EnumTransactionStatus.Mutation.ToString()))
                    {
                        SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.TransDetQty, false, Trans.WarehouseId);
                        SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.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.ItemId, det.TransDetPrice, det.TransDetQty, det, false, Trans.WarehouseId);
                        UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.ItemId, det.TransDetPrice, det.TransDetQty, det, true, Trans.WarehouseIdTo);
                    }
                    else
                    {
                        SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.TransDetQty, addStock, Trans.WarehouseId);

                        //sum hpp for each stock
                        totalHpp += UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.ItemId, det.TransDetPrice, det.TransDetQty, det, addStock, Trans.WarehouseId);
                    }
                }
                //UPDATE  20150629 : no linked to accounting
                ////save journal
                //SaveJournal(Trans, totalHpp);
            }


            try
            {
                _tTransRepository.DbContext.CommitTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
            }
            catch (Exception)
            {
                _tTransRepository.DbContext.RollbackTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
            }
            //if (!Trans.TransStatus.Equals(EnumTransactionStatus.PurchaseOrder.ToString()))
            //{
            //    return RedirectToAction(Trans.TransStatus.ToString());
            //}
            //return RedirectToAction("Index");
            return(View("Status"));
        }
Пример #14
0
        public TTransDetItem(TTransDet transDet)
        {
            Check.Require(transDet != null, "transDet may not be null");

            TransDetId = transDet;
        }
Пример #15
0
        private decimal UpdateStock(DateTime?transDate, string transDesc, string transStatus, MItem itemId, decimal?price, decimal?qty, TTransDet det, bool addStock, MWarehouse mWarehouse)
        {
            decimal hpp = 0;

            if (addStock)
            {
                TStock stock = new TStock();
                stock.SetAssignedIdTo(Guid.NewGuid().ToString());
                stock.ItemId      = det.ItemId;
                stock.TransDetId  = det;
                stock.StockDate   = transDate;
                stock.StockDesc   = det.TransDetDesc;
                stock.StockPrice  = det.TransDetPrice;
                stock.StockQty    = det.TransDetQty;
                stock.StockStatus = transStatus;
                stock.WarehouseId = mWarehouse;
                stock.DataStatus  = EnumDataStatus.New.ToString();
                stock.CreatedBy   = User.Identity.Name;
                stock.CreatedDate = DateTime.Now;
                _tStockRepository.Save(stock);

                //set hpp equals price * quantity
                decimal checkqty   = qty.HasValue ? qty.Value : 0;
                decimal checkprice = price.HasValue ? price.Value : 0;
                hpp = checkqty * checkprice;
            }
            else
            {
                IList     list = _tStockRepository.GetSisaStockList(det.ItemId, mWarehouse);
                TStock    stock;
                object[]  arr;
                decimal?  sisa;
                TStockRef stockRef;
                for (int i = 0; i < list.Count; i++)
                {
                    arr   = (object[])list[i];
                    stock = arr[0] as TStock;
                    sisa  = (decimal)arr[1];

                    stockRef = new TStockRef(stock);
                    stockRef.SetAssignedIdTo(Guid.NewGuid().ToString());
                    stockRef.StockId = stock;
                    if (sisa >= qty)
                    {
                        stockRef.StockRefQty = qty;
                    }
                    else
                    {
                        stockRef.StockRefQty = sisa;
                    }
                    stockRef.TransDetId     = det;
                    stockRef.StockRefPrice  = det.TransDetPrice;
                    stockRef.StockRefDate   = transDate;
                    stockRef.StockRefStatus = transStatus;
                    stockRef.StockRefDesc   = det.TransDetDesc;
                    stockRef.CreatedBy      = User.Identity.Name;
                    stockRef.CreatedDate    = DateTime.Now;
                    stockRef.DataStatus     = EnumDataStatus.New.ToString();
                    _tStockRefRepository.Save(stockRef);

                    qty = qty - sisa;
                    decimal checkqty   = stockRef.StockRefQty.HasValue ? stockRef.StockRefQty.Value : 0;
                    decimal checkprice = stock.StockPrice.HasValue ? stock.StockPrice.Value : 0;
                    hpp += checkqty * checkprice;
                    if (qty <= 0)
                    {
                        break;
                    }
                }
            }
            return(hpp);
        }
Пример #16
0
        private ActionResult SaveTransaction(TTrans Trans, FormCollection formCollection)
        {
            try
            {
                _tTransRepository.DbContext.BeginTransaction();
                if (Trans == null)
                {
                    Trans = new TTrans();
                }
                Trans.SetAssignedIdTo(formCollection["Trans.Id"]);
                if (!string.IsNullOrEmpty(formCollection["Trans.WarehouseId"]))
                {
                    Trans.WarehouseId = _mWarehouseRepository.Get(formCollection["Trans.WarehouseId"]);
                }
                if (!string.IsNullOrEmpty(formCollection["Trans.WarehouseIdTo"]))
                {
                    Trans.WarehouseIdTo = _mWarehouseRepository.Get(formCollection["Trans.WarehouseIdTo"]);
                }
                if (!string.IsNullOrEmpty(formCollection["EmployeeId"]))
                {
                    Trans.EmployeeId = _mEmployeeRepository.Get(formCollection["EmployeeId"]);
                }
                Trans.CreatedDate = DateTime.Now;
                Trans.CreatedBy   = User.Identity.Name;
                Trans.DataStatus  = Enums.EnumDataStatus.New.ToString();

                Trans.TransDets.Clear();

                ////save stock card
                //bool addStock = true;
                //bool calculateStock = false;
                //EnumTransactionStatus status = (EnumTransactionStatus)Enum.Parse(typeof(EnumTransactionStatus), Trans.TransStatus);
                //TransactionFormViewModel.GetIsCalculateStock(status, out addStock, out calculateStock);

                TTransDet detToInsert;
                //IList<TTransDet> listDet = new List<TTransDet>();
                decimal total = 0;
                foreach (TTransDet det in ListDetTrans)
                {
                    detToInsert = new TTransDet(Trans);
                    detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
                    detToInsert.ItemId        = det.ItemId;
                    detToInsert.ItemUomId     = det.ItemUomId;
                    detToInsert.TransDetQty   = det.TransDetQty;
                    detToInsert.TransDetPrice = det.TransDetPrice;
                    detToInsert.TransDetDisc  = det.TransDetDisc;
                    detToInsert.TransDetTotal = det.TransDetTotal;
                    detToInsert.CreatedBy     = User.Identity.Name;
                    detToInsert.CreatedDate   = DateTime.Now;
                    detToInsert.DataStatus    = Enums.EnumDataStatus.New.ToString();

                    detToInsert.EmployeeId = Trans.EmployeeId;

                    detToInsert.TransDetCommissionProduct = CalculateCommission(Trans.EmployeeId, det.ItemId, detToInsert.TransDetTotal);
                    Trans.TransDets.Add(detToInsert);
                    total += det.TransDetTotal.HasValue ? det.TransDetTotal.Value : 0;
                    //listDet.Add(detToInsert);
                }
                Trans.TransSubTotal = total;
                _tTransRepository.Save(Trans);


                TTransRoom troom = new TTransRoom();
                troom.SetAssignedIdTo(formCollection["Trans.Id"]);
                troom.RoomStatus = EnumTransRoomStatus.Paid.ToString();
                if (!string.IsNullOrEmpty(formCollection["hidpaymentCash"]))
                {
                    string paymentCash = formCollection["hidpaymentCash"].Replace(",", "");
                    troom.RoomCashPaid = Convert.ToDecimal(paymentCash);
                }
                if (!string.IsNullOrEmpty(formCollection["hidpaymentVoucher"]))
                {
                    string paymentVoucher = formCollection["hidpaymentVoucher"].Replace(",", "");
                    troom.RoomVoucherPaid = Convert.ToDecimal(paymentVoucher);
                }
                if (!string.IsNullOrEmpty(formCollection["hidpaymentCreditCard"]))
                {
                    string paymentCreditCard = formCollection["hidpaymentCreditCard"].Replace(",", "");
                    troom.RoomCreditPaid = Convert.ToDecimal(paymentCreditCard);
                }
                troom.RoomOutDate = Convert.ToDateTime(string.Format("{0:dd-MMM-yyyy} {1:HH:mm}", Trans.TransDate, DateTime.Now));
                troom.CreatedBy   = User.Identity.Name;
                troom.CreatedDate = DateTime.Now;
                troom.DataStatus  = EnumDataStatus.New.ToString();
                _tTransRoomRepository.Save(troom);


                _tTransRepository.DbContext.CommitTransaction();

                ////_tStockCardRepository.DbContext.BeginTransaction();
                //if (calculateStock)
                //{
                //    decimal totalHpp = 0;
                //    foreach (TTransDet det in listDet)
                //    {
                //        //save stock
                //        if (Trans.TransStatus.Equals(EnumTransactionStatus.Mutation.ToString()))
                //        {
                //            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.TransDetQty, false, Trans.WarehouseId);
                //            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.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.ItemId, det.TransDetPrice, det.TransDetQty, det, false, Trans.WarehouseId);
                //            UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.ItemId, det.TransDetPrice, det.TransDetQty, det, true, Trans.WarehouseIdTo);
                //        }
                //        else
                //        {
                //            SaveStockItem(Trans.TransDate, Trans.TransDesc, det.ItemId, det.TransDetQty, addStock, Trans.WarehouseId);

                //            //sum hpp for each stock
                //            totalHpp += UpdateStock(Trans.TransDate, Trans.TransDesc, Trans.TransStatus, det.ItemId, det.TransDetPrice, det.TransDetQty, det, addStock, Trans.WarehouseId);
                //        }
                //    }
                //    //save journal
                //    SaveJournal(Trans, totalHpp);
                //}


                //_tTransRepository.DbContext.CommitTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
            }
            catch (Exception)
            {
                _tTransRepository.DbContext.RollbackTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
            }
            //if (!Trans.TransStatus.Equals(EnumTransactionStatus.PurchaseOrder.ToString()))
            //{
            //    return RedirectToAction(Trans.TransStatus.ToString());
            //}
            //return RedirectToAction("Index");
            return(View("Status"));
        }
Пример #17
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);
            }
        }
Пример #18
0
        public ActionResult InsertBill(TTransDet viewModel, FormCollection formCollection, string transId)
        {
            _tTransDetRepository.DbContext.BeginTransaction();
            TTrans trans = _tTransRepository.Get(transId);

            UpdateNumericData(viewModel, formCollection);
            TTransDet transDetToInsert = new TTransDet(trans);
            MAction   action           = _mActionRepository.Get(formCollection["ActionId"]);

            TransferFormValuesTo(transDetToInsert, viewModel);
            transDetToInsert.SetAssignedIdTo(Guid.NewGuid().ToString());
            transDetToInsert.ActionId = action;

            //transDetToInsert.TransDetCommissionService = CalculateCommission(emp, packet, transDetToInsert.TransDetTotal);

            transDetToInsert.CreatedDate = DateTime.Now;
            transDetToInsert.CreatedBy   = User.Identity.Name;
            transDetToInsert.DataStatus  = EnumDataStatus.New.ToString();
            _tTransDetRepository.Save(transDetToInsert);

            //save trans detail item
            SaveTransDetailItem(transDetToInsert);

            //save commission for doctor
            if (!string.IsNullOrEmpty(formCollection["DrId"]))
            {
                SaveCommission(transDetToInsert, action.ActionComponentDoctor, (formCollection["DrId"]), EnumCommissionPeople.Doctor);
            }

            //save commission for terapist
            if (!string.IsNullOrEmpty(formCollection["TherapistId"]))
            {
                SaveCommission(transDetToInsert, action.ActionComponentTherapist, (formCollection["TherapistId"]), EnumCommissionPeople.Therapist);
            }
            //save commission for Medician
            if (!string.IsNullOrEmpty(formCollection["MedicianId"]))
            {
                SaveCommission(transDetToInsert, action.ActionComponentMedician, (formCollection["MedicianId"]), EnumCommissionPeople.Medician);
            }
            try
            {
                _tTransDetRepository.DbContext.CommitTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success;
                return(Content("Tindakan berhasil disimpan"));
            }
            catch (Exception ex)
            {
                _tTransDetRepository.DbContext.RollbackTransaction();
                TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed;
                return(Content(ex.Message));
            }

            ////save temporary to session, then display transdetitem form
            //Session[CONST_TRANSDET] = transDetToInsert;
            var e = new
            {
                transDetToInsert.Id,
                PacketId = transDetToInsert.ActionId.Id,
                transDetToInsert.TransDetQty
            };

            return(Json(e, JsonRequestBehavior.AllowGet));
        }
Пример #19
0
 public ActionResult Delete(TTransDet viewModel, FormCollection formCollection)
 {
     ListDetTrans.Remove(viewModel);
     return(Content("success"));
 }
Пример #20
0
        public TCommission(TTransDet transDet)
        {
            Check.Require(transDet != null, "transDet may not be null");

            TransDetId = transDet;
        }