Desktop QuickBooks US, xTuple, Openbravo POS Integration

Here is a link to the download
Back to the Windows Mobile Marketplace link Click Here
Another useful link

Wednesday, December 29, 2010

Ok I finished, phase I

I have been working on migrating the way I access the database to be web-centric. Well I finish, importing from QuickBooks to a backend database ( ms sql 2008, db2 9.7.2, informix 11.7, postgres 9.0, mysql 5.5.8 or sqlite3) I did test with all of them. However, for production I will use PostgreSQL. There are two ways interacting with the backend, as security goes. One, super user (creates the database, creates the low privilege user, grant access to the low privilege user to his data), and the low privilege user to access his quickbooks database. The second way, is all controlled by the backend (database creation, low privilege user activation, grants database access) . The second way is more secure as it relies on user defined functions.
This code uses NHibernate 3.0, Spring.Net 1.3.1, QBFC 10, .Net. I am slightly satisfy.
Let me continue to do some tests.

Friday, September 10, 2010

An svn anonymous checkout of some related code

from the comand line

This is an anonymous read only checkout of a big part of the installers and some area of the code.

I am not modifying this area, because like I have mentioned, the code is being migrated to a MySQL web based database.

Thursday, September 2, 2010

This is my response to a MS WP7 Evangelist

Yes I am planning to develop a WP7 app, at some point from here until December.

My App, was/is Desktop centric. I am migrating it to be web centric. It consist of Sync QuickBooks Desktop US to a WM 6.5 Phone

I added xTuple ( a CRM soft) and Openbravo POS support.
It uses sqlite3 extensively.I am migrating the data to be on the web ( using MySql+Asp.Net+ WCF Services). My old app, was a very fat app for a WM 6.5 device 2.2 M+ in size. 60+ tables.
It was done using MFC+sqlite3. The new GUI potentially could be SilverLight. I am working in porting the database first to C#.

2- The phone will be a tough fight for #3 or #4 spot, I dont see it competing with Iphone 4, or Android 2.2
with BB it can. At least this version, I am impress but I have seen the other ones, specially Android with java very easy to code.

You need database support SqlCE or Sqlite3

..because I am moving to the Web the data, an Azure solution may interest me, but tooo expensive. I have no idea how much it will cost to host this data on the Azure platform.
I am not doing this for financial gain, just for my own intellectual pleasure.
thanks bye.

Sunday, August 22, 2010

Ok just too busy

