Revision a908b2eb
Von Bernd Bleßmann vor 5 Monaten hinzugefügt
SL/Controller/Part.pm | ||
---|---|---|
$self->part($oldpart->clone_and_reset_deep);
|
||
$self->parse_form(use_as_new => 1);
|
||
$self->part->partnumber(undef);
|
||
|
||
if (!$::auth->assert('part_service_assembly_edit_prices', 'may_fail')) {
|
||
# No right to edit prices -> remove prices for new part.
|
||
$self->part->$_(undef) for qw(sellprice lastcost listprice);
|
||
}
|
||
|
||
$self->render_form(use_as_new => 1);
|
||
}
|
||
|
||
... | ... | |
|
||
my $params = delete($::form->{part}) || { };
|
||
|
||
if (!$::auth->assert('part_service_assembly_edit_prices', 'may_fail')) {
|
||
# No right to set or change prices, so delete prices from params.
|
||
delete $params->{$_} for qw(sellprice_as_number lastcost_as_number listprice_as_number);
|
||
|
||
# Todo: pricegroup prices, makemodel prices, customer prices?
|
||
}
|
||
|
||
delete $params->{id};
|
||
$self->part->assign_attributes(%{ $params});
|
||
$self->part->bin_id(undef) unless $self->part->warehouse_id;
|
templates/design40_webpages/part/_basic_data.html | ||
---|---|---|
</tr>
|
||
<tr>
|
||
<th>[% 'List Price' | $T8 %]</th>
|
||
<td>[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]</td>
|
||
<td>
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
|
||
[% ELSE %]
|
||
<span class="data wi-mediumsmall numeric">[% SELF.part.listprice_as_number %]</span>
|
||
[% END %]
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th>[% 'Sell Price' | $T8 %]</th>
|
||
<td>
|
||
[% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
|
||
[% ELSE %]
|
||
<span class="data wi-mediumsmall numeric">[% SELF.part.sellprice_as_number %]</span>
|
||
[% END %]
|
||
[% IF (SELF.part.is_assortment or SELF.part.is_assembly) %]
|
||
<span id="items_sellprice_sum_basic" class="data below wi-mediumsmall numeric">([% LxERP.format_amount(SELF.part.items_sellprice_sum, 2) %])</span>
|
||
[% END %]
|
||
... | ... | |
<th>[% 'Last Cost' | $T8 %]</th>
|
||
<td>
|
||
[%- UNLESS SELF.part.is_assembly %]
|
||
[% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, class='reformat_number numeric wi-mediumsmall', size=10) %]
|
||
[% ELSE %]
|
||
<span class="data wi-mediumsmall numeric">[% SELF.part.lastcost_as_number %]</span>
|
||
[% END %]
|
||
[% END %]
|
||
[% IF SELF.part.is_assortment || SELF.part.is_assembly %]
|
||
<span id="items_lastcost_sum_basic" class="data below wi-mediumsmall numeric">([% LxERP.format_amount(SELF.part.items_lastcost_sum, 2) %])</span>
|
templates/webpages/part/_basic_data.html | ||
---|---|---|
|
||
<tr>
|
||
<th align="right" nowrap="true">[% 'List Price' | $T8 %]</th>
|
||
<td>[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, size=11 class='reformat_number numeric') %]</td>
|
||
<td>
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.listprice_as_number", SELF.part.listprice_as_number, size=11 class='reformat_number numeric') %]</td>
|
||
[% ELSE %]
|
||
<span class="numeric">[% SELF.part.listprice_as_number %]</span>
|
||
[% END %]
|
||
</tr>
|
||
|
||
<tr >
|
||
<th align="right" nowrap="true">[% 'Sell Price' | $T8 %]</th>
|
||
<td>[% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, size=11, class='reformat_number numeric') %] [% IF (SELF.part.is_assortment or SELF.part.is_assembly) %] (<span id="items_sellprice_sum_basic">[% LxERP.format_amount(SELF.part.items_sellprice_sum, 2) %]</span>) [% END %]</td>
|
||
<td>
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.sellprice_as_number", SELF.part.sellprice_as_number, size=11, class='reformat_number numeric') %]
|
||
[% IF (SELF.part.is_assortment or SELF.part.is_assembly) %] (<span id="items_sellprice_sum_basic">[% LxERP.format_amount(SELF.part.items_sellprice_sum, 2) %]</span>) [% END %]
|
||
[% ELSE %]
|
||
<span class="numeric">[% SELF.part.sellprice_as_number %]</span>
|
||
[% END %]
|
||
</td>
|
||
</tr>
|
||
<tr>
|
||
<th align="right" nowrap="true">[% 'Last Cost' | $T8 %]</th>
|
||
<td>
|
||
[%- UNLESS SELF.part.is_assembly %]
|
||
[% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, size=11 class='reformat_number numeric') %]
|
||
[% IF (AUTH.assert('part_service_assembly_edit_prices', 'may_fail')) %]
|
||
[% L.input_tag("part.lastcost_as_number", SELF.part.lastcost_as_number, size=11 class='reformat_number numeric') %]
|
||
[% ELSE %]
|
||
<span class="numeric">[% SELF.part.lastcost_as_number %]</span>
|
||
[% END %]
|
||
[%- END %]
|
||
[% IF SELF.part.is_assortment || SELF.part.is_assembly %] (<span id="items_lastcost_sum_basic">[% LxERP.format_amount(SELF.part.items_lastcost_sum, 2) %]</span>) [% END %]
|
||
</td>
|
Auch abrufbar als: Unified diff
Artikelstamm: Listen-, Verkaufs- und Einkaufspreis nicht ändern können, …
wenn kein Recht.
Preisfelder in der Maske sind nicht editierbar und Preise werden nicht
aus der Form geholt. Preise des vorhandenen Objekts werden nicht überschrieben.