コード例 #1
0
        public IList <GeneralLedgerJournal> CreateUnconfirmationJournalForCashBankMutation(CashBankMutation cashBankMutation, CashBank sourceCashBank, CashBank targetCashBank, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            GeneralLedgerJournal credittargetcashbank = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBank + targetCashBank.Id).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashBankMutation,
                SourceDocumentId = cashBankMutation.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = cashBankMutation.Amount
            };

            credittargetcashbank = CreateObject(credittargetcashbank, _accountService);

            GeneralLedgerJournal debitsourcecashbank = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBank + sourceCashBank.Id).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashBankMutation,
                SourceDocumentId = cashBankMutation.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = cashBankMutation.Amount
            };

            debitsourcecashbank = CreateObject(debitsourcecashbank, _accountService);

            journals.Add(credittargetcashbank);
            journals.Add(debitsourcecashbank);

            return(journals);
        }
コード例 #2
0
        public IList <GeneralLedgerJournal> CreateUnpaidJournalForCustomPurchaseInvoice(CustomPurchaseInvoice customPurchaseInvoice, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            GeneralLedgerJournal creditGoodsPendingClearance = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.GoodsPendingClearance).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CustomPurchaseInvoice,
                SourceDocumentId = customPurchaseInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = customPurchaseInvoice.AmountPaid.GetValueOrDefault()
            };

            creditGoodsPendingClearance = CreateObject(creditGoodsPendingClearance, _accountService);

            GeneralLedgerJournal debitaccountpayable = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.AccountPayable).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CustomPurchaseInvoice,
                SourceDocumentId = customPurchaseInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = customPurchaseInvoice.AmountPaid.GetValueOrDefault()
            };

            debitaccountpayable = CreateObject(debitaccountpayable, _accountService);

            journals.Add(creditGoodsPendingClearance);
            journals.Add(debitaccountpayable);

            return(journals);
        }
コード例 #3
0
        public IList <GeneralLedgerJournal> CreateConfirmationJournalForCustomPurchaseInvoice(CustomPurchaseInvoice customPurchaseInvoice, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();

            GeneralLedgerJournal creditinventory = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Inventory).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CustomPurchaseInvoice,
                SourceDocumentId = customPurchaseInvoice.Id,
                TransactionDate  = (DateTime)customPurchaseInvoice.ConfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = customPurchaseInvoice.CoGS
            };

            creditinventory = CreateObject(creditinventory, _accountService);

            GeneralLedgerJournal debitgoodsPendingclearance = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.GoodsPendingClearance).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CustomPurchaseInvoice,
                SourceDocumentId = customPurchaseInvoice.Id,
                TransactionDate  = (DateTime)customPurchaseInvoice.ConfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = customPurchaseInvoice.CoGS
            };

            debitgoodsPendingclearance = CreateObject(debitgoodsPendingclearance, _accountService);

            journals.Add(creditinventory);
            journals.Add(debitgoodsPendingclearance);

            return(journals);
        }
コード例 #4
0
        public IList <GeneralLedgerJournal> CreateConfirmationJournalForPaymentVoucher(PaymentVoucher paymentVoucher, CashBank cashBank, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();

            GeneralLedgerJournal debitaccountpayable = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.AccountPayable).Id,
                SourceDocument   = Constant.GeneralLedgerSource.PaymentVoucher,
                SourceDocumentId = paymentVoucher.Id,
                TransactionDate  = (DateTime)paymentVoucher.ConfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = paymentVoucher.TotalAmount
            };

            debitaccountpayable = CreateObject(debitaccountpayable, _accountService);

            GeneralLedgerJournal creditcashbank = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBank + cashBank.Id).Id,
                SourceDocument   = Constant.GeneralLedgerSource.PaymentVoucher,
                SourceDocumentId = paymentVoucher.Id,
                TransactionDate  = (DateTime)paymentVoucher.ConfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = paymentVoucher.TotalAmount
            };

            creditcashbank = CreateObject(creditcashbank, _accountService);

            journals.Add(debitaccountpayable);
            journals.Add(creditcashbank);

            return(journals);
        }
