View | Details | Raw Unified | Return to bug 7292
Collapse All | Expand All

(-)a/acqui/lateorders.pl (-23 / +66 lines)
Lines 43-50 To know on which branch this script have to display late order. Link Here
43
43
44
=cut
44
=cut
45
45
46
use strict;
46
use Modern::Perl;
47
use warnings;
48
use CGI;
47
use CGI;
49
use C4::Bookseller qw( GetBooksellersWithLateOrders );
48
use C4::Bookseller qw( GetBooksellersWithLateOrders );
50
use C4::Auth;
49
use C4::Auth;
Lines 56-70 use C4::Letters; Link Here
56
use C4::Branch; # GetBranches
55
use C4::Branch; # GetBranches
57
56
58
my $input = new CGI;
57
my $input = new CGI;
59
my ($template, $loggedinuser, $cookie) = get_template_and_user({
58
my ($template, $loggedinuser, $cookie, $userflags) = get_template_and_user({
60
	template_name => "acqui/lateorders.tmpl",
59
    template_name => "acqui/lateorders.tt",
61
	query => $input,
60
    query => $input,
62
	 type => "intranet",
61
    type => "intranet",
63
	authnotrequired => 0,
62
    authnotrequired => 0,
64
	flagsrequired => {acquisition => 'order_receive'},
63
    flagsrequired => {acquisition => '*'},
65
	debug => 1,
64
    debug => 1,
66
});
65
});
67
66
67
# Check if user has rights to access this page
68
my $can_claim_for_all = 0;
69
if ($userflags->{superlibrarian}
70
    or (!ref $userflags->{acquisition} and $userflags->{acquisition})
71
    or (ref $userflags->{acquisition}
72
        and $userflags->{acquisition}->{order_claim_for_all}
73
    )
74
) {
75
    $can_claim_for_all = 1;
76
}
77
78
if ( !$can_claim_for_all
79
    and (
80
        ref $userflags->{acquisition}
81
        and not $userflags->{acquisition}->{order_receive}
82
    )
83
) {
84
    # Will fail to authenticate, so redirect to login screen
85
    checkauth($input, 0, { acquisition => 'order_receive' }, "intranet");
86
}
87
68
my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
88
my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
69
my $delay      = $input->param('delay');
89
my $delay      = $input->param('delay');
70
my $estimateddeliverydatefrom = $input->param('estimateddeliverydatefrom');
90
my $estimateddeliverydatefrom = $input->param('estimateddeliverydatefrom');
Lines 78-98 if ( $delay and not $delay =~ /^\d{1,3}$/ ) { Link Here
78
}
98
}
79
99
80
if ($op and $op eq "send_alert"){
100
if ($op and $op eq "send_alert"){
81
    my @ordernums = $input->param("claim_for");# FIXME: Fallback values?
101
    my @claim_for = $input->param('claim_for'); # FIXME: Fallback values?
82
    my $err;
102
    my (@ordernums, @not_claimed);
83
    eval {
103
    if (not $can_claim_for_all) {
84
        $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );    # FIXME: Fallback value?
104
        foreach my $ordernumber (@claim_for) {
85
        if ( not ref $err or not exists $err->{error} ) {
105
            my $order = GetOrder($ordernumber);
86
            AddClaim ( $_ ) for @ordernums;
106
            if (CanUserManageBasket($loggedinuser, $order->{basketno}, $userflags)) {
107
                push @ordernums, $ordernumber;
108
            } else {
109
                push @not_claimed, $ordernumber;
110
            }
87
        }
111
        }
88
    };
89
    if ( $@ ) {
90
        $template->param(error_claim => $@);
91
    } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
92
        $template->{VARS}->{'error_claim'} = "no_email";
93
    } else {
112
    } else {
94
        $template->{VARS}->{'info_claim'} = 1;
113
        @ordernums = @claim_for;
95
    }
114
    }
115
    if (scalar @ordernums > 0) {
116
        my $err;
117
        eval {
118
            $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );    # FIXME: Fallback value?
119
            if ( not ref $err or not exists $err->{error} ) {
120
                foreach my $ordernumber (@ordernums) {
121
                    AddClaim($ordernumber);
122
                }
123
            }
124
        };
125
        if ( $@ ) {
126
            $template->param(error_claim => $@);
127
        } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
128
            $template->param(error_claim => "no_email");
