예제 #1
0
 public FinancialPrepaidExpenseStrategy(Guid transactionId, string accountCode)
 {
     this.fIsRelatedStrategy        = false;
     this.fAccountCode              = accountCode;
     this.fTransactionId            = transactionId;
     this.fFinancialTransactionData = new ETL_FinancialPrepaidExpenseTransaction();
     this.fFinancialTransformData   = new ETL_FinancialPrepaidExpenseTransformData();
 }
예제 #2
0
 public FinancialPrepaidExpenseStrategy()
 {
     this.fIsRelatedStrategy        = false;
     this.fAccountCode              = string.Empty;
     this.fTransactionId            = Guid.Empty;
     this.fFinancialTransactionData = new ETL_FinancialPrepaidExpenseTransaction();
     this.fFinancialTransformData   = new ETL_FinancialPrepaidExpenseTransformData();
 }
예제 #3
0
 protected void LoadTransaction(Session session, ETL_FinancialPrepaidExpenseTransformData data)
 {
     try
     {
         foreach (ETL_FinancialPrepaidExpenseDetail detail in data.ETL_DetailList)
         {
             CreateFinancialPrepaidExpenseDetail(session, detail, data.MainAccountCode);
         }
     }
     catch (Exception)
     {
         return;
     }
 }
예제 #4
0
        protected ETL_FinancialPrepaidExpenseTransformData TransformTransaction
        (
            Session session,
            ETL_FinancialPrepaidExpenseTransaction transaction,
            string AccountCode)
        {
            Util util = new Util();
            ETL_FinancialPrepaidExpenseTransformData result = new ETL_FinancialPrepaidExpenseTransformData();
            Account account = util.GetXpoObjectByFieldName <Account, string>(session, "Code", AccountCode, BinaryOperatorType.Equal);

            if (account == null)
            {
                return(null);
            }
            if (transaction == null)
            {
                return(null);
            }
            ETL_Transaction etlTransaction = transaction;

            string subMainAccount = string.Empty;

            List <ETL_FinancialPrepaidExpenseDetail> detail = new List <ETL_FinancialPrepaidExpenseDetail>();

            try
            {
                ETLAccountingBO           accountingBO      = new ETLAccountingBO();
                FinancialLiabilityBO      liabilityBO       = new FinancialLiabilityBO();
                List <ETL_GeneralJournal> JournalListJoined = JoinJournal(session, etlTransaction.GeneralJournalList);
                List <ETL_GeneralJournal> FinishJournalList = liabilityBO.ClearJournalList(session, JournalListJoined, account.AccountId);
                foreach (ETL_GeneralJournal journal in FinishJournalList)
                {
                    ETL_FinancialPrepaidExpenseDetail temp = new ETL_FinancialPrepaidExpenseDetail();
                    temp.AccountCode           = string.Empty;
                    temp.CorrespondAccountCode = string.Empty;
                    if (accountingBO.IsRelateAccount(session, account.AccountId, journal.AccountId))
                    {
                        temp.AccountCode = subMainAccount = session.GetObjectByKey <Account>(journal.AccountId).Code;
                    }
                    else
                    {
                        temp.CorrespondAccountCode = session.GetObjectByKey <Account>(journal.AccountId).Code;
                    }
                    temp.CurrencyCode     = session.GetObjectByKey <Currency>(journal.CurrencyId).Code;
                    temp.IsBalanceForward = etlTransaction.IsBalanceForward;
                    temp.IssueDate        = etlTransaction.IssuedDate;
                    temp.OwnerOrgId       = etlTransaction.OwnerOrgId;
                    temp.TransactionId    = etlTransaction.TransactionId;
                    temp.Credit           = (decimal)journal.Credit;
                    temp.Debit            = (decimal)journal.Debit;
                    detail.Add(temp);
                }

                result.MainAccountCode = subMainAccount;
                result.ETL_DetailList  = detail;
            }
            catch (Exception)
            {
                return(null);
            }
            return(result);
        }