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

(-)a/acqui/booksellers.pl (+11 lines)
Lines 156-166 for my $vendor (@suppliers) { Link Here
156
      };
156
      };
157
157
158
}
158
}
159
160
my $sessionID = $query->cookie('CGISESSID');
161
my $session = C4::Auth::get_session($sessionID);
162
my $view = $query->param('view');
163
if ( $view ) {
164
    $session->param('bookseller_default_view', $view);
165
} else {
166
    $view = $session->param('bookseller_default_view');
167
}
168
159
$template->param(
169
$template->param(
160
    loop_suppliers => $loop_suppliers,
170
    loop_suppliers => $loop_suppliers,
161
    supplier       => ( $booksellerid || $supplier ),
171
    supplier       => ( $booksellerid || $supplier ),
162
    count          => $supplier_count,
172
    count          => $supplier_count,
163
    has_budgets          => $has_budgets,
173
    has_budgets          => $has_budgets,
174
    view           => $view,
164
);
175
);
165
$template->{VARS}->{'allbaskets'} = $allbaskets;
176
$template->{VARS}->{'allbaskets'} = $allbaskets;
166
177
(-)a/koha-tmpl/intranet-tmpl/prog/css/datatables.css (+17 lines)
Lines 263-268 table.group td.group { Link Here
263
    background-color: #D1CFD0;
263
    background-color: #D1CFD0;
264
    border-bottom: 2px solid #A19B9E;
264
    border-bottom: 2px solid #A19B9E;
265
    border-top: 2px solid #A19B9E;
265
    border-top: 2px solid #A19B9E;
266
    font-weight: bold;
267
}
268
269
table.group tr.odd td {
270
    background-color : #F3F3F3;
271
    border : 1px solid #BCBCBC;
272
    border-right : 1px solid #BCBCBC;
273
}
274
275
table.group tr.even td {
276
    background-color: #FFF;
277
    border-right : 1px solid #BCBCBC;
278
}
279
280
table.group td.group .action {
281
    float: right;
282
    font-weight: normal;
266
}
283
}
267
284
268
table.group tr.odd td {
285
table.group tr.odd td {
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/booksellers.tt (-139 / +231 lines)
Lines 2-29 Link Here
2
[% INCLUDE 'doc-head-open.inc' %]
2
[% INCLUDE 'doc-head-open.inc' %]
3
<title>Koha &rsaquo; Search for vendor [% supplier %]</title>
3
<title>Koha &rsaquo; Search for vendor [% supplier %]</title>
4
[% INCLUDE 'doc-head-close.inc' %]
4
[% INCLUDE 'doc-head-close.inc' %]
5
<style type="text/css">
6
#vendors td{
7
	vertical-align: top;
8
}
9
</style>
10
<link rel="stylesheet" href="[% interface %]/[% theme %]/css/datatables.css" />
5
<link rel="stylesheet" href="[% interface %]/[% theme %]/css/datatables.css" />
6
[% INCLUDE 'calendar.inc' %]
11
[% INCLUDE 'datatables.inc' %]
7
[% INCLUDE 'datatables.inc' %]
8
<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
9
12
<script type="text/javascript">
10
<script type="text/javascript">
13
//<![CDATA[
11
//<![CDATA[
12
var SHOW_ONLY_OPENED = _("Show opened baskets only");
13
var SHOW_ALL = _("Show opened and closed baskets");
14
var only_opened = 0;
14
$(document).ready(function() {
15
$(document).ready(function() {
15
    $("table.baskets").dataTable($.extend(true, {}, dataTablesDefaults, {
16
    var thead_row = $("#baskets").find('thead tr');
16
        'sDom': 't',
17
    var clone = thead_row.clone().addClass('filters_row');
17
        'bPaginate': false,
18
    thead_row.before(clone);
18
        'bFilter': false,
19
19
        'bInfo': false,
20
    var table = $("#baskets").dataTable($.extend(true, {}, dataTablesDefaults, {
20
        "aaSorting": [[ 1, "asc" ]],
21
        "fnDrawCallback": function ( oSettings ) {
22
            if ( oSettings.aiDisplay.length == 0 )
23
            {
24
                return;
25
            }
26
27
            var nTrs = $('#baskets tbody tr');
28
            var iColspan = nTrs[0].getElementsByTagName('td').length;
29
            var sLastGroup = "";
30
            for ( var i=0 ; i<nTrs.length ; i++ )
31
            {
32
                var iDisplayIndex = oSettings._iDisplayStart + i;
33
                var sGroup = oSettings.aoData[ oSettings.aiDisplay[iDisplayIndex] ]._aData[0];
34
                if ( sGroup != sLastGroup )
35
                {
36
                    var nGroup = document.createElement( 'tr' );
37
                    var nCell = document.createElement( 'td' );
38
                    nCell.colSpan = iColspan;
39
                    nCell.className = "group";
40
                    nCell.innerHTML = sGroup;
41
                    nGroup.appendChild( nCell );
42
                    nTrs[i].parentNode.insertBefore( nGroup, nTrs[i] );
43
                    sLastGroup = sGroup;
44
                }
45
            }
46
        },
21
        "aoColumnDefs": [
47
        "aoColumnDefs": [
22
            { "sType": "title-string", "aTargets" : [ "title-string" ] },
48
            { "bVisible": false, "aTargets": [ 'NoVisible' ] },
23
            { "sType": "title-numeric", "aTargets" : [ "title-numeric" ] },
49
            { "bSortable": false, "aTargets": ["_all"] }
24
            { 'aTargets': [-1], 'bSortable': false }
50
        ],
25
        ]
51
        'bSort': true,
26
    }));
52
        'aaSortingFixed': [[ 0, 'asc' ]],
53
        'bPaginate': false,
54
        'bAutoWidth': false
55
    })).columnFilter(
56
        {
57
            'sPlaceHolder': 'head:after',
58
            // The first column is hidden
59
            // Without bUseColVis, the filters don't work on the correct column.
60
            'bUseColVis': true,
61
            'aoColumns': [
62
                null,
63
                { type: 'text' },
64
                { type: 'text' },
65
                { type: 'text' },
66
                { type: 'text' },
67
                { type: 'text' },
68
                { type: 'text' },
69
                { type: 'date-range' },
70
                { type: 'text' },
71
                { type: 'date-range' },
72
                null
73
74
            ]
75
        }
76
    );
77
27
    $("#supplierlist").change(function() {
78
    $("#supplierlist").change(function() {
28
        var id = $(this).find("option:selected").val();
79
        var id = $(this).find("option:selected").val();
29
        window.location.href = "#" + id;
80
        window.location.href = "#" + id;
Lines 33-38 $(document).ready(function() { Link Here
33
        var legend = _("Add order to basket %s").format(basket);
84
        var legend = _("Add order to basket %s").format(basket);
34
        $(this).find("legend").html(legend);
85
        $(this).find("legend").html(legend);
35
    });
86
    });
87
88
    $("#toggle_closed_baskets").on('click', function(e){
89
        e.preventDefault();
90
        if( only_opened ) {
91
            $(this).text(SHOW_ONLY_OPENED);
92
            table.fnFilter('', 9);
93
            only_opened = 0;
94
        } else {
95
            $(this).text(SHOW_ALL);
96
            table.fnFilter('^$', 9, 1);
97
            only_opened = 1;
98
        }
99
    });
36
});
100
});
37
//]]>
101
//]]>
38
</script>
102
</script>
Lines 59-197 $(document).ready(function() { Link Here
59
    [% ELSE %]
123
    [% ELSE %]
60
        <h1>Vendor search: [% count %] results found for '[% supplier %]'</h1>
124
        <h1>Vendor search: [% count %] results found for '[% supplier %]'</h1>
61
    [% END %]
125
    [% END %]
62
[% END %]
126
63
[% IF ( loop_suppliers.size ) %]
127
    [% BLOCK action %]
64
    [% UNLESS (count == 1) %]
128
        <span class="action">
65
        <p>Choose a vendor in the list to jump directly to the right place.
129
            [% IF CAN_user_acquisition_order_manage %]
66
        <select id="supplierlist">
130
               [% IF supplier.active %]
67
            [% FOREACH supplier1 IN loop_suppliers %]
131
                   <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&amp;op=add_form"><i class="fa fa-plus"></i> New basket</a>
68
                <option value="[% supplier1.booksellerid %]">[% supplier1.name %]</option>
132
               [% END %]
133
            [% END %]
134
            [% IF ( supplier.loop_basket.size ) %]
135
                <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]"><i class="fa fa-inbox"></i> Receive shipment</a>
69
            [% END %]
136
            [% END %]
70
        </select>
137
        </span>
71
        </p>
72
    [% END %]
138
    [% END %]
73
    [% IF ( allbaskets ) %]
139
[% END %]
74
        <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&amp;booksellerid=[% booksellerid %]">Show active baskets only</a></p>
140
[% IF ( loop_suppliers.size ) %]
141
    [% IF view == "complete" %]
142
        <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&view=simple">Switch to the simple view</a></p>
75
    [% ELSE %]
143
    [% ELSE %]
76
        <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&amp;booksellerid=[% booksellerid %]&amp;allbaskets=1">Show all baskets</a></p>
144
        <p><a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&view=complete">Switch to the complete view</a></p>
77
    [% END %]
145
    [% END %]
78
    <div id="acqui_order_supplierlist">
146
79
        [% FOREACH supplier IN loop_suppliers %]
147
    [% IF view == "complete" %]
80
            <div class="supplier">
148
        [% IF allbaskets %]
81
                <span class="suppliername">
149
            <a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&amp;booksellerid=[% booksellerid %]">Show active baskets only</a>
82
                    [% IF (supplier.name) %]
150
        [% ELSE %]
83
                        <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">[% supplier.name %]</a>
151
            <a href="/cgi-bin/koha/acqui/booksellers.pl?supplier=[% supplier %]&amp;booksellerid=[% booksellerid %]&amp;allbaskets=1">Show active and inactive baskets</a>
152
        [% END %]
153
         | <a href="#" id="toggle_closed_baskets">Show opened baskets only</a>
154
        <div id="acqui_order_basketlist">
155
        <table id="baskets" class="group">
156
            <thead>
157
                <tr>
158
                    <th class='NoVisible'>bookseller</th>
159
                    <th>No.</th>
160
                    <th>Name</th>
161
                    <th>Item count</th>
162
                    <th>Biblio count</th>
163
                    <th>Items expected</th>
164
                    <th>Created by</th>
165
                    <th class="title-string">Date</th>
166
                    <th>Basket group</th>
167
                    <th class="title-string">Closed</th>
168
                    <th>&nbsp;</th>
169
                </tr>
170
            </thead>
171
            <tbody>
172
            [% FOREACH supplier IN loop_suppliers %]
173
                [% IF supplier.loop_basket.size == 0 %]
174
                    <tr>
175
                        <td>
176
                            <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">[% supplier.name %]</a>
177
                            ([% supplier.booksellerid %])
178
                            [% PROCESS action supplier = supplier %]
179
                        </td>
180
                        <td>
181
                            [% IF allbaskets %]
182
                                No basket.
183
                            [% ELSE %]
184
                                No active basket.
185
                            [% END %]
186
                        </td>
187
                        <td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>
188
                    </tr>
189
                [% END %]
190
                [% FOREACH basket IN supplier.loop_basket %]
191
                    [% IF ( basket.uncertainprices ) %]
192
                        <tr class="problem">
84
                    [% ELSE %]
193
                    [% ELSE %]
85
                        <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">NO NAME</a>
194
                        <tr>
86
                    [% END %]
195
                    [% END %]
87
                </span>
196
                        <td>
88
                <span class="action">
197
                            <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">[% supplier.name %]</a>
89
                    [% IF ( CAN_user_acquisition_order_manage ) %]
198
                            ([% supplier.booksellerid %])
90
                        [% IF ( supplier.active ) %]
199
                            [% PROCESS action supplier = supplier %]
91
                            <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&amp;op=add_form"><i class="fa fa-plus"></i> New basket</a>
200
                        </td>
201
                        <td>[% basket.basketno %]</td>
202
                        <td>[% basket.basketname %]</td>
203
                        <td>
204
                            [% basket.total_items %]
205
                            [% IF basket.total_items_cancelled %]
206
                                ([% basket.total_items_cancelled %] cancelled)
207
                            [% END %]
208
                        </td>
209
                        <td>
210
                            [% basket.total_biblios %]
211
                            [% IF basket.total_biblios_cancelled %]
212
                                ([% basket.total_biblios_cancelled %] cancelled)
213
                            [% END %]
214
                        </td>
215
                        <td>[% basket.expected_items %]</td>
216
                        <td>
217
                            [% basket.authorisedby_firstname %] [% basket.authorisedby_surname %]
218
                        </td>
219
                        <td><span title="[% basket.creationdate %]">[% basket.creationdate | $KohaDates %]</span></td>
220
                        <td>
221
                          [% IF basket.basketgroup %]
222
                            [% basketgroup = basket.basketgroup %]
223
                            [% IF basketgroup.closed %]
224
                              [% basketgroup.name %] (closed)
225
                            [% ELSE %]
226
                              <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&amp;booksellerid=[% basket.booksellerid %]&amp;basketgroupid=[% basketgroup.id %]">[% basketgroup.name %]</a>
227
                            [% END %]
228
                          [% END %]
229
                        </td>
230
                        <td>
231
                            [% IF ( basket.closedate ) %]
232
                                <span title="[% basket.closedate %]">[% basket.closedate | $KohaDates %]</span>
233
                            [% ELSE %]
234
                                <span title="9999-99-99"></span>
235
                            [% END %]
236
                        </td>
237
                        <td class="actions">
238
                            <a class="btn btn-mini" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]"><i class="fa fa-eye"></i> View</a>
239
240
                            [% IF not basket.closedate and supplier.active %]
241
                                <a class="btn btn-mini" id="addtoBasketLabel[% basket.basketno %]" href="#addtoBasket[% basket.basketno %]" role="button" data-toggle="modal"><i class="fa fa-plus"></i> Add to basket</a>
242
                                <!-- Modal -->
243
                                <div id="addtoBasket[% basket.basketno %]" class="modal hide" tabindex="-1" role="dialog" aria-labelledby="addtoBasketLabel[% basket.basketno %]" aria-hidden="true" data-basketno="[% basket.basketname %]">
244
                                    <div class="modal-body">
245
                                        [% INCLUDE 'acquisitions-add-to-basket.inc' booksellerid=supplier.booksellerid basketno=basket.basketno %]
246
                                    </div>
247
                                    <div class="modal-footer">
248
                                        <a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a>
249
                                    </div>
250
                                </div>
251
                            [% END %]
252
                        </td>
253
                    </tr>
254
                [% END %][%# FOREACH basket IN supplier.loop_basket %]
255
                [% END %]
256
            </tbody>
257
        </table>
258
        </div>
259
    [% ELSE %]
260
        <div id="acqui_order_supplierlist">
261
            [% FOREACH supplier IN loop_suppliers %]
262
                <div class="supplier">
263
                    <span class="suppliername">
264
                        [% IF (supplier.name) %]
265
                            <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">[% supplier.name %]</a>
92
                        [% ELSE %]
266
                        [% ELSE %]
93
                            (inactive)
267
                            <a name="[% supplier.booksellerid %]" href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=[% supplier.booksellerid %]">NO NAME</a>
268
                        [% END %]
269
                    </span>
270
                    <span class="action">
271
                        [% IF ( CAN_user_acquisition_order_manage ) %]
272
                            [% IF ( supplier.active ) %]
273
                                <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/basketheader.pl?booksellerid=[% supplier.booksellerid %]&amp;op=add_form"><i class="fa fa-plus"></i> New basket</a>
274
                            [% ELSE %]
275
                                (inactive)
276
                            [% END %]
94
                        [% END %]
277
                        [% END %]
95
                    [% END %]
96
                        [% IF ( supplier.loop_basket.size ) %]
278
                        [% IF ( supplier.loop_basket.size ) %]
97
                    <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]"><i class="fa fa-inbox"></i> Receive shipment</a>
279
                            <a class="btn btn-default btn-sm" href="/cgi-bin/koha/acqui/parcels.pl?booksellerid=[% supplier.booksellerid %]"><i class="fa fa-inbox"></i> Receive shipment</a>
98
                        [% END %]
280
                        [% END %]
99
                </span>
281
                    </span>
100
                <div class="baskets">
101
                    [% IF ( supplier.loop_basket.size ) %]
102
                        <table class="baskets">
103
                            <thead>
104
                                <tr>
105
                                    <th>No.</th>
106
                                    <th>Name</th>
107
                                    <th class="title-numeric">Item count</th>
108
                                    <th class="title-numeric">Biblio count</th>
109
                                    <th>Items expected</th>
110
                                    <th>Created by</th>
111
                                    <th class="title-string">Date</th>
112
                                    <th>Basket group</th>
113
                                    <th class="title-string">Closed</th>
114
                                    <th>Actions</th>
115
                                </tr>
116
                            </thead>
117
                            <tbody>
118
                                [% FOREACH basket IN supplier.loop_basket %]
119
                                    [% IF ( basket.uncertainprices ) %]
120
                                        <tr class="problem">
121
                                    [% ELSE %]
122
                                        <tr>
123
                                    [% END %]
124
                                        <td>[% basket.basketno %]</td>
125
                                        <td>[% basket.basketname %]</td>
126
                                        <td>
127
                                            <span title="[% basket.total_items %]">[% basket.total_items %]
128
                                                [% IF basket.total_items_cancelled %]
129
                                                    ([% basket.total_items_cancelled %] cancelled)
130
                                                [% END %]
131
                                            </span>
132
                                        </td>
133
                                        <td>
134
                                            <span title="[% basket.total_biblios %]">[% basket.total_biblios %]
135
                                                [% IF basket.total_biblios_cancelled %]
136
                                                    ([% basket.total_biblios_cancelled %] cancelled)
137
                                                [% END %]
138
                                            </span>
139
                                        </td>
140
                                        <td>[% basket.expected_items %]</td>
141
                                        <td>
142
                                            [% basket.authorisedby_firstname %]
143
                                            [% basket.authorisedby_surname %]
144
                                        </td>
145
                                        <td><span title="[% basket.creationdate %]">[% basket.creationdate | $KohaDates %]</span></td>
146
                                        <td>
147
                                          [% IF basket.basketgroup %]
148
                                            [% basketgroup = basket.basketgroup %]
149
                                            [% IF basketgroup.closed %]
150
                                              [% basketgroup.name %] (closed)
151
                                            [% ELSE %]
152
                                              <a href="/cgi-bin/koha/acqui/basketgroup.pl?op=add&amp;booksellerid=[% basket.booksellerid %]&amp;basketgroupid=[% basketgroup.id %]">[% basketgroup.name %]</a>
153
                                            [% END %]
154
                                          [% END %]
155
                                        </td>
156
                                        <td>
157
                                            [% IF ( basket.closedate ) %]
158
                                                <span title="[% basket.closedate %]">[% basket.closedate | $KohaDates %]</span>
159
                                            [% ELSE %]
160
                                                <span title="9999-99-99"></span>
161
                                            [% END %]
162
                                        </td>
163
                                        <td class="actions">
164
                                            <a class="btn btn-default btn-xs" href="/cgi-bin/koha/acqui/basket.pl?basketno=[% basket.basketno %]"><i class="fa fa-eye"></i> View</a>
165
166
                                            [% IF not basket.closedate and supplier.active %]
167
                                                <a class="btn btn-default btn-xs" id="addtoBasketLabel[% basket.basketno %]" href="#addtoBasket[% basket.basketno %]" role="button" data-toggle="modal"><i class="fa fa-plus"></i> Add to basket</a>
168
                                                <!-- Modal -->
169
                                                <div id="addtoBasket[% basket.basketno %]" class="modal" tabindex="-1" role="dialog" aria-labelledby="addtoBasketLabel[% basket.basketno %]" aria-hidden="true" data-basketno="[% basket.basketname %]">
170
                                                    <div class="modal-dialog">
171
                                                    <div class="modal-content">
172
                                                    <div class="modal-body">
173
                                                        [% INCLUDE 'acquisitions-add-to-basket.inc' booksellerid=supplier.booksellerid basketno=basket.basketno %]
174
                                                    </div>
175
                                                    <div class="modal-footer">
176
                                                        <a href="#" class="cancel" data-dismiss="modal" aria-hidden="true">Cancel</a>
177
                                                    </div>
178
                                                    </div>
179
                                                    </div>
180
                                                </div>
181
                                            [% END %]
182
                                        </td>
183
                                    </tr>
184
                                [% END %][%# FOREACH basket IN supplier.loop_basket %]
185
                            </tbody>
186
                        </table>
187
188
                    [% ELSE %]
189
                        <p>No pending baskets</p>
190
                    [% END %][%# IF ( supplier.loop_basket.size ) %]
191
                </div>
282
                </div>
192
            </div>
283
            [% END %]
193
        [% END %][%# FOREACH supplier IN loop_suppliers %]
284
        </div>
194
    </div>
285
    [% END %]
286
[% ELSE %]
287
    <p>No pending baskets</p>
195
[% END %][%# IF ( loop_suppliers.size ) %]
288
[% END %][%# IF ( loop_suppliers.size ) %]
196
</div>
289
</div>
197
</div>
290
</div>
198
- 

Return to bug 13371