/** * Parent Cosntructor * @param cash parent */ public MCashLine(MCash cash) : this(cash.GetCtx(), 0, cash.Get_TrxName()) { SetClientOrg(cash); SetC_Cash_ID(cash.GetC_Cash_ID()); _parent = cash; _cashBook = _parent.GetCashBook(); }
/** * Get CashBook * @return cash book */ public MCashBook GetCashBook() { if (_cashBook == null) { _cashBook = MCashBook.Get(GetCtx(), GetParent().GetC_CashBook_ID()); } return(_cashBook); }
/// <summary> /// Get CashBook Detail /// </summary> /// <param name="ctx"></param> /// <param name="fields"></param> /// <returns></returns> public Dictionary <string, string> GetCashBook(Ctx ctx, string fields) { string[] paramValue = fields.Split(','); //Assign parameter value int C_CashBook_ID = Util.GetValueOfInt(paramValue[0].ToString()); //End Assign parameter value MCashBook cBook = new MCashBook(ctx, C_CashBook_ID, null); Dictionary <string, string> result = new Dictionary <string, string>(); result["C_Currency_ID"] = cBook.GetC_Currency_ID().ToString(); return(result); }
/// <summary> /// Load Cash Line /// </summary> /// <param name="cash">journal</param> /// <param name="cb">cash book</param> /// <returns>DocLine Array</returns> private DocLine[] LoadLines(MCash cash, MCashBook cb) { List <DocLine> list = new List <DocLine>(); MCashLine[] lines = cash.GetLines(false); for (int i = 0; i < lines.Length; i++) { MCashLine line = lines[i]; DocLine_Cash docLine = new DocLine_Cash(line, this); // list.Add(docLine); } // Return Array DocLine[] dls = new DocLine[list.Count]; dls = list.ToArray(); return(dls); }
/// <summary> /// Load Specific Document Details /// </summary> /// <returns>error message or null</returns> public override String LoadDocumentDetails() { MCash cash = (MCash)GetPO(); SetDateDoc(cash.GetStatementDate()); BeginningBalance = cash.GetBeginningBalance(); HeaderCasbookID = cash.GetC_CashBook_ID(); // Amounts SetAmount(Doc.AMTTYPE_Gross, cash.GetStatementDifference()); // Set CashBook Org & Currency MCashBook cb = MCashBook.Get(GetCtx(), cash.GetC_CashBook_ID()); SetC_CashBook_ID(cb.GetC_CashBook_ID()); SetC_Currency_ID(cb.GetC_Currency_ID()); // Contained Objects _lines = LoadLines(cash, cb); log.Fine("Lines=" + _lines.Length); return(null); }
private bool UpdateCbAndLine() { // Update Cash Journal if (!UpdateHeader()) { log.Warning("Cannot update cash journal."); return(false); } // Update Cashbook and CashbookLine MCash parent = GetParent(); MCashBook cashbook = new MCashBook(GetCtx(), parent.GetC_CashBook_ID(), Get_TrxName()); if (cashbook.GetCompletedBalance() == 0) { cashbook.SetCompletedBalance(parent.GetBeginningBalance()); } cashbook.SetRunningBalance(Decimal.Add(Decimal.Subtract(cashbook.GetRunningBalance(), old_ebAmt), new_ebAmt)); //if (cashbook.GetRunningBalance() == 0) //{ // cashbook.SetRunningBalance // (Decimal.Add(Decimal.Add(Decimal.Subtract(cashbook.GetRunningBalance(), old_ebAmt), new_ebAmt),cashbook.GetCompletedBalance())); //} //else //{ // cashbook.SetRunningBalance(Decimal.Add(Decimal.Subtract(cashbook.GetRunningBalance(), old_ebAmt), new_ebAmt)); //} if (!cashbook.Save()) { log.Warning("Cannot update running balance."); return(false); } DataTable dtCashbookLine; int C_CASHBOOKLINE_ID = 0; string sql = "SELECT C_CASHBOOKLINE_ID FROM C_CASHBOOKLINE WHERE C_CASHBOOK_ID=" + cashbook.GetC_CashBook_ID() + " AND DATEACCT=" + DB.TO_DATE(parent.GetDateAcct()) + " AND AD_ORG_ID=" + GetAD_Org_ID(); dtCashbookLine = DB.ExecuteDataset(sql, null, null).Tables[0]; if (dtCashbookLine.Rows.Count > 0) { C_CASHBOOKLINE_ID = Util.GetValueOfInt(dtCashbookLine.Rows[0] .ItemArray[0]); } MCashbookLine cashbookLine = new MCashbookLine(GetCtx(), C_CASHBOOKLINE_ID, Get_TrxName()); if (C_CASHBOOKLINE_ID == 0) { cashbookLine.SetC_CashBook_ID(cashbook.GetC_CashBook_ID()); cashbookLine.SetAD_Org_ID(GetAD_Org_ID()); cashbookLine.SetAD_Client_ID(GetAD_Client_ID()); cashbookLine.SetEndingBalance (Decimal.Add(Decimal.Add(Decimal.Subtract(cashbookLine.GetEndingBalance(), old_ebAmt), new_ebAmt), cashbook.GetCompletedBalance())); } else { cashbookLine.SetEndingBalance(Decimal.Add(Decimal.Subtract(cashbookLine.GetEndingBalance(), old_ebAmt), new_ebAmt)); } cashbookLine.SetDateAcct(parent.GetDateAcct()); cashbookLine.SetStatementDifference(Decimal.Add(Decimal.Subtract(cashbookLine.GetStatementDifference(), old_sdAmt), new_sdAmt)); if (!cashbookLine.Save()) { log.Warning("Cannot create/update cashbook line."); return(false); } return(true); }