Revision 34cc5469
Von Sven Schöling vor mehr als 7 Jahren hinzugefügt
SL/PriceSource.pm | ||
---|---|---|
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.
|
||
A price that is not set from a source will not have any of this.
|
||
|
||
=item 3.
|
||
|
||
... | ... | |
=head1 STRUCTURE
|
||
|
||
Price sources are managed by this package (L<SL::PriceSource>), and all
|
||
external access should be by using it's interface.
|
||
external access should be by using its interface.
|
||
|
||
Each source is an instance of L<SL::PriceSource::Base> and the available
|
||
implementations are recorded in L<SL::PriceSource::ALL>. Prices and discounts
|
||
returned by interface methods are instances of L<SL::PriceSource::Price> and
|
||
L<SL::PriceSource::Discout>.
|
||
L<SL::PriceSource::Discount>.
|
||
|
||
Returned prices and discounts should be checked for entries in C<invalid> and
|
||
C<missing>, see documentation in their classes.
|
||
... | ... | |
|
||
=item C<best_price>
|
||
|
||
Attempts to get the best available price. returns L<empty_price> if no price is found.
|
||
Attempts to get the best available price. returns L<empty_price> if no price is
|
||
found.
|
||
|
||
=item C<best_discount>
|
||
|
||
Attempts to get the best available discount. returns L<empty_discount> if no discount is found.
|
||
Attempts to get the best available discount. returns L<empty_discount> if no
|
||
discount is found.
|
||
|
||
=item C<empty_price>
|
||
|
||
A special empty price, that does not change the previously entered price, and
|
||
A special empty price that does not change the previously entered price and
|
||
opens the price field to manual changes.
|
||
|
||
=item C<empty_discount>
|
||
|
||
A special empty discount, that does not change the previously entered discount, and
|
||
opens the discount field to manual changes.
|
||
A special empty discount that does not change the previously entered discount
|
||
and opens the discount field to manual changes.
|
||
|
||
=back
|
||
|
||
... | ... | |
sense anymore. The guarantees should be updated to reflect this and
|
||
transposition guidelines should be documented.
|
||
|
||
The previously mentioned linked prices can emulated by allowing price sources
|
||
to set a new price when changing to a new record in the workflow. The decision
|
||
about whether a price is eligable to be set can be suggested by the price
|
||
source implementation but is ultimately up to the surrounding framework, which
|
||
can make this configurable.
|
||
|
||
=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.
|
||
|
||
=item *
|
||
|
||
Large records (30 positions or more) in combination with complicated price
|
||
sources run into n+1 problems. There should be an extra hook that allows price
|
||
source implementations to make bulk calculations before the actual position loop.
|
||
|
||
=back
|
||
|
||
=head1 AUTHOR
|
Auch abrufbar als: Unified diff
PriceSource doku