コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }