X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/kivitendo-erp.git/blobdiff_plain/7801c6c2e0841eb9fbc404f9970e19918ac80c44..0e04ddd7e3ff23d051838617844698a39f680969:/SL/PriceSource.pm diff --git a/SL/PriceSource.pm b/SL/PriceSource.pm index 8df73ce45..831f68ebc 100644 --- a/SL/PriceSource.pm +++ b/SL/PriceSource.pm @@ -137,7 +137,7 @@ Which one is the "best"? =head1 GUARANTEES -To ensure price source prices are comprehensible and reproucible, some +To ensure price source prices are comprehensible and reproducible, some invariants are guaranteed: =over 4 @@ -149,8 +149,12 @@ and it is up to the user to change a price. =item 2. -If a price is set from a source, it is read only. A price edited manually is by -definition not a sourced price. +If a price is set from a source then the system will try to prevent the user +from messing it up. By default this means the price will be read-only. +Implementations can choose to make prices editable, but even then deviations +from the calculatied price will be marked. + +A that is not set from a source will not have any of this. =item 3. @@ -247,7 +251,7 @@ when no record is available, such as calculation the worth of assembly rows. A possible solution is to either split price sources into simple and complex ones (where the former do not require records). -Another would be to have default values for the inpout normally taken from +Another would be to have default values for the input normally taken from records (like qty defaulting to 1). A last one would be to provide an alternative input channel for needed @@ -256,7 +260,7 @@ properties. =item * Discount sources were implemented as a copy of the prices with slightly -different semantics. Need to do a real design. A requirement is, that a sinle +different semantics. Need to do a real design. A requirement is, that a single source can provide both prices and discounts (needed for price_rules). =item * @@ -280,8 +284,31 @@ benefits from sales, or general ALLOW, DENY order calculation. =item * -Composing price sources are disallowed for clarity, but all price sources need -to be aware of units. This is madness. +Composing price sources is disallowed for clarity, but all price sources need +to be aware of units and price_factors. This is madness. + +=item * + +The current implementation of lastcost is useless. Since it's one of the +master_data prices it will always compete with listprice. But in real scenarios +the listprice tends to go up, while lastcost stays the same, so lastcost +usually wins. Lastcost could be lower priority, but a better design would be +nice. + +=item * + +Guarantee 1 states that price sources will never change prices on their own. +Further testing in the wild has shown that this is desirable within a record, +but not when copying items from one record to another within a workflow. + +Specifically when changing from sales to purchase records prices don't make +sense anymore. The guarantees should be updated to reflect this and +transposition guidelines should be documented. + +=item * + +Prices were originally planned as a context element rather than a modal popup. +It would be great to have this now with better framework. =back