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

(-)a/C4/Acquisition.pm (-3 / +38 lines)
Lines 56-62 BEGIN { Link Here
56
        &ModReceiveOrder &ModOrderBiblioitemNumber
56
        &ModReceiveOrder &ModOrderBiblioitemNumber
57
        &GetCancelledOrders
57
        &GetCancelledOrders
58
58
59
        &NewOrderItem &ModOrderItem
59
        &NewOrderItem &ModOrderItem &ModItemOrder
60
60
61
        &GetParcels &GetParcel
61
        &GetParcels &GetParcel
62
        &GetContracts &GetContract
62
        &GetContracts &GetContract
Lines 1018-1023 sub ModOrderItem { Link Here
1018
    return 0;
1018
    return 0;
1019
}
1019
}
1020
1020
1021
=head3 ModItemOrder
1022
1023
    ModItemOrder($itemnumber, $ordernumber);
1024
1025
Modifies the ordernumber of an item in aqorders_items.
1026
1027
=cut
1028
1029
sub ModItemOrder {
1030
    my ($itemnumber, $ordernumber) = @_;
1031
1032
    return unless ($itemnumber and $ordernumber);
1033
1034
    my $dbh = C4::Context->dbh;
1035
    my $query = qq{
1036
        UPDATE aqorders_items
1037
        SET ordernumber = ?
1038
        WHERE itemnumber = ?
1039
    };
1040
    my $sth = $dbh->prepare($query);
1041
    return $sth->execute($ordernumber, $itemnumber);
1042
}
1043
1021
#------------------------------------------------------------#
1044
#------------------------------------------------------------#
1022
1045
1023
1046
Lines 1103-1109 C<$ordernumber>. Link Here
1103
sub ModReceiveOrder {
1126
sub ModReceiveOrder {
1104
    my (
1127
    my (
1105
        $biblionumber,    $ordernumber,  $quantrec, $user, $cost,
1128
        $biblionumber,    $ordernumber,  $quantrec, $user, $cost,
1106
        $invoiceno, $freight, $rrp, $budget_id, $datereceived
1129
        $invoiceno, $freight, $rrp, $budget_id, $datereceived, $received_items
1107
    )
1130
    )
1108
    = @_;
1131
    = @_;
1109
    my $dbh = C4::Context->dbh;
1132
    my $dbh = C4::Context->dbh;
Lines 1146-1152 sub ModReceiveOrder { Link Here
1146
        $order->{'quantity'} -= $quantrec;
1169
        $order->{'quantity'} -= $quantrec;
1147
        $order->{'quantityreceived'} = 0;
1170
        $order->{'quantityreceived'} = 0;
1148
        my $newOrder = NewOrder($order);
1171
        my $newOrder = NewOrder($order);
1149
} else {
1172
        # Change ordernumber in aqorders_items for items not received
1173
        my @orderitems = GetItemnumbersFromOrder( $order->{'ordernumber'} );
1174
        my $count = scalar @orderitems;
1175
1176
        for (my $i=0; $i<$count; $i++){
1177
            foreach (@$received_items){
1178
                splice (@orderitems, $i, 1) if ($orderitems[$i] == $_);
1179
            }
1180
        }
1181
        foreach (@orderitems) {
1182
            ModItemOrder($_, $newOrder);
1183
        }
1184
    } else {
1150
        $sth=$dbh->prepare("update aqorders
1185
        $sth=$dbh->prepare("update aqorders
1151
                            set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?,
1186
                            set quantityreceived=?,datereceived=?,booksellerinvoicenumber=?,
1152
                                unitprice=?,freight=?,rrp=?
1187
                                unitprice=?,freight=?,rrp=?
(-)a/acqui/finishreceive.pl (-2 / +7 lines)
Lines 92-100 if ($quantityrec > $origquantityrec ) { Link Here
92
            NewOrderItem($itemnumber, $ordernumber);
92
            NewOrderItem($itemnumber, $ordernumber);
93
        }
93
        }
94
    }
94
    }
95
    
95
96
    my @received_items = ();
97
    if(C4::Context->preference('AcqCreateItem') eq 'ordering') {
98
        @received_items = $input->param('items_to_receive');
99
    }
100
96
    # save the quantity received.
101
    # save the quantity received.
97
    $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived);
102
    $datereceived = ModReceiveOrder($biblionumber,$ordernumber, $quantityrec ,$user,$unitprice,$invoiceno,$freight,$replacement,undef,$datereceived, \@received_items);
98
}
103
}
99
104
100
update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
105
update_item( $_ ) foreach GetItemnumbersFromOrder( $ordernumber );
(-)a/acqui/orderreceive.pl (-5 / +36 lines)
Lines 112-128 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
        # prepare empty item form