コード例 #5
0
        public IList <GeneralLedgerJournal> CreateUnpaidJournalForCashSalesInvoice(CashSalesInvoice cashSalesInvoice, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            GeneralLedgerJournal credittotal = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.AccountReceivable).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashSalesInvoice,
                SourceDocumentId = cashSalesInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = cashSalesInvoice.AmountPaid.GetValueOrDefault()
            };

            credittotal = CreateObject(credittotal, _accountService);

            GeneralLedgerJournal debitrevenue = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Revenue).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashSalesInvoice,
                SourceDocumentId = cashSalesInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = cashSalesInvoice.AmountPaid.GetValueOrDefault()
            };

            debitrevenue = CreateObject(debitrevenue, _accountService);

            journals.Add(credittotal);
            journals.Add(debitrevenue);

            return(journals);
        }
コード例 #6
0
        public IList <GeneralLedgerJournal> CreateUnconfirmationJournalForCashSalesInvoice(CashSalesInvoice cashSalesInvoice, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            GeneralLedgerJournal creditcogs = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.COGS).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashSalesInvoice,
                SourceDocumentId = cashSalesInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Credit,
                Amount           = cashSalesInvoice.CoGS
            };

            creditcogs = CreateObject(creditcogs, _accountService);

            GeneralLedgerJournal debitinventory = new GeneralLedgerJournal()
            {
                AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Inventory).Id,
                SourceDocument   = Constant.GeneralLedgerSource.CashSalesInvoice,
                SourceDocumentId = cashSalesInvoice.Id,
                TransactionDate  = UnconfirmationDate,
                Status           = Constant.GeneralLedgerStatus.Debit,
                Amount           = cashSalesInvoice.CoGS
            };

            debitinventory = CreateObject(debitinventory, _accountService);

            journals.Add(creditcogs);
            journals.Add(debitinventory);

            return(journals);
        }
コード例 #7
0
        public GeneralLedgerJournal VIsLeafAccount(GeneralLedgerJournal generalLedgerJournal, IAccountService _accountService)
        {
            Account account = _accountService.GetObjectById(generalLedgerJournal.AccountId);

            if (!account.IsLeaf)
            {
                generalLedgerJournal.Errors.Add("Generic", "Non leaf account bukan sebuah item journal");
            }
            return(generalLedgerJournal);
        }
コード例 #8
0
 public GeneralLedgerJournal VCreateObject(GeneralLedgerJournal generalLedgerJournal, IAccountService _accountService)
 {
     VIsValidSourceDocument(generalLedgerJournal);
     if (!isValid(generalLedgerJournal))
     {
         return(generalLedgerJournal);
     }
     VIsLeafAccount(generalLedgerJournal, _accountService);
     return(generalLedgerJournal);
 }
コード例 #9
0
        public string PrintError(GeneralLedgerJournal obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
コード例 #10
0
 public GeneralLedgerJournal VIsValidSourceDocument(GeneralLedgerJournal generalLedgerJournal)
 {
     if (!generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.CashBankAdjustment) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.CashBankMutation) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.CashSalesInvoice) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.CustomPurchaseInvoice) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.PaymentVoucher) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.ReceiptVoucher) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.RetailSalesInvoice) &&
         !generalLedgerJournal.SourceDocument.Equals(Constant.GeneralLedgerSource.StockAdjustment))
     {
         generalLedgerJournal.Errors.Add("SourceDocument", "Harus merupakan bagian dari Constant.SourceDocument");
     }
     return(generalLedgerJournal);
 }
コード例 #11
0
        public IList <GeneralLedgerJournal> CreateUnconfirmationJournalForStockAdjustment(StockAdjustment stockAdjustment, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            if (stockAdjustment.Total >= 0)
            {
                GeneralLedgerJournal creditinventory = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Inventory).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.StockAdjustment,
                    SourceDocumentId = stockAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Credit,
                    Amount           = stockAdjustment.Total
                };
                creditinventory = CreateObject(creditinventory, _accountService);

                GeneralLedgerJournal debitstockequityadjustment = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.EquityAdjustment).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.StockAdjustment,
                    SourceDocumentId = stockAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Debit,
                    Amount           = stockAdjustment.Total
                };
                debitstockequityadjustment = CreateObject(debitstockequityadjustment, _accountService);

                journals.Add(creditinventory);
                journals.Add(debitstockequityadjustment);
            }
            else
            {
                GeneralLedgerJournal creditstockadjustmentexpense = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.StockAdjustmentExpense).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.StockAdjustment,
                    SourceDocumentId = stockAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Credit,
                    Amount           = Math.Abs(stockAdjustment.Total)
                };
                creditstockadjustmentexpense = CreateObject(creditstockadjustmentexpense, _accountService);

                GeneralLedgerJournal debitinventory = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.Inventory).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.StockAdjustment,
                    SourceDocumentId = stockAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Debit,
                    Amount           = Math.Abs(stockAdjustment.Total)
                };
                debitinventory = CreateObject(debitinventory, _accountService);

                journals.Add(creditstockadjustmentexpense);
                journals.Add(debitinventory);
            }

            return(journals);
        }
