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

(-)a/Koha/REST/V1/Acquisitions/Orders.pm (-5 / +27 lines)
Lines 20-25 use Modern::Perl; Link Here
20
use Mojo::Base 'Mojolicious::Controller';
20
use Mojo::Base 'Mojolicious::Controller';
21
21
22
use Koha::Acquisition::Orders;
22
use Koha::Acquisition::Orders;
23
use Koha::DateUtils qw(dt_from_string);
23
24
24
use Clone qw( clone );
25
use Clone qw( clone );
25
use JSON;
26
use JSON;
Lines 49-62 sub list { Link Here
49
        my $only_active = $c->param('only_active');
50
        my $only_active = $c->param('only_active');
50
        my $order_id    = $c->param('order_id');
51
        my $order_id    = $c->param('order_id');
51
52
52
        $c->req->params->remove('only_active')->remove('order_id');
53
        # handle late orders
54
        my $only_late                 = $c->param('only_late');
55
        my $late_delay                = $c->param('late_delay') // 0;
56
        my $estimateddeliverydatefrom = $c->param('estimated_deliverydate_from');
57
        my $estimateddeliverydateto   = $c->param('estimated_deliverydate_to');
53
58
54
        my $orders_rs;
59
        $c->req->params->remove('only_active')->remove('order_id')->remove('only_late')
60
            ->remove('estimated_deliverydate_from')->remove('estimated_deliverydate_to')->remove('late_delay');
61
62
        my $orders_rs = Koha::Acquisition::Orders->new;
55
63
56
        if ($only_active) {
64
        if ($only_active) {
57
            $orders_rs = Koha::Acquisition::Orders->filter_by_active;
65
            $orders_rs = $orders_rs->filter_by_active;
58
        } else {
66
        } elsif ($only_late) {
59
            $orders_rs = Koha::Acquisition::Orders->new;
67
            $orders_rs = $orders_rs->filter_by_lates(
68
                {
69
                    delay => $late_delay,
70
                    (
71
                        $estimateddeliverydatefrom
72
                        ? ( estimated_from => dt_from_string( $estimateddeliverydatefrom, 'iso' ) )
73
                        : ()
74
                    ),
75
                    (
76
                        $estimateddeliverydateto
77
                        ? ( estimated_to => dt_from_string( $estimateddeliverydateto, 'iso' ) )
78
                        : ()
79
                    )
80
                }
81
            );
60
        }
82
        }
61
83
62
        $orders_rs = $orders_rs->filter_by_id_including_transfers( { ordernumber => $order_id } )
84
        $orders_rs = $orders_rs->filter_by_id_including_transfers( { ordernumber => $order_id } )
(-)a/api/v1/swagger/definitions/order.yaml (+5 lines)
Lines 264-267 properties: Link Here
264
      - object
264
      - object
265
      - "null"
265
      - "null"
266
    description: Patron that created the order
266
    description: Patron that created the order
267
  calculated_estimated_delivery_date:
268
    type:
269
      - string
270
      - "null"
271
    format: date
267
additionalProperties: false
272
additionalProperties: false
(-)a/api/v1/swagger/paths/acquisitions_orders.yaml (-1 / +22 lines)
Lines 35-40 Link Here
35
        description: If only active orders should be listed
35
        description: If only active orders should be listed
36
        required: false
36
        required: false
37
        type: boolean
37
        type: boolean
38
      - name: only_late
39
        in: query
40
        description: Only retrieve late orders
41
        required: false
42
        type: boolean
43
      - name: late_delay
44
        in: query
45
        description: Delay to consider an order late (days)
46
        required: false
47
        type: integer
48
      - name: estimated_deliverydate_from
49
        description: Estimated delivery date from
50
        in: query
51
        type: string
52
        format: date
53
        required: false
54
      - name: estimated_deliverydate_to
55
        description: Estimated delivery date to
56
        in: query
57
        type: string
58
        format: date
59
        required: false
38
      - $ref: "../swagger.yaml#/parameters/match"
60
      - $ref: "../swagger.yaml#/parameters/match"
39
      - $ref: "../swagger.yaml#/parameters/order_by"
61
      - $ref: "../swagger.yaml#/parameters/order_by"
40
      - $ref: "../swagger.yaml#/parameters/page"
62
      - $ref: "../swagger.yaml#/parameters/page"
41
- 

Return to bug 32266