use SL::IR;
use SL::IS;
use SL::ReportGenerator;
+use SL::DB::Currency;
use SL::DB::Default;
use SL::DB::PurchaseInvoice;
use SL::Webdav;
use SL::Locale::String qw(t8);
-require "bin/mozilla/arap.pl";
require "bin/mozilla/common.pl";
require "bin/mozilla/reportgenerator.pl";
IR->get_vendor(\%myconfig, \%$form);
$form->{$_} = $saved{$_} for keys %saved;
- $form->{oldvendor} = "$form->{vendor}--$form->{vendor_id}";
$form->{rowcount} = 1;
$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};
# currencies
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
- $form->{selectcurrency} = "";
- map { my $quoted = H($_); $form->{selectcurrency} .= "<option value=\"${quoted}\">${quoted}\n" } $form->get_all_currencies(\%myconfig);
-
- # vendors
- if (@{ $form->{all_vendor} || [] }) {
- $form->{vendor} = qq|$form->{vendor}--$form->{vendor_id}|;
- map { my $quoted = H($_->{name} . "--" . $_->{id}); $form->{selectvendor} .= "<option value=\"${quoted}\">${quoted}\n" }
- (@{ $form->{all_vendor} });
- }
-
- $::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
+ $::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted;
$form->{employee} = "$form->{employee}--$form->{employee_id}";
$::form->{invoice_obj} = SL::DB::PurchaseInvoice->new(id => $::form->{id})->load if $::form->{id};
- $form->{initial_focus} = !($form->{amount_1} * 1) ? 'vendor' : 'row_' . $form->{rowcount};
+ $form->{initial_focus} = !($form->{amount_1} * 1) ? 'vendor_id' : 'row_' . $form->{rowcount};
$form->{title_} = $form->{title};
$form->{title} = $form->{title} eq 'Add' ? $locale->text('Add Accounts Payables Transaction') : $locale->text('Edit Accounts Payables Transaction');
# type=submit $locale->text('Add Accounts Payables Transaction')
# type=submit $locale->text('Edit Accounts Payables Transaction')
- # set option selected
- foreach my $item (qw(vendor currency)) {
- my $to_replace = H($form->{$item});
- $form->{"select$item"} =~ s/ selected//;
- $form->{"select$item"} =~ s/>\Q${to_replace}\E/ selected>${to_replace}/;
- }
my $readonly = $form->{id} ? "readonly" : "";
$form->{radier} = ($::instance_conf->get_ap_changeable == 2)
$charts{$item->{accno}} = $item;
}
- my %taxcharts = ();
- foreach my $item (@{ $form->{ALL_TAXCHARTS} }) {
- $taxcharts{$item->{id}} = $item;
- }
-
- my $follow_up_vc = $form->{vendor};
- $follow_up_vc =~ s/--.*?//;
+ my $follow_up_vc = $form->{vendor_id} ? SL::DB::Vendor->load_cached($form->{vendor_id})->name : '';
my $follow_up_trans_info = "$form->{invnumber} ($follow_up_vc)";
- $::request->layout->add_javascripts("autocomplete_chart.js", "show_vc_details.js", "show_history.js", "follow_up.js", "kivi.Draft.js", "kivi.GL.js");
+ $::request->layout->add_javascripts("autocomplete_chart.js", "autocomplete_customer.js", "show_vc_details.js", "show_history.js", "follow_up.js", "kivi.Draft.js", "kivi.GL.js");
my $transdate = $::form->{transdate} ? DateTime->from_kivitendo($::form->{transdate}) : DateTime->today_local;
my $first_taxchart;
my ($default_taxchart, $taxchart_to_use);
my $amount_chart_id = $form->{"AP_amount_chart_id_$i"} || $default_ap_amount_chart_id;
my $chart_has_changed = $::form->{"previous_AP_amount_chart_id_$i"} && ($amount_chart_id != $::form->{"previous_AP_amount_chart_id_$i"});
+ my @taxcharts = GL->get_active_taxes_for_chart($amount_chart_id, $transdate);
- foreach my $item ( GL->get_active_taxes_for_chart($amount_chart_id, $transdate) ) {
+ foreach my $item (@taxcharts) {
my $key = $item->id . "--" . $item->rate;
$first_taxchart //= $item;
$default_taxchart = $item if $item->{is_default};
my $selected_taxchart = $taxchart_to_use->id . '--' . $taxchart_to_use->rate;
$form->{"selected_taxchart_$i"} = $selected_taxchart;
$form->{"AP_amount_chart_id_$i"} = $amount_chart_id;
+ $form->{"taxcharts_$i"} = \@taxcharts;
}
$form->{taxchart_value_title_sub} = sub {
print $form->parse_html_template('ap/form_header', {
today => DateTime->today,
+ currencies => SL::DB::Manager::Currency->get_all_sorted,
});
$main::lxdebug->leave_sub();
}
sub mark_as_paid {
- $main::lxdebug->enter_sub();
-
- my $form = $main::form;
- my %myconfig = %main::myconfig;
-
- $main::auth->assert('ap_transactions');
+ $::auth->assert('ap_transactions');
- &mark_as_paid_common(\%myconfig,"ap");
+ SL::DB::PurchaseInvoice->new(id => $::form->{id})->load->mark_as_paid;
- $main::lxdebug->leave_sub();
+ $::form->redirect($::locale->text("Marked as paid"));
}
sub show_draft {
$form->{invdate} = $form->{transdate};
- my $vendor_changed = &check_name("vendor");
+ if (($form->{previous_vendor_id} || $form->{vendor_id}) != $form->{vendor_id}) {
+ IR->get_vendor(\%::myconfig, $form);
+ }
$form->{rowcount} = $count + 1;
# check if there is a vendor, invoice, due date and invnumber
$form->isblank("transdate", $locale->text("Invoice Date missing!"));
$form->isblank("duedate", $locale->text("Due Date missing!"));
- $form->isblank("vendor", $locale->text('Vendor missing!'));
+ $form->isblank("vendor_id", $locale->text('Vendor missing!'));
$form->isblank("invnumber", $locale->text('Invoice Number missing!'));
if ($myconfig{mandatory_departments} && !$form->{department_id}) {
}
# if old vendor ne vendor redo form
- my ($vendor) = split /--/, $form->{vendor};
- if ($form->{oldvendor} ne "$vendor--$form->{vendor_id}") {
+ if (($form->{previous_customer_id} || $form->{customer_id}) != $form->{customer_id}) {
&update;
$::dispatcher->end_request;
}
}
# /saving the history
# Dieser Text wird niemals ausgegeben: Probleme beim redirect?
- $form->redirect($locale->text('Transaction posted!')) unless $inline;
+ $form->redirect($locale->text('AP transaction posted.')) unless $inline;
} else {
$form->error($locale->text('Cannot post transaction!'));
}
my %myconfig = %main::myconfig;
my $locale = $main::locale;
- # setup customer selection
- $form->all_vc(\%myconfig, "vendor", "AP");
-
$form->{title} = $locale->text('AP Transactions');
- $form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 },
- "vendors" => "ALL_VC");
+ $form->get_lists(projects => { "key" => "ALL_PROJECTS", "all" => 1 });
- $::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
+ $::form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all_sorted;
# constants and subs for template
$form->{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
+ $::request->layout->add_javascripts("autocomplete_project.js");
+
$form->header;
print $form->parse_html_template('ap/search', { %myconfig });
$main::auth->assert('vendor_invoice_edit');
- ($form->{vendor}, $form->{vendor_id}) = split(/--/, $form->{vendor});
-
report_generator_set_default_sort('transdate', 1);
AP->ap_transactions(\%myconfig, \%$form);