This commit is contained in:
2021-03-04 17:42:16 +00:00
parent 2471f69e9b
commit b3e0f8358f

View File

@@ -185,6 +185,49 @@ todo: Changes to allow in place updates of server:
CURRENTLY DOING: Contract
Contract general notes / changes
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Overview
V7 contracts did this:
Limit rates that can be selected
apply a discount to all parts selected for that contract in effect
V8 contracts need to do this:
Contracts are never tied directly to an object they affect other than the Customer or Headoffice with a foreign key link
workorders should never be reliant on the existance of a contract but rather just have a contract applied to them for example
Need rates picklists to support criteria of contract rates only for selection
perhaps server supplies which contract id is in effect and limit to rates
then client uses variant to say "limittocontractid:xx" when fetching rate lists or other contract restricted items
Markup / Markdown / Discount
v7 can only have discount % but we now want:
Discount % off price
Markup on cost to price
Markup on price
Contract affected fields
in a wo or other object a contract should only affect adjacent fields, never the primary field like price or cost
In this way a contract can be rescinded off a workorder when a customer is changed (required feature) and it's easy to update it
without breaking anything
Contract applied field
objects with contract that affects then should seperately have a contract name field for contract applie
this supports not directly linking the contract but rather seeing it as an object that is applied to another object,
not linked to it. Can apply, unapply, delete contract and no affect on primary wo or other object
TAGS
in v7 contracts could be set to apply to all parts or none
in v8 need finer control so:
Contract needs selectable tags for any aspect to apply
Discount / markup etc parts / rates
So, in practice like in v7 you set a discount for all parts but then you can also on the same line restrict it to specific part tags and select tags right there
The server then applies the discount based on whether the parts are tagged or not if that's the case in it's bizactions
then the picklist can be supplied the variant for contract id which pulls the contract, finds the tags and then populates the picklist with the extra tag search