Exemplo n.º 1
0
        private void UpdateCustomer(Quickbooks qb, ICustomerRet customer, CheckToWrite r)
        {
            List <String>  account    = new List <string>();
            IMsgSetRequest msgRequest = qb.newRequest();

            msgRequest.Attributes.OnError = ENRqOnError.roeStop;
            ICustomerMod customerMod = msgRequest.AppendCustomerModRq();

            customerMod.ListID.SetValue(customer.ListID.GetValue());
            customerMod.AccountNumber.SetValue(r.RecipientId);
            customerMod.Name.SetValue(r.FullName);
            customerMod.BillAddress.Addr1.SetValue(customerMod.Name.GetValue());
            customerMod.BillAddress.Addr2.SetValue(r.Address1);
            customerMod.BillAddress.Addr3.SetValue(r.Address2);

            customerMod.Contact.SetValue(customerMod.Name.GetValue());
            customerMod.BillAddress.City.SetValue(r.City);
            customerMod.BillAddress.State.SetValue(r.State);
            customerMod.BillAddress.PostalCode.SetValue(r.Zip);
            customerMod.EditSequence.SetValue(customer.EditSequence.GetValue());
            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode != 0)
            {
                throw new Exception("Unable to update customer " + response.ResponseList.GetAt(0).StatusMessage);
            }
        }
Exemplo n.º 2
0
        private void QBDepositWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Quickbooks          qb            = new Quickbooks();
            List <Deposit>      deposits      = _dailyDeposit.getDeposits();
            List <CheckToWrite> checksToWrite = _dailyDeposit.ChecksToWrite;

            CurrentItem = 0;
            TotalItems  = deposits.Count + checksToWrite.Count;

            e.Result = _dailyDeposit.DepositDate;
            ReportProgress();
            try
            {
                qb.Connect();

                foreach (Deposit deposit in deposits)
                {
                    performDeposit(qb, deposit);
                    CurrentItem++;
                    ReportProgress();
                }

                foreach (CheckToWrite checkToWrite in checksToWrite)
                {
                    ReportProgress(String.Format("writing refund check to {0} for {1:c}", checkToWrite.FullName, checkToWrite.Amount));
                    WriteRefundCheck(qb, checkToWrite);
                    CurrentItem++;
                    ReportProgress();
                }
            }
            finally
            {
                qb.Disconnect();
            }
        }
Exemplo n.º 3
0
        private ICustomerRet addCustomer(Quickbooks qb, CheckToWrite r)
        {
            IMsgSetRequest msgRequest = qb.newRequest();

            msgRequest.Attributes.OnError = ENRqOnError.roeStop;

            ICustomerAdd addCustomer = msgRequest.AppendCustomerAddRq();

            addCustomer.AccountNumber.SetValue(r.RecipientId);
            addCustomer.Name.SetValue(r.FullName);
            addCustomer.BillAddress.Addr1.SetValue(addCustomer.Name.GetValue());
            addCustomer.BillAddress.Addr2.SetValue(r.Address1);
            addCustomer.BillAddress.Addr3.SetValue(r.Address2);
            addCustomer.Contact.SetValue(addCustomer.Name.GetValue());
            addCustomer.BillAddress.City.SetValue(r.City);
            addCustomer.BillAddress.State.SetValue(r.State);
            addCustomer.BillAddress.PostalCode.SetValue(r.Zip);

            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode == 0)
            {
                ICustomerRet result = (ICustomerRet)response.ResponseList.GetAt(0).Detail;
                return(result);
            }
            else
            {
                throw new Exception("Unable to add customer " + response.ResponseList.GetAt(0).StatusMessage);
            }
        }
        private ICustomerRet addCustomer(Quickbooks qb, CheckToWrite r)
        {
            IMsgSetRequest msgRequest = qb.newRequest();
            msgRequest.Attributes.OnError = ENRqOnError.roeStop;

            ICustomerAdd addCustomer = msgRequest.AppendCustomerAddRq();

            addCustomer.AccountNumber.SetValue(r.RecipientId);
            addCustomer.Name.SetValue(r.FullName);
            addCustomer.BillAddress.Addr1.SetValue(addCustomer.Name.GetValue());
            addCustomer.BillAddress.Addr2.SetValue(r.Address1);
            addCustomer.BillAddress.Addr3.SetValue(r.Address2);
            addCustomer.Contact.SetValue(addCustomer.Name.GetValue());
            addCustomer.BillAddress.City.SetValue(r.City);
            addCustomer.BillAddress.State.SetValue(r.State);
            addCustomer.BillAddress.PostalCode.SetValue(r.Zip);

            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode == 0)
            {
                ICustomerRet result = (ICustomerRet)response.ResponseList.GetAt(0).Detail;
                return result;
            }
            else
            {
                throw new Exception("Unable to add customer " + response.ResponseList.GetAt(0).StatusMessage);
            }
        }