コード例 #12
0
 public GeneralLedgerJournal SoftDeleteObject(GeneralLedgerJournal generalLedgerJournal)
 {
     return(_validator.ValidDeleteObject(generalLedgerJournal) ? _repository.SoftDeleteObject(generalLedgerJournal) : generalLedgerJournal);
 }
コード例 #13
0
 public GeneralLedgerJournal CreateObject(GeneralLedgerJournal generalLedgerJournal, IAccountService _accountService)
 {
     generalLedgerJournal.Errors = new Dictionary <String, String>();
     return(_validator.ValidCreateObject(generalLedgerJournal, _accountService) ? _repository.CreateObject(generalLedgerJournal) : generalLedgerJournal);
 }
コード例 #14
0
        public IList <GeneralLedgerJournal> CreateUnconfirmationJournalForCashBankAdjustment(CashBankAdjustment cashBankAdjustment, CashBank cashBank, IAccountService _accountService)
        {
            IList <GeneralLedgerJournal> journals = new List <GeneralLedgerJournal>();
            DateTime UnconfirmationDate           = DateTime.Now;

            if (cashBankAdjustment.Amount >= 0)
            {
                GeneralLedgerJournal creditcashbank = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBank + cashBank.Id).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.CashBankAdjustment,
                    SourceDocumentId = cashBankAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Credit,
                    Amount           = cashBankAdjustment.Amount
                };
                creditcashbank = CreateObject(creditcashbank, _accountService);

                GeneralLedgerJournal debitcashbankequityadjustment = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.EquityAdjustment).Id,
                    SourceDocument   = cashBankAdjustment.GetType().ToString(),
                    SourceDocumentId = cashBankAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Debit,
                    Amount           = cashBankAdjustment.Amount
                };
                debitcashbankequityadjustment = CreateObject(debitcashbankequityadjustment, _accountService);

                journals.Add(creditcashbank);
                journals.Add(debitcashbankequityadjustment);
            }
            else
            {
                GeneralLedgerJournal creditcashbankadjustmentexpense = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBankAdjustmentExpense).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.CashBankAdjustment,
                    SourceDocumentId = cashBankAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Credit,
                    Amount           = Math.Abs(cashBankAdjustment.Amount)
                };
                creditcashbankadjustmentexpense = CreateObject(creditcashbankadjustmentexpense, _accountService);

                GeneralLedgerJournal debitcashbank = new GeneralLedgerJournal()
                {
                    AccountId        = _accountService.GetObjectByLegacyCode(Constant.AccountLegacyCode.CashBank + cashBank.Id).Id,
                    SourceDocument   = Constant.GeneralLedgerSource.CashBankAdjustment,
                    SourceDocumentId = cashBankAdjustment.Id,
                    TransactionDate  = UnconfirmationDate,
                    Status           = Constant.GeneralLedgerStatus.Debit,
                    Amount           = Math.Abs(cashBankAdjustment.Amount)
                };
                debitcashbank = CreateObject(debitcashbank, _accountService);

                journals.Add(creditcashbankadjustmentexpense);
                journals.Add(debitcashbank);
            }

            return(journals);
        }
コード例 #15
0
        public bool isValid(GeneralLedgerJournal obj)
        {
            bool isValid = !obj.Errors.Any();

            return(isValid);
        }
コード例 #16
0
 public bool ValidDeleteObject(GeneralLedgerJournal generalLedgerJournal)
 {
     generalLedgerJournal.Errors.Clear();
     VDeleteObject(generalLedgerJournal);
     return(isValid(generalLedgerJournal));
 }
コード例 #17
0
 public bool ValidCreateObject(GeneralLedgerJournal generalLedgerJournal, IAccountService _accountService)
 {
     VCreateObject(generalLedgerJournal, _accountService);
     return(isValid(generalLedgerJournal));
 }
コード例 #18
0
 public GeneralLedgerJournal VDeleteObject(GeneralLedgerJournal generalLedgerJournal)
 {
     return(generalLedgerJournal);
 }