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")); }
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); }
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; }
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")); }
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); }
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")); }
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)); }
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; } }
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)); }
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")); }
public TTransDetItem(TTransDet transDet) { Check.Require(transDet != null, "transDet may not be null"); TransDetId = transDet; }
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); }
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")); }
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); } }
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)); }
public ActionResult Delete(TTransDet viewModel, FormCollection formCollection) { ListDetTrans.Remove(viewModel); return(Content("success")); }
public TCommission(TTransDet transDet) { Check.Require(transDet != null, "transDet may not be null"); TransDetId = transDet; }