Revision 9af3ce1c
Von Bernd Bleßmann vor fast 9 Jahren hinzugefügt
SL/Controller/Order.pm | ||
---|---|---|
$self->js->hide('#shipto_row');
|
||
}
|
||
|
||
$self->order->taxzone_id($self->order->$cv_method->taxzone_id);
|
||
|
||
if ($self->order->is_sales) {
|
||
$self->order->taxincluded(defined($self->order->$cv_method->taxincluded_checked)
|
||
? $self->order->$cv_method->taxincluded_checked
|
||
: $::myconfig{taxincluded_checked});
|
||
}
|
||
|
||
$self->order->payment_id($self->order->$cv_method->payment_id);
|
||
$self->order->delivery_term_id($self->order->$cv_method->delivery_term_id);
|
||
|
||
$self->_recalc();
|
||
|
||
$self->js
|
||
->replaceWith('#order_cp_id', $self->build_contact_select)
|
||
->replaceWith('#order_shipto_id', $self->build_shipto_select)
|
||
->val('#order_taxzone_id', $self->order->taxzone_id)
|
||
->val('#order_payment_id', $self->order->payment_id)
|
||
->val('#order_delivery_term_id', $self->order->delivery_term_id)
|
||
->val('#order_intnotes', $self->order->$cv_method->notes)
|
||
->focus('#order_' . $self->cv . '_id')
|
||
->render($self);
|
||
->replaceWith('#order_cp_id', $self->build_contact_select)
|
||
->replaceWith('#order_shipto_id', $self->build_shipto_select)
|
||
->val( '#order_taxzone_id', $self->order->taxzone_id)
|
||
->val( '#order_taxincluded', $self->order->taxincluded)
|
||
->val( '#order_payment_id', $self->order->payment_id)
|
||
->val( '#order_delivery_term_id', $self->order->delivery_term_id)
|
||
->val( '#order_intnotes', $self->order->$cv_method->notes)
|
||
->focus( '#order_' . $self->cv . '_id');
|
||
|
||
$self->_js_redisplay_amounts_and_taxes;
|
||
$self->js->render();
|
||
}
|
||
|
||
sub action_add_item {
|
||
... | ... | |
sub _js_redisplay_amounts_and_taxes {
|
||
my ($self) = @_;
|
||
|
||
if (scalar @{ $self->{taxes} }) {
|
||
$self->js->show('#taxincluded_row_id');
|
||
} else {
|
||
$self->js->hide('#taxincluded_row_id');
|
||
}
|
||
|
||
if ($self->order->taxincluded) {
|
||
$self->js->hide('#subtotal_row_id');
|
||
} else {
|
||
$self->js->show('#subtotal_row_id');
|
||
}
|
||
|
||
$self->js
|
||
->html('#netamount_id', $::form->format_amount(\%::myconfig, $self->order->netamount, -2))
|
||
->html('#amount_id', $::form->format_amount(\%::myconfig, $self->order->amount, -2))
|
||
... | ... | |
|
||
my $rows_as_html;
|
||
foreach my $tax (sort { $a->{tax}->rate cmp $b->{tax}->rate } @{ $self->{taxes} }) {
|
||
$rows_as_html .= $self->p->render('order/tabs/_tax_row', TAX => $tax);
|
||
$rows_as_html .= $self->p->render('order/tabs/_tax_row', TAX => $tax, TAXINCLUDED => $self->order->taxincluded);
|
||
}
|
||
return $rows_as_html;
|
||
}
|
||
... | ... | |
$self->{taxes} = [];
|
||
foreach my $tax_chart_id (keys %{ $pat{taxes} }) {
|
||
my $tax = SL::DB::Manager::Tax->find_by(chart_id => $tax_chart_id);
|
||
push(@{ $self->{taxes} }, { amount => $pat{taxes}->{$tax_chart_id},
|
||
tax => $tax });
|
||
|
||
my @amount_keys = grep { $pat{amounts}->{$_}->{tax_id} == $tax->id } keys %{ $pat{amounts} };
|
||
push(@{ $self->{taxes} }, { amount => $pat{taxes}->{$tax_chart_id},
|
||
netamount => $pat{amounts}->{$amount_keys[0]}->{amount},
|
||
tax => $tax });
|
||
}
|
||
|
||
pairwise { $a->{linetotal} = $b->{linetotal} } @{$self->order->items}, @{$pat{items}};
|
templates/webpages/order/tabs/_tax_row.html | ||
---|---|---|
[%- USE L %]
|
||
|
||
<tr class="tax_row">
|
||
<th align="right">[%- TAX.tax.taxdescription %] [% TAX.tax.rate_as_percent %]%</th>
|
||
<th align="right">[%- IF TAXINCLUDED %][%- 'Including' | $T8 %] [%- END %][%- TAX.tax.taxdescription %] [% TAX.tax.rate_as_percent %]%</th>
|
||
<td align="right">[%- LxERP.format_amount(TAX.amount, 2, 0) %]</td>
|
||
</tr>
|
||
[%- IF TAXINCLUDED %]
|
||
<tr class="tax_row">
|
||
<th align="right">[%- 'Net amount' | $T8 %]</th>
|
||
<td align="right">[%- LxERP.format_amount(TAX.netamount, 2, 0) %]</td>
|
||
</tr>
|
||
[%- END%]
|
templates/webpages/order/tabs/basic_data.html | ||
---|---|---|
|
||
<tr>
|
||
<th align="right">[% 'Steuersatz' | $T8 %]</th>
|
||
<td>[% L.select_tag('order.taxzone_id', SELF.all_taxzones, default=SELF.order.taxzone_id, title_key='description', style='width: 300px') %]</td>
|
||
<td>[% L.select_tag('order.taxzone_id', SELF.all_taxzones, default=SELF.order.taxzone_id, title_key='description', style='width: 300px', class='recalc') %]</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
... | ... | |
|
||
<td align="right">
|
||
<table>
|
||
[%- IF NOT taxincluded %]
|
||
<tr>
|
||
<tr id="taxincluded_row_id" [%- IF !SELF.taxes.size %]style="display:none"[%- END %]>
|
||
<td align=right colspan="2">
|
||
<label for="order.taxincluded"><b>[% 'Tax Included' | $T8 %]</b></label>
|
||
[% L.yes_no_tag('order.taxincluded', SELF.order.taxincluded, class='recalc') %]
|
||
</td>
|
||
</tr>
|
||
|
||
<tr id="subtotal_row_id" [%- IF SELF.order.taxincluded %]style="display:none"[%- END %]>
|
||
<th align="right">[%- 'Subtotal' | $T8 %]</th>
|
||
<td align="right">
|
||
[%- L.div_tag(SELF.order.netamount_as_number, id='netamount_id') %]
|
||
</td>
|
||
</tr>
|
||
[%- END %]
|
||
[%- FOREACH tax = SELF.taxes %]
|
||
[%- PROCESS order/tabs/_tax_row.html TAX=tax %]
|
||
[%- PROCESS order/tabs/_tax_row.html TAX=tax TAXINCLUDED=SELF.order.taxincluded %]
|
||
[%- END %]
|
||
<tr id="amount_row_id">
|
||
<th align="right">[%- 'Total' | $T8 %]</th>
|
||
... | ... | |
|
||
<script type='text/javascript'>
|
||
function reload_cv_dependend_selections() {
|
||
$.post("controller.pl", { 'action': 'Order/customer_vendor_changed',
|
||
'cv_id': function(){ return $('#order_[%- cv_id%]').val() },
|
||
'type': function(){ return $('#type').val() },
|
||
}, kivi.eval_json_result);
|
||
var data = $('#order_form').serialize();
|
||
data += '&action=Order/customer_vendor_changed';
|
||
|
||
$.post("controller.pl", data, kivi.eval_json_result);
|
||
}
|
||
|
||
function add_item() {
|
Auch abrufbar als: Unified diff
Auftrags-Controller: Option für "Steuer im Preis inbegriffen"