X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=bin%2Fmozilla%2Famtemplates.pl;h=d32cf790a1b5602839ea4b6fd85cd6b2ca4c9d72;hb=59adfa36c82c4e021011c84c70b9384badea33aa;hp=72e6500cba696404dc934100a9e0d5878d571fa0;hpb=9aaca43317d3ea33d80a308cab7ce4c20d732a16;p=kivitendo-erp.git diff --git a/bin/mozilla/amtemplates.pl b/bin/mozilla/amtemplates.pl index 72e6500cb..d32cf790a 100644 --- a/bin/mozilla/amtemplates.pl +++ b/bin/mozilla/amtemplates.pl @@ -24,18 +24,24 @@ # 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. #====================================================================== # # administration # #====================================================================== +use File::Find; + +use SL::DB::Default; use SL::AM; use SL::Form; use Data::Dumper; +use strict; + 1; require "bin/mozilla/common.pl"; @@ -43,37 +49,51 @@ require "bin/mozilla/common.pl"; # end of main sub display { - call_sub($form->{display_nextsub}); + call_sub($main::form->{display_nextsub}); } sub save { - call_sub($form->{save_nextsub}); + call_sub($main::form->{save_nextsub}); } sub edit { - call_sub($form->{edit_nextsub}); + call_sub($main::form->{edit_nextsub}); } sub display_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + + $main::auth->assert('admin'); $form->{edit} = 0; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub edit_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + + $main::auth->assert('admin'); $form->{edit} = 1; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub save_template { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('admin'); $form->isblank("formname", $locale->text("You're not editing a file.")) unless ($form->{type} eq "stylesheet"); @@ -85,20 +105,35 @@ sub save_template { $form->{edit} = 0; display_template_form(); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } sub display_template_form { - $lxdebug->enter_sub(); + $main::lxdebug->enter_sub(); + + my $form = $main::form; + my %myconfig = %main::myconfig; + my $locale = $main::locale; + + $main::auth->assert('admin'); + + my $defaults = SL::DB::Default->get; + $form->error($::locale->text('No print templates have been created for this client yet. Please do so in the client configuration.')) if !$defaults->templates; + + if ($form->{"formname"} =~ m|\.\.| || $form->{"formname"} =~ m|^/|) { + $form->{"formname"} =~ s|.*/||; + } - $form->{"formname"} =~ s|.*/||; my $format = $form->{"format"} eq "html" ? "html" : "tex"; $form->{"title"} = $form->{"type"} eq "stylesheet" ? $locale->text("Edit the stylesheet") : $locale->text("Edit templates"); + if ($form->{"format"}) { + $form->{"title"} = uc($form->{"format"}) . " - " . $form->{"title"}; + } my %options; - my @hidden = qw(login password type format); + my @hidden = qw(type format); if (($form->{"type"} ne "stylesheet") && !$form->{"edit"}) { $options{"SHOW_EDIT_OPTIONS"} = 1; @@ -113,29 +148,29 @@ sub display_template_form { my %formname_setup = ( - "balance_sheet" => { "translation" => $locale->text('Balance Sheet'), "html" => 1 }, - "bin_list" => $locale->text('Bin List'), - "bwa" => { "translation" => $locale->text('BWA'), "html" => 1 }, - "check" => { "translation" => $locale->text('Check'), "html" => 1 }, - "credit_note" => $locale->text('Credit Note'), - "income_statement" => { "translation" => $locale->text('Income Statement'), "html" => 1 }, - "invoice" => $locale->text('Invoice'), - "packing_list" => $locale->text('Packing List'), - "pick_list" => $locale->text('Pick List'), - "proforma" => $locale->text('Proforma Invoice'), - "purchase_order" => $locale->text('Purchase Order'), - "receipt" => { "translation" => $locale->text('Receipt'), "tex" => 1 }, - "request_quotation" => $locale->text('RFQ'), - "sales_order" => $locale->text('Confirmation'), - "sales_quotation" => $locale->text('Quotation'), - "statement" => $locale->text('Statement'), - "storno_invoice" => $locale->text('Storno Invoice'), - "storno_packing_list" => $locale->text('Storno Packing List'), - "ustva-2004" => { "translation" => $locale->text("USTVA 2004"), "tex" => 1 }, - "ustva-2005" => { "translation" => $locale->text("USTVA 2005"), "tex" => 1 }, - "ustva-2006" => { "translation" => $locale->text("USTVA 2006"), "tex" => 1 }, - "ustva-2007" => { "translation" => $locale->text("USTVA 2007"), "tex" => 1 }, - "ustva" => $locale->text("USTVA"), + # balance_sheet => { translation => $locale->text('Balance Sheet'), html => 1 }, + bin_list => $locale->text('Bin List'), + bwa => { translation => $locale->text('BWA'), html => 1 }, + check => { translation => $locale->text('Check'), html => 1 }, + credit_note => $locale->text('Credit Note'), + income_statement => { translation => $locale->text('Income Statement'), html => 1 }, + invoice => $locale->text('Invoice'), + pick_list => $locale->text('Pick List'), + proforma => $locale->text('Proforma Invoice'), + purchase_delivery_order => { translation => $::locale->text('Purchase delivery order'), tex => 1 }, + purchase_order => $locale->text('Purchase Order'), + receipt => { translation => $locale->text('Receipt'), tex => 1 }, + request_quotation => $locale->text('RFQ'), + sales_delivery_order => { translation => $::locale->text('Sales delivery order'), tex => 1 }, + sales_order => $locale->text('Confirmation'), + sales_quotation => $locale->text('Quotation'), + statement => $locale->text('Statement'), + storno_invoice => $locale->text('Storno Invoice'), + "ustva-2004" => { translation => $locale->text("USTVA 2004"), tex => 1 }, + "ustva-2005" => { translation => $locale->text("USTVA 2005"), tex => 1 }, + "ustva-2006" => { translation => $locale->text("USTVA 2006"), tex => 1 }, + "ustva-2007" => { translation => $locale->text("USTVA 2007"), tex => 1 }, + ustva => $locale->text("USTVA"), ); my (@values, $file, $setup); @@ -155,11 +190,44 @@ sub display_template_form { push(@values, { "value" => $ref->{"template"}, - "label" => $locale->text('Payment Reminder') . ": " . $ref->{"dunning_description"} }); + "label" => $locale->text('Payment Reminder') . ": " . $ref->{"dunning_description"} }, + { "value" => $ref->{"template"} . "_invoice", + "label" => $locale->text('Payment Reminder') . ": " . $ref->{"dunning_description"} . ' (' . $locale->text("Invoice for fees") . ')' }); } @values = sort({ $a->{"label"} cmp $b->{"label"} } @values); + # + # at the end: others/includes for tex + # + if ($format eq "tex") { + # search all .tex-files in template dir (recursively) + my $template_dir = $defaults->templates; + my @all_files; + find( + sub { + next if (-l $_ || -d $_); + next unless (-f $_ && $_ =~ m/.*?\.tex$/); + + my $fname = $File::Find::name; + # remove template dir from name + $fname =~ s|^\Q$template_dir\E/||; + # remove .tex from name + $fname =~ s|.tex$||; + + push(@all_files, $fname); + + }, $template_dir); + + # filter all files already set up (i.e. not already in @values) + my @other_files = grep { my $a=$_; not grep {$a eq $_->{value}} @values } @all_files; + + # add other tex files + foreach my $o (@other_files) { + push(@values, { "value" => $o, "label" => $locale->text("Others")." ($o)" }); + } + } + $options{FORMNAME} = [ @values ]; # @@ -209,10 +277,7 @@ sub display_template_form { $options{"CAN_EDIT"} = $form->{"edit"}; - if ($form->{edit}) { - $form->{fokus} = "Form.content"; - - } else { + if (!$form->{edit}) { $options{"content"} = "\n\n" if (!$options{"content"}); $options{"SHOW_SECOND_EDIT_BUTTON"} = $options{"lines"} > 25; } @@ -223,7 +288,7 @@ sub display_template_form { $form->header; print($form->parse_html_template("am/edit_templates", \%options)); - $lxdebug->leave_sub(); + $main::lxdebug->leave_sub(); } 1;