Revision 0fa80981
Von Moritz Bunkus vor mehr als 7 Jahren hinzugefügt
bin/mozilla/ap.pl | ||
---|---|---|
38 | 38 |
|
39 | 39 |
use SL::AP; |
40 | 40 |
use SL::FU; |
41 |
use SL::GL; |
|
41 | 42 |
use SL::IR; |
42 | 43 |
use SL::IS; |
43 | 44 |
use SL::ReportGenerator; |
... | ... | |
101 | 102 |
create_links(dont_save => 1); |
102 | 103 |
$form->{transdate} = $form->{initial_transdate}; |
103 | 104 |
|
105 |
if ($form->{vendor_id}) { |
|
106 |
my $last_used_ap_chart = SL::DB::Vendor->load_cached($form->{vendor_id})->last_used_ap_chart; |
|
107 |
$form->{"AP_amount_chart_id_1"} = $last_used_ap_chart->id if $last_used_ap_chart; |
|
108 |
} |
|
109 |
|
|
104 | 110 |
&display_form; |
105 | 111 |
|
106 | 112 |
$main::lxdebug->leave_sub(); |
... | ... | |
171 | 177 |
$form->{$_} = $saved{$_} for keys %saved; |
172 | 178 |
$form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}"; |
173 | 179 |
$form->{rowcount} = 1; |
180 |
$form->{AP_chart_id} = $form->{acc_trans} && $form->{acc_trans}->{AP} ? $form->{acc_trans}->{AP}->[0]->{chart_id} : $form->{AP_links}->{AP}->[0]->{chart_id}; |
|
174 | 181 |
|
175 | 182 |
# build the popup menus |
176 | 183 |
$form->{taxincluded} = ($form->{id}) ? $form->{taxincluded} : "checked"; |
... | ... | |
232 | 239 |
|
233 | 240 |
$::form->{invoice_obj} = SL::DB::PurchaseInvoice->new(id => $::form->{id})->load if $::form->{id}; |
234 | 241 |
|
242 |
$form->{initial_focus} = !($form->{amount_1} * 1) ? 'vendor' : 'row_' . $form->{rowcount}; |
|
243 |
|
|
235 | 244 |
$form->{title_} = $form->{title}; |
236 | 245 |
$form->{title} = $form->{title} eq 'Add' ? $locale->text('Add Accounts Payables Transaction') : $locale->text('Edit Accounts Payables Transaction'); |
237 | 246 |
|
... | ... | |
302 | 311 |
} |
303 | 312 |
|
304 | 313 |
my %charts; |
305 |
my $taxchart_init;
|
|
314 |
my $default_ap_amount_chart_id;
|
|
306 | 315 |
|
307 | 316 |
foreach my $item (@{ $form->{ALL_CHARTS} }) { |
308 | 317 |
if ( grep({ $_ eq 'AP_amount' } @{ $item->{link_split} }) ) { |
309 |
if ( $taxchart_init eq '' ) { |
|
310 |
$taxchart_init = $item->{tax_id}; |
|
311 |
} |
|
318 |
$default_ap_amount_chart_id //= $item->{id}; |
|
312 | 319 |
|
313 |
push(@{ $form->{ALL_CHARTS_AP_amount} }, $item); |
|
314 |
} |
|
315 |
elsif ( grep({ $_ eq 'AP' } @{ $item->{link_split} }) ) { |
|
316 |
push(@{ $form->{ALL_CHARTS_AP} }, $item); |
|
317 |
} |
|
318 |
elsif ( grep({ $_ eq 'AP_paid' } @{ $item->{link_split} }) ) { |
|
320 |
} elsif ( grep({ $_ eq 'AP_paid' } @{ $item->{link_split} }) ) { |
|
319 | 321 |
push(@{ $form->{ALL_CHARTS_AP_paid} }, $item); |
320 | 322 |
} |
321 | 323 |
|
... | ... | |
324 | 326 |
|
325 | 327 |
my %taxcharts = (); |
326 | 328 |
foreach my $item (@{ $form->{ALL_TAXCHARTS} }) { |
327 |
my $key = $item->{id} .'--'. $item->{rate}; |
|
328 |
|
|
329 |
if ( $taxchart_init eq $item->{id} ) { |
|
330 |
$taxchart_init = $key; |
|
331 |
} |
|
332 |
|
|
333 | 329 |
$taxcharts{$item->{id}} = $item; |
334 | 330 |
} |
335 | 331 |
|
... | ... | |
337 | 333 |
$follow_up_vc =~ s/--.*?//; |
338 | 334 |
my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)"; |
339 | 335 |
|
340 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/common.js"></script>|; |
|
341 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/show_vc_details.js"></script>|; |
|
342 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/follow_up.js"></script>|; |
|
343 |
$form->{javascript} .= qq|<script type="text/javascript" src="js/kivi.Draft.js"></script>|; |
|
336 |
$::request->layout->add_javascripts("autocomplete_chart.js", "show_vc_details.js", "show_history.js", "follow_up.js", "kivi.Draft.js", "kivi.GL.js"); |
|
337 |
my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local; |
|
338 |
my $first_taxchart; |
|
344 | 339 |
|
345 | 340 |
$form->header(); |
346 | 341 |
|
... | ... | |
350 | 345 |
$form->{"amount_$i"} = $form->format_amount(\%myconfig, $form->{"amount_$i"}, 2); |
351 | 346 |
$form->{"tax_$i"} = $form->format_amount(\%myconfig, $form->{"tax_$i"}, 2); |
352 | 347 |
|
353 |
my $selected_accno_full; |
|
354 |
my ($accno_row) = split(/--/, $form->{"AP_amount_$i"}); |
|
355 |
my $item = $charts{$accno_row}; |
|
356 |
$selected_accno_full = "$item->{accno}--$item->{tax_id}"; |
|
348 |
my ($default_taxchart, $taxchart_to_use); |
|
349 |
my $amount_chart_id = $form->{"AP_amount_chart_id_$i"} || $default_ap_amount_chart_id; |
|
350 |
my $chart_has_changed = $::form->{"previous_AP_amount_chart_id_$i"} && ($amount_chart_id != $::form->{"previous_AP_amount_chart_id_$i"}); |
|
357 | 351 |
|
358 |
my $selected_taxchart = $form->{"taxchart_$i"}; |
|
359 |
my ($selected_accno, $selected_tax_id) = split(/--/, $selected_accno_full); |
|
360 |
my ($previous_accno, $previous_tax_id) = split(/--/, $form->{"previous_AP_amount_$i"}); |
|
361 |
|
|
362 |
if ($previous_accno && |
|
363 |
($previous_accno eq $selected_accno) && |
|
364 |
($previous_tax_id ne $selected_tax_id)) { |
|
365 |
my $item = $taxcharts{$selected_tax_id}; |
|
366 |
$selected_taxchart = "$item->{id}--$item->{rate}"; |
|
352 |
foreach my $item ( GL->get_active_taxes_for_chart($amount_chart_id, $transdate) ) { |
|
353 |
my $key = $item->id . "--" . $item->rate; |
|
354 |
$first_taxchart //= $item; |
|
355 |
$default_taxchart = $item if $item->{is_default}; |
|
356 |
$taxchart_to_use = $item if $key eq $form->{"taxchart_$i"}; |
|
367 | 357 |
} |
368 | 358 |
|
369 |
$selected_taxchart = $taxchart_init unless ($form->{"taxchart_$i"}); |
|
370 |
|
|
371 |
$form->{'selected_accno_full_'. $i} = $selected_accno_full; |
|
372 |
|
|
373 |
$form->{'selected_taxchart_'. $i} = $selected_taxchart; |
|
359 |
$taxchart_to_use = $default_taxchart // $first_taxchart if $chart_has_changed || !$taxchart_to_use; |
|
360 |
my $selected_taxchart = $taxchart_to_use->id . '--' . $taxchart_to_use->rate; |
|
361 |
$form->{"selected_taxchart_$i"} = $selected_taxchart; |
|
362 |
$form->{"AP_amount_chart_id_$i"} = $amount_chart_id; |
|
374 | 363 |
} |
375 | 364 |
|
376 |
$form->{AP_amount_value_title_sub} = sub { |
|
377 |
my $item = shift; |
|
378 |
return [ |
|
379 |
$item->{accno} .'--'. $item->{tax_id}, |
|
380 |
$item->{accno} .'--'. $item->{description}, |
|
381 |
]; |
|
382 |
}; |
|
383 |
|
|
384 | 365 |
$form->{taxchart_value_title_sub} = sub { |
385 | 366 |
my $item = shift; |
386 | 367 |
return [ |
... | ... | |
397 | 378 |
]; |
398 | 379 |
}; |
399 | 380 |
|
400 |
$form->{APselected_value_title_sub} = sub { |
|
401 |
my $item = shift; |
|
402 |
return [ |
|
403 |
$item->{accno}, |
|
404 |
$item->{accno} .'--'. $item->{description} |
|
405 |
]; |
|
406 |
}; |
|
407 |
|
|
408 | 381 |
$form->{invtotal_unformatted} = $form->{invtotal}; |
409 | 382 |
$form->{invtotal} = $form->format_amount(\%myconfig, $form->{invtotal}, 2); |
410 | 383 |
|
... | ... | |
559 | 532 |
$form->{exchangerate} = $form->{forex} if $form->{forex}; |
560 | 533 |
|
561 | 534 |
$form->{invdate} = $form->{transdate}; |
562 |
my %saved_variables = map +( $_ => $form->{$_} ), qw(AP AP_amount_1 taxchart_1 notes); |
|
563 | 535 |
|
564 | 536 |
my $vendor_changed = &check_name("vendor"); |
565 | 537 |
|
566 |
$form->{AP} = $saved_variables{AP}; |
|
567 |
if ($saved_variables{AP_amount_1} =~ m/.--./) { |
|
568 |
map { $form->{$_} = $saved_variables{$_} } qw(AP_amount_1 taxchart_1); |
|
569 |
} else { |
|
570 |
delete $form->{taxchart_1}; |
|
571 |
} |
|
572 |
|
|
573 | 538 |
$form->{rowcount} = $count + 1; |
574 | 539 |
|
575 | 540 |
$form->{invtotal} = |
... | ... | |
731 | 696 |
&update; |
732 | 697 |
$::dispatcher->end_request; |
733 | 698 |
} |
734 |
my ($debitaccno, $debittaxkey) = split /--/, $form->{AP_amountselected}; |
|
735 |
my ($taxkey, $NULL) = split /--/, $form->{taxchartselected}; |
|
736 |
my ($payablesaccno, $payablestaxkey) = split /--/, $form->{APselected}; |
|
737 |
# $form->{AP_amount_1} = $debitaccno; |
|
738 |
$form->{AP_payables} = $payablesaccno; |
|
739 |
$form->{taxkey} = $taxkey; |
|
740 | 699 |
$form->{storno} = 0; |
741 | 700 |
|
742 | 701 |
$form->{id} = 0 if $form->{postasnew}; |
Auch abrufbar als: Unified diff
Kreditorenbuchungen auf Verwendung des Chart-Pickers umgestellt