I have not posted in a while.

  1. I am still working on the Openbravo ERP --> Windows Mobile
  2. I am also working on migrating the data to the web, now the data resides on the desktop and pda devices as sqlite3. It will continue like that but now I will add a new layer, from the desktop to the Web ( on MySQL) from there to the PDA.The PDA will consume this data as Rest services, sometimes they may be able to cache it locally.
  3. I am working on an Android (uses Java has local database support aka sqlite3, it is Java code) version and a Windows Mobile 7 version (uses Silverlight, doesnt have local database support aka NO sqlite3, it is C# code).
  4. All these will keep me busy for 2-3 months easy.
  5. The Web app, will be based, I really dont have strong opinion on it, it could have been J2EE or Python or PHP. This app wont be a GUI app, the GUI will still be native on the PDA. However, this web-app will just expose the data to be consumed as Rest services. The code will be using nHibernate 3.0, and Spring.NET. It is not that different from Java Hibernate or Java Spring.
  6. I am doing all these by myself, just way way too much work. I will be willing to share the code and do this project open source but first I need to see commitment from the potentail people that may get involved.

Tuesday, July 6, 2010

Openbravo ERP 5/10

So it begun, I started working on the Mobile Openbravo ERP. The learning curve has been step. Based on my pgAdmin the latest OB database I have, has 473 Tables, 75 View, 382 Functions, just looking at it made me dizzy. I have to create an import/export engine between their database and what I have on the PDA. Took a look at their hibernate module. But I will use exactly the same technique, a python script using sqlalchemy and thats it.

Saturday, June 12, 2010

Mobile POS for Openbravo POS 4/10

Ok, some updates, I migrated all the source code to web svn on openbravo forge. I changed the import/export OB POS code from using psycopg2 ( a python postgres driver) to use sqlalchemy. This allow me to use postgres, mysql, oracle or whatever the OB POS database is using. The first two my guess is 80%+ of the customers are using it. I did test using Postgres and MySQL.
Also, started to play with OB POS java code to have one full install with my GUI running inside OB POS. This means the end user will have one place to install the PDAs and manage the PDAs from the OB POS GUI itself. As now, they have two separate products with disparate GUIs and look and feel, one is java swing based, the other one is MFC GUI based. Here is a picture of how the integrated GUI will look, this is a very rough rough rough idea. From the Maintenance->Users I will add a Tab page just as the MFC GUI does with specific PDA Users Roles and PDA specific behavior.

 I wish I can start the Mobile POS----OB ERP sync but lets wait to see when this one will become stable.
Anyway, I am uploading a new version with all these changes.

Wednesday, May 26, 2010

Mobile POS for Openbravo POS 3/10

I just have way way too much pressure. I feel, I am going to collapse. The software is not ready yet, I have a list of like 7 critical bugs under the openbravo forge. I just finished testing the full sync through USB. I have not done or tested ftp sync, aka web sync. Keep receiving 2-3 request for keys a day.
 Fernando is doing his best, I have no idea when we will finish. These are the list of bugs I am just dead.

Sunday, May 23, 2010

Mobile POS for Openbravo POS 2/10

Well, I worked on starting to update Openbravo POS database from my PDA data, originally tickets and ticketlines. I will publish the results on the Openbravo Development wiki I created, so far so good. Will update sourceforge with the latest code. This means, an end user can create tickets (openbravo pos sales orders) and when sync happens, these tickets can be scrutinized from the Ob POS itself, and exported to the Ob ERP. These relationships on these tables can be very convoluted. I have not found good specs on it. I just basically using pgAdmin III write raw sql and test it inserting/selecting/modifying dummy data. Interpreting the errors, and going back to the drawing board. No wonder I have a beta, this by no means is stable code.
  I noticed also people downloading the soft but they are not registering it. I am sorry but no email, no key. If they think, they can hack the key, look be my guess.

I am also keeping my eye on the Openbravo ERP so when I finish this one, you are next, and Magento I will describe Magento as an unbeilabele piece of code written, I mean the best never seen such a great web app.

Sunday, May 16, 2010

Mobile POS for Openbravo POS 1/10

  I guess will need 10 more posts, before I finish. Because actually I am downsizing ( this word is recession friendly) the Mobile POS from QuickBooks to make it works for Ob POS. I have to remove Timetracking, Estimates, Vendors, Bills, Checks and more modules that Ob POS doesn't use. So doing some tests I noticed a menu, with the Timetracking choice enable. This doesn't make sense as Ob POS doesn't have timetracking. I have to make sure I disable, obfuscate, hide all these extra menus, choices, modules because it could confuse an end user.
 Enough, download, remove, re-install, and test to see all data making sense, all menu choices making sense.

 Ob POS has something call tickets. I have to rename the labels to read 'Tickets'

 I know, I know is getting there. I wonder the Spanish translation what will be, and German ? Ob POS runs localized in all these languages, at some point Mobile POS will have to behave/display like his localized master. I will get there, but for now English.

 ...and and you know is coming Mobile POS for Openbravo ERP. I dont know how, when but it will be done. I promise you, you will see OB ERP data on your Windows Mobile phone. Let me finish with this one.


Sunday, May 9, 2010

Openbravo Mobile POS

Things are moving along, I added this weekend the posibilty to login to the PDA, with the same user name and password used by Ob POS.
Now, if someone download the app. to run it you need to register it and I will issue a unique key for end users to test it and interact with it. No email, no trial as simple as that.


Thursday, April 22, 2010

Mobile POS for Openbravo POS

I am working on a beta for putting some of the data from Openbravo POS in Mobile POS.
Wait 2 more weeks, I have a beta.

It will be easy because OpenBravo POS has its own database, with like 34 tables, they resemble my datamodel. Originally it will be for people using Postgres as the backend. Later I will see what else they use, Apache Derby ?

The one I did for xTuple is still there in sourceforge, but I dont see it becoming popular, it was just a beta.

Ok, Ok I finally have an Alpha, is not complete, I would say is like 85%.
I am uploading it now to sourceforge

Ahhh 5-05-10, I found a bug I was missing a file on the install
C:\Program Files (x86)\SierraCode\MobilePointofSale 1.0 OpenbravoPOS Integration\python\
I just uploaded the fix to sourceforge.

Sunday, April 18, 2010

A Bug on the QuickBooks version

I had a bug on the Mobile POS the QuickBooks version. It was importing the current opened company file but at the time of syncing with the PDA on the cradle it was only sending one company file. Usually the dummy database I have set up,  C:\ProgramData\SierraCode\Sample Consulting Business.db3.

Please anyone with an old version, download the install version 2.0.1166 remove the previous one, re-install this one.

I know how it goes. Unfortunately this software is not mature 100%. I still find bugs, and end-users tell me of issues. Just have some patience and bear with me all this pain. Until it becomes rock solid, we are getting there one bug at a time. -:)

