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

(-)a/t/db_dependent/Letters/TemplateToolkit.t (-39 / +133 lines)
Lines 26-31 use MARC::Record; Link Here
26
26
27
use t::lib::TestBuilder;
27
use t::lib::TestBuilder;
28
28
29
use C4::Circulation;
29
use C4::Letters;
30
use C4::Letters;
30
use C4::Members;
31
use C4::Members;
31
use C4::Biblio;
32
use C4::Biblio;
Lines 285-309 $prepared_letter = GetPreparedLetter( Link Here
285
is( $prepared_letter->{content}, $modification->id(), 'Patron modification object used correctly' );
286
is( $prepared_letter->{content}, $modification->id(), 'Patron modification object used correctly' );
286
287
287
subtest 'regression tests' => sub {
288
subtest 'regression tests' => sub {
288
    plan tests => 2;
289
    plan tests => 3;
289
290
290
    my $library = $builder->build( { source => 'Branch' } );
291
    my $library = $builder->build( { source => 'Branch' } );
291
    my $patron  = $builder->build( { source => 'Borrower' } );
292
    my $patron  = $builder->build( { source => 'Borrower' } );
292
    my $biblio = Koha::Biblio->new({title => 'Test Biblio'})->store->unblessed;
293
    my $biblio1 = Koha::Biblio->new({title => 'Test Biblio 1'})->store->unblessed;
293
    my $biblioitem = Koha::Biblioitem->new({biblionumber => $biblio->{biblionumber}})->store()->unblessed;
294
    my $biblioitem1 = Koha::Biblioitem->new({biblionumber => $biblio1->{biblionumber}})->store()->unblessed;
294
    my $item1 = Koha::Item->new(
295
    my $item1 = Koha::Item->new(
295
        {
296
        {
296
            biblionumber     => $biblio->{biblionumber},
297
            biblionumber     => $biblio1->{biblionumber},
297
            biblioitemnumber => $biblioitem->{biblioitemnumber},
298
            biblioitemnumber => $biblioitem1->{biblioitemnumber},
299
            barcode          => 'a_t_barcode',
300
            homebranch       => $library->{branchcode},
301
            holdingbranch    => $library->{branchcode},
302
            itype            => 'BK',
298
        }
303
        }
299
    )->store->unblessed;
304
    )->store->unblessed;
305
    my $biblio2 = Koha::Biblio->new({title => 'Test Biblio 2'})->store->unblessed;
306
    my $biblioitem2 = Koha::Biblioitem->new({biblionumber => $biblio2->{biblionumber}})->store()->unblessed;
300
    my $item2 = Koha::Item->new(
307
    my $item2 = Koha::Item->new(
301
        {
308
        {
302
            biblionumber     => $biblio->{biblionumber},
309
            biblionumber     => $biblio2->{biblionumber},
303
            biblioitemnumber => $biblioitem->{biblioitemnumber},
310
            biblioitemnumber => $biblioitem2->{biblioitemnumber},
311
            barcode          => 'another_t_barcode',
312
            homebranch       => $library->{branchcode},
313
            holdingbranch    => $library->{branchcode},
314
            itype            => 'BK',
304
        }
315
        }
305
    )->store->unblessed;
316
    )->store->unblessed;
306
317
318
    C4::Context->_new_userenv('xxx');
319
    C4::Context->set_userenv(0,0,0,'firstname','surname', $library->{branchcode}, 'Midway Public Library', '', '', '');
320
307
    subtest 'ACQ_NOTIF_ON_RECEIV ' => sub {
321
    subtest 'ACQ_NOTIF_ON_RECEIV ' => sub {
308
        plan tests => 1;
322
        plan tests => 1;
309
        my $code = 'ACQ_NOTIF_ON_RECEIV';
323
        my $code = 'ACQ_NOTIF_ON_RECEIV';
Lines 311-326 subtest 'regression tests' => sub { Link Here
311
        my $order = $builder->build({ source => 'Aqorder' });
325
        my $order = $builder->build({ source => 'Aqorder' });
312
326
313
        my $template = q|
327
        my $template = q|
314
            Dear <<borrowers.firstname>> <<borrowers.surname>>,
328
Dear <<borrowers.firstname>> <<borrowers.surname>>,
315
            The order <<aqorders.ordernumber>> (<<biblio.title>>) has been received.
329
The order <<aqorders.ordernumber>> (<<biblio.title>>) has been received.
316
            Your library.
330
Your library.
317
        |;
331
        |;
318
        my $params = { code => $code, branchcode => $branchcode, tables => { branches => $library, borrowers => $patron, biblio => $biblio, aqorders => $order } };
332
        my $params = { code => $code, branchcode => $branchcode, tables => { branches => $library, borrowers => $patron, biblio => $biblio1, aqorders => $order } };
319
        my $letter = process_letter( { template => $template, %$params });
333
        my $letter = process_letter( { template => $template, %$params });
320
        my $tt_template = q|
334
        my $tt_template = q|
321
            Dear [% borrower.firstname %] [% borrower.surname %],
335
Dear [% borrower.firstname %] [% borrower.surname %],
322
            The order [% order.ordernumber %] ([% biblio.title %]) has been received.
336
The order [% order.ordernumber %] ([% biblio.title %]) has been received.
323
            Your library.
337
Your library.
324
        |;
338
        |;
325
        my $tt_letter = process_letter( { template => $tt_template, %$params });
339
        my $tt_letter = process_letter( { template => $tt_template, %$params });
326
340
Lines 333-353 subtest 'regression tests' => sub { Link Here
333
        my $branchcode = $library->{branchcode};
347
        my $branchcode = $library->{branchcode};
334
348
335
        my $template = q|
349
        my $template = q|
336
            <<borrowers.firstname>> <<borrowers.surname>> (<<borrowers.cardnumber>>)
350
<<borrowers.firstname>> <<borrowers.surname>> (<<borrowers.cardnumber>>)
337
351
338
            Your request for an article from <<biblio.title>> (<<items.barcode>>) has been canceled for the following reason:
352
Your request for an article from <<biblio.title>> (<<items.barcode>>) has been canceled for the following reason:
339
353
340
            <<article_requests.notes>>
354
<<article_requests.notes>>
341
355
342
            Article requested:
356
Article requested:
343
            Title: <<article_requests.title>>
357
Title: <<article_requests.title>>
344
            Author: <<article_requests.author>>
358
Author: <<article_requests.author>>
345
            Volume: <<article_requests.volume>>
359
Volume: <<article_requests.volume>>
346
            Issue: <<article_requests.issue>>
360
Issue: <<article_requests.issue>>
347
            Date: <<article_requests.date>>
361
Date: <<article_requests.date>>
348
            Pages: <<article_requests.pages>>
362
Pages: <<article_requests.pages>>
349
            Chapters: <<article_requests.chapters>>
363
Chapters: <<article_requests.chapters>>
350
            Notes: <<article_requests.patron_notes>>
364
Notes: <<article_requests.patron_notes>>
351
        |;
365
        |;
352
        reset_template( { template => $template, code => $code, module => 'circulation' } );
366
        reset_template( { template => $template, code => $code, module => 'circulation' } );
353
        my $article_request = $builder->build({ source => 'ArticleRequest' });
367
        my $article_request = $builder->build({ source => 'ArticleRequest' });
Lines 355-375 subtest 'regression tests' => sub { Link Here
355
        my $letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
369
        my $letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
356
370
357
        my $tt_template = q|
371
        my $tt_template = q|
358
            [% borrower.firstname %] [% borrower.surname %] ([% borrower.cardnumber %])
372
[% borrower.firstname %] [% borrower.surname %] ([% borrower.cardnumber %])
359
373
360
            Your request for an article from [% biblio.title %] ([% item.barcode %]) has been canceled for the following reason:
374
Your request for an article from [% biblio.title %] ([% item.barcode %]) has been canceled for the following reason:
361
375
362
            [% article_request.notes %]
376
[% article_request.notes %]
363
377
364
            Article requested:
378
Article requested:
365
            Title: [% article_request.title %]
379
Title: [% article_request.title %]
366
            Author: [% article_request.author %]
380
Author: [% article_request.author %]
367
            Volume: [% article_request.volume %]
381
Volume: [% article_request.volume %]
368
            Issue: [% article_request.issue %]
382
Issue: [% article_request.issue %]
369
            Date: [% article_request.date %]
383
Date: [% article_request.date %]
370
            Pages: [% article_request.pages %]
384
Pages: [% article_request.pages %]
371
            Chapters: [% article_request.chapters %]
385
Chapters: [% article_request.chapters %]
372
            Notes: [% article_request.patron_notes %]
386
Notes: [% article_request.patron_notes %]
373
        |;
387
        |;
374
        reset_template( { template => $tt_template, code => $code, module => 'circulation' } );
388
        reset_template( { template => $tt_template, code => $code, module => 'circulation' } );
375
        Koha::ArticleRequests->find( $article_request->{id} )->cancel;
389
        Koha::ArticleRequests->find( $article_request->{id} )->cancel;
Lines 377-382 subtest 'regression tests' => sub { Link Here
377
        is( $tt_letter->content, $letter->content, 'Compare AR_* notices' );
391
        is( $tt_letter->content, $letter->content, 'Compare AR_* notices' );
378
        isnt( $tt_letter->message_id, $letter->message_id, 'Comparing AR_* notices should compare 2 different messages' );
392
        isnt( $tt_letter->message_id, $letter->message_id, 'Comparing AR_* notices should compare 2 different messages' );
379
    };
393
    };
394
395
    subtest 'CHECKOUT+CHECKIN' => sub {
396
        plan tests => 4;
397
398
        my $checkout_code = 'CHECKOUT';
399
        my $checkin_code = 'CHECKIN';
400
401
        my $dbh = C4::Context->dbh;
402
        # Enable notification for CHECKOUT - Things are hardcoded here but should work with default data
403
        $dbh->do(q|INSERT INTO borrower_message_preferences( borrowernumber, message_attribute_id ) VALUES ( ?, ? )|, undef, $patron->{borrowernumber}, 6 );
404
        my $borrower_message_preference_id = $dbh->last_insert_id(undef, undef, "borrower_message_preferences", undef);
405
        $dbh->do(q|INSERT INTO borrower_message_transport_preferences( borrower_message_preference_id, message_transport_type) VALUES ( ?, ? )|, undef, $borrower_message_preference_id, 'email' );
406
        # Enable notification for CHECKIN - Things are hardcoded here but should work with default data
407
        $dbh->do(q|INSERT INTO borrower_message_preferences( borrowernumber, message_attribute_id ) VALUES ( ?, ? )|, undef, $patron->{borrowernumber}, 5 );
408
        $borrower_message_preference_id = $dbh->last_insert_id(undef, undef, "borrower_message_preferences", undef);
409
        $dbh->do(q|INSERT INTO borrower_message_transport_preferences( borrower_message_preference_id, message_transport_type) VALUES ( ?, ? )|, undef, $borrower_message_preference_id, 'email' );
410
411
        # historic syntax
412
        my $checkout_template = q|
413
The following items have been checked out:
414
----
415
<<biblio.title>>
416
----
417
Thank you for visiting <<branches.branchname>>.
418
|;
419
        reset_template( { template => $checkout_template, code => $checkout_code, module => 'circulation' } );
420
        my $checkin_template = q|
421
The following items have been checkin out:
422
----
423
<<biblio.title>>
424
----
425
Thank you for visiting <<branches.branchname>>.
426
|;
427
        reset_template( { template => $checkin_template, code => $checkin_code, module => 'circulation' } );
428
429
        C4::Circulation::AddIssue( $patron, $item1->{barcode} );
430
        my $first_checkout_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
431
        C4::Circulation::AddIssue( $patron, $item2->{barcode} );
432
        my $second_checkout_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
433
434
        AddReturn( $item1->{barcode} );
435
        my $first_checkin_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
436
        AddReturn( $item2->{barcode} );
437
        my $second_checkin_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
438
439
        Koha::Notice::Messages->delete;
440
441
        # TT syntax
442
        $checkout_template = q|
443
The following items have been checked out:
444
----
445
[% biblio.title %]
446
----
447
Thank you for visiting [% branch.branchname %].
448
|;
449
        reset_template( { template => $checkout_template, code => $checkout_code, module => 'circulation' } );
450
        $checkin_template = q|
451
The following items have been checkin out:
452
----
453
[% biblio.title %]
454
----
455
Thank you for visiting [% branch.branchname %].
456
|;
457
        reset_template( { template => $checkin_template, code => $checkin_code, module => 'circulation' } );
458
459
        C4::Circulation::AddIssue( $patron, $item1->{barcode} );
460
        my $first_checkout_tt_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
461
        C4::Circulation::AddIssue( $patron, $item2->{barcode} );
462
        my $second_checkout_tt_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
463
464
        AddReturn( $item1->{barcode} );
465
        my $first_checkin_tt_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
466
        AddReturn( $item2->{barcode} );
467
        my $second_checkin_tt_letter = Koha::Notice::Messages->search( {}, { order_by => { -desc => 'message_id' } } )->next;
468
469
        is( $first_checkout_tt_letter->content, $first_checkout_letter->content, );
470
        is( $second_checkout_tt_letter->content, $second_checkout_letter->content, );
471
        is( $first_checkin_tt_letter->content, $first_checkin_letter->content, );
472
        is( $second_checkin_tt_letter->content, $second_checkin_letter->content, );
473
474
    };
380
};
475
};
381
476
382
subtest 'loops' => sub {
477
subtest 'loops' => sub {
383
- 

Return to bug 17964