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

(-)a/C4/Acquisition.pm (-3 / +38 lines)
Lines 57-63 BEGIN { Link Here
57
        &ModReceiveOrder &ModOrderBiblioitemNumber
57
        &ModReceiveOrder &ModOrderBiblioitemNumber
58
        &GetCancelledOrders
58
        &GetCancelledOrders
59
59
60
        &NewOrderItem &ModOrderItem
60
        &NewOrderItem &ModOrderItem &ModItemOrder
61
61
62
        &GetParcels &GetParcel
62
        &GetParcels &GetParcel
63
        &GetContracts &GetContract
63
        &GetContracts &GetContract
Lines 1053-1058 sub ModOrderItem { Link Here
1053
    return 0;
1053
    return 0;
1054
}
1054
}
1055
1055
1056
=head3 ModItemOrder
1057
1058
    ModItemOrder($itemnumber, $ordernumber);
1059
1060
Modifies the ordernumber of an item in aqorders_items.
1061
1062
=cut
1063
1064
sub ModItemOrder {
1065
    my ($itemnumber, $ordernumber) = @_;
1066
1067
    return unless ($itemnumber and $ordernumber);
1068
1069
    my $dbh = C4::Context->dbh;
1070
    my $query = qq{
1071
        UPDATE aqorders_items
1072
        SET ordernumber = ?
1073
        WHERE itemnumber = ?
1074
    };
1075
    my $sth = $dbh->prepare($query);
1076
    return $sth->execute($ordernumber, $itemnumber);
1077
}
1078
1056
#------------------------------------------------------------#
1079
#------------------------------------------------------------#
1057
1080
1058
1081
Lines 1138-1144 C<$ordernumber>. Link Here
1138
sub ModReceiveOrder {
1161
sub ModReceiveOrder {
1139
    my (
1162
    my (
1140
        $biblionumber,    $ordernumber,  $quantrec, $user, $cost,
1163
        $biblionumber,    $ordernumber,  $quantrec, $user, $cost,
1141
        $invoiceno, $freight, $rrp, $budget_id, $datereceived
1164
        $invoiceno, $freight, $rrp, $budget_id, $datereceived, $received_items
1142
    )
1165
    )
1143
    = @_;
1166
    = @_;
1144
    my $dbh = C4::Context->dbh;
1167
    my $dbh = C4::Context->dbh;
Lines 1181-1187 sub ModReceiveOrder { Link Here
1181
        $order->{'quantity'} -= $quantrec;
1204
        $order->{'quantity'} -= $quantrec;
1182
        $order->{'quantityreceived'} = 0;
1205
        $order->{'quantityreceived'} = 0;
1183
        my $newOrder = NewOrder($order);
1206
        my $newOrder = NewOrder($order);
1184
} else {
1207
        # Change ordernumber in aqorders_items for items not received
1208
        my @orderitems = GetItemnumbersFromOrder( $order->{'ordernumber'} );
1209
        my $count = scalar @orderitems;
1210
1211
        for (my $i=0; $i<$count; $i++){
1212
            foreach (@$received_items){
1213
                splice (@orderitems, $i, 1) if ($orderitems[$i] == $_);
1214
            }
1215
        }
1216
        foreach (@orderitems) {
1217
            ModItemOrder($_, $newOrder);
1218
        }
1219
    } else {
1185
        $sth=$dbh->prepare("update aqorders
1220
        $sth=$dbh->prepare("update aqorders
1186
                            set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?,
1221
                            set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?,
1187
                                unitprice=?,freight=?,rrp=?
1222
                                unitprice=?,freight=?,rrp=?
(-)a/acqui/finishreceive.pl (-2 / +7 lines)
Lines 94-102 if ($quantityrec > $origquantityrec ) { Link Here
94
            NewOrderItem($itemnumber, $ordernumber);
94
            NewOrderItem($itemnumber, $ordernumber);
95
        }
95
        }
96
    }
96
    }
97
    
97
98
    my @received_items = ();
99
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
100
        @received_items = $input->param('items_to_receive');
101
    }
102
98
    # save the quantity received.
103
    # save the quantity received.
99
    $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
104
    $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived, \@received_items);
