### User Published Content
# Trimark Book Pricing
[mermaid docs](https://mermaid-js.github.io/mermaid/#/flowchart)
``` mermaid
graph LR
catalog[CATALOG<BR>trimark items<br/>in the catalog]
AQSKU[AQSKU<br>import base model<br>stock items for JDE] --> catalog
NO_AQ[NO_AQ<br>filter out all AQ products] --> catalog
%%cat_acc[CAT_ACC<br>aq accessories linked<br/>to stock item<br/>accessories in SKU] --> catalog
stock_cfg[STOCK_CFG<br>map stock items<br/>to aq config data] --> catalog
%% supplier[SUPPLIER<br>knowledge of the<br/>supplier per warehouse<br>in the product details] --> catalog
%% jde_cat[jde_cat<br>categorization from<br/>JDE attached to item] --> catalog
azure[AZURE<br>get azure catalog ready?] --> catalog
%% acc_inv[ACC_INV<br>allow accessories<br>to be imported<br>into AQSKU?] --> azure
%% link_acc[link acc<br>stock models<br>in the config] --> stock_cfg
%% config_ui[config_ui<br>call pricing api to get acc details] --> stock_cfg
config_output[CONFIG_OUTPUT<br>call pricing api<br>from projects<br>to get acc details in<br>the catalog item<br>to line item conversion] --> stock_cfg
config_output --> trimark_pricing[TRIMARK_PRICING]
config_output_est[3d] --> config_output
user_filter[USER_FILTER<br>force the user<br>data to be on<br>for all trimark users] --> NO_AQ
user_filter_est[1d] --> user_filter
classDef taskClass fill:lightgoldenrodyellow, stroke:goldenrod;
class acc_inv,config_ui,config_output,user_filter taskClass;
classDef estClass fill:LightCoral, stroke:FireBrick;
class user_filter_est,config_output_est estClass
```
``` mermaid
graph LR
projects[PROJECTS<br>changes to<br/>the projects] --> catalog[CATALOG]
cust_exportid[CUST_EXPORTID<br>allow users<br/>to enter the<br/>jde account #] --> projects
warehouse[WAREHOUSE<br>support the plants] --> projects
%% prj_supplier[PRJ_SUPPLIER<br>make the supplier<br/>and the mfr work together<br/> in a project] --> projects
choose_pricing[CHOOSE_PRICING<br>choose the project<br/>type for new<br/>projects, normal aq<br/>or distribution?] --> projects
new_prj_dialog[NEW_PRJ_DIALOG<br> add pricing type<br> to the new project window] --> choose_pricing
column_layouts[COLUMN_LAYOUTS<br> allow for distinct<br>column layouts for<br>each pricing model] --> choose_pricing
cust_num[CUST_NUM<br>use existing<br> customer num on<br> Address] --> cust_exportid
warehouse_list[WAREHOUSE_LIST<br> use the sku warehouse table] --> warehouse
warehouse_id[WAREHOUSE_ID<br> add an export_id<br>to sku's warehouse table] --> warehouse
default_warehouse[DEFAULT_WAREHOUSE<br>improve the default<br> warehouse to use the id] --> warehouse
cust_num_est[0d] --> cust_num
warehouse_list_est[0d] --> warehouse_list
warehouse_id_est[2d] --> warehouse_id
default_warehouse_est[2d] --> default_warehouse
new_prj_dialog_est[1w] --> new_prj_dialog
column_layouts_est[2d] --> column_layouts
classDef taskClass fill:lightgoldenrodyellow, stroke:goldenrod;
class cust_num,warehouse_list,warehouse_id,default_warehouse,new_prj_dialog,column_layouts taskClass;
classDef estClass fill:LightCoral, stroke:FireBrick;
class cust_num_est,warehouse_list_est,warehouse_id_est,default_warehouse_est,new_prj_dialog_est,column_layouts_est estClass
```
``` mermaid
graph LR
custom_cols[CUSTOM_COLS<br>book price, markdown,<br/>freight factor,<br/>commission code] --> projects
custom_fields[CUSTOM_FIELDS<br>a place to<br/>store the custom<br/>column data] --> custom_cols
custom_logic[CUSTOM_LOGIC<br>logic to<br/>manipulate the<br/>custom fields] --> custom_cols
custom_ui[CUSTOM_UI<br>add columns to spreadsheet] --> custom_cols
custom_ui_with_data[CUSTOM_UI_WITH_DATA<br>create a schema<br> definition for data driven<br> system with custom columns] --> custom_ui
custom_ui_types[CUSTOM_UI_TYPES<br>define/implement<br> the allowed custom<br> column types and logic] --> custom_ui_with_data
custom_export[CUSTOM_EXPORT<br>custom fields<br/>included in the<br/>json export] --> custom_logic
trimark_pricing[TRIMARK_PRICING<br>the trimark<br/>business rules to<br/>price an item] --> custom_logic
pricing_controller[PRICING_CONTROLLER<br>the code that<br/>connects AQ's pricing<br/>model to the<br/>trimark business<br/>rules] --> custom_logic
pricing_controller --> interface
pricing_port[PRICING_PORT<br> port trimark pricing<br> code over into<br> something we can use] --> trimark_pricing
pricing_load_sync[PRICING_LOAD_SYNC<br> load and sync<br> data needed to<br> our pricing server<br> for trimark pricing] --> trimark_pricing
pricing_speed[PRICING_SPEED<br> optimize the performance<br> of the data lookup,<br> pricing algorithim,<br> and the data<br> transport] --> trimark_pricing
pricing_security[PRICING_SECURITY<br> secure the<br> pricing api so<br> only trimark users<br> can access it] --> trimark_pricing
export_flag[EXPORT_FLAG<br>include flag in<br> the SQLCustomField to<br> indicate the field should<br> be included in<br> exports] --> custom_export
interface[INTERFACE<br>define the<br> web api interface<br> to get pricing] --> trimark_pricing
custom_fields_est[1d] --> custom_fields
export_flag_est[2d] --> export_flag
interface_est[1w] --> interface
custom_ui_with_data_est[1w] --> custom_ui_with_data
custom_ui_types_est[2w] --> custom_ui_types
pricing_port_est[1w] --> pricing_port
pricing_load_sync_est[1w] --> pricing_load_sync
pricing_speed_est[4d] --> pricing_speed
pricing_controller_est[2w] --> pricing_controller
classDef taskClass fill:lightgoldenrodyellow, stroke:goldenrod;
class custom_fields,export_flag,interface,custom_ui_with_data,custom_ui_types taskClass;
class pricing_port,pricing_load_sync,pricing_speed,pricing_controller taskClass;
classDef estClass fill:LightCoral, stroke:FireBrick;
class custom_fields_est,export_flag_est,interface_est,custom_ui_with_data_est,custom_ui_types_est estClass;
class pricing_port_est,pricing_load_sync_est,pricing_speed_est,pricing_controller_est estClass
```
## QUESTIONS
### ANSWERED?
- does book pricing need configs?
- yes?
### TO ASK
- do we need the new filtering features?
- stocking status
- branch
- custom brands for sku data
- filter supplier ranking (10 or 15 values)
- do we need a landed cost in the spreadsheet?
- should pricing always use the latest item categorizations or should it use the categorizations from when it was added?
- do the new fields need to work as validated fields or should the pricing model always override what is there?
- accessories in a config need jde details other than the item number and pricing?
- do we need stock status?
- if we don't, we don't need suppliers in the catalog
- do we need item type?
- if we don't
- we don't need suppliers in the projects since we won't be able to figure out the ship from address
- the freight calculator won't work correctly
- are AQ selling units ok for the pricing?
- aka do jde items always have a fixed selling unit?
### LATER
- should the user ever be able to search more than one branch plant and the primary plant?
## TODO
- make ForExport property on CustomFields (to support generic custom fields in Export)
- determine if Default Warehouse field in Projects will work for Branch Plant
- add concept of Project Type (at project creation?) and figure out what should change as a result of the type (obviously column layout)