/// <summary> /// Load Invoice Line. /// 4 amounts /// AMTTYPE_Payment /// AMTTYPE_Statement2 /// AMTTYPE_Charge /// AMTTYPE_Interest /// </summary> /// <param name="bs">bank statement</param> /// <returns>DocLine Array</returns> private DocLine[] LoadLines(MBankStatement bs) { List <DocLine> list = new List <DocLine>(); MBankStatementLine[] lines = bs.GetLines(false); for (int i = 0; i < lines.Length; i++) { MBankStatementLine line = lines[i]; DocLine_Bank docLine = new DocLine_Bank(line, this); // Set Date Acct if (i == 0) { SetDateAcct(line.GetDateAcct()); } MPeriod period = MPeriod.Get(GetCtx(), line.GetDateAcct()); if (period != null && period.IsOpen(MDocBaseType.DOCBASETYPE_BANKSTATEMENT)) { docLine.SetC_Period_ID(period.GetC_Period_ID()); } // list.Add(docLine); } // Return Array DocLine[] dls = new DocLine[list.Count]; dls = list.ToArray(); return(dls); }
/// <summary> /// Create Payment for BankStatement /// </summary> /// <param name="bsl">bank statement Line</param> /// <returns>Message</returns> private String CreatePayment(MBankStatementLine bsl) { if (bsl == null || bsl.GetC_Payment_ID() != 0) { return("--"); } log.Fine(bsl.ToString()); if (bsl.GetC_Invoice_ID() == 0 && bsl.GetC_BPartner_ID() == 0) { throw new Exception("@NotFound@ @C_Invoice_ID@ / @C_BPartner_ID@"); } // MBankStatement bs = new MBankStatement(GetCtx(), bsl.GetC_BankStatement_ID(), Get_Trx()); // //Check the Column Exists or not then Pass the Colums as parameters for CreatePayment method int conversionType = bsl.Get_ColumnIndex("C_ConversionType_ID") > 0 ? bsl.Get_ValueAsInt("C_ConversionType_ID") : 0; int _order_Id = bsl.Get_ColumnIndex("C_Order_ID") > 0 ? bsl.Get_ValueAsInt("C_Order_ID") : 0; MPayment payment = CreatePayment(bsl.GetC_Invoice_ID(), bsl.GetC_BPartner_ID(), bsl.GetC_Currency_ID(), bsl.GetStmtAmt(), bsl.GetTrxAmt(), bs.GetC_BankAccount_ID(), bsl.GetStatementLineDate(), bsl.GetDateAcct(), bsl.GetDescription(), bsl.GetAD_Org_ID(), conversionType, _order_Id); if (payment == null && !string.IsNullOrEmpty(_message)) { return(_message); } //Update Bank StatementLine //Created new Object for Payment to get Updated Payment Record MPayment mPayment = new MPayment(GetCtx(), payment.GetC_Payment_ID(), payment.Get_Trx()); _message = bsl.SetPayments(mPayment); if (string.IsNullOrEmpty(_message)) { if (!bsl.Save(Get_Trx())) { Get_Trx().Rollback(); ValueNamePair pp = VLogger.RetrieveError(); //to get Exact Error Message first get Value from GetName() else GetValue() string error = pp != null?pp.GetName() : ""; if (string.IsNullOrEmpty(error)) { error = pp != null?pp.GetValue() : ""; if (string.IsNullOrEmpty(error)) { error = pp != null?pp.ToString() : ""; } } return(!string.IsNullOrEmpty(error) ? error : "DatanotSaved"); } else { String retString = "@C_Payment_ID@ = " + mPayment.GetDocumentNo(); if (Env.Signum(payment.GetOverUnderAmt()) != 0) { retString += " - @OverUnderAmt@=" + mPayment.GetOverUnderAmt(); } Get_Trx().Commit(); return(retString); } } else { Get_Trx().Rollback(); return(_message); } }
/// <summary> /// Create Payment for BankStatement /// </summary> /// <param name="bsl">bank statement Line</param> /// <returns>Message</returns> private String CreatePayment(MBankStatementLine bsl) { if (bsl == null || bsl.GetC_Payment_ID() != 0) { return("--"); } log.Fine(bsl.ToString()); if (bsl.GetC_Invoice_ID() == 0 && bsl.GetC_BPartner_ID() == 0) { throw new Exception("@NotFound@ @C_Invoice_ID@ / @C_BPartner_ID@"); } // MBankStatement bs = new MBankStatement(GetCtx(), bsl.GetC_BankStatement_ID(), Get_Trx()); // MPayment payment = CreatePayment(bsl.GetC_Invoice_ID(), bsl.GetC_BPartner_ID(), bsl.GetC_Currency_ID(), bsl.GetStmtAmt(), bsl.GetTrxAmt(), bs.GetC_BankAccount_ID(), bsl.GetStatementLineDate(), bsl.GetDateAcct(), bsl.GetDescription(), bsl.GetAD_Org_ID()); if (payment == null) { throw new SystemException("Could not create Payment"); } // update statement bsl.SetPayment(payment); bsl.Save(); // String retString = "@C_Payment_ID@ = " + payment.GetDocumentNo(); if (Env.Signum(payment.GetOverUnderAmt()) != 0) { retString += " - @OverUnderAmt@=" + payment.GetOverUnderAmt(); } return(retString); }