private void SaveJournal(TPayment payment, string transBy, string cashAccountId, string costCenterId, string desc) { TJournal journal = new TJournal(); journal.JournalType = EnumJournalType.GeneralLedger.ToString(); journal.JournalVoucherNo = Helper.CommonHelper.GetVoucherNo(); journal.JournalDate = payment.PaymentDate; journal.JournalDesc = payment.PaymentDesc; journal.JournalPic2 = payment.PaymentPic; journal.JournalPic = transBy; journal.SetAssignedIdTo(Guid.NewGuid().ToString()); journal.CostCenterId = _mCostCenterRepository.Get(costCenterId); journal.CreatedDate = DateTime.Now; journal.CreatedBy = User.Identity.Name; journal.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Clear(); MAccount accountCash = _mAccountRepository.Get(cashAccountId); MAccountRef accountRef; if (payment.PaymentType == EnumPaymentType.Hutang.ToString()) { //search supplier hutang account accountRef = _mAccountRefRepository.GetByRefTableId(EnumReferenceTable.Supplier, transBy); //save debet SaveJournalDet(journal, EnumJournalStatus.D, accountRef.AccountId, payment.PaymentTotal, desc); //save kredit SaveJournalDet(journal, EnumJournalStatus.K, accountCash, payment.PaymentTotal, desc); } else if (payment.PaymentType == EnumPaymentType.Piutang.ToString()) { //search Customer piutang account accountRef = _mAccountRefRepository.GetByRefTableId(EnumReferenceTable.Customer, transBy); //save debet SaveJournalDet(journal, EnumJournalStatus.D, accountCash, payment.PaymentTotal, desc); //save kredit SaveJournalDet(journal, EnumJournalStatus.K, accountRef.AccountId, payment.PaymentTotal, desc); } _tJournalRepository.Save(journal); }
private ActionResult SaveJournal(TJournal journal, FormCollection formCollection) { if (journal == null) { journal = new TJournal(); } journal.SetAssignedIdTo(formCollection["Journal.Id"]); journal.CostCenterId = _mCostCenterRepository.Get(formCollection["Journal.CostCenterId"]); journal.CreatedDate = DateTime.Now; journal.CreatedBy = User.Identity.Name; journal.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Clear(); TJournalDet detToInsert; decimal total = 0; foreach (TJournalDet det in ListJournalDet) { detToInsert = new TJournalDet(journal); detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString()); detToInsert.AccountId = det.AccountId; if (journal.JournalType == EnumJournalType.CashIn.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.K.ToString(); } else if (journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.D.ToString(); } else if (journal.JournalType == EnumJournalType.GeneralLedger.ToString()) { detToInsert.JournalDetStatus = det.JournalDetStatus; } detToInsert.JournalDetAmmount = det.JournalDetAmmount; detToInsert.JournalDetNo = det.JournalDetNo; detToInsert.JournalDetDesc = det.JournalDetDesc; detToInsert.CreatedBy = User.Identity.Name; detToInsert.CreatedDate = DateTime.Now; detToInsert.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Add(detToInsert); total += det.JournalDetAmmount.Value; } //add new detail for cash in / out if (journal.JournalType == EnumJournalType.CashIn.ToString() || journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert = new TJournalDet(journal); detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString()); detToInsert.AccountId = _mAccountRepository.Get(formCollection["CashAccountId"]); if (journal.JournalType == EnumJournalType.CashIn.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.D.ToString(); } else if (journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.K.ToString(); } detToInsert.JournalDetAmmount = total; detToInsert.JournalDetNo = 0; detToInsert.JournalDetDesc = journal.JournalDesc; detToInsert.CreatedBy = User.Identity.Name; detToInsert.CreatedDate = DateTime.Now; detToInsert.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Add(detToInsert); } try { _tJournalRepository.Save(journal); TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success; } catch (Exception) { TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed; } return(View("Status")); //return RedirectToAction(journal.JournalType); }
private ActionResult SaveJournal(TJournal journal, FormCollection formCollection) { string Message = string.Empty; bool Success = true; string voucherNo = string.Empty; try { _tJournalRepository.DbContext.BeginTransaction(); //check first TJournal journal1 = _tJournalRepository.Get(formCollection["Journal.Id"]); voucherNo = journal.JournalVoucherNo; if (journal1 != null) { _tJournalRepository.Delete(journal1); } else { EnumJournalType journalType = (EnumJournalType)Enum.Parse(typeof(EnumJournalType), journal.JournalType); voucherNo = Helper.CommonHelper.GetVoucherNo(false, journalType); } if (journal == null) { journal = new TJournal(); } journal.SetAssignedIdTo(formCollection["Journal.Id"]); journal.CostCenterId = _mCostCenterRepository.Get(formCollection["Journal.CostCenterId"]); journal.JournalVoucherNo = voucherNo; journal.CreatedDate = DateTime.Now; journal.CreatedBy = User.Identity.Name; journal.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Clear(); TJournalDet detToInsert; decimal total = 0; foreach (TJournalDet det in ListJournalDet) { detToInsert = new TJournalDet(journal); detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString()); detToInsert.AccountId = det.AccountId; if (journal.JournalType == EnumJournalType.CashIn.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.K.ToString(); } else if (journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.D.ToString(); } else if (journal.JournalType == EnumJournalType.GeneralLedger.ToString()) { detToInsert.JournalDetStatus = det.JournalDetStatus; } detToInsert.JournalDetAmmount = det.JournalDetAmmount; detToInsert.JournalDetNo = det.JournalDetNo; detToInsert.JournalDetEvidenceNo = det.JournalDetEvidenceNo; detToInsert.JournalDetDesc = det.JournalDetDesc; detToInsert.CreatedBy = User.Identity.Name; detToInsert.CreatedDate = DateTime.Now; detToInsert.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Add(detToInsert); total += det.JournalDetAmmount.Value; } //add new detail for cash in / out if (journal.JournalType == EnumJournalType.CashIn.ToString() || journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert = new TJournalDet(journal); detToInsert.SetAssignedIdTo(Guid.NewGuid().ToString()); detToInsert.AccountId = _mAccountRepository.Get(formCollection["CashAccountId"]); if (journal.JournalType == EnumJournalType.CashIn.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.D.ToString(); } else if (journal.JournalType == EnumJournalType.CashOut.ToString()) { detToInsert.JournalDetStatus = EnumJournalStatus.K.ToString(); } detToInsert.JournalDetAmmount = total; detToInsert.JournalDetNo = 0; detToInsert.JournalDetDesc = journal.JournalDesc; detToInsert.CreatedBy = User.Identity.Name; detToInsert.CreatedDate = DateTime.Now; detToInsert.DataStatus = Enums.EnumDataStatus.New.ToString(); journal.JournalDets.Add(detToInsert); } _tJournalRepository.Save(journal); _tJournalRepository.DbContext.CommitTransaction(); TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Success; Message = "Data berhasil disimpan."; } catch (Exception ex) { _tJournalRepository.DbContext.RollbackTransaction(); Success = false; Message = ex.GetBaseException().Message; TempData[EnumCommonViewData.SaveState.ToString()] = EnumSaveState.Failed; } var e = new { Success, Message, voucherNo }; return (Json(e, JsonRequestBehavior.AllowGet)); //View("Status"); //return RedirectToAction(journal.JournalType); }