示例#1
0
 /**
  *  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();
 }
示例#2
0
 /**
  *  Get CashBook
  *	@return cash book
  */
 public MCashBook GetCashBook()
 {
     if (_cashBook == null)
     {
         _cashBook = MCashBook.Get(GetCtx(), GetParent().GetC_CashBook_ID());
     }
     return(_cashBook);
 }
示例#3
0
        /// <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);
        }
示例#4
0
        /// <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);
        }
示例#5
0
        /// <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);
        }
示例#6
0
        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);
        }