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

(-)a/C4/Reserves.pm (-10 / +17 lines)
Lines 150-155 BEGIN { Link Here
150
            priority         => $priority,
150
            priority         => $priority,
151
            reservation_date => $reservation_date,
151
            reservation_date => $reservation_date,
152
            expiration_date  => $expiration_date,
152
            expiration_date  => $expiration_date,
153
            patron_expiration_date, => $patron_expiration_date,
153
            notes            => $notes,
154
            notes            => $notes,
154
            title            => $title,
155
            title            => $title,
155
            itemnumber       => $itemnumber,
156
            itemnumber       => $itemnumber,
Lines 184-190 sub AddReserve { Link Here
184
    my $biblionumber           = $params->{biblionumber};
185
    my $biblionumber           = $params->{biblionumber};
185
    my $priority               = $params->{priority};
186
    my $priority               = $params->{priority};
186
    my $resdate                = $params->{reservation_date};
187
    my $resdate                = $params->{reservation_date};
187
    my $patron_expiration_date = $params->{expiration_date};
188
    my $expiration_date        = $params->{expiration_date};
189
    my $patron_expiration_date = $params->{patron_expiration_date};
188
    my $notes                  = $params->{notes};
190
    my $notes                  = $params->{notes};
189
    my $title                  = $params->{title};
191
    my $title                  = $params->{title};
190
    my $checkitem              = $params->{itemnumber};
192
    my $checkitem              = $params->{itemnumber};
Lines 250-255 sub AddReserve { Link Here
250
            itemnumber             => $checkitem,
252
            itemnumber             => $checkitem,
251
            found                  => $found,
253
            found                  => $found,
252
            waitingdate            => $waitingdate,
254
            waitingdate            => $waitingdate,
255
            expirationdate         => $expiration_date,
253
            patron_expiration_date => $patron_expiration_date,
256
            patron_expiration_date => $patron_expiration_date,
254
            itemtype               => $itemtype,
257
            itemtype               => $itemtype,
255
            item_level_hold        => $checkitem    ? 1 : 0,
258
            item_level_hold        => $checkitem    ? 1 : 0,
Lines 1081-1095 itemnumber and supplying itemnumber. Link Here
1081
sub ModReserve {
1084
sub ModReserve {
1082
    my ($params) = @_;
1085
    my ($params) = @_;
1083
1086
1084
    my $rank                = $params->{'rank'};
1087
    my $rank                   = $params->{'rank'};
1085
    my $reserve_id          = $params->{'reserve_id'};
1088
    my $reserve_id             = $params->{'reserve_id'};
1086
    my $branchcode          = $params->{'branchcode'};
1089
    my $branchcode             = $params->{'branchcode'};
1087
    my $itemnumber          = $params->{'itemnumber'};
1090
    my $itemnumber             = $params->{'itemnumber'};
1088
    my $suspend_until       = $params->{'suspend_until'};
1091
    my $suspend_until          = $params->{'suspend_until'};
1089
    my $borrowernumber      = $params->{'borrowernumber'};
1092
    my $borrowernumber         = $params->{'borrowernumber'};
1090
    my $biblionumber        = $params->{'biblionumber'};
1093
    my $biblionumber           = $params->{'biblionumber'};
1091
    my $cancellation_reason = $params->{'cancellation_reason'};
1094
    my $cancellation_reason    = $params->{'cancellation_reason'};
1092
    my $date                = $params->{expirationdate};
1095
    my $date                   = $params->{expirationdate};
1096
    my $patron_expiration_date = $params->{patron_expiration_date};
1093
1097
1094
    return if defined $rank && $rank eq "n";
1098
    return if defined $rank && $rank eq "n";
1095
1099
Lines 1134-1139 sub ModReserve { Link Here
1134
        if ( exists $params->{expirationdate} ) {
1138
        if ( exists $params->{expirationdate} ) {
1135
            $properties->{expirationdate} = $params->{expirationdate} || undef;
1139
            $properties->{expirationdate} = $params->{expirationdate} || undef;
1136
        }
1140
        }
1141
        if ( exists $params->{patron_expiration_date} ) {
1142
            $properties->{patron_expiration_date} = $params->{patron_expiration_date} || undef;
1143
        }
1137
1144
1138
        $hold->set($properties)->store();
1145
        $hold->set($properties)->store();
1139
1146
(-)a/Koha/Hold.pm (-1 / +1 lines)
Lines 1084-1090 sub to_api_mapping { Link Here
1084
        itemnumber             => 'item_id',
1084
        itemnumber             => 'item_id',
1085
        waitingdate            => 'waiting_date',
1085
        waitingdate            => 'waiting_date',
1086
        expirationdate         => 'expiration_date',
1086
        expirationdate         => 'expiration_date',
1087
        patron_expiration_date => undef,
1087
        patron_expiration_date => 'patron_expiration_date',
1088
        lowestPriority         => 'lowest_priority',
1088
        lowestPriority         => 'lowest_priority',
1089
        suspend                => 'suspended',
1089
        suspend                => 'suspended',
1090
        suspend_until          => 'suspended_until',
1090
        suspend_until          => 'suspended_until',
(-)a/Koha/REST/V1/Holds.pm (-33 / +37 lines)
Lines 76-91 sub add { Link Here
76
        my $biblio;
76
        my $biblio;
77
        my $item;
77
        my $item;
78
78
79
        my $biblio_id         = $body->{biblio_id};
79
        my $biblio_id              = $body->{biblio_id};
80
        my $item_group_id     = $body->{item_group_id};
80
        my $item_group_id          = $body->{item_group_id};
81
        my $pickup_library_id = $body->{pickup_library_id};
81
        my $pickup_library_id      = $body->{pickup_library_id};
82
        my $item_id           = $body->{item_id};
82
        my $item_id                = $body->{item_id};
83
        my $patron_id         = $body->{patron_id};
83
        my $patron_id              = $body->{patron_id};
84
        my $item_type         = $body->{item_type};
84
        my $item_type              = $body->{item_type};
85
        my $expiration_date   = $body->{expiration_date};
85
        my $expiration_date        = $body->{expiration_date};
86
        my $notes             = $body->{notes};
86
        my $patron_expiration_date = $body->{patron_expiration_date};
87
        my $hold_date         = $body->{hold_date};
87
        my $notes                  = $body->{notes};
88
        my $non_priority      = $body->{non_priority};
88
        my $hold_date              = $body->{hold_date};
89
        my $non_priority           = $body->{non_priority};
89
90
90
        my $overrides    = $c->stash('koha.overrides');
91
        my $overrides    = $c->stash('koha.overrides');
91
        my $can_override = C4::Context->preference('AllowHoldPolicyOverride') // 0;
92
        my $can_override = C4::Context->preference('AllowHoldPolicyOverride') // 0;
Lines 193-211 sub add { Link Here
193
194
194
        my $hold_id = C4::Reserves::AddReserve(
195
        my $hold_id = C4::Reserves::AddReserve(
195
            {
196
            {
196
                branchcode       => $pickup_library_id,
197
                branchcode             => $pickup_library_id,
197
                borrowernumber   => $patron_id,
198
                borrowernumber         => $patron_id,
198
                biblionumber     => $biblio->id,
199
                biblionumber           => $biblio->id,
199
                priority         => $priority,
200
                priority               => $priority,
200
                reservation_date => $hold_date,
201
                reservation_date       => $hold_date,
201
                expiration_date  => $expiration_date,
202
                expiration_date        => $expiration_date,
202
                notes            => $notes,
203
                patron_expiration_date => $patron_expiration_date,
203
                title            => $biblio->title,
204
                notes                  => $notes,
204
                itemnumber       => $item_id,
205
                title                  => $biblio->title,
205
                found            => undef,                # TODO: Why not?
206
                itemnumber             => $item_id,
206
                itemtype         => $item_type,
207
                found                  => undef,                     # TODO: Why not?
207
                non_priority     => $non_priority,
208
                itemtype               => $item_type,
208
                item_group_id    => $item_group_id,
209
                non_priority           => $non_priority,
210
                item_group_id          => $item_group_id,
209
            }
211
            }
210
        );
212
        );
211
213
Lines 274-294 sub edit { Link Here
274
        }
276
        }
275
277
276
        $pickup_library_id //= $hold->branchcode;
278
        $pickup_library_id //= $hold->branchcode;
277
        my $priority        = $body->{priority}        // $hold->priority;
279
        my $priority               = $body->{priority}               // $hold->priority;
278
        my $hold_date       = $body->{hold_date}       // $hold->reservedate;
280
        my $hold_date              = $body->{hold_date}              // $hold->reservedate;
279
        my $expiration_date = $body->{expiration_date} // $hold->expirationdate;
281
        my $expiration_date        = $body->{expiration_date}        // $hold->expirationdate;
282
        my $patron_expiration_date = $body->{patron_expiration_date} // $hold->patron_expiration_date;
280
283
281
        # suspended_until can also be set to undef
284
        # suspended_until can also be set to undef
282
        my $suspended_until = $body->{suspended_until} || $hold->suspend_until;
285
        my $suspended_until = $body->{suspended_until} || $hold->suspend_until;
283
286
284
        my $params = {
287
        my $params = {
285
            reserve_id     => $hold->id,
288
            reserve_id             => $hold->id,
286
            branchcode     => $pickup_library_id,
289
            branchcode             => $pickup_library_id,
287
            rank           => $priority,
290
            rank                   => $priority,
288
            suspend_until  => $suspended_until,
291
            suspend_until          => $suspended_until,
289
            itemnumber     => $hold->itemnumber,
292
            itemnumber             => $hold->itemnumber,
290
            reservedate    => $hold_date,
293
            reservedate            => $hold_date,
291
            expirationdate => $expiration_date,
294
            expirationdate         => $expiration_date,
295
            patron_expiration_date => $patron_expiration_date,
292
        };
296
        };
293
297
294
        C4::Reserves::ModReserve($params);
298
        C4::Reserves::ModReserve($params);
(-)a/api/v1/swagger/definitions/hold.yaml (+6 lines)
Lines 86-91 properties: Link Here
86
      - "null"
86
      - "null"
87
    format: date
87
    format: date
88
    description: The date the hold expires
88
    description: The date the hold expires
89
  patron_expiration_date:
90
    type:
91
      - string
92
      - "null"
93
    format: date
94
    description: The date the patron sets as not wanted after
89
  lowest_priority:
95
  lowest_priority:
90
    type: boolean
96
    type: boolean
91
    description: Controls if the hold is given the lowest priority on the queue
97
    description: Controls if the hold is given the lowest priority on the queue
(-)a/api/v1/swagger/paths/holds.yaml (-1 / +12 lines)
Lines 194-199 Link Here
194
                - string
194
                - string
195
                - "null"
195
                - "null"
196
              format: date
196
              format: date
197
            patron_expiration_date:
198
              description: Hold not wanted after date
199
              type:
200
                - string
201
                - "null"
202
              format: date
197
            notes:
203
            notes:
198
              description: Notes related to this hold
204
              description: Notes related to this hold
199
              type:
205
              type:
Lines 315-320 Link Here
315
              description: Hold's expiration date
321
              description: Hold's expiration date
316
              type: string
322
              type: string
317
              format: date
323
              format: date
324
            patron_expiration_date:
325
              description: Hold's not wanted after date
326
              type:
327
                - string
328
                - "null"
329
              format: date
318
          additionalProperties: false
330
          additionalProperties: false
319
    consumes:
331
    consumes:
320
      - application/json
332
      - application/json
321
- 

Return to bug 39419