public OnTheWayBuyingGoodArtifact get_OnTheWayBuyingGoodArtifact(Session session, Guid OnTheWayBuyingGoodArtifactId, short RowStatus) { try { OnTheWayBuyingGoodArtifact OTWBGA = session.FindObject <OnTheWayBuyingGoodArtifact>( CriteriaOperator.And( new BinaryOperator("OnTheWayBuyingGoodArtifactId", OnTheWayBuyingGoodArtifactId, BinaryOperatorType.Equal), new BinaryOperator("RowStatus", RowStatus, BinaryOperatorType.Equal) )); if (OTWBGA == null) { return(null); } return(OTWBGA); } catch (Exception) { throw; } }
public OnTheWayBuyingGoodArtifact GetOnTheWayBuyingGoodArtifact( Session session, Guid FinancialOnTheWayBuyingGoodSummaryId, Guid PurchaseInvoiceId, Guid InputCommandId) { OnTheWayBuyingGoodArtifact result = null; try { Util util = new Util(); FinancialOnTheWayBuyingGoodSummary summary = session.GetObjectByKey <FinancialOnTheWayBuyingGoodSummary>(FinancialOnTheWayBuyingGoodSummaryId); NAS.DAL.Invoice.PurchaseInvoice invoice = util.GetXpoObjectByFieldName <NAS.DAL.Invoice.PurchaseInvoice, Guid>(session, "BillId", PurchaseInvoiceId, BinaryOperatorType.Equal); InventoryCommand command = util.GetXpoObjectByFieldName <InventoryCommand, Guid>(session, "InventoryCommandId", InputCommandId, BinaryOperatorType.Equal); if (summary == null || invoice == null || command == null) { return(null); } else { CriteriaOperator criteria_RowStatus = new BinaryOperator("RowStatus", Constant.ROWSTATUS_ACTIVE, BinaryOperatorType.GreaterOrEqual); CriteriaOperator criteria_summary = new BinaryOperator("FinancialOnTheWayBuyingGoodSummaryId", summary, BinaryOperatorType.Equal); CriteriaOperator criteria_invoice = new BinaryOperator("InvoiceCode", invoice.Code, BinaryOperatorType.Equal); CriteriaOperator criteria_command = new BinaryOperator("LegalInvoiceCode", command.Code, BinaryOperatorType.Equal); CriteriaOperator criteria = CriteriaOperator.And(criteria_RowStatus, criteria_summary, criteria_invoice, criteria_command); result = session.FindObject <OnTheWayBuyingGoodArtifact>(criteria); return(result); } } catch (Exception) { return(null); } }
public OnTheWayBuyingGoodArtifact CreateOnTheWayBuyingGoodArtifact(Session session, Guid FinancialOnTheWayBuyingGoodSummaryId, Guid PurchaseInvoiceId, Guid InputCommandId) { OnTheWayBuyingGoodArtifact result = new OnTheWayBuyingGoodArtifact(session); try { Util util = new Util(); FinancialOnTheWayBuyingGoodSummary summary = session.GetObjectByKey <FinancialOnTheWayBuyingGoodSummary>(FinancialOnTheWayBuyingGoodSummaryId); NAS.DAL.Invoice.PurchaseInvoice invoice = util.GetXpoObjectByFieldName <NAS.DAL.Invoice.PurchaseInvoice, Guid>(session, "BillId", PurchaseInvoiceId, BinaryOperatorType.Equal); InventoryCommand command = util.GetXpoObjectByFieldName <InventoryCommand, Guid>(session, "InventoryCommandId", InputCommandId, BinaryOperatorType.Equal); if (summary == null || invoice == null || command == null) { return(null); } result.RowStatus = Constant.ROWSTATUS_ACTIVE; result.FinancialOnTheWayBuyingGoodSummaryId = summary; result.InvoiceCode = invoice.Code; result.InvoiceIssuedDate = invoice.IssuedDate; result.LegalInvoiceCode = command.Code; result.LegalInvoiceIssuedDate = command.IssueDate; result.Save(); return(result); } catch (Exception) { return(null); } }
public DataTable DT_getValue(int FinancialAccountDimId, int OwnerOrgDimId, int MonthDimId, int YearDimId) { try { int stt = 2; DataTable dt = new DataTable(); dt.Columns.Add("STT"); dt.Columns.Add("Description"); dt.Columns.Add("BeginBalance"); dt.Columns.Add("LegalInvoiceCode"); dt.Columns.Add("LegalInvoiceIssuedDate"); dt.Columns.Add("InvoiceCode"); dt.Columns.Add("InvoiceIssuedDate"); #region cac cot tai khoan no 151 foreach (DataColumn dt_all in DT_get_xp_AllId(FinancialAccountDimId, OwnerOrgDimId, MonthDimId, YearDimId, true, true, true, false).Columns) { FinancialOnTheWayBuyingGoodDetail FTBGD = BO.get_FinancialOnTheWayBuyingGoodDetail(session, Guid.Parse(dt_all.ColumnName.ToString()), Utility.Constant.ROWSTATUS_ACTIVE); if (FTBGD != null) { CorrespondFinancialAccountDim CFAD = BO.get_CorrespondFinancialAccountDim(session, FTBGD.CorrespondFinancialAccountDimId.CorrespondFinancialAccountDimId, Utility.Constant.ROWSTATUS_ACTIVE); if (CFAD != null && FTBGD.Debit > 0) { try { if (CFAD.Code.Equals("152")) { dt.Columns.Add("152ActualPrice"); dt.Columns.Add("152BookingPrice"); } else if (CFAD.Code.Equals("153")) { dt.Columns.Add("153ActualPrice"); dt.Columns.Add("153BookingPrice"); } else { if (!CFAD.Code.Equals("NAAN_DEFAULT")) { dt.Columns.Add(CFAD.Code); } } } catch { continue; } } } } dt.Columns.Add("congco"); dt.Columns.Add("EndBalance"); #endregion #region load money Debit vao tung tai khoan - tug Row DataRow dr = dt.NewRow(); #region gan 1 lan BeginBalance foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName.Equals("STT")) { dr[dc.ColumnName] = stt++; } foreach (DataColumn dt_all in DT_get_xp_AllId(FinancialAccountDimId, OwnerOrgDimId, MonthDimId, YearDimId, true, false, false, false).Columns) { FinancialOnTheWayBuyingGoodSummary fotwbgosu = BO.get_FinancialOntheWayBuyingGoodSummary(session, Guid.Parse(dt_all.ToString()), Utility.Constant.ROWSTATUS_ACTIVE); if (dc.ColumnName.Equals("BeginBalance")) { dr[dc.ColumnName] = fotwbgosu.BeginBalance; } } } dt.Rows.Add(dr); #endregion #region gan cac tai khoan no cua 151 foreach (DataColumn dt_all in DT_get_xp_AllId(FinancialAccountDimId, OwnerOrgDimId, MonthDimId, YearDimId, true, true, false, false).Columns) { OnTheWayBuyingGoodArtifact OTWGA = BO.get_OnTheWayBuyingGoodArtifact(session, Guid.Parse(dt_all.ColumnName.ToString()), Utility.Constant.ROWSTATUS_ACTIVE); if (OTWGA != null) { try { dr = dt.NewRow(); foreach (DataColumn dc in dt.Columns) { #region lay thong tin chi tiet if (dc.ColumnName.Equals("STT")) { dr[dc.ColumnName] = stt++; } if (dc.ColumnName.Equals("Description")) { dr[dc.ColumnName] = OTWGA.Description; } if (dc.ColumnName.Equals("LegalInvoiceCode")) { dr[dc.ColumnName] = OTWGA.LegalInvoiceCode; } if (dc.ColumnName.Equals("LegalInvoiceIssuedDate")) { dr[dc.ColumnName] = String.Format("{0:d}", OTWGA.LegalInvoiceIssuedDate); } if (dc.ColumnName.Equals("InvoiceCode")) { dr[dc.ColumnName] = OTWGA.InvoiceCode; } if (dc.ColumnName.Equals("InvoiceIssuedDate")) { dr[dc.ColumnName] = String.Format("{0:d}", OTWGA.InvoiceIssuedDate); } XPCollection <FinancialOnTheWayBuyingGoodDetail> fotwbgd = BO.get_xp_FinancialOnTheWayBuyingGoodDetail(session, FinancialAccountDimId, OTWGA.OnTheWayBuyingGoodArtifactId, Utility.Constant.ROWSTATUS_ACTIVE); if (fotwbgd != null) { foreach (FinancialOnTheWayBuyingGoodDetail ftd in fotwbgd) { if (dc.ColumnName.Equals("152ActualPrice")) { if (ftd.CorrespondFinancialAccountDimId.Code.Equals("152")) { if (ftd.Debit > 0) { dr[dc.ColumnName] = SumAcc(session, ftd.CorrespondFinancialAccountDimId.Code, OTWGA.OnTheWayBuyingGoodArtifactId, false); } } } if (dc.ColumnName.Equals("152BookingPrice")) { if (ftd.CorrespondFinancialAccountDimId.Code.Equals("152")) { dr[dc.ColumnName] = 0; } } if (dc.ColumnName.Equals("153ActualPrice")) { if (ftd.CorrespondFinancialAccountDimId.Code.Equals("153")) { if (ftd.Debit > 0) { dr[dc.ColumnName] = SumAcc(session, ftd.CorrespondFinancialAccountDimId.Code, OTWGA.OnTheWayBuyingGoodArtifactId, false); } } } if (dc.ColumnName.Equals("153BookingPrice")) { if (ftd.CorrespondFinancialAccountDimId.Code.Equals("153")) { dr[dc.ColumnName] = 0; } } if (!dc.ColumnName.Equals("NAAN_DEFAULT")) { if (ftd.CorrespondFinancialAccountDimId.Code.Equals(dc.ColumnName)) { if (ftd.Debit > 0) { dr[dc.ColumnName] = SumAcc(session, dc.ColumnName, OTWGA.OnTheWayBuyingGoodArtifactId, false); } } } } if (dc.ColumnName.Equals("congco")) { dr[dc.ColumnName] = SumAcc(session, "NAAN_DEFAULT", OTWGA.OnTheWayBuyingGoodArtifactId, true); } } #endregion } dt.Rows.Add(dr); } catch { continue; } } } #endregion #region gan 1 lan EndBanlance dr = dt.NewRow(); foreach (DataColumn dc in dt.Columns) { if (dc.ColumnName.Equals("STT")) { dr[dc.ColumnName] = stt++; } foreach (DataColumn dt_all in DT_get_xp_AllId(FinancialAccountDimId, OwnerOrgDimId, MonthDimId, YearDimId, true, false, false, false).Columns) { FinancialOnTheWayBuyingGoodSummary fotwbgosu = BO.get_FinancialOntheWayBuyingGoodSummary(session, Guid.Parse(dt_all.ToString()), Utility.Constant.ROWSTATUS_ACTIVE); if (dc.ColumnName.Equals("EndBalance")) { dr[dc.ColumnName] = fotwbgosu.EndBalance; } } } dt.Rows.Add(dr); #endregion #endregion return(dt); } catch (Exception) { throw; } }
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; } }