[ http://issues.apache.org/jira/browse/OFBIZ-416?page=comments#action_12447946 ] David Garrett commented on OFBIZ-416: -------------------------------------
Thanks Eriks, Yes I agree. It would be nice to combine these. I expect to do this however ... the implementation is coming from a previous implementation of GST. I am introducing a parallel VAT implementation (along with a lot of restructure and improvement). There are issues for me such as UI labels that I have not yet done the changes for. These will come later. I expect these will be associated with the TaxAuthority. eg TaxAuth: geoId= AUS, paytyId=ATO will have UI labels such as InvoiceLabel= Tax Invoice, InvoiceVatSummary=GST Included in Invoice ...etc whereas TaxAuth: geoId= GBR, paytyId=HMRC will have UI labels such as (I don't know what it should be but it is likely to be different) InvoiceLabel=UK VAT Invoice, InvoiceVatSummary=VAT Included in Invoice ...etc On the point of prices incVAT exVAT I believe this is seperate and calcuations are centralised. The final objective is to REMOVE lines like the following from ftl <#if orderItemAdjustment.orderAdjustmentTypeId == "SALES_TAX" || orderItemAdjustment.orderAdjustmentTypeId == "GST_TAX" || orderItemAdjustment.orderAdjustmentTypeId == "VAT_TAX"> with eg <#if Static["org.ofbiz.accounting.tax.UtilTax"].isTaxAdjustment(orderItemAdjustment) > I am trying to transition smoothly from my GST to a generalised VAT without loosing a working system out of the box for my requirements. I have been doing little else but work on this over the last few weeks. Maybe today/tomorrow I will have a better implementation to upload which better deals with orderItem adjustments. I have been trying for MINIMAL change to the existing implementation. There have been many implementation strategies I have tried to get what I think is the cleanest solution. Each one has side effects with varying levels of ugliness and complexity. > Preliminary implementation of GST/VAT for review > ------------------------------------------------ > > Key: OFBIZ-416 > URL: http://issues.apache.org/jira/browse/OFBIZ-416 > Project: OFBiz (The Open for Business Project) > Issue Type: Improvement > Components: accounting, ecommerce, framework, order, product > Affects Versions: SVN trunk > Reporter: David Garrett > Priority: Minor > Attachments: vatpatch.zip > > > I have attached a patch against ofbiz SVN rev 465130 - 18 Oct 06. > The purpose is to show progress toward a GST/VAT implementations and > importantly to get early feedback. > > The implementation is done in ecommerce and concentrates primarily on the > cart, the adjustments and creating an order. (More to come.) > > The display of the cart and order contents are done to varying degrees. In > addition a few of the promotions have been tested primarily GWP and order > discount seem OK. I have not got to the Invoice yet. > > The approach taken is to base the implementation on the exTax price. I have > tried and looked at both. There are pros and cons for working based on incTax > or exTax pricing .... I believe that exTax is probably better. The display > price is used but reference to promotions etc I have based on > basePrice/unitPrice. > PLEASE NOTE: the implementation is NOT ready for production and has a massive > amount of notes and comments to myself. These will be fixed and cleaned up > shortly. The reason for the release at this stage is that it was starting to > generate a little bit of discussion off the list. > Implementation > ============== > The demo data can primarily be seen from the ecommerce/data ... the AU files. > See the questions below. > The key definitions are as follows: > <TaxAuthorityRateType taxAuthorityRateTypeId="GST_TAX" description="Goods > and Services Tax"/> > <TaxAuthorityRateType taxAuthorityRateTypeId="VAT_TAX" description="Value > Added Tax"/> > > <OrderAdjustmentType description="GST Tax" hasTable="N" > orderAdjustmentTypeId="GST_TAX" parentTypeId=""/> > <OrderAdjustmentType description="VAT Tax" hasTable="N" > orderAdjustmentTypeId="VAT_TAX" parentTypeId=""/> > <OrderAdjustmentType description="Gst Tax on Adjustment" hasTable="N" > orderAdjustmentTypeId="OTHER_GST_TAX" parentTypeId=""/> > <OrderAdjustmentType description="VAT Tax on Adjustment" hasTable="N" > orderAdjustmentTypeId="OTHER_VAT_TAX" parentTypeId=""/> > <OrderAdjustmentType description="Gst Tax on Shipping" hasTable="N" > orderAdjustmentTypeId="SHIPPING_GST_TAX" parentTypeId=""/> > <OrderAdjustmentType description="VAT Tax on Shipping" hasTable="N" > orderAdjustmentTypeId="SHIPPING_VAT_TAX" parentTypeId=""/> > <TaxAuthorityRateProduct taxAuthorityRateSeqId="9050" taxAuthGeoId="AUS" > taxAuthPartyId="AUS_ATO" taxAuthorityRateTypeId="GST_TAX" > productStoreId="9000AU" > productCategoryId="" titleTransferEnumId="" minItemPrice="0.00" > minPurchase="0.00" taxShipping="Y" taxPercentage="10" > defaultOrderAdjTypeId="GST_TAX" > shippingOrderAdjTypeId="SHIPPING_GST_TAX" otherOrderAdjTypeId="OTHER_GST_TAX" > fromDate="2001-05-13 00:00:00.001" thruDate="" > description="Australian GST Tax"/> > The GST or VAT is recorded separately for each of the key types the > item->VAT_TAX the SHIPPING_ADJUSTMENT->SHIPPING_VAT_TAX and the "Other" > Adjustments->OTHER_VAT_TAX > Other Adjustments attached to an item still require further testing. > ### The patch defaults to mysql. You may need to change this/ > > Testing > ======= > The easiest test is to add productId= GST10 to the cart and create an order > (either ecommerce or ordermgr) ... the display starts OK then not fully > implemented (this is not the problem I am chasing at the moment). As best I > can tell the cart is being created correctly with the correct > OrderAdjustments. OrderItemAdjustments are not all functioning correctly at > the moment. > > Next order 11 x GST10 ... get a free gift ... seems to work > > Next order 1 x GST10PROMO (in PROMOTIONS category) ... price rules seem to > work OK > > Problem ... SPECIAL_PROMOTION ... add code 9021 ... problem comes from the > pricing basis in getSubTotalForPromotions(...) which uses > getDisplayItemSubTotal > > > Questions > ========= > ** Can I use this patch to implement VAT/GST now? > No. Not yet. This is a VERY early release to show the direction being taken. > ** Why are there so many changes? What is all this AU and GST stuff. > To test the GST/VAT I have created a store(9000AU) which implements the > Australian(AU) implementation of VAT called Goods & Services Tax(GST). In > order to achieve this there is a lot of demo data that has been created which > implements ProductPrices, Promotions, Payments, UiLabels etc. > The WebSiteId in web.xml is not changed at the moment and the default store > is overwritten as 9000AU. > Other TaxAuthorities may also be created later. > ** Isn't GST just another VAT? Why not just implement VAT? > Yes this is correct. This is probably the way things will go ... with > customisations based on taxAuthGeoId. HOWEVER I do need things like "GST Tax" > type descriptions on the orderItem display. So in the short term this GST > implementation will remain. Call me selfish but I want it to work out of the > box for me. > Next Steps > ========== > * Address any feedback > * Get the cart to order process working particulary for the orderItem > adjustments and promotions > * The cart internally seems correct So ... get the display of the data > showing what the user would expect. > * Focus on getting VAT into the Invoice > * Address any feedback > Hope it helps. All feedback/criticism welcome. > > David G -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
