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

(-)a/acqui/lateorders.pl (-21 / +65 lines)
Lines 56-70 use C4::Branch; # GetBranches Link Here
56
use Koha::DateUtils;
56
use Koha::DateUtils;
57
57
58
my $input = new CGI;
58
my $input = new CGI;
59
my ($template, $loggedinuser, $cookie) = get_template_and_user({
59
my ($template, $loggedinuser, $cookie, $userflags) = get_template_and_user({
60
	template_name => "acqui/lateorders.tmpl",
60
    template_name => "acqui/lateorders.tt",
61
	query => $input,
61
    query => $input,
62
	 type => "intranet",
62
    type => "intranet",
63
	authnotrequired => 0,
63
    authnotrequired => 0,
64
	flagsrequired => {acquisition => 'order_receive'},
64
    flagsrequired => {acquisition => '*'},
65
	debug => 1,
65
    debug => 1,
66
});
66
});
67
67
68
# Check if user has rights to access this page
69
my $can_claim_for_all = 0;
70
if ($userflags->{superlibrarian}
71
    or (!ref $userflags->{acquisition} and $userflags->{acquisition})
72
    or (ref $userflags->{acquisition}
73
        and $userflags->{acquisition}->{order_claim_for_all}
74
    )
75
) {
76
    $can_claim_for_all = 1;
77
}
78
79
if ( !$can_claim_for_all
80
    and (
81
        ref $userflags->{acquisition}
82
        and not $userflags->{acquisition}->{order_receive}
83
    )
84
) {
85
    # Will fail to authenticate, so redirect to login screen
86
    checkauth($input, 0, { acquisition => 'order_receive' }, "intranet");
87
}
88
68
my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
89
my $booksellerid = $input->param('booksellerid') || undef; # we don't want "" or 0
69
my $delay        = $input->param('delay');
90
my $delay        = $input->param('delay');
70
91
Lines 101-121 if ( $delay and not $delay =~ /^\d{1,3}$/ ) { Link Here
101
}
122
}
102
123
103
if ($op and $op eq "send_alert"){
124
if ($op and $op eq "send_alert"){
104
    my @ordernums = $input->param("claim_for");# FIXME: Fallback values?
125
    my @claim_for = $input->param('claim_for'); # FIXME: Fallback values?
105
    my $err;
126
    my (@ordernums, @not_claimed);
106
    eval {
127
    if (not $can_claim_for_all) {
107
        $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );    # FIXME: Fallback value?
128
        foreach my $ordernumber (@claim_for) {
108
        if ( not ref $err or not exists $err->{error} ) {
129
            my $order = GetOrder($ordernumber);
109
            AddClaim ( $_ ) for @ordernums;
130
            if (CanUserManageBasket($loggedinuser, $order->{basketno}, $userflags)) {
131
                push @ordernums, $ordernumber;
132
            } else {
133
                push @not_claimed, $ordernumber;
134
            }
110
        }
135
        }
111
    };
112
    if ( $@ ) {
113
        $template->param(error_claim => $@);
114
    } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
115
        $template->{VARS}->{'error_claim'} = "no_email";
116
    } else {
136
    } else {
117
        $template->{VARS}->{'info_claim'} = 1;
137
        @ordernums = @claim_for;
118
    }
138
    }
139
    if (scalar @ordernums > 0) {
140
        my $err;
141
        eval {
142
            $err = SendAlerts( 'claimacquisition', \@ordernums, $input->param("letter_code") );    # FIXME: Fallback value?
143
            if ( not ref $err or not exists $err->{error} ) {
144
                foreach my $ordernumber (@ordernums) {
145
                    AddClaim($ordernumber);
146
                }
147
            }
148
        };
149
        if ( $@ ) {
150
            $template->param(error_claim => $@);
151
        } elsif ( ref $err and exists $err->{error} and $err->{error} eq "no_email" ) {
152
            $template->param(error_claim => "no_email");
153
        } else {
154
            $template->param(info_claim => 1);
155
        }
156
    }
157
    $template->param(not_claimed => \@not_claimed);
119
}
158
}
120
159
121
my @parameters = ( $delay, $branch );
160
my @parameters = ( $delay, $branch );
Lines 154-161 if ($estimateddeliverydateto_dt) { Link Here
154
my @lateorders = GetLateOrders( @parameters );
193
my @lateorders = GetLateOrders( @parameters );
155
194
156
my $total;
195
my $total;
157
foreach (@lateorders){
196
foreach my $order (@lateorders){
158
	$total += $_->{subtotal};
197
    if ( (not $can_claim_for_all)
198
        and (not CanUserManageBasket($loggedinuser, $order->{basketno}, $userflags))
199
    ) {
200
        $order->{cannot_claim} = 1;
201
    }
202
    $total += $order->{subtotal};
159
}
203
}
160
204
161
my @letters;
205
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', 'Alle Konten verwalten'),
22
   (11, 'budget_manage_all', 'Alle Konten verwalten'),
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', 'Gestisci tutti i budgets'),
24
   (11, 'budget_manage_all', 'Gestisci tutti i 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 40-45 INSERT INTO permissions (module_bit, code, description) VALUES Link Here
40
   (11, 'order_receive', 'Administrere bestillinger og kurver'),
40
   (11, 'order_receive', 'Administrere bestillinger og kurver'),
41
   (11, 'budget_add_del', 'Legge til og slette budsjetter (men ikke endre budsjetter)'),
41
   (11, 'budget_add_del', 'Legge til og slette budsjetter (men ikke endre budsjetter)'),
42
   (11, 'budget_manage_all', 'Administrere alle budsjetter'),
42
   (11, 'budget_manage_all', 'Administrere alle budsjetter'),
43
   (11, 'order_claim_for_all', 'Claim for all orders'),
43
   (13, 'edit_news', 'Legge ut nyhter i OPACen og det interne grensesnittet'),
44
   (13, 'edit_news', 'Legge ut nyhter i OPACen og det interne grensesnittet'),
44
   (13, 'label_creator', 'Lage etiketter og strekkoder basert på bibliografiske poster og lånerdata'),
45
   (13, 'label_creator', 'Lage etiketter og strekkoder basert på bibliografiske poster og lånerdata'),
45
   (13, 'edit_calendar', 'Definere dager da biblioteket er stengt'),
46
   (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 6373-6378 if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) { Link Here
6373
}
6373
}
6374
6374
6375
6375
6376
$DBversion = "XXX";
6377
if ( C4::Context->preference("Version") < TransformToNum($DBversion) ) {
6378
    $dbh->do("
6379
        INSERT IGNORE INTO permissions (module_bit, code, description)
6380
        VALUES (11, 'order_claim_for_all', 'Claim for all orders')
6381
    ");
6382
6383
    print "Upgrade to $DBversion done (Add permission order_claim_for_all)\n";
6384
    SetVersion($DBversion);
6385
}
6386
6376
=head1 FUNCTIONS
6387
=head1 FUNCTIONS
6377
6388
6378
=head2 TableExists($table)
6389
=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