From 34068d2640517425dae7dd12c4f3e352a3aa949d Mon Sep 17 00:00:00 2001 From: Mathieu Saby Date: Sat, 27 Apr 2013 19:09:55 +0200 Subject: [PATCH] Example for bz 10135 : new layout "msaby" Content-Type: text/plain; charset="utf-8" --- acqui/pdfformat/msaby.pm | 439 ++++++++++++++++++++++++++++ koha-tmpl/intranet-tmpl/prog/pdf/msaby.pdf | Bin 0 -> 58979 bytes 2 files changed, 439 insertions(+) create mode 100644 acqui/pdfformat/msaby.pm create mode 100644 koha-tmpl/intranet-tmpl/prog/pdf/msaby.pdf diff --git a/acqui/pdfformat/msaby.pm b/acqui/pdfformat/msaby.pm new file mode 100644 index 0000000..8b0564c --- /dev/null +++ b/acqui/pdfformat/msaby.pm @@ -0,0 +1,439 @@ +#!/usr/bin/perl + +#example script to print a basketgroup +#written 07/11/08 by john.soros@biblibre.com and paul.poulain@biblibre.com + +# Copyright 2008-2009 BibLibre SARL +# +# This file is part of Koha. +# +# Koha is free software; you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation; either version 2 of the License, or (at your option) any later +# version. +# +# Koha is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR +# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +#you can use any PDF::API2 module, all you need to do is return the stringifyed pdf object from the printpdf sub. +package pdfformat::msaby; +use vars qw($VERSION @ISA @EXPORT); +use Number::Format qw(format_price); +use MIME::Base64; +use List::MoreUtils qw/uniq/; +use strict; +use warnings; +use utf8; + +use C4::Branch qw(GetBranchDetail GetBranchName); + +BEGIN { + use Exporter (); + our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS); + # set the version for version checking + $VERSION = 1.00; + @ISA = qw(Exporter); + @EXPORT = qw(printpdf); +} + + +#be careful, all the sizes (height, width, etc...) are in mm, not PostScript points (the default measurment of PDF::API2). +#The constants exported tranform that into PostScript points (/mm for milimeter, /in for inch, pt is postscript point, and as so is there only to show what is happening. +use constant mm => 25.4 / 72; +use constant in => 1 / 72; +use constant pt => 1; + +use PDF::API2; +#A4 paper specs +my ($height, $width) = (297, 210); +use PDF::Table; + +sub printorders { + my ($pdf, $basketgroup, $baskets, $orders) = @_; + + my $cur_format = C4::Context->preference("CurrencyFormat"); + my $num; + + if ( $cur_format eq 'FR' ) { + $num = new Number::Format( + 'decimal_fill' => '2', + 'decimal_point' => ',', + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ' ', + 'thousands_sep' => ' ', + 'mon_decimal_point' => ',' + ); + } else { # US by default.. + $num = new Number::Format( + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ',', + 'mon_decimal_point' => '.' + ); + } + + $pdf->mediabox($height/mm, $width/mm); + my $number = 3; + for my $basket (@$baskets){ + my $page = $pdf->page(); + + # print basket header (box) + my $box = $page->gfx; + $box->rectxy(($width - 10)/mm, ($height - 5)/mm, 10/mm, ($height - 25)/mm); + $box->stroke; +# $box->restore(); + + # create a text + my $text = $page->text; + # add basketgroup number + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 6/mm ); + $text->translate(20/mm, ($height-15)/mm); + $text->text("Order no. ".$basketgroup->{'id'}.". Basket no. ".$basket->{basketno}.". ".$basket->{booksellernote}); + $text->translate(20/mm, ($height-20)/mm); + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 4/mm ); + $text->text( ( $basket->{billingplace} ? "Billing at " . C4::Branch::GetBranchName( $basket->{billingplace} ) : "" ) + . ( $basket->{billingplace} and $basket->{deliveryplace} ? " and " : "" ) + . ( $basket->{deliveryplace} ? "delivery at " . C4::Branch::GetBranchName( $basket->{deliveryplace}) : "" ) + ); + + my $pdftable = new PDF::Table(); + my $abaskets; + my $arrbasket; + my @keys = ('Document', 'Qty', 'RRP tax exc.', 'RRP tax inc.', 'Discount', 'Discount price', 'GST rate', 'Total tax exc.', 'Total tax inc.'); + for my $bkey (@keys) { + push(@$arrbasket, $bkey); + } + push(@$abaskets, $arrbasket); + foreach my $line (@{$orders->{$basket->{basketno}}}) { + $arrbasket = undef; + push( @$arrbasket, + $line->{title} . " / " . $line->{author} . ( $line->{isbn} ? " ISBN : " . $line->{isbn} : '' ) . ( $line->{en} ? " EN : " . $line->{en} : '' ) . ", " . $line->{itemtype} . ( $line->{publishercode} ? ' published by '. $line->{publishercode} : ""), + $line->{quantity}, + $num->format_price($line->{rrpgste}), + $num->format_price($line->{rrpgsti}), + $num->format_price($line->{discount}).'%', + $num->format_price($line->{rrpgste} - $line->{ecostgste}), + $num->format_price($line->{gstrate} * 100).'%', + $num->format_price($line->{totalgste}), + $num->format_price($line->{totalgsti}), + ); + push(@$abaskets, $arrbasket); + } + + $pdftable->table($pdf, $page, $abaskets, + x => 10/mm, + w => ($width - 20)/mm, + start_y => 270/mm, + next_y => 285/mm, + start_h => 250/mm, + next_h => 250/mm, + padding => 5, + padding_right => 5, + background_color_odd => "lightgray", + font => $pdf->corefont("Times", -encoding => "utf8"), + font_size => 3/mm, + header_props => { + font => $pdf->corefont("Times", -encoding => "utf8"), + font_size => 9, + bg_color => 'gray', + repeat => 1, + }, + column_props => [ + { + min_w => 85/mm, # Minimum column width. + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + { + justify => 'right', # One of left|right , + }, + ], + ); + } + $pdf->mediabox($width/mm, $height/mm); +} + +sub printbaskets { + my ($pdf, $basketgroup, $hbaskets, $bookseller, $GSTrate, $orders) = @_; + + # get library name + my $libraryname = C4::Context->preference("LibraryName"); + + my $cur_format = C4::Context->preference("CurrencyFormat"); + my $num; + + if ( $cur_format eq 'FR' ) { + $num = new Number::Format( + 'decimal_fill' => '2', + 'decimal_point' => ',', + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ' ', + 'thousands_sep' => ' ', + 'mon_decimal_point' => ',' + ); + } else { # US by default.. + $num = new Number::Format( + 'int_curr_symbol' => '', + 'mon_thousands_sep' => ',', + 'mon_decimal_point' => '.' + ); + } + + $pdf->mediabox($width/mm, $height/mm); + my $page = $pdf->openpage(2); + # create a text + my $text = $page->text; + + # add basketgroup number + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 6/mm ); + $text->translate(($width-40)/mm, ($height-53)/mm); + $text->text("".$basketgroup->{'id'}); + # print the libraryname in the header + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 6/mm ); + $text->translate(30/mm, ($height-28.5)/mm); + $text->text($libraryname); + my $pdftable = new PDF::Table(); + my $abaskets; + my $arrbasket; + # header of the table + my @keys = ('Lot', 'Basket (No.)','Total RRP tax exc.', 'Total RRP tax inc.', 'GST rate', 'GST', 'Total discount', 'Total tax exc.', 'Total tax inc.'); + for my $bkey (@keys) { + push(@$arrbasket, $bkey); + } + my ($grandtotalrrpgsti, $grandtotalrrpgste, $grandtotalgsti, $grandtotalgste, $grandtotalgstvalue, $grandtotaldiscount); + # calculate each basket total + push(@$abaskets, $arrbasket); + for my $basket (@$hbaskets) { + my @gst; + $arrbasket = undef; + my ($totalrrpgste, $totalrrpgsti, $totalgste, $totalgsti, $totalgstvalue, $totaldiscount); + my $ords = $orders->{$basket->{basketno}}; + my $ordlength = @$ords; + foreach my $ord (@$ords) { + $totalgste += $ord->{totalgste}; + $totalgsti += $ord->{totalgsti}; + $totalgstvalue += $ord->{gstvalue}; + $totaldiscount += ($ord->{rrpgste} - $ord->{ecostgste} ) * $ord->{quantity}; + $totalrrpgste += $ord->{rrpgste} * $ord->{quantity}; + $totalrrpgsti += $ord->{rrpgsti} * $ord->{quantity}; + push @gst, $ord->{gstrate}; + } + @gst = uniq map { $_ * 100 } @gst; + $totalgsti = $num->round($totalgsti); + $totalgste = $num->round($totalgste); + $grandtotalrrpgste += $totalrrpgste; + $grandtotalrrpgsti += $totalrrpgsti; + $grandtotalgsti += $totalgsti; + $grandtotalgste += $totalgste; + $grandtotalgstvalue += $totalgstvalue; + $grandtotaldiscount += $totaldiscount; + my @gst_string = map{$num->format_price( $_ ) . '%'} @gst; + push(@$arrbasket, + $basket->{contractname}, + $basket->{basketname} . ' (No. ' . $basket->{basketno} . ')', + $num->format_price($totalrrpgste), + $num->format_price($totalrrpgsti), + "@gst_string", + $num->format_price($totalgstvalue), + $num->format_price($totaldiscount), + $num->format_price($totalgste), + $num->format_price($totalgsti) + ); + push(@$abaskets, $arrbasket); + } + # now, push total + undef $arrbasket; + push @$arrbasket,'','Total', $num->format_price($grandtotalrrpgste), $num->format_price($grandtotalrrpgsti), '', $num->format_price($grandtotalgstvalue), $num->format_price($grandtotaldiscount), $num->format_price($grandtotalgste), $num->format_price($grandtotalgsti); + push @$abaskets,$arrbasket; + # height is width and width is height in this function, as the pdf is in landscape mode for the Tables. + + $pdftable->table($pdf, $page, $abaskets, + x => 5/mm, + w => ($width - 10)/mm, + start_y => 230/mm, + next_y => 230/mm, + start_h => 230/mm, + next_h => 230/mm, + font => $pdf->corefont("Times", -encoding => "utf8"), + font_size => 3/mm, + padding => 5, + padding_right => 10, + background_color_odd => "lightgray", + header_props => { + bg_color => 'gray', + repeat => 1, + }, + column_props => [ + { + }, + { + }, + { + justify => 'right', + }, + { + justify => 'right', + }, + { + justify => 'right', + }, + { + justify => 'right', + }, + { + justify => 'right', + }, + ], + ); + $pdf->mediabox($height/mm, $width/mm); +} + +sub printhead { + my ($pdf, $basketgroup, $bookseller) = @_; + + # get library name + my $libraryname = C4::Context->preference("LibraryName"); + # get branch details + my $billingdetails = GetBranchDetail( $basketgroup->{billingplace} ); + my $deliverydetails = GetBranchDetail( $basketgroup->{deliveryplace} ); + my $freedeliveryplace = $basketgroup->{freedeliveryplace}; + # get the subject + my $subject; + + # open 1st page (with the header) + my $page = $pdf->openpage(1); + + # create a text + my $text = $page->text; + + # print the libraryname in the header + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 6/mm ); + $text->translate(30/mm, ($height-28.5)/mm); + $text->text($libraryname); + + # print order info, on the default PDF + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 8/mm ); + $text->translate(100/mm, ($height-5-48)/mm); + $text->text($basketgroup->{'id'}); + + # print the date + my $today = C4::Dates->today(); + $text->translate(130/mm, ($height-5-48)/mm); + $text->text($today); + + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 4/mm ); + + # print billing infos + $text->translate(100/mm, ($height-86)/mm); + $text->text($libraryname); + $text->translate(100/mm, ($height-97)/mm); + $text->text($billingdetails->{branchname}); + $text->translate(100/mm, ($height-108.5)/mm); + $text->text($billingdetails->{branchphone}); + $text->translate(100/mm, ($height-115.5)/mm); + $text->text($billingdetails->{branchfax}); + $text->translate(100/mm, ($height-122.5)/mm); + $text->text($billingdetails->{branchaddress1}); + $text->translate(100/mm, ($height-127.5)/mm); + $text->text($billingdetails->{branchaddress2}); + $text->translate(100/mm, ($height-132.5)/mm); + $text->text($billingdetails->{branchaddress3}); + $text->translate(100/mm, ($height-137.5)/mm); + $text->text(join(' ', $billingdetails->{branchzip}, $billingdetails->{branchcity}, $billingdetails->{branchcountry})); + $text->translate(100/mm, ($height-147.5)/mm); + $text->text($billingdetails->{branchemail}); + + # print subject + $text->translate(100/mm, ($height-145.5)/mm); + $text->text($subject); + + # print bookseller infos + $text->translate(100/mm, ($height-180)/mm); + $text->text($bookseller->{name}); + $text->translate(100/mm, ($height-185)/mm); + $text->text($bookseller->{postal}); + $text->translate(100/mm, ($height-190)/mm); + $text->text($bookseller->{address1}); + $text->translate(100/mm, ($height-195)/mm); + $text->text($bookseller->{address2}); + $text->translate(100/mm, ($height-200)/mm); + $text->text($bookseller->{address3}); + + # print delivery infos + $text->font( $pdf->corefont("Times-Bold", -encoding => "utf8"), 4/mm ); + $text->translate(50/mm, ($height-237)/mm); + if ($freedeliveryplace) { + my $start = 242; + my @fdp = split('\n', $freedeliveryplace); + foreach (@fdp) { + $text->text($_); + $text->translate( 50 / mm, ( $height - $start ) / mm ); + $start += 5; + } + } else { + $text->text($deliverydetails->{branchaddress1}); + $text->translate(50/mm, ($height-242)/mm); + $text->text($deliverydetails->{branchaddress2}); + $text->translate(50/mm, ($height-247)/mm); + $text->text($deliverydetails->{branchaddress3}); + $text->translate(50/mm, ($height-252)/mm); + $text->text(join(' ', $deliverydetails->{branchzip}, $deliverydetails->{branchcity}, $deliverydetails->{branchcountry})); + } + $text->translate(50/mm, ($height-262)/mm); + $text->text($basketgroup->{deliverycomment}); +} + +sub printfooters { + my ($pdf) = @_; + for (my $i=1;$i <= $pdf->pages;$i++) { + my $page = $pdf->openpage($i); + my $text = $page->text; + $text->font( $pdf->corefont("Times", -encoding => "utf8"), 3/mm ); + $text->translate(10/mm, 10/mm); + $text->text("Page $i / ".$pdf->pages); + } +} + +sub printpdf { + my ($basketgroup, $bookseller, $baskets, $orders, $GST) = @_; + # open the default PDF that will be used for base (1st page already filled) + my $pdf_template = C4::Context->config('intrahtdocs') . '/' . C4::Context->preference('template') . '/pdf/msaby.pdf'; + my $pdf = PDF::API2->open($pdf_template); + $pdf->pageLabel( 0, { + -style => 'roman', + } ); # start with roman numbering + # fill the 1st page (basketgroup information) + printhead($pdf, $basketgroup, $bookseller); + # fill the 2nd page (orders summary) + printbaskets($pdf, $basketgroup, $baskets, $bookseller, $GST, $orders); + # fill other pages (orders) + printorders($pdf, $basketgroup, $baskets, $orders); + # print something on each page (usually the footer, but you could also put a header + printfooters($pdf); + return $pdf->stringify; +} + +1; diff --git a/koha-tmpl/intranet-tmpl/prog/pdf/msaby.pdf b/koha-tmpl/intranet-tmpl/prog/pdf/msaby.pdf new file mode 100644 index 0000000000000000000000000000000000000000..b534e237c07e7e0e1d23e87f5647ed7f27e86fc6 GIT binary patch literal 58979 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 literal 0 HcmV?d00001 -- 1.7.9.5