Exemplo n.º 1
0
        ///<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);
            }
        }
Exemplo n.º 2
0
        ///<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"));
        }
Exemplo n.º 3
0
        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));
                }
            }
        }