Exemplo n.º 5
0
        void RefreshDataWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Quickbooks qb = new Quickbooks();
            Eaglesoft  es = new Eaglesoft();

            try
            {
                Configuration configuration = UserSettings.getInstance().Configuration;
                checkCanceled(e);
                qb.Connect();

                checkCanceled(e);
                ReportProgress(15, "Obtaining QB payment types");
                _configuration.QuickbooksPaytypes = qb.getPaymentTypes();

                checkCanceled(e);
                ReportProgress(30, "Obtaining QB Income accounts");
                _configuration.QuickbooksIncomeAccounts = qb.getIncomeAccounts();

                checkCanceled(e);
                ReportProgress(45, "Obtaining QB Bank accounts");
                _configuration.QuickbooksBankAccounts = qb.getBankAccounts();

                checkCanceled(e);
                ReportProgress(60, "Obtaining QB Customers");
                _configuration.QuickbooksCustomers = qb.getCustomers();

                checkCanceled(e);
                es.Connect();

                checkCanceled(e);
                ReportProgress(75, "Obtaining ES payment types.");

                checkCanceled(e);
                _configuration.EaglesoftPaytypes = es.getPaytypes();

                checkCanceled(e);
                ReportProgress(90, "Obtaining ES adjustment types.");

                _configuration.EaglesoftAdjustments = es.getAdjustmentTypes();
                _configuration.normalizeConfiguration();
                _configuration.LastRefreshTime = DateTime.Now;
                UserSettings.getInstance().Save();
                ReportProgress(100, "Completes");
            }
            catch (OperationCanceledException)
            {
                e.Cancel = true;
                return;
            }
            finally
            {
                qb.Disconnect();
                es.Disconnect();
            }
        }
        void RefreshDataWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Quickbooks qb = new Quickbooks();
            Eaglesoft es = new Eaglesoft();

            try
            {
                Configuration configuration = UserSettings.getInstance().Configuration;
                checkCanceled(e);
                qb.Connect();

                checkCanceled(e);
                ReportProgress(15, "Obtaining QB payment types");
                _configuration.QuickbooksPaytypes = qb.getPaymentTypes();

                checkCanceled(e);
                ReportProgress(30, "Obtaining QB Income accounts");
                _configuration.QuickbooksIncomeAccounts = qb.getIncomeAccounts();

                checkCanceled(e);
                ReportProgress(45, "Obtaining QB Bank accounts");
                _configuration.QuickbooksBankAccounts = qb.getBankAccounts();

                checkCanceled(e);
                ReportProgress(60, "Obtaining QB Customers");
                _configuration.QuickbooksCustomers = qb.getCustomers();

                checkCanceled(e);
                es.Connect();

                checkCanceled(e);
                ReportProgress(75, "Obtaining ES payment types.");

                checkCanceled(e);
                _configuration.EaglesoftPaytypes = es.getPaytypes();

                checkCanceled(e);
                ReportProgress(90, "Obtaining ES adjustment types.");

                _configuration.EaglesoftAdjustments = es.getAdjustmentTypes();
                _configuration.normalizeConfiguration();
                _configuration.LastRefreshTime = DateTime.Now;
                UserSettings.getInstance().Save();
                ReportProgress(100, "Completes");
            }
            catch (OperationCanceledException)
            {
                e.Cancel = true;
                return;
            }
            finally
            {
                qb.Disconnect();
                es.Disconnect();
            }
        }
Exemplo n.º 7
0
        private ICustomerRet FindCustomer(Quickbooks qb, String fullName)
        {
            IMsgSetRequest msgRequest    = qb.newRequest();
            ICustomerQuery customerQuery = msgRequest.AppendCustomerQueryRq();

            customerQuery.ORCustomerListQuery.FullNameList.Add(fullName);
            IMsgSetResponse response = qb.performRequest(msgRequest);

            ICustomerRetList qbCustomers = (ICustomerRetList)response.ResponseList.GetAt(0).Detail;

            if (qbCustomers == null)
            {
                return(null);
            }

            return(qbCustomers.GetAt(0));
        }
Exemplo n.º 8
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));
                }
            }
        }
