private TJournal SetNewJournal(EnumJournalType journalType)
        {
            TJournal journal = new TJournal();

            journal.SetAssignedIdTo(Guid.NewGuid().ToString());
            journal.JournalDate      = DateTime.Today;
            journal.JournalType      = journalType.ToString();
            journal.JournalVoucherNo = Helper.CommonHelper.GetVoucherNo();
            return(journal);
        }
        private TJournal SetNewJournal(EnumJournalType journalType)
        {
            TJournal journal = new TJournal();

            journal.SetAssignedIdTo(Guid.NewGuid().ToString());
            journal.JournalDate = DateTime.Today;
            journal.JournalType = journalType.ToString();
            // journal.JournalVoucherNo = "<Otomatis, dikosongkan saja.>"; //Helper.CommonHelper.GetVoucherNo();
            return(journal);
        }
Exemplo n.º 3
0
        public static string GetVoucherNo(bool automatedIncrease, EnumJournalType journalType)
        {
            TReference refer = GetReference(EnumReferenceType.VoucherNo);
            decimal    no    = Convert.ToDecimal(refer.ReferenceValue) + 1;

            refer.ReferenceValue = no.ToString();
            if (automatedIncrease)
            {
                ITReferenceRepository referenceRepository = new TReferenceRepository();
                referenceRepository.DbContext.BeginTransaction();
                referenceRepository.Update(refer);
                referenceRepository.DbContext.CommitTransaction();
            }

            string        formatFactur = "GRAHA/[TYPE]/[XXX]/[MONTH]/[YEAR]";
            StringBuilder result       = new StringBuilder();

            result.Append(formatFactur);
            result.Replace("[TYPE]", GetStringValue(journalType));
            result.Replace("[XXX]", GetFactur(5, no));
            result.Replace("[MONTH]", DateTime.Today.ToString("MMM").ToUpper());
            result.Replace("[YEAR]", DateTime.Now.Year.ToString());
            return(result.ToString());
        }
        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);
        }