X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Far.pl;h=7456cd5f92ce99bfc8a64ada9eb7d13ec94217c0;hb=bae74e1eec221b037431a51c571f25b0cced722c;hp=7952be3a5fa463ad909d43fc0d88e4a44bc979e1;hpb=76785737d502010ff059f356eb0a22ba34430e08;p=kivitendo-erp.git
diff --git a/bin/mozilla/ar.pl b/bin/mozilla/ar.pl
index 7952be3a5..7456cd5f9 100644
--- a/bin/mozilla/ar.pl
+++ b/bin/mozilla/ar.pl
@@ -24,7 +24,8 @@
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+# MA 02110-1335, USA.
#======================================================================
#
# Accounts Receivables
@@ -38,7 +39,6 @@ use List::UtilsBy qw(sort_by);
use SL::AR;
use SL::FU;
use SL::IS;
-use SL::PE;
use SL::DB::Default;
use SL::DB::Invoice;
use SL::ReportGenerator;
@@ -81,7 +81,7 @@ use strict;
sub add {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -108,7 +108,7 @@ sub add {
sub edit {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
@@ -127,7 +127,7 @@ sub edit {
sub display_form {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
@@ -146,7 +146,7 @@ sub _retrieve_invoice_object {
sub create_links {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my %params = @_;
my $form = $main::form;
@@ -171,6 +171,7 @@ sub create_links {
# currencies
$form->{defaultcurrency} = $form->get_default_currency(\%myconfig);
+ $form->{selectcurrency} = "";
map { $form->{selectcurrency} .= "$_\n" } $form->get_all_currencies(\%myconfig);
# customers
@@ -180,16 +181,7 @@ sub create_links {
(@{ $form->{all_customer} });
}
- # departments
- if (@{ $form->{all_departments} || [] }) {
- $form->{selectdepartment} = " \n";
- $form->{department} = "$form->{department}--$form->{department_id}";
-
- map {
- $form->{selectdepartment} .=
- " $_->{description}--$_->{id}\n"
- } (@{ $form->{all_departments} || [] });
- }
+ $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
$form->{employee} = "$form->{employee}--$form->{employee_id}";
@@ -215,7 +207,7 @@ sub create_links {
sub form_header {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -225,7 +217,7 @@ sub form_header {
$form->{invoice_obj} = _retrieve_invoice_object();
my ($title, $readonly, $exchangerate, $rows);
- my ($notes, $department, $customer, $employee, $amount, $project);
+ my ($notes, $customer, $employee, $amount, $project);
my ($ARselected);
@@ -264,7 +256,7 @@ sub form_header {
$readonly = ($form->{radier}) ? "" : $readonly;
# set option selected
- foreach my $item (qw(customer currency department employee)) {
+ foreach my $item (qw(customer currency employee)) {
$form->{"select$item"} =~ s/ selected//;
$form->{"select$item"} =~ s/option>\Q$form->{$item}\E/option selected>$form->{$item}/;
}
@@ -272,6 +264,9 @@ sub form_header {
$form->{forex} = $form->check_exchangerate( \%myconfig, $form->{currency}, $form->{transdate}, 'buy');
$form->{exchangerate} = $form->{forex} if $form->{forex};
+ # format exchangerate
+ $form->{exchangerate} = $form->{exchangerate} ? $form->format_amount(\%myconfig, $form->{exchangerate}) : '';
+
$rows = max 2, $form->numtextrows($form->{notes}, 50);
my @old_project_ids = grep { $_ } map { $form->{"project_id_$_"} } 1..$form->{rowcount};
@@ -284,6 +279,8 @@ sub form_header {
"taxcharts" => { "key" => "ALL_TAXCHARTS",
"module" => "AR" },);
+ $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
+
$_->{link_split} = { map { $_ => 1 } split/:/, $_->{link} } for @{ $form->{ALL_CHARTS} };
my %project_labels = map { $_->{id} => $_->{projectnumber} } @{ $form->{"ALL_PROJECTS"} };
@@ -472,7 +469,7 @@ sub form_header {
sub form_footer {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -480,7 +477,7 @@ sub form_footer {
my $cgi = $::request->{cgi};
if ( $form->{id} ) {
- my $follow_ups = FU->follow_ups('trans_id' => $form->{id});
+ my $follow_ups = FU->follow_ups('trans_id' => $form->{id}, 'not_done' => 1);
if ( @{ $follow_ups} ) {
$form->{follow_up_length} = scalar(@{$follow_ups});
$form->{follow_up_due_length} = sum(map({ $_->{due} * 1 } @{ $follow_ups }));
@@ -509,7 +506,7 @@ sub form_footer {
sub mark_as_paid {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -519,10 +516,16 @@ sub mark_as_paid {
$main::lxdebug->leave_sub();
}
+sub show_draft {
+ $::form->{transdate} = DateTime->today_local->to_kivitendo if !$::form->{transdate};
+ $::form->{gldate} = $::form->{transdate} if !$::form->{gldate};
+ update();
+}
+
sub update {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -612,7 +615,7 @@ sub update {
sub post_payment {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -662,7 +665,7 @@ sub post_payment {
sub _post {
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
@@ -673,7 +676,7 @@ sub _post {
sub post {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -690,7 +693,7 @@ sub post {
$form->isblank("duedate", $locale->text('Due Date missing!'));
$form->isblank("customer", $locale->text('Customer missing!'));
- if ($myconfig{mandatory_departments} && !$form->{department}) {
+ if ($myconfig{mandatory_departments} && !$form->{department_id}) {
$form->{saved_message} = $::locale->text('You have to specify a department.');
update();
exit;
@@ -763,7 +766,7 @@ sub post {
sub post_as_new {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -785,7 +788,7 @@ sub post_as_new {
sub use_as_new {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -802,7 +805,7 @@ sub use_as_new {
sub delete {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my $locale = $main::locale;
@@ -841,7 +844,7 @@ sub delete {
sub yes {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;
@@ -880,10 +883,10 @@ sub search {
# Auch in Rechnungsübersicht nach Kundentyp filtern - jan
$form->get_lists("projects" => { "key" => "ALL_PROJECTS", "all" => 1 },
- "departments" => "ALL_DEPARTMENTS",
"customers" => "ALL_VC",
"business_types" => "ALL_BUSINESS_TYPES");
$form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]);
+ $form->{ALL_DEPARTMENTS} = SL::DB::Manager::Department->get_all;
$form->{SHOW_BUSINESS_TYPES} = scalar @{ $form->{ALL_BUSINESS_TYPES} } > 0;
$form->{CT_CUSTOM_VARIABLES} = CVar->get_configs('module' => 'CT');
@@ -946,7 +949,8 @@ sub ar_transactions {
@columns =
qw(ids transdate id type invnumber ordnumber cusordnumber name netamount tax amount paid
datepaid due duedate transaction_description notes salesman employee shippingpoint shipvia
- marge_total marge_percent globalprojectnumber customernumber country ustid taxzone payment_terms charts customertype direct_debit dunning_description);
+ marge_total marge_percent globalprojectnumber customernumber country ustid taxzone
+ payment_terms charts customertype direct_debit dunning_description department);
my $ct_cvar_configs = CVar->get_configs('module' => 'CT');
my @ct_includeable_custom_variables = grep { $_->{includeable} } @{ $ct_cvar_configs };
@@ -957,7 +961,7 @@ sub ar_transactions {
my @hidden_variables = map { "l_${_}" } @columns;
push @hidden_variables, "l_subtotal", qw(open closed customer invnumber ordnumber cusordnumber transaction_description notes project_id transdatefrom transdateto duedatefrom duedateto
- employee_id salesman_id business_id parts_partnumber parts_description);
+ employee_id salesman_id business_id parts_partnumber parts_description department_id);
push @hidden_variables, map { "cvar_$_->{name}" } @ct_searchable_custom_variables;
$href = build_std_url('action=ar_transactions', grep { $form->{$_} } @hidden_variables);
@@ -995,6 +999,7 @@ sub ar_transactions {
'charts' => { 'text' => $locale->text('Buchungskonto'), },
'customertype' => { 'text' => $locale->text('Customer type'), },
'direct_debit' => { 'text' => $locale->text('direct debit'), },
+ 'department' => { 'text' => $locale->text('Department'), },
dunning_description => { 'text' => $locale->text('Dunning level'), },
%column_defs_cvars,
);
@@ -1031,12 +1036,10 @@ sub ar_transactions {
if ($form->{cp_name}) {
push @options, $locale->text('Contact Person') . " : $form->{cp_name}";
}
- if ($form->{department}) {
- my ($department) = split /--/, $form->{department};
- push @options, $locale->text('Department') . " : $department";
- }
+
if ($form->{department_id}) {
- push @options, $locale->text('Department Id') . " : $form->{department_id}";
+ my $department = SL::DB::Manager::Department->find_by( id => $form->{department_id} );
+ push @options, $locale->text('Department') . " : " . $department->description;
}
if ($form->{invnumber}) {
push @options, $locale->text('Invoice Number') . " : $form->{invnumber}";
@@ -1115,8 +1118,6 @@ sub ar_transactions {
$subtotals{marge_percent} = $subtotals{netamount} ? ($subtotals{marge_total} * 100 / $subtotals{netamount}) : 0;
$totals{marge_percent} = $totals{netamount} ? ($totals{marge_total} * 100 / $totals{netamount} ) : 0;
- map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due marge_total marge_percent);
-
my $is_storno = $ar->{storno} && $ar->{storno_id};
my $has_storno = $ar->{storno} && !$ar->{storno_id};
@@ -1127,6 +1128,8 @@ sub ar_transactions {
$ar->{invoice} ? $locale->text("Invoice (one letter abbreviation)") :
$locale->text("AR Transaction (abbreviation)");
+ map { $ar->{$_} = $form->format_amount(\%myconfig, $ar->{$_}, 2) } qw(netamount tax amount paid due marge_total marge_percent);
+
$ar->{direct_debit} = $ar->{direct_debit} ? $::locale->text('yes') : $::locale->text('no');
my $row = { };
@@ -1171,7 +1174,7 @@ sub ar_transactions {
sub storno {
$main::lxdebug->enter_sub();
- $main::auth->assert('general_ledger');
+ $main::auth->assert('ar_transactions');
my $form = $main::form;
my %myconfig = %main::myconfig;