117
        # prepare empty item form
117
        my $cell = PrepareItemrecordDisplay('','','','ACQ');
118
        my $cell = PrepareItemrecordDisplay('','','','ACQ');
118
        unless ($cell) {
119
        unless ($cell) {
119
            $cell = PrepareItemrecordDisplay('','','','');
120
            $cell = PrepareItemrecordDisplay('','','','');
120
            $template->param('NoACQframework' => 1);
121
            $template->param('NoACQframework' => 1);
121
        }
122
        }
122
        my @itemloop;
123
123
        push @itemloop,$cell;
124
        $template->param(itemform => $cell);
124
        
125
    } elsif ($AcqCreateItem eq 'ordering') {
125
        $template->param(items => \@itemloop);
126
        my @itemnumbers = GetItemnumbersFromOrder($order->{ordernumber});
127
        my @items;
128
        foreach (@itemnumbers) {
129
            my $item = GetItem($_);
130
            if($item->{homebranch}) {
131
                $item->{homebranchname} = GetBranchName($item->{homebranch});
132
            }
133
            if($item->{holdingbranch}) {
134
                $item->{holdingbranchname} = GetBranchName($item->{holdingbranch});
135
            }
136
            if(my $code = GetAuthValCode("items.notforloan", "ACQ")) {
137
                $item->{notforloan} = GetKohaAuthorisedValueLib($code, $item->{notforloan});
138
            }
139
            if(my $code = GetAuthValCode("items.restricted", "ACQ")) {
140
                $item->{restricted} = GetKohaAuthorisedValueLib($code, $item->{restricted});
141
            }
142
            if(my $code = GetAuthValCode("items.location", "ACQ")) {
143
                $item->{location} = GetKohaAuthorisedValueLib($code, $item->{location});
144
            }
145
            if(my $code = GetAuthValCode("items.ccode", "ACQ")) {
146
                $item->{collection} = GetKohaAuthorisedValueLib($code, $item->{ccode});
147
            }
148
            if(my $code = GetAuthValCode("items.materials", "ACQ")) {
149
                $item->{materials} = GetKohaAuthorisedValueLib($code, $item->{materials});
150
            }
151
            my $itemtype = getitemtypeinfo($item->{itype});
152
            $item->{itemtype} = $itemtype->{description};
153
            push @items, $item;
154
        }
155
        $template->param(items => \@items);
126
    }
156
    }