Like I keep mentioning, email me if you find any issue. I can only test so much.


Sunday, April 11, 2010

Windows 7 --- 64 Bit

Well I got a new laptop. I think I was the last one to get it

It was similar to this one, Turion II Ultra 2.4, and the HD is 500G 7200, 4G RAM
If you see the laptop I was using to develop before you think I am crazy. It was super slow, some Dual Pentium Windows Vista Toshiba Satellite. It was like 3.6 years old. The Windows Mobile build would take like 3 min, on the new one like 1 min.

So, now I can test under 64 Bit. And....and I found bugs. I compiled the app now the .net part for Any CPU if not I have issues reading from the registry under 64 Bit..

The xTuple Desktop GUI Integration was crashing. I have to fix that too.
The Bold text seems to fix the problem.
lResult = RegOpenKeyEx(HKEY_LOCAL_MACHINE,

KeyToReadOriginal, 0, KEY_READ | KEY_WOW64_64KEY,&hSoftKey);

So, I know some people are downloading the app, but if it is crashing they are not emailing me. Soon, I will change that. Now to run the app you will have to email me first some unique keys that I use. So, I can have more control who, why, when, what is using this.

Addendum 4-23-2010
One more bug, registering qbfc8.dll the COM dll to talk (import/export) with QuickBooks
Under 64 bit, I have to register this dll under $(env.PROGRAMFILES) (x86).
More changes, I included now the QBFC8_0Installer.exe and run it after installing the software. This QBFC8... will install qbfc8.dll for me. Now the install went from 17M to 27M.


Wednesday, March 31, 2010

The downloads on the ver 2.2 WM Professional

...has been great.
Anyone, with any question please email me.

  I am inviting, people with any business idea to write me too. I am open to any suggestion, even if someone wants to use the source code for other platforms or backends ( email me), xTuple ? OpenERP ? OpenBravo POS ?
 We can always work something out.


Wednesday, March 17, 2010

240x400 480x800 WVGA

480x800 is called Wide VGA example --> HTC phone from ATT

The Windows Mobile Professional works under these two screen resolutions. I will have to update the software under Microsoft marketplace. Mobile POS 2.1 doesn't have that the one under sourceforge does. I updated the one on MS to 2.1 but 2.2 is ready with these new screen sizes.

  I found out when submitted for certification, I did not check these resolutions. So if someone is accessing MS marketplace from an HTC phone 480x800 wont see the software as it was not certified for these resolutions.  Ok Ok my mistake.

  I will give it a couple of weeks, to certify 2.2 with 480x800 and 240x400.

 Any way, any msg, idea, if someone knows when will stop raining in Atlanta pls email me.


Thursday, March 11, 2010

Mobile POS and Credit Card Transaction on the field

I am testing now to allow Credit Card Transactions on the field. I will use  for the CC processing, I can also use

All these APIs to do credit card transactions on the field use some form of ssl (secure socket layer) to interact with their https servers. Just the same way an end user login to his bank and do online payments. I can write extensively about the subject using openssl but believe me it is very complex.

Ok is in sourceforge, the last release with CC txns.

The Windows Mobile Standard

The Windows Mobile Professional

Like I mentioned I am using for the CC txns.

Friday, March 5, 2010

Mobile POS for xTuple

I just uploaded a beta to the sourceforge website, the filename is MobilePointOfSalexTupleIntegration_Install.msi, what a name.

The file is at the end of the list

It is a beta, so I still need to import more data and see how all integrate and works with Mobile POS.

Next step will be to make the synchronization  both ways now is one way. But the end-user can modify and create data on the PDA. I think it is the first time, someone will see their xTuple data on a windows mobile standard phone. I will love to see that face.

Here are some pictures, main menu program

Main Menu

When you click Import from xTuple
Notice I am using the demo database, with user admin, password admin, port 5432. In your case this will point to your Postgress xTuple host ( not necessarily localhost, could be an IP address), with your login,password, and port number. This connection can even be secure (ssl) 

Here finished importing from xTuple. Customers, Accounts, Terms, Invoices, Sales Orders, Vendors, Quotes, Products, Class and on and on. All this data will be transfered to the Windows Mobile devices.

