X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FGL.pm;h=4c892e764713f886230f733968c1be7a88222ebf;hb=841762994976f7cdbdf1ab5c4bdcbf9daf8230e1;hp=9eb741d8396e84025157d629d30de4482d6a8ab6;hpb=6ceacc682f9c760e654f5aacde9b8480760d8b36;p=kivitendo-erp.git diff --git a/SL/GL.pm b/SL/GL.pm index 9eb741d83..4c892e764 100644 --- a/SL/GL.pm +++ b/SL/GL.pm @@ -328,10 +328,15 @@ sub all_transactions { push(@apvalues, $project_id, $project_id); } - my ($project_columns, $project_join); + my ($project_columns, $project_join); + my ($arap_globalproject_columns, $arap_globalproject_join); + my ($gl_globalproject_columns); if ($form->{"l_projectnumbers"}) { - $project_columns = qq|, ac.project_id, pr.projectnumber|; - $project_join = qq|LEFT JOIN project pr ON (ac.project_id = pr.id)|; + $project_columns = qq|, ac.project_id, pr.projectnumber|; + $project_join = qq|LEFT JOIN project pr ON (ac.project_id = pr.id)|; + $arap_globalproject_columns = qq|, a.globalproject_id, globalpr.projectnumber AS globalprojectnumber|; + $arap_globalproject_join = qq|LEFT JOIN project globalpr ON (a.globalproject_id = globalpr.id)|; + $gl_globalproject_columns = qq|, NULL AS globalproject_id, '' AS globalprojectnumber|; } if ($form->{accno}) { @@ -356,6 +361,7 @@ sub all_transactions { 'reference' => [ qw(lower_reference id) ], 'description' => [ qw(lower_description id) ], 'accno' => [ qw(accno transdate id) ], + 'department' => [ qw(department transdate id) ], ); my %lowered_columns = ( 'reference' => { 'gl' => 'g.reference', 'arap' => 'a.invnumber', }, @@ -381,11 +387,13 @@ sub all_transactions { ac.acc_trans_id, g.id, 'gl' AS type, FALSE AS invoice, g.reference, ac.taxkey, c.link, g.description, ac.transdate, ac.gldate, ac.source, ac.trans_id, ac.amount, c.accno, g.notes, t.chart_id, + d.description AS department, CASE WHEN (COALESCE(e.name, '') = '') THEN e.login ELSE e.name END AS employee - $project_columns + $project_columns $gl_globalproject_columns $columns_for_sorting{gl} FROM gl g - LEFT JOIN employee e ON (g.employee_id = e.id), + LEFT JOIN employee e ON (g.employee_id = e.id) + LEFT JOIN department d ON (g.department_id = d.id), acc_trans ac $project_join, chart c LEFT JOIN tax t ON (t.chart_id = c.id) WHERE $glwhere @@ -397,11 +405,14 @@ sub all_transactions { SELECT ac.acc_trans_id, a.id, 'ar' AS type, a.invoice, a.invnumber, ac.taxkey, c.link, ct.name, ac.transdate, ac.gldate, ac.source, ac.trans_id, ac.amount, c.accno, a.notes, t.chart_id, + d.description AS department, CASE WHEN (COALESCE(e.name, '') = '') THEN e.login ELSE e.name END AS employee - $project_columns + $project_columns $arap_globalproject_columns $columns_for_sorting{arap} FROM ar a - LEFT JOIN employee e ON (a.employee_id = e.id), + LEFT JOIN employee e ON (a.employee_id = e.id) + LEFT JOIN department d ON (a.department_id = d.id) + $arap_globalproject_join, acc_trans ac $project_join, customer ct, chart c LEFT JOIN tax t ON (t.chart_id=c.id) WHERE $arwhere @@ -414,11 +425,14 @@ sub all_transactions { SELECT ac.acc_trans_id, a.id, 'ap' AS type, a.invoice, a.invnumber, ac.taxkey, c.link, ct.name, ac.transdate, ac.gldate, ac.source, ac.trans_id, ac.amount, c.accno, a.notes, t.chart_id, + d.description AS department, CASE WHEN (COALESCE(e.name, '') = '') THEN e.login ELSE e.name END AS employee - $project_columns + $project_columns $arap_globalproject_columns $columns_for_sorting{arap} FROM ap a - LEFT JOIN employee e ON (a.employee_id = e.id), + LEFT JOIN employee e ON (a.employee_id = e.id) + LEFT JOIN department d ON (a.department_id = d.id) + $arap_globalproject_join, acc_trans ac $project_join, vendor ct, chart c LEFT JOIN tax t ON (t.chart_id=c.id) WHERE $apwhere @@ -484,7 +498,8 @@ sub all_transactions { } $ref->{"projectnumbers"} = {}; - $ref->{"projectnumbers"}->{$ref->{"projectnumber"}} = 1 if ($ref->{"projectnumber"}); + $ref->{"projectnumbers"}->{$ref->{"projectnumber"}} = 1 if ($ref->{"projectnumber"}); + $ref->{"projectnumbers"}->{$ref->{"globalprojectnumber"}} = 1 if ($ref->{"globalprojectnumber"}); $balance = $ref->{amount}; @@ -540,7 +555,8 @@ sub all_transactions { $balance = (int($balance * 100000) + int(100000 * $ref2->{amount})) / 100000; - $ref->{"projectnumbers"}->{$ref2->{"projectnumber"}} = 1 if ($ref2->{"projectnumber"}); + $ref->{"projectnumbers"}->{$ref2->{"projectnumber"}} = 1 if ($ref2->{"projectnumber"}); + $ref->{"projectnumbers"}->{$ref2->{"globalprojectnumber"}} = 1 if ($ref2->{"globalprojectnumber"}); if ($ref2->{chart_id} > 0) { # all tax accounts, following lines if ($ref2->{amount} < 0) { @@ -835,12 +851,14 @@ The functions returns an array which may be used for building dropdowns in ar/ap =head1 TODO +Nothing here yet. + =head1 BUGS Nothing here yet. =head1 AUTHOR -G. Richardson Egrichardson@kivitec.de +G. Richardson Egrichardson@kivitec.deE =cut