X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=sql-ledger%2Fbin%2Fmozilla%2Fpe.pl;h=841c3fef24fb3a602dee92a064f7c4b7b3c4f565;hp=d8706d4136f2805a69e46710b219d874433b7d72;hb=32306b5f8ffe4ce594409aa6e89626740b225a39;hpb=52072fcd26f2faf57923f598c358e7f47c4e2643 diff --git a/sql-ledger/bin/mozilla/pe.pl b/sql-ledger/bin/mozilla/pe.pl index d8706d413..841c3fef2 100644 --- a/sql-ledger/bin/mozilla/pe.pl +++ b/sql-ledger/bin/mozilla/pe.pl @@ -1,6 +1,6 @@ #===================================================================== # SQL-Ledger Accounting -# Copyright (c) 1998-2002 +# Copyright (c) 2002 # # Author: Dieter Simader # Email: dsimader@sql-ledger.org @@ -23,6 +23,7 @@ # # project administration # partsgroup administration +# translation maintainance # #====================================================================== @@ -39,10 +40,10 @@ sub add { $form->{title} = "Add"; # construct callback - $form->{callback} = "$form->{script}?action=add&type=$form->{type}&path=$form->{path}&login=$form->{login}&password=$form->{password}" unless $form->{callback}; + $form->{callback} = "$form->{script}?action=add&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}" unless $form->{callback}; - &{ "form_$form->{type}_header" }; - &{ "form_$form->{type}_footer" }; + &{ "$form->{type}_header" }; + &{ "$form->{type}_footer" }; } @@ -51,15 +52,9 @@ sub edit { $form->{title} = "Edit"; - if ($form->{type} eq 'project') { - PE->get_project(\%myconfig, \%$form); - } - if ($form->{type} eq 'partsgroup') { - PE->get_partsgroup(\%myconfig, \%$form); - } - - &{ "form_$form->{type}_header" }; - &{ "form_$form->{type}_footer" }; + &{ "PE::get_$form->{type}" }("", \%myconfig, \%$form); + &{ "$form->{type}_header" }; + &{ "$form->{type}_footer" }; } @@ -96,6 +91,20 @@ sub search { |; } + if ($form->{type} eq 'pricegroup') { + $report = "pricegroup_report"; + $sort = 'pricegroup'; + $form->{title} = $locale->text('Pricegroups'); + + $number = qq| + + |.$locale->text('Pricegroup').qq| + + +|; + + } + $form->header; @@ -133,7 +142,7 @@ sub search { {path}> {login}> -{password}> +{sessionid}>
@@ -152,8 +161,11 @@ sub project_report { map { $form->{$_} = $form->unescape($form->{$_}) } (projectnumber, description); PE->projects(\%myconfig, \%$form); - $callback = "$form->{script}?action=project_report&type=$form->{type}&path=$form->{path}&login=$form->{login}&password=$form->{password}&status=$form->{status}"; - $href = $callback; + $href = "$form->{script}?action=project_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; + + $form->sort_order(); + + $callback = "$form->{script}?action=project_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; if ($form->{status} eq 'all') { $option = $locale->text('All'); @@ -219,7 +231,7 @@ sub project_report { |; - $column_data{projectnumber} = qq|{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{projectnumber}|; + $column_data{projectnumber} = qq|{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{projectnumber}|; $column_data{description} = qq|$ref->{description} |; map { print "$column_data{$_}\n" } @column_index; @@ -229,6 +241,16 @@ sub project_report { "; } + $i = 1; + if ($myconfig{acs} !~ /Projects--Projects/) { + $button{'Projects--Add Project'}{code} = qq| |; + $button{'Projects--Add Project'}{order} = $i++; + + foreach $item (split /;/, $myconfig{acs}) { + delete $button{$item}; + } + } + print qq| @@ -247,10 +269,21 @@ sub project_report { {path}> {login}> -{password}> +{sessionid}> +|; - + foreach $item (sort { $a->{order} <=> $b->{order} } %button) { + print $item->{code}; + } + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; + } + print qq| + + |; @@ -258,14 +291,14 @@ sub project_report { } -sub form_project_header { +sub project_header { $form->{title} = $locale->text("$form->{title} Project"); # $locale->text('Add Project') # $locale->text('Edit Project') - $form->{description} =~ s/"/"/g; + $form->{description} = $form->quote($form->{description}); if (($rows = $form->numtextrows($form->{description}, 60)) > 1) { $description = qq||; @@ -311,7 +344,7 @@ sub form_project_header { } -sub form_project_footer { +sub project_footer { print qq| @@ -319,14 +352,24 @@ sub form_project_footer { {path}> {login}> -{password}> - -
+{sessionid}> +
|; - if ($form->{id} && $form->{orphaned}) { + if ($myconfig{acs} !~ /Projects--Add Project/) { print qq| + +|; + + if ($form->{id} && $form->{orphaned}) { + print qq| |; + } + } + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; } print qq| @@ -351,19 +394,38 @@ sub save { PE->save_partsgroup(\%myconfig, \%$form); $form->redirect($locale->text('Group saved!')); } + if ($form->{type} eq 'pricegroup') { + $form->isblank("pricegroup", $locale->text('Pricegroup missing!')); + PE->save_pricegroup(\%myconfig, \%$form); + $form->redirect($locale->text('Pricegroup saved!')); + } + if ($form->{translation}) { + PE->save_translation(\%myconfig, \%$form); + $form->redirect($locale->text('Translations saved!')); + } } sub delete { - PE->delete_tuple(\%myconfig, \%$form); + if ($form->{translation}) { + PE->delete_translation(\%myconfig, \%$form); + $form->redirect($locale->text('Translation deleted!')); + + } else { - if ($form->{type} eq 'project') { - $form->redirect($locale->text('Project deleted!')); - } - if ($form->{type} eq 'partsgroup') { - $form->redirect($locale->text('Group deleted!')); + PE->delete_tuple(\%myconfig, \%$form); + + if ($form->{type} eq 'project') { + $form->redirect($locale->text('Project deleted!')); + } + if ($form->{type} eq 'partsgroup') { + $form->redirect($locale->text('Group deleted!')); + } + if ($form->{type} eq 'pricegroup') { + $form->redirect($locale->text('Pricegroup deleted!')); + } } } @@ -377,7 +439,11 @@ sub partsgroup_report { map { $form->{$_} = $form->unescape($form->{$_}) } (partsgroup); PE->partsgroups(\%myconfig, \%$form); - $callback = "$form->{script}?action=partsgroup_report&type=$form->{type}&path=$form->{path}&login=$form->{login}&password=$form->{password}&status=$form->{status}"; + $href = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; + + $form->sort_order(); + + $callback = "$form->{script}?action=partsgroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; if ($form->{status} eq 'all') { $option = $locale->text('All'); @@ -391,9 +457,9 @@ sub partsgroup_report { } - @column_index = (partsgroup); + @column_index = $form->sort_columns(qw(partsgroup)); - $column_header{partsgroup} = qq||.$locale->text('Group').qq||; + $column_header{partsgroup} = qq|
|.$locale->text('Group').qq||; $form->{title} = $locale->text('Groups'); @@ -436,15 +502,23 @@ sub partsgroup_report { |; - - $column_data{partsgroup} = qq|{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&password=$form->{password}&callback=$callback>$ref->{partsgroup}|; - + $column_data{partsgroup} = qq|{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{partsgroup}|; map { print "$column_data{$_}\n" } @column_index; print " "; } + + $i = 1; + if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) { + $button{'Goods & Services--Add Group'}{code} = qq| |; + $button{'Goods & Services--Add Group'}{order} = $i++; + + foreach $item (split /;/, $myconfig{acs}) { + delete $button{$item}; + } + } print qq| @@ -464,9 +538,20 @@ sub partsgroup_report { {path}> {login}> -{password}> +{sessionid}> +|; + + foreach $item (sort { $a->{order} <=> $b->{order} } %button) { + print $item->{code}; + } - + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; + } + + print qq| + @@ -475,14 +560,13 @@ sub partsgroup_report { } -sub form_partsgroup_header { +sub partsgroup_header { $form->{title} = $locale->text("$form->{title} Group"); -# $locale->text('Add Group') # $locale->text('Edit Group') - $form->{partsgroup} =~ s/"/"/g; + $form->{partsgroup} = $form->quote($form->{partsgroup}); $form->header; @@ -505,6 +589,7 @@ sub form_partsgroup_header { +
|.$locale->text('Group').qq|
@@ -519,7 +604,7 @@ sub form_partsgroup_header { } -sub form_partsgroup_footer { +sub partsgroup_footer { print qq| @@ -527,14 +612,232 @@ sub form_partsgroup_footer { {path}> {login}> -{password}> +{sessionid}> +
+|; -
+ if ($myconfig{acs} !~ /Goods \& Services--Add Group/) { + print qq| + |; - if ($form->{id} && $form->{orphaned}) { + if ($form->{id} && $form->{orphaned}) { + print qq| +|; + } + } + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; + } + + print qq| + + + + +|; + +} + + +sub pricegroup_report { + + map { $form->{$_} = $form->unescape($form->{$_}) } (pricegroup); + PE->pricegroups(\%myconfig, \%$form); + + $href = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; + + $form->sort_order(); + + $callback = "$form->{script}?action=pricegroup_report&direction=$form->{direction}&oldsort=$form->{oldsort}&type=$form->{type}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&status=$form->{status}"; + + if ($form->{status} eq 'all') { + $option = $locale->text('All'); + } + if ($form->{status} eq 'orphaned') { + $option .= $locale->text('Orphaned'); + } + if ($form->{pricegroup}) { + $callback .= "&pricegroup=$form->{pricegroup}"; + $option .= "\n
".$locale->text('Pricegroup')." : $form->{pricegroup}"; + } + + + @column_index = $form->sort_columns(qw(pricegroup)); + + $column_header{pricegroup} = qq|
|.$locale->text('Pricegroup').qq||; + + $form->{title} = $locale->text('Pricegroups'); + + $form->header; + + print qq| + + + + + + + + + + + + + + + + +
$form->{title}
$option
+ + +|; + + map { print "$column_header{$_}\n" } @column_index; + + print qq| + +|; + + # escape callback + $form->{callback} = $callback; + + # escape callback for href + $callback = $form->escape($callback); + + foreach $ref (@{ $form->{item_list} }) { + + $i++; $i %= 2; + + print qq| + +|; + + $column_data{pricegroup} = qq||; + map { print "$column_data{$_}\n" } @column_index; + + print " + +"; + } + + $i = 1; + if ($myconfig{acs} !~ /Goods \& Services--Goods \& Services/) { + $button{'Goods & Services--Add Pricegroup'}{code} = qq| |; + $button{'Goods & Services--Add Pricegroup'}{order} = $i++; + + foreach $item (split /;/, $myconfig{acs}) { + delete $button{$item}; + } + } + + print qq| +
{script}?action=edit&type=$form->{type}&status=$form->{status}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{pricegroup}
+

+ +
+
{script}> + + + +{type}> + +{path}> +{login}> +{sessionid}> +|; + + foreach $item (sort { $a->{order} <=> $b->{order} } %button) { + print $item->{code}; + } + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; + } + + print qq| +
+ + + +|; + +} + + +sub pricegroup_header { + + $form->{title} = $locale->text("$form->{title} Pricegroup"); + +# $locale->text('Edit Pricegroup') + + $form->{pricegroup} = $form->quote($form->{pricegroup}); + + + $form->header; + + print qq| + + +
{script}> + +{id}> +{type}> + + + + + + + + + + + + +
$form->{title}
+ + + + + + +
|.$locale->text('Pricegroup').qq|
+

+|; + +} + + +sub pricegroup_footer { + + print qq| + + + +{path}> +{login}> +{sessionid}> +
+|; + + if ($myconfig{acs} !~ /Goods \& Services--Add Pricegroup/) { print qq| + +|; + + if ($form->{id} && $form->{orphaned}) { + print qq| |; + } + } + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; } print qq| @@ -547,3 +850,387 @@ sub form_partsgroup_footer { } +sub translation { + + if ($form->{translation} eq 'description') { + $form->{title} = $locale->text('Description Translations'); + $sort = qq||; + $form->{number} = "partnumber"; + $number = qq| + + |.$locale->text('Number').qq| + + +|; + } + + if ($form->{translation} eq 'partsgroup') { + $form->{title} = $locale->text('Group Translations'); + $sort = qq||; + } + + if ($form->{translation} eq 'project') { + $form->{title} = $locale->text('Project Description Translations'); + $form->{number} = "projectnumber"; + $sort = qq||; + $number = qq| + + |.$locale->text('Project Number').qq| + + +|; + } + + + $form->header; + + print qq| + + +{script}> + +{translation}> + +{number}> + + + + + + + + +
$form->{title}
+ + $number + + + + +
|.$locale->text('Description').qq|
+

+ + +$sort + +{path}> +{login}> +{sessionid}> + +
+ +
+ + + +|; + +} + + +sub list_translations { + + $title = $form->escape($form->{title},1); + + $callback = "$form->{script}?action=list_translations&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&translation=$form->{translation}&number=$form->{number}&title=$title"; + + if ($form->{"$form->{number}"}) { + $callback .= qq|&$form->{number}=$form->{"$form->{number}"}|; + $option .= $locale->text('Number').qq| : $form->{"$form->{number}"}
|; + } + if ($form->{description}) { + $callback .= "&description=$form->{description}"; + $description = $form->{description}; + $description =~ s/ /
/g; + $option .= $locale->text('Description').qq| : $form->{description}
|; + } + + if ($form->{translation} eq 'partsgroup') { + @column_index = qw(description language translation); + $form->{sort} = ""; + } else { + @column_index = $form->sort_columns("$form->{number}", "description", "language", "translation"); + } + + &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form); + + $callback .= "&direction=$form->{direction}&oldsort=$form->{oldsort}"; + + $href = $callback; + + $form->sort_order(); + + $callback =~ s/(direction=).*\&{1}/$1$form->{direction}\&/; + + $column_header{"$form->{number}"} = qq|
{number}>|.$locale->text('Number').qq||; + $column_header{description} = qq||.$locale->text('Description').qq||; + $column_header{language} = qq||.$locale->text('Language').qq||; + $column_header{translation} = qq||.$locale->text('Translation').qq||; + + $form->header; + + print qq| + + + + + + + + + + + + + + +
$form->{title}
$option
+ + +|; + + map { print "\n$column_header{$_}" } @column_index; + + print qq| + + |; + + + # add order to callback + $form->{callback} = $callback .= "&sort=$form->{sort}"; + + # escape callback for href + $callback = $form->escape($callback); + + if (@{ $form->{translations} }) { + $sameitem = $form->{translations}->[0]->{$form->{sort}}; + } + + foreach $ref (@{ $form->{translations} }) { + + $ref->{description} =~ s/ /
/g; + + map { $column_data{$_} = "" } @column_index; + + $column_data{description} = ""; + + $i++; $i %= 2; + print ""; + + map { print "\n$column_data{$_}" } @column_index; + + print qq| + +|; + + } + + print qq| +
$ref->{$_} {script}?action=edit_translation&translation=$form->{translation}&number=$form->{number}&id=$ref->{id}&path=$form->{path}&login=$form->{login}&sessionid=$form->{sessionid}&callback=$callback>$ref->{description} 
+

+ +|; + + print qq| + +
+ +
{script}> + + + +{path}> +{login}> +{sessionid}> +|; + + if ($form->{menubar}) { + require "$form->{path}/menu.pl"; + &menubar; + } + + print qq| +
+ + + +|; + +} + + +sub edit_translation { + + &{ "PE::$form->{translation}_translations" }("", \%myconfig, \%$form); + + $form->error($locale->text('Languages not defined!')) unless $form->{all_language}; + + $form->{selectlanguage} = qq|