Add README and LICENSE

I create a repository at GitHub and add a README and LICENSE file for
information.
Create common base class for products and services

I create the common base class SalesItem for Product and Service because
both the latter have the most properties in common.  Furthermore, I
remove the unneeded property commission.
Add sales item costing domain classes

I add domain classes for sales item costing and its items.  Because
computation of unit prices and total prices are difficult I add a unit
test to test these methods.
Rename and finish pricing domain model classes

First, I rename the pricing domain model classes from "costing" which is
a bit misleading.

Then, I add the database migration XML script to generate the pricing
tables.  And I uncomment the change set in the db-2012-07-28.xml which
removes the product and service tables.
First implementation of pricing at services

I start implementing pricing at services.  First I work on the client
side and write a JavaScript file which does the client operations.

Furthermore, I add a lot of documentation using JsDoc Toolkit.
Complete client-side computation of pricing

I finish working on the client-side computation of pricing items.  I
implement that unit prices and total prices of pricing items and the
total price of the whole pricing table is computed.  Furthermore, I
implement that related items can be selected using a target button.

I also add method reverse() to jQuery to reverse the content of a jQuery
object.
Moving pricing items

I implement moving pricing items including re-calculation of the unit
and total prices and update of references.
Merge branch 'unstable' into dev

Conflicts:
	application.properties
Merge branch 'unstable' into dev

Conflicts:
	application.properties
Rework CSS class names

I change the pricing form and reduce the number of steps to calculate
the sales price.

During work I recognize that invoicing item elements and pricing
elements share a lot of classes and design.  So I rework the CSS classes
in the following ways:

- use relative class names instead of absolute: use ".price-table
  .total-price" instead of ".pricing-items-total-price"
- assign class names by a "why?" question: why the text should be
  printed bold? Because it's a total price.

By the way, I also remove <a> tags with an image inside which are used
by JavaScript only, so only the <img> tag remains. This prevents use of
misleading <a href="#"> tag or worse: <a href="javascript:void(0);"
tags.
Finish client side pricing

I implement the missing sales pricing features on the client side.  Now
the pricing works in two steps: unit pricing and sales pricing.
Merge branch 'unstable' into dev

Conflicts:
	.settings/org.grails.ide.eclipse.core.prefs
	application.properties
	grails-app/conf/org/amcworld/springcrm/ViewFilters.groovy
Merge branch 'unstable' into dev

Conflicts:
	application.properties
	grails-app/migrations/changelog.groovy
Merge branch 'unstable' into dev
Finish pricing form in services

Mainly, I finish the pricing form in the services section.  Now, pricing
is performed in 3 steps:

1. calculation of the unit price
2. calculation of the sales price
3. declaration of the sales amount and unit

According to the changes in the database migration definitions in the
unstable branch I also change the way the sales item and sales item
pricing tables are defined now.
Attempt to perform data binding with lists

I try to perform Grails data binding features with lists.  However,
until now it is not successful yet.

Furthermore, I upgrade to Grails 2.1.1 because I hoped the data binding
problem would be resolved.
Several bug fixes (also blocker)

I fix several bugs:

- When creating a dunning from an invoice the invoice items are deleted
  in the database.  This is caused by cleaning the items in the invoice
  object before copying them to the dunning.  But due to the setting
  "transactional = true" in ViewService the so modified invoice is
  stored before the getItemErrorMessages method of ViewService is
  called, causing the deletion of all items of the particular invoice.
  This bug obviously is a blocker.
- By working on the bug above I also check all services which actually
  need transactional = true and set them to false instead.
- A NPE occurred when calling getItemErrors() on an invoicing
  transaction which was created by the copy constructor.  This
  constructor must call this() before to benefit from dependency
  injection.
- I change the e-mail addresses to the amc-world.de domain when
  notifying about software errors.
Merge branch 'unstable' into dev

Conflicts:
	.classpath
	.settings/org.eclipse.core.resources.prefs
	.settings/org.grails.ide.eclipse.core.prefs
	application.properties
	grails-app/i18n/messages.properties
	grails-app/migrations/changelog.groovy
	grails-app/views/layouts/invoicingItems.gsp
Set package/bugfix

First, I set the default package in Config.groovy for all Groovy command
line commands.

Then, I fix a bug in UserTagLib which caused a NPE when retrieving the
font size before a user is logged in.
Implement storage of pricing items

Finally I implement a working code to store pricings and their items.
In the new code the client side no longer uses IDs for the items but
submits them in ascending order without gaps in the indices to the
server.  The server though first clears the list of previous items and
then adds all submitted items where each item is created using data
binding.

I fix the bug which prevent the pricing items from being stored
correctly.  It was caused by failed validation constraints (missing
name, quantity etc.).