Integrate quickbooks with rails and angularjs application - ruby-on-rails

I am developing internal CRM for a client, in which it is required to synchronize with quickbooks for all financial transactions.
I am stuck here. I do not know where to start? Someone asked me to start with webconnector. The CRM application is on AngularJs and rails. I searched but couldnot find anything specific to integration of quickbooks desktop with Angularjs and rails.
So Please please can any one there help me out? I want to to know the full process and if any sample code available for the same in rails and angularjs would be great help.
Thanks

Start by downloading the QuickBooks SDK:
https://developer.intuit.com/docs/0250_qb/0020_get_set_up/sdk_downloads
Install it, and look at the file named:
QuickBooks Web Connector Programmers Guide, QBWC_proguide.pdf
It's about 100 pages, and a spec/guide of what you'll need to implement since there's not much else out there pre-built for RoR.
At a (very) high level, you're going to create a SOAP service which listens for HTTP requests. There's a number of methods you'll need to implement:
authenticate(...) - QuickBooks will call this to authenticate to your service
sendRequestXML(...) - QuickBooks will call this to ask "What data do you want to exchange?" at which time you respond with a qbXML request telling to add an invoice, or add a customer, or give you a list of customers, or etc. etc. etc.
receiveResponseXML(...) - When QuickBooks has finished doing whatever it is you told it to do in the previous step, it will call this method to let you know what happened (e.g. was whatever you told it to do successful or not).
There's more details here that you should read:
http://wiki.consolibyte.com/wiki/doku.php/quickbooks_web_connector
The QuickBooks SDK also includes examples in C# and Java for this. Look for the Web Connector-specific ones, not the COM/QBFC examples (those aren't relevent to you).
You might also look at this for reference/ideas (it's in PHP, but might still serve as a reference):
https://github.com/consolibyte/quickbooks-php
https://github.com/consolibyte/quickbooks-php/blob/master/docs/web_connector/example_web_connector.php

Related

Is it possible to develop a Jira plugin with RESTful capabilities for creating issues programatically?

I have developed a Django app which hosts a bunch of forms that collect information about issues and I want to use this data to create Jira issues programmatically.
I have a conceptual idea of how that can be achieved but my problem is that I am a complete software development newbie and also have never used Jira to this date, hence googling stuff is quite hard as I have an almost non-existent vocabulary in these regards and things get quite overwhelming really fast. I want to know if what I have in mind even makes sense before I delve deeper into documentations and figuring out how to implement stuff.
So I'm going to send POST requests from my Django app containing the issue information in JSON format. These POST requests would then be handled by some Java service which in turn uses the JRJC to create issues on Jira. In my head this implies that I have to develop a whole server (or use some kind of framework for that matter) for django to send its requests to and handle them. Would it be possible to write a plugin for JIRA that bypasses the need for such a server so I could just write the service for handling the requests and expose it on some URL based on the domain of my Jira instance?
I apologize if my question appears vague or ill-structured. Any attempts to shine light on my incompetence or pointing fingers in some direction will be greatly appreciated!
I assume that you're talking about Jira Server (hosted by you) rather than Jira Cloud (hosted by Atlassian).
A Jira plugin can expose a REST endpoint, so yes, you can write such a plugin and POST to an endpoint you define, which then uses the Jira Java API to create issues.
See https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module/ for information on putting REST endpoints in your plugin.

Box.com Service Account access

All box.com's api's read to require OAuth 2.0 using only Authorization Token grant types. I have a back end system that needs to upload a file to a box.com system. However, I do not understand how a back end system is suppose to integrate, when the authorization flow requires user "approval" to get a token.
Anyone ever done this? I am attempting to integrate a java mule app. I attempted to use the components, but they plain do not work at all, they break the entire anypoint studio. Now I am trying to utilize the http component to make the call but I am losing my patience with it.
please help, I am pretty much ready to drop kick this laptop and live in the woods.
Integration with public online API requires a little study, a little coding, and a little testing. I'm not saying it's easy. Take a look here at a Mule component I've recently created that communicates with Toggl, an online timekeeping service.
https://github.com/ciwise/toggl-api-connector
Your question requires a lot of discussion but it's best answered with example. If Box does not provide a Mule component, you can create one yourself.
The HTTP connector is not going to authenticate or perform any operations at Box for you. The HTTP connector provides the HTTP endpoint (URL entry and browser return). To authenticate your application with Box and call API operations, you'll need to do some work.
This is the high-level recipe for my solution with Toggl service (example)
Update your Anypoint Studio with Mule Connector DevKit software
Create an Anypoint Connector project in Anypoint Studio (Eclipse)
My connector provides multiple methods to process and these are used with different instances of the component (connector) in my use flow.
My TogglDataAPIHandler.java makes various checks to see if the application (Mule) is authenticated before making calls to the Application Programming Interface (API). The API is provided by Box so that developers (people writing code) can communicate with the service outside of the web browser. There's no simple answer here. You will have to do some coding. My component/connector is only an example of one way to do this (communicate programmatically with the API).
Build and install the connector(component) locally so that we can see it in the Mule Design Palette.
Drag as many of our new component (Anypoint connector) as needed into our flow canvas.
Test the flow.
I hope that helps. Take a look at my Github repo and Mule Connector. There's a wealth of information in anyone's code. But, integration with an API requires code. You can also search the Exchange for a Box connector. If you find one, then your life is simpler. You still need to read this thoroughly:
https://docs.box.com/docs

QuickBooks with Joomla integration

I need to integrate our website in Joomla and quickbooks by importing the customer, invoice data from joomla site to Quickbooks. I am using Quickbooks pro 2014 on windows machine. I see there is QuickBooks PHP DevKit available by ConsoliBYTE. By searching on stackoverflow, I see people have used this toolkit to perform the data import(customer creation) into QuickBooks. I need to know what all Quickbooks functionality can be achieved using this php toolkit. That is what it can and cannot do. Is it build on QB SDK?
For example I have scenario where I need to import customers and need to add them as customer jobs. So does phpdevkit supports job creation? If yes then how do I find the xml for that in phpdevkit quickbooks library? So probably there will be more such similar requirements coming from end user in future and I need to consider these facts while designing the solution using php toolkit. I do not want a solution which is limited to only few or specific functionality. I have read the QB SDK and it is mentioned that SDK can be used with .NET, java. both solution goes with webconnector. SDK can perform almost all the functions as supported in quickbooks UI. So I am confused which one I should pick PHP toolkit by ConsoliByte or .Net/Java based. Language is not a concern for me. My aim is to look for solution flexible and capable to cover maximum QB functionality which includes customer creation, invoice creation, adding customer job and updating the customer/invoice on every synchup as well as limitation which the solution poses must be known before implementation.
So along with what QuickBooks PHP DevKit can or cannot do, I need to know its difference from Java/.Net based QB SDK (Not language PHP or VB.NET/Java but core framework)?
I tried searching it over stackoverflow and google but could not found this information. I appreciate any inputs shared.
Thanks,
Amit
I need to know what all Quickbooks functionality can be achieved using this php toolkit.
The full list is much too long to post here. As a basic overview:
Automatically send orders placed on your website to QuickBooks Online or QuickBooks for Windows
Charge credit cards using the QuickBooks Merchant Service
Connect to Intuit Anywhere / the Intuit Partner Platform and the v3 APIs
Get access to QuickBooks reports
Pull information out of QuickBooks and display it online
Connect to all Microsoft Windows versions of QuickBooks
Connect to QuickBooks Online Edition
etc. etc. etc.
More details available here:
https://github.com/consolibyte/quickbooks-php
For QuickBooks FOR WINDOWS, you can see the full list of operations supported by clicking the "Select Message" drop-down in the OSR:
https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html
For QuickBooks ONLINE, you can see the full list of operations supported here:
https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services
Is it build on QB SDK?
Yes.
So does phpdevkit supports job creation?
Yes. Anything the QuickBooks SDK supports you can do.
If yes then how do I find the xml for that in phpdevkit quickbooks library?
Use the QuickBooks OSR I linked to above. Search for CustomerAdd (Jobs in QuickBooks are just Customers with a ParentRef defined).
We also have examples on our wiki:
http://www.consolibyte.com/docs/index.php/Example_qbXML_Requests
And provide support via our forums:
http://consolibyte.com/forum/
I do not want a solution which is limited to only few or specific functionality.
Again, anything the QuickBooks SDK can do, can be done via the PHP DevKit.
So I am confused which one I should pick PHP toolkit by ConsoliByte or .Net/Java based.
Joomla is written in PHP, so why the heck would you choose something written in another language...? It would be silly to try to tie .NET or Java in with your Joomla app/database...
which includes customer creation, invoice creation, adding customer job and updating the customer/invoice on every synchup
All of that is certainly do-able.
So along with what QuickBooks PHP DevKit can or cannot do, I need to know its difference from Java/.Net based QB SDK (Not language PHP or VB.NET/Java but core framework)?
The difference is the language. .NET is not PHP. PHP is not Java. Everything is just a wrapper around the QuickBooks SDK/COM API. The only practical difference in the language the stuff is written in.

Quickbook Desktop Development Basics

I've been asked to develop some software for a friend who has a business that he manages using Quickbooks Desktop. I don't have Quickbooks Desktop, and I'm not quite sure how to get started. I've read the docs for about a week now and can't seem to figure out the first step.
From what I've read, it seems like maybe the Quickbooks application starts a web server and mine application will be issuing HTTP requests against that web server ? It would be nice if I didn't have to have the Quickbooks application to do this development; is there a way to read the data file itself ? Does it cost money to develop software that uses this API ?
It looks like I would probably like to use the V2 XML protocol for what I'm trying to do which is: retrieve checks and deposits, make a monthly summary, format that summary according to his specifications, and create a PDF of the statement.
From what I've read, it seems like maybe the Quickbooks application
starts a web server and mine application will be issuing HTTP requests
against that web server ?
That's one possible way to implement things.
If you give more detail about specifically what you're trying to do (what programming language? what version of QuickBooks?) you'll probably get better recommendations than that route.
It would be nice if I didn't have to have the Quickbooks application
to do this development; is there a way to read the data file itself ?
You will have to have QuickBooks, there's no way to read the raw datafile.
It's cheap on Amazon - buy it there.
Does it cost money to develop software that uses this API ?
There are no charges while developing, and for one-off/custom/in-house integrations like you're talking about, there are no charges at all.
It looks like I would probably like to use the V2 XML protocol for what I'm trying to do which is:
Be aware that v2 and v3 is technically only for SaaS applications (e.g. you have to be reselling this as an app, and allowing many people to connect their QuickBooks to your app).
According to Intuit, you should be using the SDK.

What to consider first when designing a meta-search engine using Erlang, Mnesia and Yaws?

Can someone explain to me what to consider first when designing a meta-search engine using Erlang, Mnesia and the Yaws web server? This engine should have SMS capability but I am still wondering how I am going to incorporate this feature...
The meta search engine, you need REST or Ajax APIs from Google, Yahoo and Bing. Below am providing you with examples which you may use within your back end HTTP capable Library or your front end JavaScript. I personally use mochiweb and yaws Appmods.
For example: Google has an Ajax search API which works like this:
http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=computers
Hitting that URL will give you a JSON Object which contains several search responses. In this case, the search term is "computers"
Yahoo has what it calls Boss APIs. An example of Yahoo Rest search API using Boss is here below:
For an XML result:
http://boss.yahooapis.com/ysearch/web/v1/animals?appid=APPID&format=xml&start=1&count=3
For a Json result:
http://boss.yahooapis.com/ysearch/web/v1/animals?appid=APPID&format=json&start=1&count=3
Analyse the whole HTTP GET query very well, you notice something they call an APPID. This you will get when you register with them here. I cannot give to you my APPID, you will have to get yours,then paste it in there and you will be good to go. Yahoo has something more powerful called
YQL. In the above query, the search term is: "animals"
Bing as well has got an API for you, but you will need an APPID:
http://api.bing.net/json.aspx?AppId=APPID&Query=love&Sources=Web&Version=2.0&Market=en-us&Web.Count=10
Above, the search term is: "love"
About the Meta Search Engine
You have a web page, people enter search queries in this page. You use your javaScript (JSONP). JSONP could be implemented in any one of your favorite JavaScript Framework you use e.g.
JQUERY,Ext JS,Dojo, Prototype e.t.c
Then you would have to parse the XML or JSON response from the three sources (Google, Yahoo and Bing),and make an appropriate display for your users to navigate the results.
About the SMS part
SMS capability is attained using SMS Gateway. There are several open and close source SMS Gateways. the most powerful of them all is the one built in Erlang/OTP technology called: OSERL, but to test it, you need direct connection with an SMSC in anyone of your local service provider.You need a Port on their SMSC, a user name and a password.There is another one which is better for development reasons called: NowSMS because it has capabilities for USSD, Modem Internet Communication, SMSC service connectivity, HTTP 1.1 and HTTP 1.0, configuration of two-way SMS messaging e.t.c from a Web App to-and -from the SMS Gateway. Go to their site, grab the trial version, follow the documentation and then configure two-way from your web app to the gateway and vice versa. Since NowSMS is not free, you can try: Kannel, it is open source but you will need help from the community to set it up on your Unix or Linux box.
More on incorporating SMS capability in Web Applications can be found:
Here
I also asked once a Question related to development of a powerful search engine using Erlang, Mnesia & YAWS webserver on Stackoverflow. I got plenty of good answers and responses.
Please CLICK ME!
Hope this may help. As I am not sure about SMS thing.

Resources