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

(-)a/acqui/addorder.pl (-1 / +17 lines)
Lines 130-135 use C4::Budgets; Link Here
130
use C4::Items;
130
use C4::Items;
131
use C4::Output;
131
use C4::Output;
132
use Koha::Acquisition::Currencies;
132
use Koha::Acquisition::Currencies;
133
use C4::Barcodes;
133
134
134
### "-------------------- addorder.pl ----------"
135
### "-------------------- addorder.pl ----------"
135
136
Lines 307-313 if ( $basket->{is_standing} || $orderinfo->{quantity} ne '0' ) { Link Here
307
            push @{$itemhash{$itemid[$i]}->{'indicator'}},$indicator[$i];
308
            push @{$itemhash{$itemid[$i]}->{'indicator'}},$indicator[$i];
308
        }
309
        }
309
        foreach my $item (keys %itemhash){
310
        foreach my $item (keys %itemhash){
310
311
            my $xml = TransformHtmlToXml( $itemhash{$item}->{'tags'},
311
            my $xml = TransformHtmlToXml( $itemhash{$item}->{'tags'},
312
                                    $itemhash{$item}->{'subfields'},
312
                                    $itemhash{$item}->{'subfields'},
313
                                    $itemhash{$item}->{'field_values'},
313
                                    $itemhash{$item}->{'field_values'},
Lines 315-320 if ( $basket->{is_standing} || $orderinfo->{quantity} ne '0' ) { Link Here
315
                                    $itemhash{$item}->{'ind_tag'},
315
                                    $itemhash{$item}->{'ind_tag'},
316
                                    'ITEM');
316
                                    'ITEM');
317
            my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
317
            my $record=MARC::Record::new_from_xml($xml, 'UTF-8');
318
            my ($barcodefield,$barcodesubfield) = GetMarcFromKohaField('items.barcode');
319
            my $barcode = $record->subfield($barcodefield,$barcodesubfield);
320
            my $aBpref = C4::Context->preference('autoBarcode');
321
            if( $barcode eq '' && $aBpref ne 'OFF'){
322
                my $barcodeobj;
323
                if ( $aBpref eq 'hbyymmincr'){
324
                    my ($homebranchfield,$homebranchsubfield) = GetMarcFromKohaField('items.homebranch');
325
                    my $homebranch = $record->subfield($homebranchfield,$homebranchsubfield);
326
                    $barcodeobj = C4::Barcodes->new($aBpref, $homebranch);
327
                } else {
328
                    $barcodeobj = C4::Barcodes->new($aBpref);
329
                }
330
                $barcode = $barcodeobj->value();
331
                $record->field($barcodefield)->delete_subfield( code => $barcodesubfield);
332
                $record->field($barcodefield)->add_subfields($barcodesubfield => $barcode);
333
            }
318
            my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$$orderinfo{biblionumber});
334
            my ($biblionumber,$bibitemnum,$itemnumber) = AddItemFromMarc($record,$$orderinfo{biblionumber});
319
            $order->add_item($itemnumber);
335
            $order->add_item($itemnumber);
320
        }
336
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/includes/additem.js.inc (+3 lines)
Lines 1-6 Link Here
1
<script type="text/javascript">
1
<script type="text/javascript">
2
//<![CDATA[
2
//<![CDATA[
3
var MSG_ADDITEM_JS_ADDITEM = _("Add item");
3
var MSG_ADDITEM_JS_ADDITEM = _("Add item");
4
var MSG_ADDITEM_JS_ADDMULTI = _("Add multiple items");
5
var MSG_ADDITEM_JS_MULTIVAL = _("Number of items to add");
6
var MSG_ADDITEM_JS_SUBMITMULTI = _("Add");
4
var MSG_ADDITEM_JS_UPDATEITEM = _("Update item");
7
var MSG_ADDITEM_JS_UPDATEITEM = _("Update item");
5
var MSG_ADDITEM_JS_EDIT = _("Edit");
8
var MSG_ADDITEM_JS_EDIT = _("Edit");
6
var MSG_ADDITEM_JS_DELETE = _("Delete");
9
var MSG_ADDITEM_JS_DELETE = _("Delete");
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/neworderempty.tt (+33 lines)
Lines 1-5 Link Here
1
[% USE KohaDates %]
1
[% USE KohaDates %]
2
[% INCLUDE 'doc-head-open.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
[% USE Koha %]
3
<title>Koha &rsaquo; Acquisitions &rsaquo; Basket [% basketno %] &rsaquo; [% IF ( ordernumber ) %]Modify order details (line #[% ordernumber %])[% ELSE %]New order[% END %]</title>
4
<title>Koha &rsaquo; Acquisitions &rsaquo; Basket [% basketno %] &rsaquo; [% IF ( ordernumber ) %]Modify order details (line #[% ordernumber %])[% ELSE %]New order[% END %]</title>
4
[% INCLUDE 'doc-head-close.inc' %]
5
[% INCLUDE 'doc-head-close.inc' %]
5
6
Lines 451-456 $(document).ready(function() Link Here
451
              <div class="dialog message">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</div>
452
              <div class="dialog message">No ACQ framework, using default. You should create a framework with code ACQ, the items framework would be used</div>
452
          [% END %]
453
          [% END %]
453
454
455
          [% UNLESS Koha.Preference('autoBarcode') == 'OFF' %]
456
              <div class="dialog message">The autoBarcode system preference is set to [% Koha.Preference('autoBarcode') %] and items with blank barcodes will have barcodes generated upon save to database</div>
457
          [% END %]
458
454
          <div id="outeritemblock"></div>
459
          <div id="outeritemblock"></div>
455
460
456
      </fieldset>
461
      </fieldset>
Lines 646-651 $(document).ready(function() Link Here
646
        [% END %]
651
        [% END %]
647
    </fieldset>
652
    </fieldset>
648
</form>
653
</form>
654
655
<div id="procModal" data-backdrop="static" class="modal hide fade" aria-labelledby="procModal" aria-hidden="true">
656
    <div class="modal-body">
657
    <h3>Processing multiple items</h3>
658
    </div>
659
</div>
660
661
[% IF UniqueItemFields %]
662
<div id="uniqueFieldsModal" class="modal hide fade" aria-labelledby="uniqueFieldsModal" aria-hidden="true">
663
    <div class="modal-body">
664
    <h3>The following fields are listed in the UniqueItemFields system preference and will not be copied</h3>
665
    <ul id="uniqueItemFields">
666
    [% FOREACH uniqueField IN UniqueItemFields.split(" ") %]
667
        <li>[% uniqueField %]</li>
668
    [% END %]
669
    </ul>
670
    [% UNLESS Koha.Preference('autoBarcode') == 'OFF' %]
671
    <h3>If barcode is blank and/or listed in UniqueItemFields barcodes will be generate using the autoBarcode preference setting ([% Koha.Preference('autoBarcode') %]) when saved</h3>
672
    [% END %]
673
    </div>
674
</div>
675
[% END %]
676
677
<div id="multiCountModal" class="modal hide fade" aria-labelledby="multiCountModal" aria-hidden="true">
678
    <h3>Invalid number of copies</h3>
679
    <p>Please enter a <b>number</b>, greater than or equal to 1</p>
680
</div>
681
649
</div>
682
</div>
650
</div>
683
</div>
651
<div class="yui-b">
684
<div class="yui-b">
(-)a/koha-tmpl/intranet-tmpl/prog/js/additem.js (-5 / +53 lines)
Lines 12-18 function addItem( node, unique_item_fields ) { Link Here
12
            if ( current_qty < max_qty - 1 )
12
            if ( current_qty < max_qty - 1 )
13
                cloneItemBlock(index, unique_item_fields);
13
                cloneItemBlock(index, unique_item_fields);
14
            addItemInList(index, unique_item_fields);
14
            addItemInList(index, unique_item_fields);
15
            $("#" + index).find("input[name='buttonPlus']").val( (window.MSG_ADDITEM_JS_UPDATEITEM || "Update item") );
15
            $("#" + index).find("input[name='buttonPlus']").val( (window.MSG_ADDITEM_JS_UPDATEITEM ) );
16
            $("#"+ index).find("input[name='buttonPlusMulti']").remove();
17
            $("#" + index).find("input[name='multiValue']").remove();
16
            $("#quantity").val(current_qty + 1).change();
18
            $("#quantity").val(current_qty + 1).change();
17
        } else if ( current_qty >= max_qty ) {
19
        } else if ( current_qty >= max_qty ) {
18
            alert(window.MSG_ADDITEM_JS_CANT_RECEIVE_MORE_ITEMS
20
            alert(window.MSG_ADDITEM_JS_CANT_RECEIVE_MORE_ITEMS
Lines 27-32 function addItem( node, unique_item_fields ) { Link Here
27
    $("#" + index).hide();
29
    $("#" + index).hide();
28
}
30
}
29
31
32
function addMulti( count, node, unique_item_fields){
33
    var index = $(node).closest("div").attr('id');
34
    var countItemsBefore = $("#items_list tbody tr").length;
35
    var current_qty = parseInt( $('#quantity').val(), 10 );
36
    $("#procModal").modal('show');
37
    $("#" + index).hide();
38
    for(var i=0;i<count;i++){
39
       cloneItemBlock(index, unique_item_fields, function(cloneIndex){
40
            addItemInList(cloneIndex,unique_item_fields, function(){
41
                    if( ($("#items_list tbody tr").length-countItemsBefore)==(count)){
42
                        $("#multiValue").val('');
43
                        $('#'+index).appendTo('#outeritemblock');
44
                        $('#'+index).show();
45
                        $('#'+index + ' #add_multiple_copies' ).css("visibility","hidden");
46
                        $("#procModal").modal('hide');
47
                    }
48
            });
49
            $("#" + cloneIndex).find("input[name='buttonPlus']").val( (window.MSG_ADDITEM_JS_UPDATEITEM ) );
50
            $("#" + cloneIndex).find("input[name='buttonPlusMulti']").remove();
51
            $("#" + cloneIndex).find("input[name='multiValue']").remove();
52
            $("#" + cloneIndex).hide();
53
            current_qty++;
54
            $('#quantity').val( current_qty );
55
       });
56
    }
57
}
58
59
60
function checkCount(node, unique_item_fields){
61
    var count = parseInt( $("#multiValue").val(), 10 );
62
    if ( isNaN( count ) || count <=0) {
63
        $("#multiCountModal").modal('show');
64
    }
65
    else{
66
        addMulti( count, node, unique_item_fields);
67
    }
68
}
69
30
function showItem(index) {
70
function showItem(index) {
31
    $("#outeritemblock").children("div").each(function(){
71
    $("#outeritemblock").children("div").each(function(){
32
        if ( $(this).attr('id') == index ) {
72
        if ( $(this).attr('id') == index ) {
Lines 75-84 function constructTrNode(index, unique_item_fields) { Link Here
75
    return result;
115
    return result;
76
}
116
}
77
117
78
function addItemInList(index, unique_item_fields) {
118
function addItemInList(index, unique_item_fields, callback) {
79
    $("#items_list").show();
119
    $("#items_list").show();
80
    var tr = constructTrNode(index, unique_item_fields);
120
    var tr = constructTrNode(index, unique_item_fields);
81
    $("#items_list table tbody").append(tr);
121
    $("#items_list table tbody").append(tr);
122
    if (typeof callback === "function"){
123
        callback();
124
    }
82
}
125
}
83
126
84
function deleteItemBlock(node_a, index, unique_item_fields) {
127
function deleteItemBlock(node_a, index, unique_item_fields) {
Lines 105-111 function deleteItemBlock(node_a, index, unique_item_fields) { Link Here
105
    }
148
    }
106
}
149
}
107
150
108
function cloneItemBlock(index, unique_item_fields) {
151
function cloneItemBlock(index, unique_item_fields, callback) {
109
    var original;
152
    var original;
110
    if(index) {
153
    if(index) {
111
        original = $("#" + index); //original <div>
154
        original = $("#" + index); //original <div>
Lines 136-142 function cloneItemBlock(index, unique_item_fields) { Link Here
136
            /* Add buttons + and Clear */
179
            /* Add buttons + and Clear */
137
            var buttonPlus = "<fieldset class=\"action\">";
180
            var buttonPlus = "<fieldset class=\"action\">";
138
                buttonPlus += '<input type="button" class="addItemControl" name="buttonPlus" style="cursor:pointer; margin:0 1em;" onclick="addItem(this,\'' + unique_item_fields + '\')" value="' + (window.MSG_ADDITEM_JS_ADDITEM || 'Add item')+ '" />';
181
                buttonPlus += '<input type="button" class="addItemControl" name="buttonPlus" style="cursor:pointer; margin:0 1em;" onclick="addItem(this,\'' + unique_item_fields + '\')" value="' + (window.MSG_ADDITEM_JS_ADDITEM || 'Add item')+ '" />';
139
                buttonPlus += '<a class="addItemControl cancel" name="buttonClear" style="cursor:pointer;" onclick="clearItemBlock(this)">' + (window.MSG_ADDITEM_JS_CLEAR || 'Clear') + '</a>';
182
                buttonPlus += '<input type="button" class="addItemControl cancel" name="buttonClear" style="cursor:pointer;" onclick="clearItemBlock(this)" value="' + (window.MSG_ADDITEM_JS_CLEAR || 'Clear')+ '" />';
183
                buttonPlus += '<input type="button" class="addItemControl" name="buttonPlusMulti" data-toggle="modal" data-target="#uniqueFieldsModal" onclick="javascript:this.nextSibling.style.visibility=\'visible\'; return false;" style="cursor:pointer; margin:0 1em;" value="' + (window.MSG_ADDITEM_JS_ADDMULTI || 'Add multiple items')+ '" />';
184
                buttonPlus +='<span id="add_multiple_copies" style="visibility:hidden"><input type="number" class="addItemControl" id="multiValue" name="multiValue" placeholder="'+window.MSG_ADDITEM_JS_MULTIVAL+'" /><input type="button" class="addItemControl" name=buttonAddMulti" style="cursor:pointer; margin:0 1em;" onclick="checkCount( this ,\'' + unique_item_fields + '\')" value="' + (window.MSG_ADDITEM_JS_SUBMITMULTI || 'Add') + '" /></span>';
140
                buttonPlus += "</fieldset>";
185
                buttonPlus += "</fieldset>";
141
            $(clone).append(buttonPlus);
186
            $(clone).append(buttonPlus);
142
            /* Copy values from the original block (input) */
187
            /* Copy values from the original block (input) */
Lines 161-166 function cloneItemBlock(index, unique_item_fields) { Link Here
161
            });
206
            });
162
207
163
            $("#outeritemblock").append(clone);
208
            $("#outeritemblock").append(clone);
209
            if (typeof callback === "function"){
210
                var cloneIndex = "itemblock"+random;
211
                callback(cloneIndex);
212
            }
164
            BindPluginEvents(data);
213
            BindPluginEvents(data);
165
        }
214
        }
166
    });
215
    });
167
- 

Return to bug 14752