Any way, thanks, email me bugs.

Friday, February 26, 2010

CPropertySheet on Windows Mobile Standard

First things first, I am super surprised on the interest on the Windows Mobile Standard version, 30 downloads a day. Just published it last Monday, so I am adding some features that were lacking and the WinMob Professional already had.

I have been working on Adding CPropertySheet on the Windows Mobile Standard. I found a way. Here are the pictures

From the Customers List, Click Choices

Another Menu, now Click Details. This will take you to the Customer Details ( My own CPropertySheet)

More Choices

Now you have all the Customers-Jobs information like the WinMob Professional.

So now I will upload to sourceforge this new version. The same work will be applied to Items, and Invoices. Will allow to see/edit details.

I was working on the xTuple  version when I read an article some people are interested on a Mobile xTuple. I am working on it a lot. You can read previous posts I had about it.If someone reads this and is interested in Beta testing pls, email me ASP. I have a read-only version ready.
This is the article

On another not related topic. The Mobile Point Of Sale Server Installer has giving me a lot of grief. It has a .net component that was not registering to import/export to QB. Now it was added it to the installer, I found a tool call heat that does some magic stuff. Read the component and export on xml format all the registration code. It comes with Wix 3.5 The installer used for this project. I also added some log capabilities to the Web Sync to better see errors when exporting to QB.


Monday, February 15, 2010

Well, testing, testing

I got a problem with the Standard version of the software and I resubmitted to Microsoft Marketplace.

Here is a list of Microsoft phones. They do have a lot choices.

Here this looks very competetive

Anyone who find a problem pls email me.


Friday, February 12, 2010

Well is out

I published the software on Microsoft WinMob Marketplace. I have noticed the traffic here. I just published also the Smartphone (Standard) part, lets see when they approve it. You are welcome to write me, and ask for information here. I am still testing and fine tuning the software.
The Desktop part, has given me a lot of pain. The history behind it. It was originally a Visual Basic 6.0 app, so I ported it to C#. With the port, I carried some bugs like writing to a log c:\DataProjectErrorlog.txt. Under Vista, with UAC, I cant write to the C:\ drive. So I have to move this log to the %TEMP% directory.
I also created some other logs files, I have to move it to MyDocuments folder. The database used to be located under C:\Program Files\SierraCode\MobilePointofSale1.0, moved to c:\ProgramData\SierraCode. Which is a directory the installer create when installing the app, I gave it full access rights, read-write-create-delete.
All these are basic, changes.I totally made the mistake of testing the app under 'Administrator'. Not all the machines this app will run, the user is an 'Administrator'. So this situation created all these chaos.

So the future.

I am working to make it work under Xtuple, 2-3 more months and I have a beta. Anyone out there who wants to help, who uses Xtuple. Send me an email to test the app.
I am also working simultanously to make it run on the BlackBerry. This will be my first Java app, BlackBerry app. So far I like it, under Blackberry Java 5.0 SDK Beta , they support SQLite, so I am starting with the database port. I am migrating from C++ MFC to Java. Under Windows, I use CppSqlite3 wrapper.
I experimented with the Iphone, the Android. But I choose Blackberry as my next target. They have a good customer base. Why not. Also having this code under Java will make an easy port to Android JVM. The Android, having python is just amazing.
With the database, I experimented with python (using their db-api2), lua-sqlite3, but the code is in C++. I also took a look at I like them a lot. All this because I want to write one database module and make it work under all scenarios ( Desktop and PDAs). Also thought about porting the GUI to extJS, to make it work under all these devices, mixing it with PhoneGap, but the learning curve was steep. Writing native code has its advantages, just like wxWidgets does. I am not a Javascript guy, took a look at extJS, it doesnt look easy. I have seen criptic code, for crying outloud have done a lot of MFC but this extJS is out of my ballpark.

So guys enough for now.

Friday, January 22, 2010

It does run on SmartPhone too

Like Microsoft call it Windows Mobile Standard, here is just a picture. I am trying to add it to Microsoft AppStore, lets see how it goes.

Wednesday, January 13, 2010

Web Sync running inside my GUI

Well just a picture with the Web Sync up and running.

I am researching XTuple, to add support for a mayor ERP, and still undecided how I will port this app to the iphone.

Here is a link to the download

Friday, January 1, 2010

The Server Web Sync

I already have the backend sync with the PDA using FTP.

Here is picture with the whole process.


and After