Exemplo n.º 9
0
        private void WriteRefundCheck(Quickbooks qb, CheckToWrite r)
        {
            ICustomerRet customer = FindCustomer(qb, r.FullName);

            if (customer == null)
            {
                customer = addCustomer(qb, r);
            }
            else
            {
                UpdateCustomer(qb, customer, r);
            }

            IMsgSetRequest msgRequest = qb.newRequest();

            msgRequest.Attributes.OnError = ENRqOnError.roeStop;

            ICheckAdd addCheckRequest = msgRequest.AppendCheckAddRq();

            addCheckRequest.PayeeEntityRef.ListID.SetValue(customer.ListID.GetValue());

            addCheckRequest.Memo.SetValue(r.Memo);
            addCheckRequest.AccountRef.FullName.SetValue(r.QbBankAccount);
            IExpenseLineAdd expenseAdd = addCheckRequest.ExpenseLineAddList.Append();

            expenseAdd.AccountRef.FullName.SetValue(r.QbIncomeAccount);
            expenseAdd.Amount.SetValue((double)r.Amount);
            expenseAdd.Memo.SetValue(r.Memo);

            addCheckRequest.IsToBePrinted.SetValue(true);
            addCheckRequest.RefNumber.SetEmpty();

            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode != 0)
            {
                throw new Exception("failed to write refund check " + response.ResponseList.GetAt(0).StatusMessage);
            }
        }
        private ICustomerRet FindCustomer(Quickbooks qb, String fullName)
        {
            IMsgSetRequest msgRequest = qb.newRequest();
            ICustomerQuery customerQuery = msgRequest.AppendCustomerQueryRq();
            customerQuery.ORCustomerListQuery.FullNameList.Add(fullName);
            IMsgSetResponse response = qb.performRequest(msgRequest);

            ICustomerRetList qbCustomers = (ICustomerRetList)response.ResponseList.GetAt(0).Detail;

            if (qbCustomers == null)
                return null;

            return qbCustomers.GetAt(0);
        }
        private void WriteRefundCheck(Quickbooks qb, CheckToWrite r)
        {
            ICustomerRet customer = FindCustomer(qb, r.FullName);

            if (customer == null)
                customer = addCustomer(qb, r);
            else
                UpdateCustomer(qb, customer, r);

            IMsgSetRequest msgRequest = qb.newRequest();
            msgRequest.Attributes.OnError = ENRqOnError.roeStop;

            ICheckAdd addCheckRequest = msgRequest.AppendCheckAddRq();
            addCheckRequest.PayeeEntityRef.ListID.SetValue(customer.ListID.GetValue());

            addCheckRequest.Memo.SetValue(r.Memo);
            addCheckRequest.AccountRef.FullName.SetValue(r.QbBankAccount);
            IExpenseLineAdd expenseAdd = addCheckRequest.ExpenseLineAddList.Append();
            expenseAdd.AccountRef.FullName.SetValue(r.QbIncomeAccount);
            expenseAdd.Amount.SetValue((double)r.Amount);
            expenseAdd.Memo.SetValue(r.Memo);

            addCheckRequest.IsToBePrinted.SetValue(true);
            addCheckRequest.RefNumber.SetEmpty();

            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode != 0)
            {
                throw new Exception("failed to write refund check " + response.ResponseList.GetAt(0).StatusMessage);
            }
        }
        private void UpdateCustomer(Quickbooks qb, ICustomerRet customer, CheckToWrite r)
        {
            List<String> account = new List<string>();
            IMsgSetRequest msgRequest = qb.newRequest();
            msgRequest.Attributes.OnError = ENRqOnError.roeStop;
            ICustomerMod customerMod = msgRequest.AppendCustomerModRq();

            customerMod.ListID.SetValue(customer.ListID.GetValue());
            customerMod.AccountNumber.SetValue(r.RecipientId);
            customerMod.Name.SetValue(r.FullName);
            customerMod.BillAddress.Addr1.SetValue(customerMod.Name.GetValue());
            customerMod.BillAddress.Addr2.SetValue(r.Address1);
            customerMod.BillAddress.Addr3.SetValue(r.Address2);

            customerMod.Contact.SetValue(customerMod.Name.GetValue());
            customerMod.BillAddress.City.SetValue(r.City);
            customerMod.BillAddress.State.SetValue(r.State);
            customerMod.BillAddress.PostalCode.SetValue(r.Zip);
            customerMod.EditSequence.SetValue(customer.EditSequence.GetValue());
            IMsgSetResponse response = qb.performRequest(msgRequest);

            if (response.ResponseList.GetAt(0).StatusCode != 0)
                throw new Exception("Unable to update customer " + response.ResponseList.GetAt(0).StatusMessage);
        }
        private void QBDepositWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            Quickbooks qb = new Quickbooks();
            List<Deposit> deposits = _dailyDeposit.getDeposits();
            List<CheckToWrite> checksToWrite = _dailyDeposit.ChecksToWrite;
            CurrentItem = 0;
            TotalItems = deposits.Count + checksToWrite.Count;

            e.Result = _dailyDeposit.DepositDate;
            ReportProgress();
            try
            {
                qb.Connect();

                foreach (Deposit deposit in deposits)
                {
                    performDeposit(qb, deposit);
                    CurrentItem++;
                    ReportProgress();
                }

                foreach (CheckToWrite checkToWrite in checksToWrite)
                {
                    ReportProgress(String.Format("writing refund check to {0} for {1:c}", checkToWrite.FullName, checkToWrite.Amount));
                    WriteRefundCheck(qb, checkToWrite);
                    CurrentItem++;
                    ReportProgress();
                }
            }
            finally
            {
                qb.Disconnect();
            }
        }
        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));
                }
            }
        }