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

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

Return to bug 7292