Ejemplo n.º 1
0
        public List <ETL_GeneralJournal> JoinJournal(Session session, List <ETL_GeneralJournal> journalList)
        {
            List <ETL_GeneralJournal> result = new List <ETL_GeneralJournal>();

            try
            {
                ETLAccountingBO accountingBO = new ETLAccountingBO();
                foreach (ETL_GeneralJournal journal in journalList)
                {
                    ETL_GeneralJournal rsJournal = GetJournal(session, result, journal.AccountId);
                    if (rsJournal == null)
                    {
                        rsJournal             = new ETL_GeneralJournal();
                        rsJournal.AccountId   = accountingBO.GetHighestAccount(session, journal.AccountId).AccountId;
                        rsJournal.CreateDate  = journal.CreateDate;
                        rsJournal.Credit      = journal.Credit;
                        rsJournal.CurrencyId  = journal.CurrencyId;
                        rsJournal.Debit       = journal.Debit;
                        rsJournal.JournalType = journal.JournalType;
                        result.Add(rsJournal);
                    }
                    else
                    {
                        rsJournal.Credit += journal.Credit;
                        rsJournal.Debit  += journal.Debit;
                    }
                }
                return(result);
            }
            catch (Exception)
            {
                return(null);
            }
            return(result);
        }
        private List <ETL_GeneralJournal> JoinJournal(Session session, List <ETL_GeneralJournal> journalList, string mainAccountCode)
        {
            List <ETL_GeneralJournal> result = new List <ETL_GeneralJournal>();

            CriteriaOperator criteria_RowStatus = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual);
            CriteriaOperator criteria_Code      = new BinaryOperator("Code", mainAccountCode, BinaryOperatorType.Equal);
            CriteriaOperator criteria           = CriteriaOperator.And(criteria_Code, criteria_RowStatus);
            Account          mainAccount        = session.FindObject <Account>(criteria);

            if (mainAccount == null)
            {
                return(null);
            }
            try
            {
                ETLAccountingBO accountingBO = new ETLAccountingBO();
                foreach (ETL_GeneralJournal journal in journalList)
                {
                    if (accountingBO.IsRelateAccount(session, mainAccount.AccountId, journal.AccountId))
                    {
                        ETL_GeneralJournal masterJournal = new ETL_GeneralJournal();
                        masterJournal.AccountId   = journal.AccountId;
                        masterJournal.CreateDate  = journal.CreateDate;
                        masterJournal.Credit      = journal.Credit;
                        masterJournal.Debit       = journal.Debit;
                        masterJournal.CurrencyId  = journal.CurrencyId;
                        masterJournal.JournalType = journal.JournalType;
                        result.Add(masterJournal);
                    }
                    else
                    {
                        ETL_GeneralJournal rsJournal = GetJournal(session, result, journal.AccountId);
                        if (rsJournal == null)
                        {
                            rsJournal             = new ETL_GeneralJournal();
                            rsJournal.AccountId   = accountingBO.GetHighestAccount(session, journal.AccountId).AccountId;
                            rsJournal.CreateDate  = journal.CreateDate;
                            rsJournal.Credit      = journal.Credit;
                            rsJournal.CurrencyId  = journal.CurrencyId;
                            rsJournal.Debit       = journal.Debit;
                            rsJournal.JournalType = journal.JournalType;
                            result.Add(rsJournal);
                        }
                        else
                        {
                            rsJournal.Credit += journal.Credit;
                            rsJournal.Debit  += journal.Debit;
                        }
                    }
                }

                return(result);
            }
            catch (Exception)
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        public List <ETL_GeneralJournal> JoinJournalList(Session session, List <ETL_GeneralJournal> journalList)
        {
            List <ETL_GeneralJournal> result = null;

            try
            {
                result = new List <ETL_GeneralJournal>();
                ETLAccountingBO accountingBO = new ETLAccountingBO();

                foreach (ETL_GeneralJournal journal in journalList)
                {
                    if (!IsOffBalanceAccount(session, journal.AccountId))
                    {
                        bool flag = false;
                        foreach (ETL_GeneralJournal rs_journal in result)
                        {
                            if (IsJoinableJournals(session, rs_journal, journal))
                            {
                                flag                 = true;
                                rs_journal.Debit    += journal.Debit;
                                rs_journal.Credit   += journal.Credit;
                                rs_journal.AccountId = accountingBO.GetHighestAccount(session, rs_journal.AccountId).AccountId;
                            }
                        }
                        if (!flag)
                        {
                            ETL_GeneralJournal temp_journal = journal;
                            temp_journal.AccountId = accountingBO.GetHighestAccount(session, temp_journal.AccountId).AccountId;
                            result.Add(temp_journal);
                        }
                    }
                }
            }
            catch (Exception)
            {
                return(null);
            }
            return(result);
        }
Ejemplo n.º 4
0
        public ETL_GeneralJournal JoinJournal(Session session, ETL_GeneralJournal journal1, ETL_GeneralJournal journal2)
        {
            ETL_GeneralJournal result       = null;
            ETLAccountingBO    accountingBO = new ETLAccountingBO();

            try
            {
                if (!IsJoinableJournals(session, journal1, journal2))
                {
                    return(null);
                }
                result           = journal1;
                result.Debit    += journal2.Debit;
                result.Credit   += journal2.Credit;
                result.AccountId = accountingBO.GetHighestAccount(session, journal1.AccountId).AccountId;
                return(result);
            }
            catch (Exception)
            {
                return(null);
            }
            return(result);
        }