Sales Type

 

Currently, the existing mechanisms to steer revenue to revenue accounts  allows assignment by SITE, CUSTOMER TYPE, and PRODUCT CATEGORY.

If, however, an organization has a notion of 'Sale Type', whereby the context of a Sale drives revenue to differing GL accounts, the current system falls short. For example, an organizaiton might book revenue differently depending on whether a sale is "in network" or "out of network", or occurs at a retail location or on the phone, etc.
 
Using an automotive example, this is similar to going to a dealership as a private person and buying a part vs. being Joe's Garage and buying the same part. The Joe's Garage sale might end up in a different GL account than the sale to the private person/retail sale. They don't create a duplicate part number or customer number. They just specify which type of sale it was – Retail Customer or Partner...
 
If the organization books revenue based on geographic sales – Regions, Shipping Zones, Counties, Zip Codes, IP Address, etc. Then, it would follow that re-purposing the existing construct of Shipping Zone as a criteria to sales account assignments would be generally useful.
 
Solution:
Extending the Sales Account Assignments to make use of the 'Sale Type' and 'Region' adds two layers of flexibility that can make the system more useful in a variety of contexts.
 
Including 'Sale Type' and 'Region' on the Sales Account Assignments screen would allow the following sample scenario:
 
On the Sales Accout Assignments screen, define three different 'Sale Type' to be used at three different locations. The locations would be based on the 'Region' (sales offices, sales areas, geographic reference) where sales revenue, costs, etc. are to be tracked for each of these types of sales. 
 
Re-purposing existing functionality:
 
On the Sales Order screen, re-purpose the 'Originated By' to be 'Sale Type'. This is currently hard-coded in the GUI and is 'information only'.
 
Sale Type (Originated By):
In-network sale
Out-of-network sale
Spot Sale
Internet
On the Ship-To screen, re-purpose 'Shipping Zone' for use as 'Region', modify existing cgms.region related logic to use the core shipping zone table. - public.shipzone. Shipping Zone is tied to a Ship-To Address. Once these are set up in the address table, the likelyhood of a customer service agent selecting the wrong Shipping Zone (REGION) is eliminated, because they're only going to be able to select the Ship To (Terminal) that is available at a Port. And these relationships should be setup prior.
 
Shipping Zones:
NAM – North America
SEA – South East Asia
BSM – Black Sea Mediterranean
 
ORIGINATED BY = SALE TYPE
SHIPPING ZONE = REGION
 
On the Sales Account Assignments setup screen Originated By/SaleType and Shipping Zone/Region can now drive assignments:
 
USA, In-network sale in USA
USA, Out-of-network sale in USA
USA, Spot Sale in USA
 
SEA, In-network sale in Asia 
SEA, Out-of-network sale in Asia
SEA, Spot Sale in Asia
 
EUN, In-network sale in Northern Europe
EUN, Out-of-network sale in Northern Europe
EUN, Spot Sale in Northern Europe
 
The SalesOrderItem screen 'Originated By' will be modified to display any Sales Types that are relevant to the Site on the Sales Order Header. So a Sales Order at Site 4 would display the following options for 'Originated By / Sales Type':
 
In-network sale in Asia
Out-of-network sale in Asia
Spot Sale in Asia
 
 
Scope of Changes (preliminary):
 
1. Sales Assignments screen:
Add 'Sale Type' and 'Shipping Zone' as a criteria for the mappings. The matrix now becomes SITE, CUSTOMER TYPE, PRODUCT CATEGORY, SHIPPING ZONE,  SALE TYPE.
 
2. Sales Order Header:
Use the Originated By field on the SO Header to store Sale Type 
Change label 'Originated By' to 'Sale Type' 
Populate Sale Type combobox with saletype_id and saletype_name 
change sSave function for cohead_origin to insert saletype_id instead of orginated_by character.
Change field type of cohead_origin from char to integer.
 
3. Replace hard-coded Originated By values with user-defined Sale Type values
New table “saletype”
Screen to manage list of Sale Types
Screen to add/edit Sale Type
Script to insert “Customer” “Internet” and “Sales Rep” into saletype table, replace text entries in cohead_origin with saletype_id
 
4.  Invoice Header:
Add Sale Type field to Invc Header screen
Add invchead_origin to invchead table
Sales Type on cohead needs to carried over to invchead.
 
5. Shipping Zone replaces Region:
Remove “region” table and update  screens, scripts and functions to use core “shipzone” table.
Shipping Zone is set on the Shipto address, which equates to the Terminal in CGMS 
SO → SHIPTO (Terminal) → SHIPPING ZONE (Region)
 
6. shipshipment() function changes:
Changes to logic for selecting revenue account mapping – Possibly no change needed.
 
7. postinvoice() function changes:
Ensure that logic is carried through to proper accounts as configured.
 
8. Sales Analysis/History report/display changes:
Add a selection for Sales Type
Add selection for Region (Shipping Zone)
Benefits:
In the context of Chemoil Global Marine, this requires that COMPANY be configured as CGMS. The PROFIT CENTER becomes the various companies (USA, NTH, SNG, KOR, HOK, PAN, GER, TUR) and the fourth position in the GL can be used for REGION (EUN, SEA, NAM, SAM, etc) and for other things.
 
Simplifies setup for defining these.
 
To reduce the chance of error in selecting the various Sales Categories (Sales Types) the listing can be filtered to only display those that are joined to a SITE (see example above).
 
For CGMS we can define 3 Sales Type for each PROFIT CENTER = 3 x 8 = 24 total Categories. 3 Categories would be assigned to each selling SITE to achieve the proper mappings to the CGMS PROFIT CENTER. The goal for filtering is to get the sales rep to only deal with the ones for their selling site.
 
Ability to tie a Region, Port, and Terminal, and other things to a Sales Type. 
 
Spot, Contract,Network, non-Network Sales reporting at the GL level, or other available reporting.
 
Supports the operational and reporting goals of Chemoil Global Marine.
 
Limitations:
While this does not address 'True' Multi-Company, it is a step in that direction.
This does not address changes to A/P.
 
Additional requirements
1. If Sales Type is used in any records, make the salestype undeletable.
2. Add an "Active" checkbox to the salestype screen. Instead of deleting Sales Types that have been used, the user can deactivate.
3. Deactivated salestypes should not be choosable on the Sales Acct Assignments screen.
 
Future enhancements
1. Modify the Enhanced Commissions package to incorporate Sales Type in assigning Commission schedules.

 

mead