129
        } else {
130
            $template->param(info_claim => 1);
131
        }
132
    }
133
    $template->param(not_claimed => \@not_claimed);
96
}
134
}
97
135
98
my %supplierlist = GetBooksellersWithLateOrders(
136
my %supplierlist = GetBooksellersWithLateOrders(
Lines 122-129 my @lateorders = GetLateOrders( Link Here
122
);
160
);
123
161
124
my $total;
162
my $total;
125
foreach (@lateorders){
163
foreach my $order (@lateorders){
126
	$total += $_->{subtotal};
164
    if ( (not $can_claim_for_all)
165
        and (not CanUserManageBasket($loggedinuser, $order->{basketno}, $userflags))
166
    ) {
167
        $order->{cannot_claim} = 1;
168
    }
169
    $total += $order->{subtotal};
127
}
170
}
128
171
129
my @letters;
172
my @letters;
(-)a/installer/data/mysql/de-DE/mandatory/userpermissions.sql (+1 lines)
Lines 20-25 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
20
   (11, 'order_receive', 'Lieferungen verwalten'),
20
   (11, 'order_receive', 'Lieferungen verwalten'),
21
   (11, 'budget_add_del', 'Konten hinzufügen/ändern, aber bestehende nicht ändern'),
21
   (11, 'budget_add_del', 'Konten hinzufügen/ändern, aber bestehende nicht ändern'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
23
   (11, 'order_claim_for_all', 'Claim for all orders'),
23
   (13, 'edit_news', 'Nachrichten für OPAC und Dienstoberfläche verfassen'),
24
   (13, 'edit_news', 'Nachrichten für OPAC und Dienstoberfläche verfassen'),
24
   (13, 'label_creator', 'Etiketten und Barcodes aus Katalog- und Benutzerdaten erstellen'),
25
   (13, 'label_creator', 'Etiketten und Barcodes aus Katalog- und Benutzerdaten erstellen'),
25
   (13, 'edit_calendar', 'Schließtage eintragen'),
26
   (13, 'edit_calendar', 'Schließtage eintragen'),
(-)a/installer/data/mysql/en/mandatory/userpermissions.sql (+1 lines)
Lines 20-25 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
20
   (11, 'order_receive', 'Manage orders & basket'),
20
   (11, 'order_receive', 'Manage orders & basket'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
23
   (11, 'order_claim_for_all', 'Claim for all orders'),
23
   (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
24
   (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
24
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'edit_calendar', 'Define days when the library is closed'),
26
   (13, 'edit_calendar', 'Define days when the library is closed'),
(-)a/installer/data/mysql/es-ES/mandatory/userpermissions.sql (+1 lines)
Lines 20-25 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
20
   (11, 'order_receive', 'Manage orders & basket'),
20
   (11, 'order_receive', 'Manage orders & basket'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
23
   (11, 'order_claim_for_all', 'Claim for all orders'),
23
   (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
24
   (13, 'edit_news', 'Write news for the OPAC and staff interfaces'),
24
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'edit_calendar', 'Define days when the library is closed'),
26
   (13, 'edit_calendar', 'Define days when the library is closed'),
(-)a/installer/data/mysql/fr-FR/1-Obligatoire/userpermissions.sql (+1 lines)
Lines 37-42 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
37
   (11, 'order_receive', 'Gérer les réceptions'),
37
   (11, 'order_receive', 'Gérer les réceptions'),
38
   (11, 'budget_add_del', 'Ajouter et supprimer les budgets (mais pas modifier)'),
38
   (11, 'budget_add_del', 'Ajouter et supprimer les budgets (mais pas modifier)'),
39
   (11, 'budget_manage_all', 'Gérer tous les budgets'),
39
   (11, 'budget_manage_all', 'Gérer tous les budgets'),
40
   (11, 'order_claim_for_all', 'Réclamer toutes les commandes'),
40
   (13, 'manage_csv_profiles', 'Gérer les profils d''export CSV'),
41
   (13, 'manage_csv_profiles', 'Gérer les profils d''export CSV'),
41
   (13, 'moderate_tags', 'Modérer les tags des adhérents'),
42
   (13, 'moderate_tags', 'Modérer les tags des adhérents'),
42
   (13, 'rotating_collections', 'Gérer les collections tournantes'),
43
   (13, 'rotating_collections', 'Gérer les collections tournantes'),
(-)a/installer/data/mysql/it-IT/necessari/userpermissions.sql (+1 lines)
Lines 22-27 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
22
   (11, 'order_receive', 'Gestisci arrivi'),
22
   (11, 'order_receive', 'Gestisci arrivi'),
23
   (11, 'budget_add_del', 'Aggiungi e cancella budgets (senza modificarli)'),
23
   (11, 'budget_add_del', 'Aggiungi e cancella budgets (senza modificarli)'),
24
   (11, 'budget_manage_all', 'Manage all budgets'),
24
   (11, 'budget_manage_all', 'Manage all budgets'),
25
   (11, 'order_claim_for_all', 'Claim for all orders'),
25
   (13, 'edit_news', 'Scrivi le news per l\'OPAC e per l\'interfaccia staff'),
26
   (13, 'edit_news', 'Scrivi le news per l\'OPAC e per l\'interfaccia staff'),
26
   (13, 'label_creator', 'Crea etichette da stampare e barcodes dal catalogo e dai dati degli utenti'),
27
   (13, 'label_creator', 'Crea etichette da stampare e barcodes dal catalogo e dai dati degli utenti'),
27
   (13, 'edit_calendar', 'Definisci i giorni di chiusura della biblioteca'),
28
   (13, 'edit_calendar', 'Definisci i giorni di chiusura della biblioteca'),
(-)a/installer/data/mysql/nb-NO/1-Obligatorisk/userpermissions.sql (+1 lines)
Lines 41-46 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
41
   (11, 'order_receive', 'Administrere bestillinger og kurver'),
41
   (11, 'order_receive', 'Administrere bestillinger og kurver'),
42
   (11, 'budget_add_del', 'Legge til og slette budsjetter (men ikke endre budsjetter)'),
42
   (11, 'budget_add_del', 'Legge til og slette budsjetter (men ikke endre budsjetter)'),
43
   (11, 'budget_manage_all', 'Manage all budgets'),
43
   (11, 'budget_manage_all', 'Manage all budgets'),
44
   (11, 'order_claim_for_all', 'Claim for all orders'),
44
   (13, 'edit_news', 'Legge ut nyhter i OPACen og det interne grensesnittet'),
45
   (13, 'edit_news', 'Legge ut nyhter i OPACen og det interne grensesnittet'),
45
   (13, 'label_creator', 'Lage etiketter og strekkoder basert på bibliografiske poster og lånerdata'),
46
   (13, 'label_creator', 'Lage etiketter og strekkoder basert på bibliografiske poster og lånerdata'),
46
   (13, 'edit_calendar', 'Definere dager da biblioteket er stengt'),
47
   (13, 'edit_calendar', 'Definere dager da biblioteket er stengt'),
(-)a/installer/data/mysql/pl-PL/mandatory/userpermissions.sql (+1 lines)
Lines 20-25 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
20
   (11, 'order_receive', 'Manage orders & basket'),
20
   (11, 'order_receive', 'Manage orders & basket'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
21
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
22
   (11, 'budget_manage_all', 'Manage all budgets'),
23
   (11, 'order_claim_for_all', 'Claim for all orders'),
23
   (13, 'edit_news', 'RTworzeniei publikowanie wiadomości w interfejsie bibliotekarza i OPAC'),
24
   (13, 'edit_news', 'RTworzeniei publikowanie wiadomości w interfejsie bibliotekarza i OPAC'),
24
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'label_creator', 'Create printable labels and barcodes from catalog and patron data'),
25
   (13, 'edit_calendar', 'Define days when the library is closed'),
26
   (13, 'edit_calendar', 'Define days when the library is closed'),
(-)a/installer/data/mysql/ru-RU/mandatory/permissions_and_user_flags.sql (+1 lines)
Lines 44-49 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
44
   (11, 'order_receive', 'Manage orders & basket'),
44
   (11, 'order_receive', 'Manage orders & basket'),
45
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
45
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
46
   (11, 'budget_manage_all', 'Manage all budgets'),
46
   (11, 'budget_manage_all', 'Manage all budgets'),
47
   (11, 'order_claim_for_all', 'Claim for all orders'),
47
   (13, 'edit_news',                   'Написание новостей для электронного каталога и интерфейса библиотекарей'),
48
   (13, 'edit_news',                   'Написание новостей для электронного каталога и интерфейса библиотекарей'),
48
   (13, 'label_creator',               'Создание печатных наклеек и штрихкодов из каталога и с данными о пользователях'),
49
   (13, 'label_creator',               'Создание печатных наклеек и штрихкодов из каталога и с данными о пользователях'),
49
   (13, 'edit_calendar',               'Определение дней, когда библиотека закрыта'),
50
   (13, 'edit_calendar',               'Определение дней, когда библиотека закрыта'),
(-)a/installer/data/mysql/uk-UA/mandatory/permissions_and_user_flags.sql (+1 lines)
Lines 44-49 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
44
   (11, 'order_receive', 'Manage orders & basket'),
44
   (11, 'order_receive', 'Manage orders & basket'),
45
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
45
   (11, 'budget_add_del', 'Add and delete budgets (but cant modify budgets)'),
46
   (11, 'budget_manage_all', 'Manage all budgets'),
46
   (11, 'budget_manage_all', 'Manage all budgets'),
47
   (11, 'order_claim_for_all', 'Claim for all orders'),
47
   (13, 'edit_news',                   'Написання новин для електронного каталогу та інтерфейсу бібліотекарів'),
48
   (13, 'edit_news',                   'Написання новин для електронного каталогу та інтерфейсу бібліотекарів'),
48
   (13, 'label_creator',               'Створення друкованих наклейок і штрих-кодів з каталогу та з даними про користувачів'),
49
   (13, 'label_creator',               'Створення друкованих наклейок і штрих-кодів з каталогу та з даними про користувачів'),
49
   (13, 'edit_calendar',               'Визначення днів, коли бібліотека закрита'),
50
   (13, 'edit_calendar',               'Визначення днів, коли бібліотека закрита'),
(-)a/installer/data/mysql/updatedatabase.pl (+11 lines)
Lines 5644-5649 if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { Link Here
5644
}
5644
}
5645
5645
5646
5646
5647
$DBversion = "XXX";
5648
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
5649
    $dbh->do("
5650
        INSERT IGNORE INTO permissions (module_bit, code, description)
5651
        VALUES (11, 'order_claim_for_all', 'Claim for all orders')
5652
    ");
5653
5654
    print "Upgrade to $DBversion done (Add permission order_claim_for_all)\n";
5655
    SetVersion($DBversion);
5656
}
5657
5647
=head1 FUNCTIONS
5658
=head1 FUNCTIONS
5648
5659
5649
=head2 TableExists($table)
5660
=head2 TableExists($table)
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt (-2 / +14 lines)
Lines 55-60 $(document).ready(function() { Link Here
55
        <div class="error">[% error_claim %]</div>
55
        <div class="error">[% error_claim %]</div>
56
    [% END %]
56
    [% END %]
57
[% END %]
57
[% END %]
58
[% IF not_claimed.size %]
59
    <div class="error">
60
        <p>
61
            The following orders were not claimed because you are not
62
            authorised to claim for them:
63
        </p>
64
        <ul>
65
            [% FOREACH ordernumber IN not_claimed %]
66
                <li>[% ordernumber %]</li>
67
            [% END %]
68
        </ul>
69
    </div>
70
[% END %]
58
[% IF info_claim %]
71
[% IF info_claim %]
59
    <div class="dialog message">Email has been sent.</div>
72
    <div class="dialog message">Email has been sent.</div>
60
[% END %]
73
[% END %]
Lines 131-137 $(document).ready(function() { Link Here
131
            <td>[% lateorder.claims_count %]</td>
144
            <td>[% lateorder.claims_count %]</td>
132
            <td>[% lateorder.claimed_date %]</td>
145
            <td>[% lateorder.claimed_date %]</td>
133
            <td>
146
            <td>
134
                [% UNLESS lateorder.budget_lock %]
147
                [% UNLESS lateorder.cannot_claim %]
135
                    <input type="checkbox" class="checkbox" name="claim_for" value="[% lateorder.ordernumber %]"  booksellerid="[% lateorder.supplierid %]"/>
148
                    <input type="checkbox" class="checkbox" name="claim_for" value="[% lateorder.ordernumber %]"  booksellerid="[% lateorder.supplierid %]"/>
136
                [% END %]
149
                [% END %]
137
             </td>
150
             </td>
138
- 

Return to bug 7292