100
}
105
}
101
106
102
update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
107
update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
(-)a/acqui/orderreceive.pl (-1 / +34 lines)
Lines 112-118 my $count = scalar @$results; Link Here
112
# prepare the form for receiving
112
# prepare the form for receiving
113
if ( $count == 1 ) {
113
if ( $count == 1 ) {
114
    my $order = $results->[0];
114
    my $order = $results->[0];
115
    if (C4::Context->preference('AcqCreateItem') eq 'receiving') {
115
    my $AcqCreateItem = C4::Context->preference('AcqCreateItem');
116
    if ($AcqCreateItem eq 'receiving') {
116
        # Check if ACQ framework exists
117
        # Check if ACQ framework exists
117
        my $marc = GetMarcStructure(1, 'ACQ');
118
        my $marc = GetMarcStructure(1, 'ACQ');
118
        unless($marc) {
119
        unless($marc) {
Lines 122-127 if ( $count == 1 ) { Link Here
122
            AcqCreateItemReceiving => 1,
123
            AcqCreateItemReceiving => 1,
123
            UniqueItemFields => C4::Context->preference('UniqueItemFields'),
124
            UniqueItemFields => C4::Context->preference('UniqueItemFields'),
124
        );
125
        );
126
    } elsif ($AcqCreateItem eq 'ordering') {
127
        my @itemnumbers = GetItemnumbersFromOrder($order->{ordernumber});
128
        my @items;
129
        foreach (@itemnumbers) {
130
            my $item = GetItem($_);
131
            if($item->{homebranch}) {
132
                $item->{homebranchname} = GetBranchName($item->{homebranch});
133
            }
134
            if($item->{holdingbranch}) {
135
                $item->{holdingbranchname} = GetBranchName($item->{holdingbranch});
136
            }
137
            if(my $code = GetAuthValCode("items.notforloan", "ACQ")) {
138
                $item->{notforloan} = GetKohaAuthorisedValueLib($code, $item->{notforloan});
139
            }
140
            if(my $code = GetAuthValCode("items.restricted", "ACQ")) {
141
                $item->{restricted} = GetKohaAuthorisedValueLib($code, $item->{restricted});
142
            }
143
            if(my $code = GetAuthValCode("items.location", "ACQ")) {
144
                $item->{location} = GetKohaAuthorisedValueLib($code, $item->{location});
145
            }
146
            if(my $code = GetAuthValCode("items.ccode", "ACQ")) {
147
                $item->{collection} = GetKohaAuthorisedValueLib($code, $item->{ccode});
148
            }
149
            if(my $code = GetAuthValCode("items.materials", "ACQ")) {
150
                $item->{materials} = GetKohaAuthorisedValueLib($code, $item->{materials});
151
            }
152
            my $itemtype = getitemtypeinfo($item->{itype});
153
            $item->{itemtype} = $itemtype->{description};
154
            push @items, $item;
155
        }
156
        $template->param(items => \@items);
125
    }
157
    }
126
158
127
    if ( $order->{'unitprice'} == 0 ) {
159
    if ( $order->{'unitprice'} == 0 ) {
Lines 136-141 if ( $count == 1 ) { Link Here
136
    my $budget = GetBudget( $order->{'budget_id'} );
168
    my $budget = GetBudget( $order->{'budget_id'} );
137
169
138
    $template->param(
170
    $template->param(
171
        AcqCreateItem         => $AcqCreateItem,
139
        count                 => 1,
172
        count                 => 1,
140
        biblionumber          => $order->{'biblionumber'},
173
        biblionumber          => $order->{'biblionumber'},
141
        ordernumber           => $order->{'ordernumber'},
174
        ordernumber           => $order->{'ordernumber'},
(-)a/cataloguing/additem.pl (+1 lines)
Lines 724-729 $template->param( Link Here
724
    itemtagsubfield  => $itemtagsubfield,
724
    itemtagsubfield  => $itemtagsubfield,
725
    op      => $nextop,
725
    op      => $nextop,
726
    opisadd => ($nextop eq "saveitem") ? 0 : 1,
726
    opisadd => ($nextop eq "saveitem") ? 0 : 1,
727
    popup => $input->param('popup') ? 1: 0,
727
    C4::Search::enabled_staff_search_views,
728
    C4::Search::enabled_staff_search_views,
728
);
729
);
729
730
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt (-3 / +92 lines)
Lines 32-40 Link Here
32
        return true;
32
        return true;
33
    }
33
    }
34
34
35
    [% IF (AcqCreateItem == 'ordering') %]
36
        function PopupEditPage(biblionumber, itemnumber) {
37
            var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber="
38
                + biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem";
39
            window.open(url);
40
        }
41
42
        function CalcQtyToReceive() {
43
            var qty = $("input[name='items_to_receive']:checked").length;
44
            $("#quantity").val(qty);
45
        }
46
47
        function CheckNItems(n) {
48
            $("input[name='items_to_receive']").each(function() {
49
                $(this).attr('checked', false);
50
            });
51
            $("input[name='items_to_receive']:lt("+n+")").each(function () {
52
                $(this).attr('checked', true);
53
            });
54
        }
55
    [% END %]
56
35
    $(document).ready(function() {
57
    $(document).ready(function() {
36
        [% IF (AcqCreateItemReceiving) %]
58
        [% IF (AcqCreateItemReceiving) %]
37
            cloneItemBlock(0, '[% UniqueItemFields %]');
59
            cloneItemBlock(0, '[% UniqueItemFields %]');
60
        [% ELSIF (AcqCreateItem == 'ordering') %]
61
            $("input[name='items_to_receive']").change(function() {
62
                CalcQtyToReceive();
63
            });
64
            CalcQtyToReceive();
65
            $("#quantity").keyup(function() {
66
                var qty = parseInt($("#quantity").val());
67
                var qtyto = parseInt($("#quantity_to_receive").val());
68
                if(qty > qtyto) {
69
                    $("#qtyrecerror").show();
70
                } else {
71
                    $("#qtyrecerror").hide();
72
                }
73
                CheckNItems($(this).val());
74
            });
38
        [% END %]
75
        [% END %]
39
    });
76
    });
40
//]]>
77
//]]>
Lines 127-133 Link Here
127
            [% END %]
164
            [% END %]
128
            <div id="outeritemblock"></div>
165
            <div id="outeritemblock"></div>
129
        </fieldset>
166
        </fieldset>
130
    [% END %][%# IF (AcqCreateItemReceiving) %]
167
    [% ELSIF (AcqCreateItem == 'ordering') %]
168
        [% IF (items.size) %]
169
            <h5>Items</h5>
170
            <div style="width:100%;overflow:auto">
171
                <table>
172
                    <thead>
173
                        <tr>
174
                            <th>Receive?</th>
175
                            <th>&nbsp;</th>
176
                            <th>Barcode</th>
177
                            <th>Home branch</th>
178
                            <th>Holding branch</th>
179
                            <th>Not for loan</th>
180
                            <th>Restricted</th>
181
                            <th>Location</th>
182
                            <th>Call number</th>
183
                            <th>Copy number</th>
184
                            <th>Stock number</th>
185
                            <th>Collection code</th>
186
                            <th>Item type</th>
187
                            <th>Materials</th>
188
                            <th>Notes</th>
189
                        </tr>
190
                    </thead>
191
                    <tbody>
192
                        [% FOREACH item IN items %]
193
                            <tr>
194
                                <td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td>
195
                                <td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td>
196
                                <td>[% item.barcode %]</td>
197
                                <td>[% item.homebranchname %]</td>
198
                                <td>[% item.holdingbranchname %]</td>
199
                                <td>[% item.notforloan %]</td>
200
                                <td>[% item.restricted %]</td>
201
                                <td>[% item.location %]</td>
202
                                <td>[% item.itemcallnumber %]</td>
203
                                <td>[% item.copynumber %]</td>
204
                                <td>[% item.stocknumber %]</td>
205
                                <td>[% item.collection %]</td>
206
                                <td>[% item.itemtype %]</td>
207
                                <td>[% item.materials %]</td>
208
                                <td>[% item.itemnotes %]</td>
209
                            </tr>
210
                        [% END %]
211
                    </tbody>
212
                </table>
213
            </div>
214
        [% END %]
215
    [% END %]
131
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
216
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
132
    <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
217
    <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
133
    <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
218
    <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
Lines 143-149 Link Here
143
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
228
       <li><label for="datereceived">Date received: </label><span> [% datereceived %] </span></li>
144
       <li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
229
       <li><label for="bookfund">Budget: </label><span> [% bookfund %] </span></li>
145
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
230
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
146
       <li><label for="quantityto">Quantity to receive: </label><span class="label">
231
       <li><label for="quantity_to_receive">Quantity to receive: </label><span class="label">
147
           [% IF ( edit ) %]
232
           [% IF ( edit ) %]
148
               <input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
233
               <input type="text" id="quantity_to_receive" name="quantity" value="[% quantity %]" />
149
           [% ELSE %]
234
           [% ELSE %]
Lines 168-179 Link Here
168
                [% END %]
253
                [% END %]
169
            [% ELSE %]
254
            [% ELSE %]
170
                [% IF ( items ) %]
255
                [% IF ( items ) %]
171
                    <input READONLY type="text" id="quantity" size="20" name="quantityrec" value="1" />
256
                    <input type="text" id="quantity" size="20" name="quantityrec" value="1" />
172
                [% ELSE %]
257
                [% ELSE %]
173
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
258
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
174
                [% END %]
259
                [% END %]
175
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
260
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
176
            [% END %]
261
            [% END %]
262
            <div id="qtyrecerror" style="display:none">
263
                <p class="error">Warning, you have entered more items than expected.
264
                Items will not be created.</p>
265
            </div>
177
          [% END %][%# IF (AcqCreateItemReceiving) %]
266
          [% END %][%# IF (AcqCreateItemReceiving) %]
178
		</li>
267
		</li>
179
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
268
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt (-1 / +9 lines)
Lines 4-9 Link Here
4
<script type="text/javascript">
4
<script type="text/javascript">
5
//<![CDATA[
5
//<![CDATA[
6
$(document).ready(function(){
6
$(document).ready(function(){
7
    [% IF (popup) %]
8
        [% IF (opisadd) %]
9
            window.opener.location.reload(true);
10
            window.close();
11
        [% END %]
12
    [% END %]
7
		$("fieldset.rows input").keydown(function(e){ return checkEnter(e); });
13
		$("fieldset.rows input").keydown(function(e){ return checkEnter(e); });
8
		/* Inline edit/delete links */
14
		/* Inline edit/delete links */
9
		var biblionumber = $("input[name='biblionumber']").attr("value");
15
		var biblionumber = $("input[name='biblionumber']").attr("value");
Lines 219-224 $(document).ready(function() { Link Here
219
<div id="cataloguing_additem_newitem">
225
<div id="cataloguing_additem_newitem">
220
    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
226
    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
221
    <input type="hidden" name="op" value="[% op %]" />
227
    <input type="hidden" name="op" value="[% op %]" />
228
    [% IF (popup) %]
229
        <input type="hidden" name="popup" value="1" />
230
    [% END %]
222
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
231
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
223
    [% IF ( opisadd ) %]
232
    [% IF ( opisadd ) %]
224
        <h2 id="additema">Add Item</h2>
233
        <h2 id="additema">Add Item</h2>
225
- 

Return to bug 7175