///<summary>Creates a deposit within QuickBooks. A QB connection must be open before calling this method. Requires connection with version 9.0. ClassRef is only used if clinics is turned on.</summary> private static void BuildDepositAddRq(DateTime txnDate, string depositAcct, string incomeAcct, double amount, string memo, string classRef) { if (!ConnectionOpen) { return; } //Build the deposit add request and append it to the request message. IDepositAdd DepositAddRq = RequestMsgSet.AppendDepositAddRq(); //Set field value for TxnDate DepositAddRq.TxnDate.SetValue(txnDate); //Set field value for FullName. DepositAddRq.DepositToAccountRef.FullName.SetValue(depositAcct); //Set field value for Memo DepositAddRq.Memo.SetValue(memo); //Set deposit info attributes. IDepositLineAdd DepositLineAdd1 = DepositAddRq.DepositLineAddList.Append(); //Set field value for income account DepositLineAdd1.ORDepositLineAdd.DepositInfo.AccountRef.FullName.SetValue(incomeAcct); //Set field value for Amount DepositLineAdd1.ORDepositLineAdd.DepositInfo.Amount.SetAsString(amount.ToString("F")); //Set field value for ClassRef which is a way they can group deposits together if (!string.IsNullOrEmpty(classRef) && PrefC.GetBool(PrefName.QuickBooksClassRefsEnabled)) { DepositLineAdd1.ORDepositLineAdd.DepositInfo.ClassRef.FullName.SetValue(classRef); } }
///<summary>Creates a deposit within QuickBooks. A QB connection must be open before calling this method. Requires connection with version 9.0</summary> private static void BuildDepositAddRq(string depositAcct, string incomeAcct, double amount) { if (!ConnectionOpen) { return; } //Build the deposit add request and append it to the request message. IDepositAdd DepositAddRq = RequestMsgSet.AppendDepositAddRq(); //Set field value for FullName. DepositAddRq.DepositToAccountRef.FullName.SetValue(depositAcct); //Set deposit info attributes. IDepositLineAdd DepositLineAdd1 = DepositAddRq.DepositLineAddList.Append(); //Set field value for income account DepositLineAdd1.ORDepositLineAdd.DepositInfo.AccountRef.FullName.SetValue(incomeAcct); //Set field value for Amount DepositLineAdd1.ORDepositLineAdd.DepositInfo.Amount.SetAsString(amount.ToString("F")); }
private void performDeposit(Quickbooks qb, Deposit deposit) { IMsgSetRequest qbRequests = qb.newRequest(); qbRequests.Attributes.OnError = ENRqOnError.roeStop; IDepositAdd depositAddRequest = qbRequests.AppendDepositAddRq(); depositAddRequest.Memo.SetValue(deposit.DepositConfig.Memo); depositAddRequest.TxnDate.SetValue(_dailyDeposit.DepositDate); depositAddRequest.DepositToAccountRef.FullName.SetValue(deposit.DepositConfig.BankAccount.Name); foreach (DepositLine line in deposit.Lines) { IDepositLineAdd depositLineAdd = depositAddRequest.DepositLineAddList.Append(); depositLineAdd.ORDepositLineAdd.DepositInfo.EntityRef.FullName.SetValue(line.Customer); depositLineAdd.ORDepositLineAdd.DepositInfo.AccountRef.FullName.SetValue(line.IncomeAccount); depositLineAdd.ORDepositLineAdd.DepositInfo.Amount.SetValue(line.Amount); if (line.CheckNumber != null) { depositLineAdd.ORDepositLineAdd.DepositInfo.CheckNumber.SetValue(line.CheckNumber.Substring(0, Math.Min(line.CheckNumber.Length, 11))); } depositLineAdd.ORDepositLineAdd.DepositInfo.PaymentMethodRef.FullName.SetValue(line.PaymentMethod); if (line.Memo != null) { depositLineAdd.ORDepositLineAdd.DepositInfo.Memo.SetValue(line.Memo); } } IMsgSetResponse response = qb.performRequest(qbRequests); List <IResponse> errors = new List <IResponse>(); for (int i = 0; i < response.ResponseList.Count; i++) { if (response.ResponseList.GetAt(i).StatusCode != 0) { throw new Exception(String.Format("Failed to perform deposit {0}", response.ResponseList.GetAt(i).StatusMessage)); } } }