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

(-)a/Koha/EDI.pm (-7 / +20 lines)
Lines 645-655 sub process_quote { Link Here
645
    my $split_message;
645
    my $split_message;
646
    my @added_baskets;    # if auto & multiple baskets need to order all
646
    my @added_baskets;    # if auto & multiple baskets need to order all
647
647
648
    # Get vendor EDI account configuration
649
    my $v = $schema->resultset('VendorEdiAccount')->search(
650
        {
651
            vendor_id => $quote_message->vendor_id,
652
        }
653
    )->single;
654
648
    if ( @{$messages} && $quote_message->vendor_id ) {
655
    if ( @{$messages} && $quote_message->vendor_id ) {
656
649
        foreach my $msg ( @{$messages} ) {
657
        foreach my $msg ( @{$messages} ) {
650
            ++$message_count;
658
            ++$message_count;
659
660
            # Determine basket name based on vendor configuration
661
            my $basket_name = $quote_message->filename;
662
            if ( $v && $v->basket_name_source && $v->basket_name_source eq 'purchase_order_number' ) {
663
                my $purchase_order_number = $msg->purchase_order_number;
664
                if ($purchase_order_number) {
665
                    $basket_name = $purchase_order_number;
666
                }
667
            }
668
651
            my $basketno = NewBasket(
669
            my $basketno = NewBasket(
652
                $quote_message->vendor_id, 0, $quote_message->filename, q{},
670
                $quote_message->vendor_id, 0, $basket_name, q{},
653
                q{} . q{}
671
                q{} . q{}
654
            );
672
            );
655
            push @added_baskets, $basketno;
673
            push @added_baskets, $basketno;
Lines 691-702 sub process_quote { Link Here
691
    $quote_message->status($status);
709
    $quote_message->status($status);
692
    $quote_message->update;    # status and basketno link
710
    $quote_message->update;    # status and basketno link
693
                               # Do we automatically generate orders for this vendor
711
                               # Do we automatically generate orders for this vendor
694
    my $v = $schema->resultset('VendorEdiAccount')->search(
712
    if ( $v && $v->auto_orders ) {
695
        {
696
            vendor_id => $quote_message->vendor_id,
697
        }
698
    )->single;
699
    if ( $v->auto_orders ) {
700
        for my $b (@added_baskets) {
713
        for my $b (@added_baskets) {
701
            create_edi_order(
714
            create_edi_order(
702
                {
715
                {
(-)a/Koha/Edifact/Message.pm (+20 lines)
Lines 183-188 sub supplier_ean { Link Here
183
183
184
}
184
}
185
185
186
sub purchase_order_number {
187
    my $self = shift;
188
    foreach my $s ( @{ $self->{datasegs} } ) {
189
        if ( $s->tag eq 'LIN' ) {
190
            last;
191
        }
192
        if ( $s->tag eq 'RFF' ) {
193
            my $qualifier = $s->elem( 0, 0 );
194
            if ( $qualifier eq 'ON' ) {
195
                return $s->elem( 0, 1 );
196
            }
197
        }
198
    }
199
    return;
200
}
201
186
sub lineitems {
202
sub lineitems {
187
    my $self = shift;
203
    my $self = shift;
188
    if ( $self->{quotation_lines} ) {
204
    if ( $self->{quotation_lines} ) {
Lines 280-285 Missing POD for buyer_ean. Link Here
280
296
281
Missing POD for supplier_ean.
297
Missing POD for supplier_ean.
282
298
299
=head2 purchase_order_number
300
301
Missing POD for purchase_order_number.
302
283
=head2 lineitems
303
=head2 lineitems
284
304
285
Missing POD for lineitems.
305
Missing POD for lineitems.
(-)a/admin/edi_accounts.pl (+1 lines)
Lines 94-99 if ( $op eq 'acct_form' ) { Link Here
94
            auto_orders        => $input->param('auto_orders')       ? 1 : 0,
94
            auto_orders        => $input->param('auto_orders')       ? 1 : 0,
95
            id_code_qualifier  => scalar $input->param('id_code_qualifier'),
95
            id_code_qualifier  => scalar $input->param('id_code_qualifier'),
96
            plugin             => scalar $input->param('plugin'),
96
            plugin             => scalar $input->param('plugin'),
97
            basket_name_source => scalar $input->param('basket_name_source') || 'filename',
97
        };
98
        };
98
99
99
        if ($id) {
100
        if ($id) {
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/edi_accounts.tt (-1 / +13 lines)
Lines 251-256 Link Here
251
                        [% END %]
251
                        [% END %]
252
                        <div class="hint"> With automatic ordering quotes generate orders without staff intervention. </div>
252
                        <div class="hint"> With automatic ordering quotes generate orders without staff intervention. </div>
253
                    </li>
253
                    </li>
254
                    <li>
255
                        <label for="basket_name_source">Basket name source: </label>
256
                        <select name="basket_name_source" id="basket_name_source">
257
                            [% IF account.basket_name_source == 'purchase_order_number' %]
258
                                <option value="filename">Quote filename</option>
259
                                <option value="purchase_order_number" selected="selected">Purchase order number (RFF+ON)</option>
260
                            [% ELSE %]
261
                                <option value="filename" selected="selected">Quote filename</option>
262
                                <option value="purchase_order_number">Purchase order number (RFF+ON)</option>
263
                            [% END %]
264
                        </select>
265
                        <div class="hint"> Determines how basket names are generated from quotes. Purchase order number uses RFF+ON segment from EDIFACT message if available, otherwise falls back to filename. </div>
266
                    </li>
254
                </ol>
267
                </ol>
255
            </fieldset>
268
            </fieldset>
256
269
257
- 

Return to bug 20253