public ETL_Voucher ExtractReceiptVoucher(Session session, Guid VoucherId, bool ExtractTransaction) { ETL_Voucher result = null; try { ReceiptVouches voucher = session.GetObjectByKey <ReceiptVouches>(VoucherId); if (voucher == null) { return(null); } result = new ETL_Voucher(); result.Credit = (decimal)voucher.SumOfCredit; result.Debit = (decimal)voucher.SumOfDebit; result.IssueDate = voucher.IssuedDate; result.VoucherId = voucher.VouchesId; if (ExtractTransaction) { ETLAccountingBO etlAccountingBO = new ETLAccountingBO(); result.FinancialTransactionList = new List <Accounting.TempData.ETL_Transaction>(); foreach (ReceiptVouchesTransaction transaction in voucher.ReceiptVouchesTransactions) { ETL_Transaction temp = new ETL_Transaction(); temp = etlAccountingBO.ExtractTransaction(session, transaction.TransactionId); result.FinancialTransactionList.Add(temp); } } } catch (Exception) { } return(result); }
public ETL_GeneralJournal GetJournal(Session session, List <ETL_GeneralJournal> journalList, string AccountCode) { ETLAccountingBO accountingBO = new ETLAccountingBO(); ETL_GeneralJournal result = new ETL_GeneralJournal(); try { if (journalList == null) { return(null); } Util util = new Util(); Account account = util.GetXpoObjectByFieldName <Account, string>(session, "Code", AccountCode, BinaryOperatorType.Equal); if (account == null) { return(null); } foreach (ETL_GeneralJournal journal in journalList) { if (accountingBO.IsRelateAccount(session, journal.AccountId, account.AccountId)) { return(journal); } } return(null); } catch (Exception) { return(null); } return(result); }
private FinancialSalesOrManufactureExpenseSummary_Fact CreateFinancialSalesOrManufactureExpenseSummary( Session session, Guid OwnerOrgId, DateTime IssueDate, bool IsBalanceForward ) { FinancialSalesOrManufactureExpenseSummary_Fact result = new FinancialSalesOrManufactureExpenseSummary_Fact(session); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); DimBO dimBO = new DimBO(); result.MonthDimId = dimBO.GetMonthDim(session, (short)IssueDate.Month); result.YearDimId = dimBO.GetYearDim(session, (short)IssueDate.Year); result.OwnerOrgDimId = dimBO.GetOwnerOrgDim(session, OwnerOrgId); result.RowStatus = Constant.ROWSTATUS_ACTIVE; if (result.MonthDimId == null || result.YearDimId == null || result.OwnerOrgDimId == null) { return(null); } result.Save(); return(result); } catch (Exception) { return(null); } }
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); }
public List <ETL_FinancialOnTheWayBuyingGoodDetail> TransformTransactionOnTheWayBuyingGoodDetail(Session session, ETL_Transaction transaction, string AccountCode) { Util util = new Util(); 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; List <ETL_FinancialOnTheWayBuyingGoodDetail> detailList = new List <ETL_FinancialOnTheWayBuyingGoodDetail>(); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialLiabilityBO liabilityBO = new FinancialLiabilityBO(); ETL_FinancialOnTheWayBuyingGoodDetail temp = null; List <ETL_GeneralJournal> JournalListJoined = liabilityBO.JoinJournal(session, etlTransaction.GeneralJournalList); List <ETL_GeneralJournal> FinishJournalList = liabilityBO.ClearJournalList(session, JournalListJoined, account.AccountId); foreach (ETL_GeneralJournal journal in JournalListJoined) { temp = new ETL_FinancialOnTheWayBuyingGoodDetail(); temp.AccountCode = ""; temp.CorrespondAccountCode = ""; if (accountingBO.IsRelateAccount(session, account.AccountId, journal.AccountId)) { temp.AccountCode = session.GetObjectByKey <Account>(journal.AccountId).Code; } else { temp.CorrespondAccountCode = session.GetObjectByKey <Account>(journal.AccountId).Code; } temp.ActualPrice = (transaction as ETL_TransactionS04a6DN).ActualPrice; temp.BookedPrice = (transaction as ETL_TransactionS04a6DN).BookedPrice; temp.IssueDate = etlTransaction.IssuedDate; temp.OwnerOrgId = etlTransaction.OwnerOrgId; temp.TransactionId = etlTransaction.TransactionId; temp.Credit = journal.Credit; temp.Debit = journal.Debit; temp.Credit = journal.Credit; temp.Debit = journal.Debit; temp.CurrencyCode = session.GetObjectByKey <Currency>(journal.CurrencyId).Code; temp.TransactionId = etlTransaction.TransactionId; temp.IsBalanceForward = etlTransaction.IsBalanceForward; temp.PurchaseInvoiceId = (transaction as ETL_TransactionS04a6DN).PurchaseInvoiceId; temp.InputInventoryCommandId = (transaction as ETL_TransactionS04a6DN).InputInventoryCommandId; detailList.Add(temp); } } catch (Exception) { return(null); } return(detailList); }
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); } }
public List <DiaryJournalTemplate> TransformTransactionToTemplateArea(Session session, ETL_Transaction transaction, string AccountCode) { Util util = new Util(); 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; List <DiaryJournalTemplate> detail = new List <DiaryJournalTemplate>(); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); List <ETL_GeneralJournal> JournalListJoined = JoinJournal(session, etlTransaction.GeneralJournalList); List <ETL_GeneralJournal> FinishJournalList = ClearJournalList(session, JournalListJoined, account.AccountId); foreach (ETL_GeneralJournal journal in FinishJournalList) { DiaryJournalTemplate temp = new DiaryJournalTemplate(); temp.FinancialAccountDimCode = ""; temp.CorrespondFinancialAccountDimCode = ""; if (accountingBO.IsRelateAccount(session, account.AccountId, journal.AccountId)) { temp.FinancialAccountDimCode = session.GetObjectByKey <Account>(journal.AccountId).Code; } else { temp.CorrespondFinancialAccountDimCode = session.GetObjectByKey <Account>(journal.AccountId).Code; } temp.CurrencyDimCode = session.GetObjectByKey <Currency>(journal.CurrencyId).Code; temp.IssueDate = etlTransaction.IssuedDate; temp.OwnerOrgId = etlTransaction.OwnerOrgId; temp.TransactionId = etlTransaction.TransactionId; temp.Credit = (double)journal.Credit; temp.Debit = (double)journal.Debit; detail.Add(temp); } } catch (Exception) { return(null); } return(detail); }
private GoodsInTransitForSaleSummary_Fact CreateGoodsInTransitForSaleSummary_Fact(Session session, Guid OwnerOrgId, DateTime IssueDate, string FinancialAccountCode, bool IsBalanceForward) { GoodsInTransitForSaleSummary_Fact result = new GoodsInTransitForSaleSummary_Fact(session); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); DimBO dimBO = new DimBO(); result.BeginCreditBalance = 0; result.BeginDebitBalance = 0; result.CreditSum = 0; result.DebitSum = 0; result.EndCreditBalance = 0; result.EndDebitBalance = 0; result.FinancialAccountDimId = accountingBO.GetFinancialAccountDim(session, FinancialAccountCode); result.MonthDimId = dimBO.GetMonthDim(session, (short)IssueDate.Month); result.YearDimId = dimBO.GetYearDim(session, (short)IssueDate.Year); result.OwnerOrgDimId = dimBO.GetOwnerOrgDim(session, OwnerOrgId); result.RowStatus = Constant.ROWSTATUS_ACTIVE; if (result.FinancialAccountDimId == null || result.MonthDimId == null || result.YearDimId == null || result.OwnerOrgDimId == null) { return(null); } var date = new DateTime(IssueDate.Year, IssueDate.Month, 1); GoodsInTransitForSaleSummary_Fact previousSummary = GetGoodsInTransitForSaleSummary_Fact(session, OwnerOrgId, date.AddMonths(-1), FinancialAccountCode); if (previousSummary != null) { result.BeginDebitBalance = previousSummary.EndDebitBalance; result.BeginCreditBalance = previousSummary.EndCreditBalance; } result.Save(); result.Save(); return(result); } catch (Exception) { return(null); } }
public ETL_Transaction ExtractDiaryJournalTransaction(Session session, Guid TransactionId) { ETL_Transaction result = null; try { ETLAccountingBO accountingBO = new ETLAccountingBO(); result = accountingBO.ExtractTransaction(session, TransactionId); } catch (Exception) { return(null); } return(result); }
public bool IsJoinableJournals(Session session, ETL_GeneralJournal journal1, ETL_GeneralJournal journal2) { bool result = false; ETLAccountingBO accountingBO = new ETLAccountingBO(); try { result = (accountingBO.IsRelateAccount(session, journal1.AccountId, journal2.AccountId) || accountingBO.IsRelateAccount(session, journal1.AccountId, journal2.AccountId)) && ((journal1.Credit * journal2.Credit > 0) || (journal1.Debit * journal2.Debit > 0)) && (journal1.CurrencyId == journal2.CurrencyId) && (journal1.JournalType == journal2.JournalType); } catch (Exception) { return(false); } return(result); }
public FinancialOnTheWayBuyingGoodSummary CreateFinancialOnTheWayBuyingGoodSummary(Session session, Guid OwnerOrgId, DateTime IssueDate, string FinancialAccountCode) { FinancialOnTheWayBuyingGoodSummary result = new FinancialOnTheWayBuyingGoodSummary(session); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialAccountDim accountDim = accountingBO.GetFinancialAccountDim(session, FinancialAccountCode); DimBO dimBO = new DimBO(); MonthDim monthDim = dimBO.GetMonthDim(session, (short)IssueDate.Month); YearDim yearDim = dimBO.GetYearDim(session, (short)IssueDate.Year); OwnerOrgDim ownOrgDim = dimBO.GetOwnerOrgDim(session, OwnerOrgId); result.BeginBalance = 0; result.FinancialAccountDimId = accountDim != null ? accountDim : accountingBO.CreateFinancialAccountDim(session, FinancialAccountCode); result.MonthDimId = monthDim != null ? monthDim : dimBO.CreateMonthDim(session, (short)IssueDate.Month); result.YearDimId = yearDim != null ? yearDim : dimBO.CreateYearDim(session, (short)IssueDate.Year); result.OwnerOrgDimId = ownOrgDim != null ? ownOrgDim : dimBO.CreateOwnerOrgDim(session, OwnerOrgId); result.RowStatus = Constant.ROWSTATUS_ACTIVE; if (result.FinancialAccountDimId == null || result.MonthDimId == null || result.YearDimId == null || result.OwnerOrgDimId == null) { return(null); } var date = new DateTime(IssueDate.Year, IssueDate.Month, 1); FinancialOnTheWayBuyingGoodSummary previousSummary = GetFinancialOnTheWayBuyingGoodSummary(session, OwnerOrgId, date.AddMonths(-1), FinancialAccountCode); if (previousSummary != null) { result.BeginBalance = previousSummary.EndBalance; } result.Save(); return(result); } catch (Exception) { return(null); } }
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); }
public ETL_Bill ExtractSalesInvoice(Session session, Guid BillId, bool ExtractFinancialTransaction, bool ExtractInventoryTransaction) { ETL_Bill result = null; try { result = ExtractSalesInvoice(session, BillId); if (result == null) { return(null); } SalesInvoice invoice = session.GetObjectByKey <SalesInvoice>(BillId); if (ExtractFinancialTransaction) { ETLAccountingBO _ETLAccountingPeriodBO = new ETLAccountingBO(); result.FinancialTranSactionList = new List <ETL_Transaction>(); foreach (SaleInvoiceTransaction transaction in invoice.SaleInvoiceTransactions) { ETL_Transaction temp = _ETLAccountingPeriodBO.ExtractTransaction(session, transaction.TransactionId); result.FinancialTranSactionList.Add(temp); } } if (ExtractInventoryTransaction) { ETLInventoryBO _ETLInventoryBO = new ETLInventoryBO(); result.InventoryTranSactionList = new List <Inventory.TempData.ETL_InventoryTransaction>(); foreach (SalesInvoiceInventoryTransaction transaction in invoice.SalesInvoiceInventoryTransactions) { ETL_InventoryTransaction temp = _ETLInventoryBO.ExtractInventoryTransaction(session, transaction.InventoryTransactionId); result.InventoryTranSactionList.Add(temp); } } } catch (Exception) { return(null); } return(result); }
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); }
public FinancialSupplierLiabilitySummary_Fact CreateFinnancialSupplierLiabilitySummaryFact(Session session, Guid OwnerOrgId, Guid SupplierOrgId, DateTime IssueDate, string FinancialAccountCode, bool IsBalanceForward) { FinancialSupplierLiabilitySummary_Fact result = new FinancialSupplierLiabilitySummary_Fact(session); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); DimBO dimBO = new DimBO(); result.BeginCreditBalance = 0; result.BeginDebitBalance = 0; result.CreditSum = 0; result.DebitSum = 0; result.EndCreditBalance = 0; result.EndDebitBalance = 0; result.FinancialAccountDimId = accountingBO.GetFinancialAccountDim(session, FinancialAccountCode); result.MonthDimId = dimBO.GetMonthDim(session, (short)IssueDate.Month); result.YearDimId = dimBO.GetYearDim(session, (short)IssueDate.Year); result.OwnerOrgDimId = dimBO.GetOwnerOrgDim(session, OwnerOrgId); result.RowStatus = Constant.ROWSTATUS_ACTIVE; result.SupplierOrgDimId = dimBO.GetSupplierOrgDim(session, SupplierOrgId); if (result.FinancialAccountDimId == null || result.MonthDimId == null || result.YearDimId == null || result.OwnerOrgDimId == null || result.SupplierOrgDimId == null) { return(null); } result.Save(); return(result); } catch (Exception) { return(null); } }
// Create public DiaryJournal_Fact CreateDiaryJournalFact(Session session, Guid OwnerOrgId, DateTime IssueDate, DiaryJournalTemplate diaryJournal, string accountCode) { DiaryJournal_Fact result = new DiaryJournal_Fact(session); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); DimBO dimBO = new DimBO(); result.FinancialAccountDimId = accountingBO.GetFinancialAccountDim(session, accountCode); result.MonthDimId = dimBO.GetMonthDim(session, (short)IssueDate.Month); result.YearDimId = dimBO.GetYearDim(session, (short)IssueDate.Year); result.OwnerOrgDimId = dimBO.GetOwnerOrgDim(session, OwnerOrgId); //result.CreditSum = 0; //result.DebitSum = 0; //result.BeginCreditBalance = 0; //result.BeginDebitBalance = 0; //result.EndCreditBalance = 0; //result.EndDebitBalance = 0; if (result.FinancialAccountDimId == null || result.MonthDimId == null || result.YearDimId == null || result.OwnerOrgDimId == null) { return(null); } result.Save(); } catch (Exception) { return(null); } return(result); }
public bool IsExistInJournalList(Session session, List <ETL_GeneralJournal> journalList, string AccountCode) { ETLAccountingBO accountingBO = new ETLAccountingBO(); if (journalList == null) { return(false); } if (journalList.Count == 0) { return(false); } bool result = false; try { Util util = new Util(); Account account = util.GetXpoObjectByFieldName <Account, string>(session, "Code", AccountCode, BinaryOperatorType.Equal); if (account == null) { return(false); } foreach (ETL_GeneralJournal journal in journalList) { if (accountingBO.IsRelateAccount(session, journal.AccountId, account.AccountId)) { return(true); } } } catch (Exception) { return(false); } return(result); }
private void CreateFinancialActualPriceDetail( Session session, ETL_FinanciaActualPriceDetail Detail, string MainAccountCode) { try { Util util = new Util(); CorrespondFinancialAccountDim defaultCorrespondindAcc = CorrespondFinancialAccountDim.GetDefault(session, CorrespondFinancialAccountDimEnum.NAAN_DEFAULT); FinancialAccountDim defaultFinancialAcc = FinancialAccountDim.GetDefault(session, FinancialAccountDimEnum.NAAN_DEFAULT); ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialActualPriceSummary_Fact Fact = GetFinancialActualPriceSummaryFact(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode); FinancialActualPriceDetail newDetail = new FinancialActualPriceDetail(session); if (Fact == null) { Fact = CreateFinancialActualPriceSummaryFact(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode, Detail.IsBalanceForward); if (Fact == null) { return; } } else { var date = new DateTime(Detail.IssueDate.Year, Detail.IssueDate.Month, 1); FinancialActualPriceSummary_Fact previousSummary = GetFinancialActualPriceSummaryFact(session, Detail.OwnerOrgId, date.AddMonths(-1), MainAccountCode); if (previousSummary != null) { Fact.BeginDebitBalance = previousSummary.EndDebitBalance; Fact.BeginCreditBalance = previousSummary.EndCreditBalance; } } CorrespondFinancialAccountDim correspondFinancialAccountDim = null; FinancialAccountDim financialAccountDim = null; if (!Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = util.GetXpoObjectByFieldName <CorrespondFinancialAccountDim, string>(session, "Code", Detail.CorrespondAccountCode, BinaryOperatorType.Equal); } if (!MainAccountCode.Equals(string.Empty)) { financialAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>(session, "Code", MainAccountCode, BinaryOperatorType.Equal); } FinancialTransactionDim financialTransactionDim = util.GetXpoObjectByFieldName <FinancialTransactionDim, Guid>(session, "RefId", Detail.TransactionId, BinaryOperatorType.Equal); CurrencyDim currencyDim = util.GetXpoObjectByFieldName <CurrencyDim, string>(session, "Code", Detail.CurrencyCode, BinaryOperatorType.Equal); if (financialTransactionDim == null) { financialTransactionDim = accountingBO.CreateFinancialTransactionDim(session, Detail.TransactionId); if (financialTransactionDim == null) { return; } } if (financialAccountDim == null && !MainAccountCode.Equals(string.Empty)) { financialAccountDim = accountingBO.CreateFinancialAccountDim(session, MainAccountCode); } if (correspondFinancialAccountDim == null && !Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = accountingBO.CreateCorrespondFinancialAccountDim(session, Detail.CorrespondAccountCode); } if (currencyDim == null && !Detail.CurrencyCode.Equals(string.Empty)) { currencyDim = accountingBO.CreateCurrencyDim(session, Detail.CurrencyCode); } newDetail.CorrespondFinancialAccountDimId = correspondFinancialAccountDim; newDetail.Credit = Detail.Credit; newDetail.Debit = Detail.Debit; newDetail.CurrencyDimId = currencyDim; newDetail.FinancialAccountDimId = financialAccountDim; newDetail.FinancialTransactionDimId = financialTransactionDim; newDetail.FinancialActualPriceSummary_FactId = Fact; /*2014-02-22 ERP-1417 Duc.Vo INS START*/ if (newDetail.FinancialAccountDimId == null) { newDetail.FinancialAccountDimId = defaultFinancialAcc; } if (newDetail.CorrespondFinancialAccountDimId == null) { newDetail.CorrespondFinancialAccountDimId = defaultCorrespondindAcc; } /*2014-02-22 ERP-1417 Duc.Vo INS END*/ newDetail.RowStatus = Constant.ROWSTATUS_ACTIVE; newDetail.Save(); if (Detail.IsBalanceForward) { Fact.BeginCreditBalance = Fact.EndCreditBalance = Detail.Credit; Fact.BeginDebitBalance = Fact.EndDebitBalance = Detail.Debit; Fact.CreditSum = 0; Fact.DebitSum = 0; } else { Fact.CreditSum = Fact.FinancialActualPriceDetails.Where(i => i.RowStatus == 1 && i.Credit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(d => d.Credit); Fact.DebitSum = Fact.FinancialActualPriceDetails.Where(i => i.RowStatus == 1 && i.Debit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(d => d.Debit); Fact.EndCreditBalance = Fact.BeginCreditBalance + Fact.CreditSum - Fact.DebitSum; Fact.EndDebitBalance = Fact.BeginDebitBalance + Fact.DebitSum - Fact.CreditSum; } Fact.Save(); } catch (Exception) { return; } }
protected ETL_FinanciaActualPriceTransformData TransformTransactionFinancialActualPriceDetail ( Session session, ETL_ActualPriceTransaction transaction, string AccountCode) { Util util = new Util(); ETL_FinanciaActualPriceTransformData result = new ETL_FinanciaActualPriceTransformData(); 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_FinanciaActualPriceDetail> detail = new List <ETL_FinanciaActualPriceDetail>(); try { ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialLiabilityBO liabilityBO = new FinancialLiabilityBO(); //List<ETL_GeneralJournal> JournalListJoined = JoinJournal(session, etlTransaction.GeneralJournalList, AccountCode); List <ETL_GeneralJournal> FinishJournalList = liabilityBO.ClearJournalList(session, etlTransaction.GeneralJournalList, account.AccountId); foreach (ETL_GeneralJournal journal in FinishJournalList) { ETL_FinanciaActualPriceDetail temp = new ETL_FinanciaActualPriceDetail(); temp.AccountCode = ""; temp.CorrespondAccountCode = ""; 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.ETL_DetailList = detail; result.AccountCode = subMainAccount; } catch (Exception) { return(null); } return(result); }
public void CreateDiaryJournalDetail(Session session, DiaryJournalTemplate diaryJournal, string accountCode, char debitOrCredit) { try { Util util = new Util(); ETLAccountingBO accountingBO = new ETLAccountingBO(); DiaryJournal_Fact Fact = GetDiaryJournalFact(session, diaryJournal.OwnerOrgId, diaryJournal.IssueDate, accountCode); DiaryJournal_Detail newDetail = new DiaryJournal_Detail(session); if (Fact == null) { Fact = CreateDiaryJournalFact(session, diaryJournal.OwnerOrgId, diaryJournal.IssueDate, diaryJournal, accountCode); if (Fact == null) { return; } } CorrespondFinancialAccountDim correspondFinancialAccountDim = util.GetXpoObjectByFieldName <CorrespondFinancialAccountDim, string>(session, "Code", diaryJournal.CorrespondFinancialAccountDimCode, BinaryOperatorType.Equal); FinancialAccountDim financialAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>(session, "Code", accountCode, BinaryOperatorType.Equal); FinancialTransactionDim financialTransactionDim = util.GetXpoObjectByFieldName <FinancialTransactionDim, Guid>(session, "RefId", diaryJournal.TransactionId, BinaryOperatorType.Equal); CurrencyDim currencyDim = util.GetXpoObjectByFieldName <CurrencyDim, string>(session, "Code", diaryJournal.CurrencyDimCode, BinaryOperatorType.Equal); if (financialTransactionDim == null) { financialTransactionDim = accountingBO.CreateFinancialTransactionDim(session, diaryJournal.TransactionId); if (financialTransactionDim == null) { return; } } if (financialAccountDim == null) { financialAccountDim = accountingBO.CreateFinancialAccountDim(session, accountCode); } if (correspondFinancialAccountDim == null) { correspondFinancialAccountDim = accountingBO.CreateCorrespondFinancialAccountDim(session, diaryJournal.CorrespondFinancialAccountDimCode); } if (currencyDim == null) { currencyDim = accountingBO.CreateCurrencyDim(session, diaryJournal.CurrencyDimCode); } Fact.Save(); if (correspondFinancialAccountDim.Code == "131") { newDetail.Credit = diaryJournal.Credit; } if (correspondFinancialAccountDim != null) { if (correspondFinancialAccountDim.Code == "") { if (debitOrCredit == 'C') { newDetail.Credit = diaryJournal.Credit; } else { newDetail.Debit = diaryJournal.Debit; } newDetail.FinancialAccountDimId = financialAccountDim; } else { if (debitOrCredit == 'C') { newDetail.Debit = diaryJournal.Debit; } else { newDetail.Credit = diaryJournal.Credit; } newDetail.CorrespondFinancialAccountDimId = correspondFinancialAccountDim; } } newDetail.CurrencyDimId = currencyDim; newDetail.DiaryJournal_FactId = Fact; newDetail.FinancialTransactionDimId = financialTransactionDim; newDetail.Save(); } catch (Exception) { return; } }
public void CreateFinancialSalesOrManufacturerExpenseDetail( Session session, ETL_SalesOrManufacturerExpenseDetail Detail, string MainAccountCode, string HighestAccountCode) { try { if (Detail == null || MainAccountCode.Equals(string.Empty) || Detail.OwnerOrgId.Equals(Guid.Empty) || Detail.IssueDate == null) { return; } #region prepare Summary header data Util util = new Util(); ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialSalesOrManufactureExpenseSummary_Fact summary = GetFinancialSalesOrManufactureExpenseSummary( session, Detail.OwnerOrgId, Detail.IssueDate); FinancialSalesOrManufactureExpenseDetail newDetail = new FinancialSalesOrManufactureExpenseDetail(session); if (summary == null) { summary = CreateFinancialSalesOrManufactureExpenseSummary( session, Detail.OwnerOrgId, Detail.IssueDate, Detail.IsBalanceForward); if (summary == null) { return; } } #endregion #region prepare group data CorrespondFinancialAccountDim correspondFinancialAccountDim = null; FinancialAccountDim financialAccountDim = null; FinancialAccountDim GroupAccountDim = null; if (!HighestAccountCode.Equals(string.Empty)) { GroupAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>( session, "Code", HighestAccountCode, BinaryOperatorType.Equal); } if (!MainAccountCode.Equals(string.Empty)) { financialAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>( session, "Code", MainAccountCode, BinaryOperatorType.Equal); } if (!Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = util.GetXpoObjectByFieldName <CorrespondFinancialAccountDim, string>( session, "Code", Detail.CorrespondAccountCode, BinaryOperatorType.Equal); } if (GroupAccountDim == null && !HighestAccountCode.Equals(string.Empty)) { GroupAccountDim = accountingBO.CreateFinancialAccountDim(session, HighestAccountCode); } if (financialAccountDim == null && !MainAccountCode.Equals(string.Empty)) { financialAccountDim = accountingBO.CreateFinancialAccountDim(session, MainAccountCode); } if (correspondFinancialAccountDim == null && !Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = accountingBO.CreateCorrespondFinancialAccountDim(session, Detail.CorrespondAccountCode); } SalesOrManufactureExpenseByGroup group = GetSalesOrManufactureExpenseByGroup( session, summary.FinancialSalesOrManufactureExpenseSummary_FactId, HighestAccountCode); if (group == null) { group = CreateSalesOrManufactureExpenseByGroup( session, summary.FinancialSalesOrManufactureExpenseSummary_FactId, HighestAccountCode); if (group == null) { return; } } #endregion #region prepare Detail CurrencyDim currencyDim = util.GetXpoObjectByFieldName <CurrencyDim, string>( session, "Code", Detail.CurrencyCode, BinaryOperatorType.Equal); if (currencyDim == null && !Detail.CurrencyCode.Equals(string.Empty)) { currencyDim = accountingBO.CreateCurrencyDim(session, Detail.CurrencyCode); } FinancialTransactionDim financialTransactionDim = util.GetXpoObjectByFieldName <FinancialTransactionDim, Guid>( session, "RefId", Detail.TransactionId, BinaryOperatorType.Equal); if (financialTransactionDim == null) { financialTransactionDim = accountingBO.CreateFinancialTransactionDim(session, Detail.TransactionId); if (financialTransactionDim == null) { return; } } newDetail.Credit = Detail.Credit; newDetail.Debit = Detail.Debit; newDetail.CurrencyDimId = currencyDim; newDetail.FinancialTransactionDimId = financialTransactionDim; newDetail.FinancialAccountDimId = financialAccountDim; newDetail.CorrespondFinancialAccountDimId = correspondFinancialAccountDim; newDetail.SalesOrManufactureExpenseByGroupId = group; CorrespondFinancialAccountDim defaultCorrespondindAcc = CorrespondFinancialAccountDim.GetDefault(session, CorrespondFinancialAccountDimEnum.NAAN_DEFAULT); FinancialAccountDim defaultFinancialAcc = FinancialAccountDim.GetDefault(session, FinancialAccountDimEnum.NAAN_DEFAULT); if (newDetail.FinancialAccountDimId == null) { newDetail.FinancialAccountDimId = defaultFinancialAcc; } if (newDetail.CorrespondFinancialAccountDimId == null) { newDetail.CorrespondFinancialAccountDimId = defaultCorrespondindAcc; } newDetail.RowStatus = Constant.ROWSTATUS_ACTIVE; newDetail.Save(); #endregion if (Detail.IsBalanceForward) { group.SumExpense = Detail.Credit; } else { group.SumExpense = group.FinancialSalesOrManufactureExpenseDetails.Where(i => i.RowStatus >= 1 && i.Debit > 0). Sum(r => r.Debit); group.Save(); } group.Save(); summary.Save(); } catch (Exception) { return; } }
public List <ETL_GeneralJournal> ClearJournalList(Session session, List <ETL_GeneralJournal> journalList, Guid AccountId) { List <ETL_GeneralJournal> result = new List <ETL_GeneralJournal>(); try { char AccountSide = 'N'; char MainAccountSide = 'C'; short DebitCount = 0; short CreditCount = 0; ETLAccountingBO accountingBO = new ETLAccountingBO(); foreach (ETL_GeneralJournal journal in journalList) { if (journal.Credit > 0) { if (accountingBO.IsRelateAccount(session, AccountId, journal.AccountId)) { AccountSide = 'C'; } CreditCount++; } else { if (accountingBO.IsRelateAccount(session, AccountId, journal.AccountId)) { AccountSide = 'D'; } DebitCount++; } } if (DebitCount == 1) { MainAccountSide = 'D'; } if (MainAccountSide == AccountSide) { return(journalList); } ETL_GeneralJournal mainJournal = new ETL_GeneralJournal(); if (MainAccountSide == 'C') { mainJournal = journalList.Where(r => r.Credit > 0).FirstOrDefault(); result.Add(mainJournal); foreach (ETL_GeneralJournal journal in journalList) { if (journal.Debit > 0) { if (!accountingBO.IsRelateAccount(session, AccountId, journal.AccountId)) { mainJournal.Credit -= journal.Debit; } else { result.Add(journal); } } } } if (MainAccountSide == 'D') { mainJournal = journalList.Where(r => r.Debit > 0).FirstOrDefault(); result.Add(mainJournal); foreach (ETL_GeneralJournal journal in journalList) { if (journal.Credit > 0) { if (!accountingBO.IsRelateAccount(session, AccountId, journal.AccountId)) { mainJournal.Debit -= journal.Credit; } else { result.Add(journal); } } } } } catch (Exception) { return(null); } return(result); }
public void CreateGoodsInInventoryDetail( Session session, ETL_GoodsInInventoryDetail Detail, string MainAccountCode) { try { Util util = new Util(); CorrespondFinancialAccountDim defaultCorrespondindAcc = CorrespondFinancialAccountDim.GetDefault(session, CorrespondFinancialAccountDimEnum.NAAN_DEFAULT); FinancialAccountDim defaultFinancialAcc = FinancialAccountDim.GetDefault(session, FinancialAccountDimEnum.NAAN_DEFAULT); ETLAccountingBO accountingBO = new ETLAccountingBO(); GoodsInInventorySummary_Fact Fact = GetGoodsInInventorySummaryFact(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode); GoodsInInventoryDetail newDetail = new GoodsInInventoryDetail(session); if (Fact == null) { Fact = CreateGoodsInInventorySummaryFact(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode, Detail.IsBalanceForward); if (Fact == null) { return; } } else { var date = new DateTime(Detail.IssueDate.Year, Detail.IssueDate.Month, 1); GoodsInInventorySummary_Fact previousSummary = GetGoodsInInventorySummaryFact(session, Detail.OwnerOrgId, date.AddMonths(-1), MainAccountCode); if (previousSummary != null) { Fact.BeginCreditBalance = previousSummary.EndCreditBalance; Fact.BeginDebitBalance = previousSummary.EndDebitBalance; } } CorrespondFinancialAccountDim correspondFinancialAccountDim = null; FinancialAccountDim financialAccountDim = null; if (!Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = util.GetXpoObjectByFieldName <CorrespondFinancialAccountDim, string>(session, "Code", Detail.CorrespondAccountCode, BinaryOperatorType.Equal); } if (!MainAccountCode.Equals(string.Empty)) { financialAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>(session, "Code", MainAccountCode, BinaryOperatorType.Equal); } FinancialTransactionDim financialTransactionDim = util.GetXpoObjectByFieldName <FinancialTransactionDim, Guid>(session, "RefId", Detail.TransactionId, BinaryOperatorType.Equal); CurrencyDim currencyDim = util.GetXpoObjectByFieldName <CurrencyDim, string>(session, "Code", Detail.CurrencyCode, BinaryOperatorType.Equal); InventoryCommandDim inventoryCommandDim = null; if (!Detail.ArtifactId.Equals(Guid.Empty)) { inventoryCommandDim = util.GetXpoObjectByFieldName <InventoryCommandDim, Guid>(session, "RefId", Detail.ArtifactId, BinaryOperatorType.Equal); if (inventoryCommandDim == null) { DimBO dimBO = new DimBO(); inventoryCommandDim = dimBO.GetInventoryCommandDim(session, Detail.ArtifactId); } } else { inventoryCommandDim = InventoryCommandDim.GetDefault(session, InventoryCommandDimEnum.UNKNOWN); } if (financialTransactionDim == null) { financialTransactionDim = accountingBO.CreateFinancialTransactionDim(session, Detail.TransactionId); if (financialTransactionDim == null) { return; } } if (financialAccountDim == null && !MainAccountCode.Equals(string.Empty)) { financialAccountDim = accountingBO.CreateFinancialAccountDim(session, MainAccountCode); } if (correspondFinancialAccountDim == null && !Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = accountingBO.CreateCorrespondFinancialAccountDim(session, Detail.CorrespondAccountCode); } if (currencyDim == null && !Detail.CurrencyCode.Equals(string.Empty)) { currencyDim = accountingBO.CreateCurrencyDim(session, Detail.CurrencyCode); } if (Detail.IsBalanceForward) { Fact.BeginCreditBalance = Fact.EndCreditBalance = Detail.Credit; Fact.BeginDebitBalance = Fact.EndDebitBalance = Detail.Debit; Fact.CreditSum = 0; Fact.DebitSum = 0; } else { Fact.CreditSum = Fact.GoodsInInventoryDetails.Where(i => i.RowStatus == 1 && i.Credit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(d => d.Credit); Fact.DebitSum = Fact.GoodsInInventoryDetails.Where(i => i.RowStatus == 1 && i.Debit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(d => d.Debit); Fact.EndCreditBalance = Fact.BeginCreditBalance + Fact.CreditSum - Fact.DebitSum; Fact.EndDebitBalance = Fact.BeginDebitBalance + Fact.DebitSum - Fact.CreditSum; } Fact.Save(); newDetail.CorrespondFinancialAccountDimId = correspondFinancialAccountDim; newDetail.Credit = Detail.Credit; newDetail.Debit = Detail.Debit; newDetail.Quantity = Detail.Quantity; newDetail.CurrencyDimId = currencyDim; newDetail.FinancialAccountDimId = financialAccountDim; newDetail.GoodsInInventorySummary_FacftId = Fact; newDetail.FinancialTransactionDimId = financialTransactionDim; newDetail.InventoryCommandDimId = inventoryCommandDim; if (newDetail.FinancialAccountDimId == null) { newDetail.FinancialAccountDimId = defaultFinancialAcc; } if (newDetail.CorrespondFinancialAccountDimId == null) { newDetail.CorrespondFinancialAccountDimId = defaultCorrespondindAcc; } newDetail.RowStatus = Constant.ROWSTATUS_ACTIVE; newDetail.Save(); } catch (Exception) { return; } }
public void CreateFinancialOnTheWayBuyingGoodDetail(Session session, ETL_FinancialOnTheWayBuyingGoodDetail Detail, string MainAccountCode) { try { if (Detail == null || MainAccountCode.Equals(string.Empty) || Detail.PurchaseInvoiceId.Equals(Guid.Empty) || Detail.InputInventoryCommandId.Equals(Guid.Empty) || Detail.OwnerOrgId.Equals(Guid.Empty) || Detail.IssueDate == null) { return; } //bool flgNewSummary = false; Util util = new Util(); CorrespondFinancialAccountDim defaultCorrespondindAcc = CorrespondFinancialAccountDim.GetDefault(session, CorrespondFinancialAccountDimEnum.NAAN_DEFAULT); FinancialAccountDim defaultFinancialAcc = FinancialAccountDim.GetDefault(session, FinancialAccountDimEnum.NAAN_DEFAULT); ETLAccountingBO accountingBO = new ETLAccountingBO(); FinancialOnTheWayBuyingGoodSummary summary = GetFinancialOnTheWayBuyingGoodSummary(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode); FinancialOnTheWayBuyingGoodDetail newDetail = new FinancialOnTheWayBuyingGoodDetail(session); if (summary == null) { summary = CreateFinancialOnTheWayBuyingGoodSummary(session, Detail.OwnerOrgId, Detail.IssueDate, MainAccountCode); if (summary == null) { return; } } else { var date = new DateTime(Detail.IssueDate.Year, Detail.IssueDate.Month, 1); FinancialOnTheWayBuyingGoodSummary previousSummary = GetFinancialOnTheWayBuyingGoodSummary(session, Detail.OwnerOrgId, date.AddMonths(-1), MainAccountCode); if (previousSummary != null) { summary.BeginBalance = previousSummary.EndBalance; } } /*2014/02/22 Duc.Vo MOD START*/ CorrespondFinancialAccountDim correspondFinancialAccountDim = null; FinancialAccountDim financialAccountDim = null; InventoryCommand InputCommand = null; NAS.DAL.Invoice.PurchaseInvoice PurchaseInvoice = null; if (!Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = util.GetXpoObjectByFieldName <CorrespondFinancialAccountDim, string>(session, "Code", Detail.CorrespondAccountCode, BinaryOperatorType.Equal); } if (!MainAccountCode.Equals(string.Empty)) { financialAccountDim = util.GetXpoObjectByFieldName <FinancialAccountDim, string>(session, "Code", MainAccountCode, BinaryOperatorType.Equal); } if (!Detail.InputInventoryCommandId.Equals(Guid.Empty)) { InputCommand = util.GetXpoObjectByFieldName <InventoryCommand, Guid>(session, "InventoryCommandId", Detail.InputInventoryCommandId, BinaryOperatorType.Equal); if (InputCommand == null) { return; } } if (!Detail.PurchaseInvoiceId.Equals(Guid.Empty)) { PurchaseInvoice = util.GetXpoObjectByFieldName <NAS.DAL.Invoice.PurchaseInvoice, Guid>(session, "BillId", Detail.PurchaseInvoiceId, BinaryOperatorType.Equal); if (PurchaseInvoice == null) { return; } } OnTheWayBuyingGoodArtifact artifact = GetOnTheWayBuyingGoodArtifact( session, summary.FinancialOnTheWayBuyingGoodSummaryId, PurchaseInvoice.BillId, InputCommand.InventoryCommandId); if (artifact == null) { artifact = CreateOnTheWayBuyingGoodArtifact( session, summary.FinancialOnTheWayBuyingGoodSummaryId, PurchaseInvoice.BillId, InputCommand.InventoryCommandId); if (artifact == null) { return; } } /*2014/02/22 Duc.Vo INS START*/ if (financialAccountDim == null && !MainAccountCode.Equals(string.Empty)) { financialAccountDim = accountingBO.CreateFinancialAccountDim(session, MainAccountCode); } if (correspondFinancialAccountDim == null && !Detail.CorrespondAccountCode.Equals(string.Empty)) { correspondFinancialAccountDim = accountingBO.CreateCorrespondFinancialAccountDim(session, Detail.CorrespondAccountCode); } CurrencyDim currencyDim = util.GetXpoObjectByFieldName <CurrencyDim, string>( session, "Code", Detail.CurrencyCode, BinaryOperatorType.Equal); if (currencyDim == null && !Detail.CurrencyCode.Equals(string.Empty)) { currencyDim = accountingBO.CreateCurrencyDim(session, Detail.CurrencyCode); } FinancialTransactionDim financialTransactionDim = util.GetXpoObjectByFieldName <FinancialTransactionDim, Guid>( session, "RefId", Detail.TransactionId, BinaryOperatorType.Equal); if (financialTransactionDim == null) { financialTransactionDim = accountingBO.CreateFinancialTransactionDim(session, Detail.TransactionId); if (financialTransactionDim == null) { return; } } newDetail.CorrespondFinancialAccountDimId = correspondFinancialAccountDim; newDetail.Credit = Detail.Credit; newDetail.Debit = Detail.Debit; newDetail.ActuaPrice = Detail.ActualPrice; newDetail.BookingPrice = Detail.BookedPrice; newDetail.FinancialAccountDimId = financialAccountDim; newDetail.OnTheWayBuyingGoodArtifactId = artifact; newDetail.FinancialTransactionDimId = financialTransactionDim; newDetail.CurrencyDimId = currencyDim; /*2014-02-22 ERP-1417 Duc.Vo INS START*/ if (newDetail.FinancialAccountDimId == null) { newDetail.FinancialAccountDimId = defaultFinancialAcc; } if (newDetail.CorrespondFinancialAccountDimId == null) { newDetail.CorrespondFinancialAccountDimId = defaultCorrespondindAcc; } /*2014-02-22 ERP-1417 Duc.Vo INS END*/ newDetail.RowStatus = Constant.ROWSTATUS_ACTIVE; newDetail.Save(); if (Detail.IsBalanceForward) { summary.BeginBalance = summary.EndBalance = (decimal)Detail.Debit; summary.CreditSum = summary.DebitSum = 0; } else { CorrespondFinancialAccountDim defaultAccDim = CorrespondFinancialAccountDim.GetDefault(session, CorrespondFinancialAccountDimEnum.NAAN_DEFAULT); summary.CreditSum = (decimal)summary.OnTheWayBuyingGoodArtifacts.SelectMany(t => t.FinancialOnTheWayBuyingGoodDetails). Where(i => i.RowStatus == 1 && i.Credit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(i => i.Credit); summary.DebitSum = (decimal)summary.OnTheWayBuyingGoodArtifacts.SelectMany(t => t.FinancialOnTheWayBuyingGoodDetails). Where(i => i.RowStatus == 1 && i.Debit > 0 && i.CorrespondFinancialAccountDimId == defaultCorrespondindAcc).Sum(i => i.Debit); summary.BeginBalance = summary.BeginBalance + summary.DebitSum - summary.CreditSum; } summary.Save(); } catch (Exception) { return; } }