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

(-)a/Koha/Acquisition/Bookseller.pm (-1 / +1 lines)
Lines 25-31 use Koha::Subscriptions; Link Here
25
25
26
use C4::Contract qw( GetContracts );
26
use C4::Contract qw( GetContracts );
27
27
28
use base qw( Koha::Object );
28
use base qw( Koha::Object::Mixin::AdditionalFields Koha::Object );
29
29
30
=head1 NAME
30
=head1 NAME
31
31
(-)a/Koha/Acquisition/Booksellers.pm (-1 / +1 lines)
Lines 19-25 use Modern::Perl; Link Here
19
19
20
use Koha::Acquisition::Bookseller;
20
use Koha::Acquisition::Bookseller;
21
21
22
use base qw( Koha::Objects );
22
use base qw( Koha::Object::Mixin::AdditionalFields Koha::Objects );
23
23
24
=head1 NAME
24
=head1 NAME
25
25
(-)a/Koha/AdditionalField.pm (-8 / +9 lines)
Lines 55-68 sub to_api { Link Here
55
    my ( $self, $params ) = @_;
55
    my ( $self, $params ) = @_;
56
56
57
    my $table_to_resource = {
57
    my $table_to_resource = {
58
        'accountlines:credit' => 'credit',
58
        'accountlines:credit'  => 'credit',
59
        'accountlines:debit'  => 'debit',
59
        'accountlines:debit'   => 'debit',
60
        'aqbasket'            => 'basket',
60
        'aqbasket'             => 'basket',
61
        'aqinvoices'          => 'invoice',
61
        'aqinvoices'           => 'invoice',
62
        'erm_licenses'        => 'license',
62
        'erm_licenses'         => 'license',
63
        'erm_agreements'      => 'agreement',
63
        'erm_agreements'       => 'agreement',
64
        'erm_packages'        => 'package',
64
        'erm_packages'         => 'package',
65
        'aqorders'            => 'order',
65
        'aqorders'             => 'order',
66
        'aqbooksellers:vendor' => 'vendor',
66
    };
67
    };
67
68
68
    my $json = $self->SUPER::to_api($params);
69
    my $json = $self->SUPER::to_api($params);
(-)a/Koha/REST/V1/Acquisitions/Vendors.pm (-4 / +19 lines)
Lines 99-108 Controller function that handles adding a new Koha::Acquisition::Bookseller obje Link Here
99
sub add {
99
sub add {
100
    my $c = shift->openapi->valid_input or return;
100
    my $c = shift->openapi->valid_input or return;
101
101
102
    my $vendor     = $c->req->json;
102
    my $vendor              = $c->req->json;
103
    my $contacts   = delete $vendor->{contacts};
103
    my $contacts            = delete $vendor->{contacts};
104
    my $interfaces = delete $vendor->{interfaces};
104
    my $interfaces          = delete $vendor->{interfaces};
105
    my $aliases    = delete $vendor->{aliases};
105
    my $aliases             = delete $vendor->{aliases};
106
    my $extended_attributes = delete $vendor->{extended_attributes};
106
107
107
    my $vendor_to_store = Koha::Acquisition::Bookseller->new_from_api( $c->req->json );
108
    my $vendor_to_store = Koha::Acquisition::Bookseller->new_from_api( $c->req->json );
108
109
Lines 113-118 sub add { Link Here
113
        $vendor_to_store->aliases( $aliases       || [] );
114
        $vendor_to_store->aliases( $aliases       || [] );
114
        $vendor_to_store->interfaces( $interfaces || [] );
115
        $vendor_to_store->interfaces( $interfaces || [] );
115
116
117
        if ( scalar(@$extended_attributes) > 0 ) {
118
            my @extended_attributes =
119
                map { { 'id' => $_->{field_id}, 'value' => $_->{value} } } @{$extended_attributes};
120
            $vendor_to_store->extended_attributes( \@extended_attributes );
121
        }
122
116
        $c->res->headers->location( $c->req->url->to_string . '/' . $vendor_to_store->id );
123
        $c->res->headers->location( $c->req->url->to_string . '/' . $vendor_to_store->id );
117
        return $c->render(
124
        return $c->render(
118
            status  => 201,
125
            status  => 201,
Lines 143-148 sub update { Link Here
143
        my $contacts      = exists $vendor_update->{contacts}   ? delete $vendor_update->{contacts}   : undef;
150
        my $contacts      = exists $vendor_update->{contacts}   ? delete $vendor_update->{contacts}   : undef;
144
        my $interfaces    = exists $vendor_update->{interfaces} ? delete $vendor_update->{interfaces} : undef;
151
        my $interfaces    = exists $vendor_update->{interfaces} ? delete $vendor_update->{interfaces} : undef;
145
        my $aliases       = exists $vendor_update->{aliases}    ? delete $vendor_update->{aliases}    : undef;
152
        my $aliases       = exists $vendor_update->{aliases}    ? delete $vendor_update->{aliases}    : undef;
153
        my $extended_attributes =
154
            exists $vendor_update->{extended_attributes} ? delete $vendor_update->{extended_attributes} : undef;
146
155
147
        $vendor->set_from_api($vendor_update);
156
        $vendor->set_from_api($vendor_update);
148
        $vendor->store();
157
        $vendor->store();
Lines 151-156 sub update { Link Here
151
        $vendor->aliases( $aliases       || [] ) if defined $aliases;
160
        $vendor->aliases( $aliases       || [] ) if defined $aliases;
152
        $vendor->interfaces( $interfaces || [] ) if defined $interfaces;
161
        $vendor->interfaces( $interfaces || [] ) if defined $interfaces;
153
162
163
        if ( scalar(@$extended_attributes) > 0 ) {
164
            my @extended_attributes =
165
                map { { 'id' => $_->{field_id}, 'value' => $_->{value} } } @{$extended_attributes};
166
            $vendor->extended_attributes( \@extended_attributes );
167
        }
168
154
        return $c->render(
169
        return $c->render(
155
            status  => 200,
170
            status  => 200,
156
            openapi => $c->objects->to_api($vendor),
171
            openapi => $c->objects->to_api($vendor),
(-)a/Koha/REST/V1/ExtendedAttributeTypes.pm (+1 lines)
Lines 54-59 sub list { Link Here
54
        agreement => 'erm_agreements',
54
        agreement => 'erm_agreements',
55
        package   => 'erm_packages',
55
        package   => 'erm_packages',
56
        order     => 'aqorders',
56
        order     => 'aqorders',
57
        vendor    => 'aqbooksellers:vendor',
57
    };
58
    };
58
59
59
    return try {
60
    return try {
(-)a/Koha/Schema/Result/Aqbookseller.pm (-1 / +32 lines)
Lines 600-605 __PACKAGE__->has_many( Link Here
600
    { cascade_copy        => 0, cascade_delete => 0 },
600
    { cascade_copy        => 0, cascade_delete => 0 },
601
);
601
);
602
602
603
__PACKAGE__->has_many(
604
    "additional_field_values",
605
    "Koha::Schema::Result::AdditionalFieldValue",
606
    sub {
607
        my ($args) = @_;
608
609
        return {
610
            "$args->{foreign_alias}.record_id" => { -ident => "$args->{self_alias}.id" },
611
612
            "$args->{foreign_alias}.field_id" =>
613
                { -in => \'(SELECT id FROM additional_fields WHERE tablename LIKE "aqbooksellers:%")' },
614
        };
615
    },
616
    { cascade_copy => 0, cascade_delete => 0 },
617
);
618
619
__PACKAGE__->has_many(
620
    "extended_attributes",
621
    "Koha::Schema::Result::AdditionalFieldValue",
622
    sub {
623
        my ($args) = @_;
624
625
        return {
626
            "$args->{foreign_alias}.record_id" => { -ident => "$args->{self_alias}.id" },
627
628
            "$args->{foreign_alias}.field_id" =>
629
                { -in => \'(SELECT id FROM additional_fields WHERE tablename LIKE "aqbooksellers:%")' },
630
        };
631
    },
632
    { cascade_copy => 0, cascade_delete => 0 },
633
);
634
603
=head2 koha_object_class
635
=head2 koha_object_class
604
636
605
Missing POD for koha_object_class.
637
Missing POD for koha_object_class.
606
- 

Return to bug 38262