Bug 19532: [DBIx] Schema change for Recalls
[koha-ffzg.git] / patroncards / manage.pl
index da729b7..4366955 100755 (executable)
 # You should have received a copy of the GNU General Public License
 # along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
-use vars qw($debug);
+use Modern::Perl;
 
 use CGI qw ( -utf8 );
 use autouse 'Data::Dumper' => qw(Dumper);
 
-use C4::Auth qw(get_template_and_user);
-use C4::Output qw(output_html_with_http_headers);
-use C4::Creators;
-use C4::Patroncards;
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use C4::Creators qw(
+    get_all_layouts
+    get_all_profiles
+    get_all_templates
+    get_batch_summary
+    html_table
+);
 use C4::Labels;
-use Koha::List::Patron;
+use Koha::List::Patron qw( GetPatronLists );
 
-my $cgi = new CGI;
+my $cgi = CGI->new;
 my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     {
         template_name   => "patroncards/manage.tt",
         query           => $cgi,
         type            => "intranet",
-        authnotrequired => 0,
-        flagsrequired   => { catalogue => 1 },
-        debug           => 1,
+        flagsrequired   => { tools => 'label_creator' },
     }
 );
 
+my @errors = ( 'pdferr', 'errnocards', 'errba', 'errpl', 'errpt', 'errlo', 'errtpl', );
+foreach my $param (@errors) {
+    my $error = $cgi->param($param) ? 1 : 0;
+    $template->param( 'error_' . $param => $error )
+      if $error;
+}
+
 my $op = $cgi->param('op') || 'none';
-my $card_element = $cgi->param('card_element') || 'template';   # default to template managment
+my $card_element = $cgi->param('card_element') || 'template';   # default to template management
 my $element_id = $cgi->param('element_id') || 0; # there should never be an element with a id of 0 so this is a safe default
 
 my $db_rows = {};
@@ -65,12 +73,13 @@ my $display_columns = { layout =>   [  # db column       => {col label
                         profile =>  [   {profile_id      => {label => 'Profile ID',     link_field      => 0}},
                                         {printer_name    => {label => 'Printer Name',   link_field      => 0}},
                                         {paper_bin       => {label => 'Paper Bin',      link_field      => 0}},
-                                        {_template_code  => {label => 'Template Name',  link_field      => 0}},     # this display column does not have a corrisponding db column in the profile table, hence the underscore
+                                        {_template_code  => {label => 'Template Name',  link_field      => 0}},     # this display column does not have a corresponding db column in the profile table, hence the underscore
                                         {_action         => {label => 'Action',         link_field      => 0}},
                                         {select          => {label => 'Select',         value           => 'profile_id'}},
                                     ],
                         batch =>    [   {batch_id        => {label => 'Batch ID',       link_field      => 0}},
-                                        {_item_count     => {label => 'Item Count',     link_field      => 0}},
+                                        {description     => {label => 'Description',    link_field      => 0}},
+                                        {_item_count     => {label => 'Patron Count',   link_field      => 0}},
                                         {_action         => {label => 'Actions',        link_field      => 0}},
                                         {select          => {label => 'Select',         value           => 'batch_id'}},
                                     ],
@@ -93,10 +102,10 @@ if ($op eq 'delete') {
     exit;
 }
 elsif ($op eq 'none') {
-    if      ($card_element eq 'layout')    {$db_rows = get_all_layouts(table_name => 'creator_layouts', filter => 'creator=\'Patroncards\'');}
-    elsif   ($card_element eq 'template')  {$db_rows = get_all_templates(table_name => 'creator_templates', filter => 'creator=\'Patroncards\'');}
-    elsif   ($card_element eq 'profile')   {$db_rows = get_all_profiles(table_name => 'printers_profile', filter => 'creator=\'Patroncards\'');}
-    elsif   ($card_element eq 'batch')     {$db_rows = get_batch_summary(filter => "branch_code=\'$branch_code\' OR branch_code=\'NB\'", creator => 'Patroncards');}
+    if      ($card_element eq 'layout')    {$db_rows = get_all_layouts( { filters => { creator => 'Patroncards' } });}
+    elsif   ($card_element eq 'template')  {$db_rows = get_all_templates( { filters => { creator => 'Patroncards' } });}
+    elsif   ($card_element eq 'profile')   {$db_rows = get_all_profiles( { filters => { creator => 'Patroncards' } });}
+    elsif   ($card_element eq 'batch')     {$db_rows = get_batch_summary( { filters => { branch_code => [ $branch_code, 'NB' ], creator => 'Patroncards' } });}
     else                                   {warn sprintf("Unknown card element passed in: %s.",$card_element); $errstr = 202;}
 }
 else { # trap unsupported operations here