127
157
128
    if ( $order->{'unitprice'} == 0 ) {
158
    if ( $order->{'unitprice'} == 0 ) {
Lines 137-142 if ( $count == 1 ) { Link Here
137
    my $budget = GetBudget( $order->{'budget_id'} );
167
    my $budget = GetBudget( $order->{'budget_id'} );
138
168
139
    $template->param(
169
    $template->param(
170
        AcqCreateItem         => $AcqCreateItem,
140
        count                 => 1,
171
        count                 => 1,
141
        biblionumber          => $order->{'biblionumber'},
172
        biblionumber          => $order->{'biblionumber'},
142
        ordernumber           => $order->{'ordernumber'},
173
        ordernumber           => $order->{'ordernumber'},
(-)a/cataloguing/additem.pl (+1 lines)
Lines 725-730 $template->param( Link Here
725
    itemtagsubfield  => $itemtagsubfield,
725
    itemtagsubfield  => $itemtagsubfield,
726
    op      => $nextop,
726
    op      => $nextop,
727
    opisadd => ($nextop eq "saveitem") ? 0 : 1,
727
    opisadd => ($nextop eq "saveitem") ? 0 : 1,
728
    popup => $input->param('popup') ? 1: 0,
728
    C4::Search::enabled_staff_search_views,
729
    C4::Search::enabled_staff_search_views,
729
);
730
);
730
731
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/orderreceive.tt (-14 / +108 lines)
Lines 2-7 Link Here
2
<title>Koha &rsaquo; Acquisitions &rsaquo; Receipt summary for : [% name %] [% IF ( invoice ) %]invoice, [% invoice %][% END %]</title>
2
<title>Koha &rsaquo; Acquisitions &rsaquo; Receipt summary for : [% name %] [% IF ( invoice ) %]invoice, [% invoice %][% END %]</title>
3
[% INCLUDE 'doc-head-close.inc' %]
3
[% INCLUDE 'doc-head-close.inc' %]
4
<script type="text/javascript" src="[% themelang %]/js/additem.js"> </script>
4
<script type="text/javascript" src="[% themelang %]/js/additem.js"> </script>
5
<script type="text/javascript">
6
//<![CDATA[
7
[% IF (AcqCreateItem == 'ordering') %]
8
    function PopupEditPage(biblionumber, itemnumber) {
9
        var url = "/cgi-bin/koha/cataloguing/additem.pl?op=edititem&biblionumber="
10
            + biblionumber + "&itemnumber=" + itemnumber + "&popup=1#edititem";
11
        window.open(url);
12
    }
13
14
    function CalcQtyToReceive() {
15
        var qty = $("input[name='items_to_receive']:checked").length;
16
        $("#quantity").val(qty);
17
    }
18
19
    function CheckNItems(n) {
20
        $("input[name='items_to_receive']").each(function() {
21
            $(this).attr('checked', false);
22
        });
23
        $("input[name='items_to_receive']:lt("+n+")").each(function () {
24
            $(this).attr('checked', true);
25
        });
26
    }
27
[% END %]
28
29
$(document).ready(function() {
30
    [% IF (AcqCreateItem == 'ordering') %]
31
        $("input[name='items_to_receive']").change(function() {
32
            CalcQtyToReceive();
33
        });
34
        CalcQtyToReceive();
35
        $("#quantity").keyup(function() {
36
            var qty = parseInt($("#quantity").val());
37
            var qtyto = parseInt($("#quantityto").val());
38
            if(qty > qtyto) {
39
                $("#qtyrecerror").show();
40
            } else {
41
                $("#qtyrecerror").hide();
42
            }
43
            CheckNItems($(this).val());
44
        });
45
    [% END %]
46
});
47
//]]>
48
</script>
5
</head>
49
</head>
6
<body>
50
<body>
7
[% INCLUDE 'header.inc' %]
51
[% INCLUDE 'header.inc' %]
Lines 48-64 Link Here
48
        </fieldset>
92
        </fieldset>
49
    [% END %]
93
    [% END %]
50
94
51
    [% IF ( items ) %]
95
    [% IF (AcqCreateItem == 'ordering') %]
96
        [% IF (items.size) %]
97
            <h5>Items</h5>
98
            <div style="width:100%;overflow:auto">
99
                <table>
100
                    <thead>
101
                        <tr>
102
                            <th>Receive?</th>
103
                            <th>&nbsp;</th>
104
                            <th>Barcode</th>
105
                            <th>Home branch</th>
106
                            <th>Holding branch</th>
107
                            <th>Not for loan</th>
108
                            <th>Restricted</th>
109
                            <th>Location</th>
110
                            <th>Call number</th>
111
                            <th>Copy number</th>
112
                            <th>Stock number</th>
113
                            <th>Collection</th>
114
                            <th>Item type</th>
115
                            <th>Materials</th>
116
                            <th>Notes</th>
117
                        </tr>
118
                    </thead>
119
                    <tbody>
120
                        [% FOREACH item IN items %]
121
                            <tr>
122
                                <td style="text-align:center"><input type="checkbox" name="items_to_receive" value="[% item.itemnumber %]" /></td>
123
                                <td><a style="cursor:pointer" onclick="PopupEditPage([% item.biblionumber %],[% item.itemnumber %]);">Edit</a></td>
124
                                <td>[% item.barcode %]</td>
125
                                <td>[% item.homebranchname %]</td>
126
                                <td>[% item.holdingbranchname %]</td>
127
                                <td>[% item.notforloan %]</td>
128
                                <td>[% item.restricted %]</td>
129
                                <td>[% item.location %]</td>
130
                                <td>[% item.itemcallnumber %]</td>
131
                                <td>[% item.copynumber %]</td>
132
                                <td>[% item.stocknumber %]</td>
133
                                <td>[% item.collection %]</td>
134
                                <td>[% item.itemtype %]</td>
135
                                <td>[% item.materials %]</td>
136
                                <td>[% item.itemnotes %]</td>
137
                            </tr>
138
                        [% END %]
139
                    </tbody>
140
                </table>
141
            </div>
142
        [% END %]
143
    [% ELSIF (AcqCreateItem == 'receiving') %]
52
    <fieldset class="rows">
144
    <fieldset class="rows">
53
        <legend>Item</legend>
145
        <legend>Item</legend>
54
        [% IF ( NoACQframework ) %]
146
        [% IF ( NoACQframework ) %]
55
            <p class="required">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</p>
147
            <p class="required">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</p>
56
        [% END %]
148
        [% END %]
57
149
58
        [% FOREACH item IN items %]
59
        <div id="outeritemblock">
150
        <div id="outeritemblock">
60
        <div id="itemblock">
151
        <div id="itemblock">
61
            <ol>[% FOREACH iteminformatio IN item.iteminformation %]<li style="[% iteminformatio.hidden %];">
152
            <ol>[% FOREACH iteminformatio IN itemform.iteminformation %]<li style="[% iteminformatio.hidden %];">
62
                <div class="subfield_line" id="subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
153
                <div class="subfield_line" id="subfield[% iteminformatio.serialid %][% iteminformatio.countitems %][% iteminformatio.subfield %][% iteminformatio.random %]">
63
                                
154
                                
64
                    <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
155
                    <label>[% iteminformatio.subfield %] - [% IF ( iteminformatio.mandatory ) %]<b>[% END %][% iteminformatio.marc_lib %][% IF ( iteminformatio.mandatory ) %] *</b>[% END %]</label>
Lines 75-95 Link Here
75
                </div></li>
166
                </div></li>
76
            [% END %]
167
            [% END %]
77
            </ol>
168
            </ol>
78
            <a class="addItem" onclick="cloneItemBlock('itemblock[% item.itemBlockIndex %]')">Add</a>
169
            <a class="addItem" onclick="cloneItemBlock('itemblock[% itemform.itemBlockIndex %]')">Add</a>
79
            <a class="delItem" style="display:none;" onclick="deleteItemBlock('itemblock[% item.itemBlockIndex %]')">Delete</a>
170
            <a class="delItem" style="display:none;" onclick="deleteItemBlock('itemblock[% itemform.itemBlockIndex %]')">Delete</a>
80
        </div><!-- /iteminformation -->
171
        </div><!-- /iteminformation -->
81
        </div>
172
        </div>
82
        
173
        
83
        <input type="hidden" name="moditem" value="" /> 
174
        <input type="hidden" name="moditem" value="" /> 
84
        <input type="hidden" name="tag" value="[% item.itemtagfield %]" />
175
        <input type="hidden" name="tag" value="[% itemform.itemtagfield %]" />
85
        <input type="hidden" name="subfield" value="[% item.itemtagsubfield %]" />
176
        <input type="hidden" name="subfield" value="[% itemform.itemtagsubfield %]" />
86
        <input type="hidden" name="serial" value="[% item.serialid %]" />
177
        <input type="hidden" name="serial" value="[% itemform.serialid %]" />
87
        <input type="hidden" name="bibnum" value="[% item.biblionumber %]" />
178
        <input type="hidden" name="bibnum" value="[% itemform.biblionumber %]" />
88
        <input type="hidden" name="itemid" value="1" />
179
        <input type="hidden" name="itemid" value="1" />
89
        <input type="hidden" name="field_value" value="[% item.itemnumber %]" />
180
        <input type="hidden" name="field_value" value="[% itemform.itemnumber %]" />
90
        [% END %] <!-- /items -->
181
        [% END %] <!-- /items -->
91
    </fieldset>
182
    </fieldset>
92
    [% END %] <!-- items -->
93
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
183
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
94
    <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
184
    <input type="hidden" name="ordernumber" value="[% ordernumber %]" />
95
    <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
185
    <input type="hidden" name="biblioitemnumber" value="[% biblioitemnumber %]" />
Lines 107-115 Link Here
107
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
197
       <li><label for="creator">Created by: </label><span> [% IF ( memberfirstname and membersurname ) %][% IF ( memberfirstname ) %][% memberfirstname %][% END %] [% membersurname %][% ELSE %]No name[% END %]</span></li>
108
       <li><label for="quantityto">Quantity to receive: </label><span class="label">
198
       <li><label for="quantityto">Quantity to receive: </label><span class="label">
109
           [% IF ( edit ) %]
199
           [% IF ( edit ) %]
110
               <input type="text" name="quantity" value="[% quantity %]" />
200
               <input id="quantityto" type="text" name="quantity" value="[% quantity %]" />
111
           [% ELSE %]
201
           [% ELSE %]
112
               <input type="text" READONLY name="quantity" value="[% quantity %]" />
202
               <input id="quantityto" type="text" READONLY name="quantity" value="[% quantity %]" />
113
           [% END %]
203
           [% END %]
114
           </span></li>
204
           </span></li>
115
        <li><label for="quantity">Quantity received: </label>
205
        <li><label for="quantity">Quantity received: </label>
Lines 127-138 Link Here
127
                [% END %]
217
                [% END %]
128
            [% ELSE %]
218
            [% ELSE %]
129
                [% IF ( items ) %]
219
                [% IF ( items ) %]
130
                    <input READONLY type="text" id="quantity" size="20" name="quantityrec" value="1" />
220
                    <input type="text" id="quantity" size="20" name="quantityrec" value="1" />
131
                [% ELSE %]
221
                [% ELSE %]
132
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
222
                    <input type="text" size="20" id="quantity" name="quantityrec" value="1" />
133
                [% END %]
223
                [% END %]
134
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
224
                <input id="origquantityrec" READONLY type="hidden" name="origquantityrec" value="0" />
135
            [% END %]
225
            [% END %]
226
            <div id="qtyrecerror" style="display:none">
227
                <p class="error">Warning, you have entered more items than expected.
228
                Items will not be created.</p>
229
            </div>
136
		</li>
230
		</li>
137
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
231
        <li><label for="rrp">Replacement cost: </label><input type="text" size="20" name="rrp" id="rrp" value="[% rrp %]" /></li>
138
        <li><label for="ecost">Budgeted cost: </label><input type="text" size="20" name="ecost" id="ecost" value="[% ecost %]" /></li>
232
        <li><label for="ecost">Budgeted cost: </label><input type="text" size="20" name="ecost" id="ecost" value="[% ecost %]" /></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 227-232 function set_to_today(id, force) { Link Here
227
<div id="cataloguing_additem_newitem">
233
<div id="cataloguing_additem_newitem">
228
    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
234
    <form method="post" action="/cgi-bin/koha/cataloguing/additem.pl" name="f">
229
    <input type="hidden" name="op" value="[% op %]" />
235
    <input type="hidden" name="op" value="[% op %]" />
236
    [% IF (popup) %]
237
        <input type="hidden" name="popup" value="1" />
238
    [% END %]
230
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
239
    <input type="hidden" name="biblionumber" value="[% biblionumber %]" />
231
    [% IF ( opisadd ) %]
240
    [% IF ( opisadd ) %]
232
        <h2 id="additema">Add Item</h2>
241
        <h2 id="additema">Add Item</h2>
233
- 

Return to bug 7175