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

(-)a/acqui/basket.pl (+40 lines)
Lines 40-45 use Koha::Database; Link Here
40
use Koha::EDI qw( create_edi_order );
40
use Koha::EDI qw( create_edi_order );
41
use Koha::CsvProfiles;
41
use Koha::CsvProfiles;
42
use Koha::Patrons;
42
use Koha::Patrons;
43
use Koha::Edifact::Files;
43
44
44
use Koha::AdditionalFields;
45
use Koha::AdditionalFields;
45
use Koha::Old::Biblios;
46
use Koha::Old::Biblios;
Lines 180-185 if ($ediaccount) { Link Here
180
    );
181
    );
181
}
182
}
182
183
184
# Check for EDIFACT messages associated with this basket
185
my $edifact_enabled  = C4::Context->preference('EDIFACT');
186
my @edifact_messages = ();
187
my @edifact_errors   = ();
188
189
if ( $edifact_enabled && $basketno ) {
190
    my $edifact_messages_rs = Koha::Edifact::Files->search(
191
        { basketno => $basketno },
192
        { order_by => 'message_type' }
193
    );
194
195
    while ( my $message = $edifact_messages_rs->next ) {
196
        push @edifact_messages, {
197
            id            => $message->id,
198
            message_type  => $message->message_type,
199
            transfer_date => $message->transfer_date,
200
            status        => $message->status,
201
            filename      => $message->filename,
202
        };
203
204
        # Get errors for this message
205
        my $errors = $message->errors;
206
        while ( my $error = $errors->next ) {
207
            push @edifact_errors, {
208
                message_id   => $message->id,
209
                message_type => $message->message_type,
210
                section      => $error->section,
211
                details      => $error->details,
212
            };
213
        }
214
    }
215
}
216
217
$template->param(
218
    edifact_enabled  => $edifact_enabled,
219
    edifact_messages => \@edifact_messages,
220
    edifact_errors   => \@edifact_errors,
221
);
222
183
unless ( CanUserManageBasket( $loggedinuser, $basket, $userflags ) ) {
223
unless ( CanUserManageBasket( $loggedinuser, $basket, $userflags ) ) {
184
    $template->param(
224
    $template->param(
185
        cannot_manage_basket => 1,
225
        cannot_manage_basket => 1,
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt (-2 / +141 lines)
Lines 123-128 Link Here
123
123
124
                            [% PROCESS csv_export %]
124
                            [% PROCESS csv_export %]
125
125
126
                            [% IF edifact_enabled && edifact_messages.size > 0 %]
127
                                [% SET quote_messages = [] %]
128
                                [% SET order_messages = [] %]
129
                                [% FOR message IN edifact_messages %]
130
                                    [% IF message.message_type == 'QUOTE' %]
131
                                        [% quote_messages.push(message) %]
132
                                    [% ELSIF message.message_type == 'ORDERS' %]
133
                                        [% order_messages.push(message) %]
134
                                    [% END %]
135
                                [% END %]
136
137
                                [% IF quote_messages.size > 0 && order_messages.size > 0 %]
138
                                    <!-- Both quote and order messages exist -->
139
                                    <div class="btn-group">
140
                                        <button class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> <i class="fa fa-file-text"></i> View EDIFACT messages </button>
141
                                        <ul class="dropdown-menu">
142
                                            [% FOR message IN quote_messages %]
143
                                                <li>
144
                                                    <a class="dropdown-item view_edifact_message" href="#" data-message-id="[% message.id | html %]">
145
                                                        <i class="fa fa-quote-left"></i> View quote ([% message.transfer_date | $KohaDates %])
146
                                                    </a>
147
                                                </li>
148
                                            [% END %]
149
                                            [% FOR message IN order_messages %]
150
                                                <li>
151
                                                    <a class="dropdown-item view_edifact_message" href="#" data-message-id="[% message.id | html %]">
152
                                                        <i class="fa fa-shopping-cart"></i> View order ([% message.transfer_date | $KohaDates %])
153
                                                    </a>
154
                                                </li>
155
                                            [% END %]
156
                                        </ul>
157
                                    </div>
158
                                [% ELSIF quote_messages.size > 0 %]
159
                                    <!-- Only quote messages exist -->
160
                                    <div class="btn-group">
161
                                        <button type="button" class="btn btn-default view_edifact_message" data-message-id="[% quote_messages.0.id | html %]"> <i class="fa fa-quote-left"></i> View EDIFACT quote </button>
162
                                    </div>
163
                                [% ELSIF order_messages.size > 0 %]
164
                                    <!-- Only order messages exist -->
165
                                    <div class="btn-group">
166
                                        <button type="button" class="btn btn-default view_edifact_message" data-message-id="[% order_messages.0.id | html %]"> <i class="fa fa-shopping-cart"></i> View EDIFACT order </button>
167
                                    </div>
168
                                [% END %]
169
                            [% END %]
170
126
                            [% IF Koha.Preference('EDIFACT') && ediaccount %]
171
                            [% IF Koha.Preference('EDIFACT') && ediaccount %]
127
                                [% UNLESS eans.size %]
172
                                [% UNLESS eans.size %]
128
                                    <div class="btn-group" title="You must define an EAN in Administration -> Library EANs">
173
                                    <div class="btn-group" title="You must define an EAN in Administration -> Library EANs">
Lines 283-290 Link Here
283
                                    <button type="submit" class="btn btn-default"><i class="fa-solid fa-rotate"></i> Reopen basket</button>
328
                                    <button type="submit" class="btn btn-default"><i class="fa-solid fa-rotate"></i> Reopen basket</button>
284
                                </form>
329
                                </form>
285
                            </div>
330
                            </div>
331
332
                            [% PROCESS csv_export %]
333
334
                            [% IF edifact_enabled && edifact_messages.size > 0 %]
335
                                [% SET quote_messages = [] %]
336
                                [% SET order_messages = [] %]
337
                                [% FOR message IN edifact_messages %]
338
                                    [% IF message.message_type == 'QUOTE' %]
339
                                        [% quote_messages.push(message) %]
340
                                    [% ELSIF message.message_type == 'ORDERS' %]
341
                                        [% order_messages.push(message) %]
342
                                    [% END %]
343
                                [% END %]
344
345
                                [% IF quote_messages.size > 0 && order_messages.size > 0 %]
346
                                    <!-- Both quote and order messages exist -->
347
                                    <div class="btn-group">
348
                                        <button class="btn btn-default dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false"> <i class="fa fa-file-text"></i> View EDIFACT messages </button>
349
                                        <ul class="dropdown-menu">
350
                                            [% FOR message IN quote_messages %]
351
                                                <li>
352
                                                    <a class="dropdown-item view_edifact_message" href="#" data-message-id="[% message.id | html %]">
353
                                                        <i class="fa fa-quote-left"></i> View quote ([% message.transfer_date | $KohaDates %])
354
                                                    </a>
355
                                                </li>
356
                                            [% END %]
357
                                            [% FOR message IN order_messages %]
358
                                                <li>
359
                                                    <a class="dropdown-item view_edifact_message" href="#" data-message-id="[% message.id | html %]">
360
                                                        <i class="fa fa-shopping-cart"></i> View order ([% message.transfer_date | $KohaDates %])
361
                                                    </a>
362
                                                </li>
363
                                            [% END %]
364
                                        </ul>
365
                                    </div>
366
                                [% ELSIF quote_messages.size > 0 %]
367
                                    <!-- Only quote messages exist -->
368
                                    <div class="btn-group">
369
                                        <button type="button" class="btn btn-default view_edifact_message" data-message-id="[% quote_messages.0.id | html %]"> <i class="fa fa-quote-left"></i> View EDIFACT quote </button>
370
                                    </div>
371
                                [% ELSIF order_messages.size > 0 %]
372
                                    <!-- Only order messages exist -->
373
                                    <div class="btn-group">
374
                                        <button type="button" class="btn btn-default view_edifact_message" data-message-id="[% order_messages.0.id | html %]"> <i class="fa fa-shopping-cart"></i> View EDIFACT order </button>
375
                                    </div>
376
                                [% END %]
377
                            [% END %]
286
                        [% END %]
378
                        [% END %]
287
                        [% PROCESS csv_export %]
288
                    </div>
379
                    </div>
289
                [% END # /UNLESS ( closedate ) %]
380
                [% END # /UNLESS ( closedate ) %]
290
            [% END # /UNLESS ( selectbasketg ) %]
381
            [% END # /UNLESS ( selectbasketg ) %]
Lines 342-347 Link Here
342
433
343
                    [% IF ( basketno ) %]
434
                    [% IF ( basketno ) %]
344
                        <div id="acqui_basket_summary" class="row">
435
                        <div id="acqui_basket_summary" class="row">
436
                            [% IF edifact_enabled && edifact_errors.size > 0 %]
437
                                <div class="col-md-12 col-sm-12">
438
                                    <div class="page-section">
439
                                        <h2>EDIFACT parsing errors</h2>
440
441
                                        [% SET errors_by_message = {} %]
442
                                        [% FOR error IN edifact_errors %]
443
                                            [% SET msg_id = error.message_id %]
444
                                            [% IF !errors_by_message.$msg_id %]
445
                                                [% errors_by_message.$msg_id = [] %]
446
                                            [% END %]
447
                                            [% errors_by_message.$msg_id.push(error) %]
448
                                        [% END %]
449
450
                                        [% FOR message IN edifact_messages %]
451
                                            [% SET msg_id = message.id %]
452
                                            [% IF errors_by_message.$msg_id %]
453
                                                <div class="alert alert-warning">
454
                                                    <h4><i class="fa fa-exclamation-triangle"></i> [% message.message_type | html %] message ([% message.transfer_date | $KohaDates %])</h4>
455
                                                    [% IF message.filename %]
456
                                                        <p><strong>Filename:</strong> [% message.filename | html %]</p>
457
                                                    [% END %]
458
                                                    <ul>
459
                                                        [% FOR error IN errors_by_message.$msg_id %]
460
                                                            <li>
461
                                                                <strong>[% error.details | html %]</strong>
462
                                                                [% IF error.section %]
463
                                                                    <br /><pre class="mt-1 mb-0 small text-muted">[% error.section | html %] section</pre>
464
                                                                [% END %]
465
                                                            </li>
466
                                                        [% END %]
467
                                                    </ul>
468
                                                </div>
469
                                            [% END %]
470
                                        [% END %]
471
                                    </div>
472
                                    <!-- /.page-section -->
473
                                </div>
474
                                <!-- /.col-md-12 col-sm-12 -->
475
                            [% END %]
476
345
                            <div class="col-md-6 col-sm-12">
477
                            <div class="col-md-6 col-sm-12">
346
                                <div class="page-section rows">
478
                                <div class="page-section rows">
347
                                    <h2>General information</h2>
479
                                    <h2>General information</h2>
Lines 1130-1135 Link Here
1130
</div>
1262
</div>
1131
<!-- /.modal#dateEditor -->
1263
<!-- /.modal#dateEditor -->
1132
1264
1265
[% IF edifact_enabled && edifact_messages.size > 0 %]
1266
    [% INCLUDE 'modals/edifact-modal.inc' %]
1267
[% END %]
1268
1133
[% MACRO jsinclude BLOCK %]
1269
[% MACRO jsinclude BLOCK %]
1134
    [% Asset.js("js/acquisitions-menu.js") | $raw %]
1270
    [% Asset.js("js/acquisitions-menu.js") | $raw %]
1135
    [% INCLUDE 'datatables.inc' %]
1271
    [% INCLUDE 'datatables.inc' %]
Lines 1378-1383 Link Here
1378
    [% SET filter = 'baskets_managers' %]
1514
    [% SET filter = 'baskets_managers' %]
1379
    [% PROCESS patron_search_modal columns => columns, modal_title => t("Add user") %]
1515
    [% PROCESS patron_search_modal columns => columns, modal_title => t("Add user") %]
1380
    [% PROCESS patron_search_js columns => columns, actions => ["add"], preview_on_name_click => 1 %]
1516
    [% PROCESS patron_search_js columns => columns, actions => ["add"], preview_on_name_click => 1 %]
1517
1518
    [% IF edifact_enabled && edifact_messages.size > 0 %]
1519
        [% Asset.js("js/modals/edifact-modal.js") | $raw %]
1520
    [% END %]
1381
[% END %]
1521
[% END %]
1382
1522
1383
[% INCLUDE 'intranet-bottom.inc' %]
1523
[% INCLUDE 'intranet-bottom.inc' %]
1384
- 

Return to bug 40334