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);
            }
        }
Esempio n. 2
0
        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 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);
            }
        }
Esempio n. 4
0
        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);
            }
        }
Esempio n. 5
0
        // 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);
        }
Esempio n. 6
0
        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;
            }
        }