Bug 34478: Manual fix - add op - members/maninvoice
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / members / maninvoice.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE Koha %]
4 [% USE Price %]
5 [% USE Branches %]
6 [% PROCESS 'i18n.inc' %]
7 [% SET footerjs = 1 %]
8 [% PROCESS 'accounts.inc' %]
9 [% INCLUDE 'doc-head-open.inc' %]
10 <title>[% FILTER collapse %]
11     [% t("Create manual invoice") | html %] &rsaquo;
12     [% t("Patrons") | html %] &rsaquo;
13     [% t("Koha") | html %]
14 [% END %]</title>
15 [% INCLUDE 'doc-head-close.inc' %]
16 </head>
17
18 <body id="pat_maninvoice" class="pat">
19 [% WRAPPER 'header.inc' %]
20     [% INCLUDE 'patron-search-header.inc' %]
21 [% END %]
22
23 [% WRAPPER 'sub-header.inc' %]
24     [% WRAPPER breadcrumbs %]
25         [% WRAPPER breadcrumb_item %]
26             <a href="/cgi-bin/koha/members/members-home.pl">Patrons</a>
27         [% END %]
28         [% WRAPPER breadcrumb_item %]
29             <a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% patron.borrowernumber | uri %]">[% INCLUDE 'patron-title.inc' %]</a>
30         [% END %]
31         [% WRAPPER breadcrumb_item bc_active= 1 %]
32             <span>Manual invoice</span>
33         [% END %]
34     [% END #/ WRAPPER breadcrumbs %]
35 [% END #/ WRAPPER sub-header.inc %]
36
37 <div class="main container-fluid">
38     <div class="row">
39         <div class="col-sm-10 col-sm-push-2">
40             <main>
41                 [% INCLUDE 'messages.inc' %]
42
43
44             [% INCLUDE 'members-toolbar.inc' %]
45
46             <h1>Manual invoice</h1>
47
48             <!-- The manual invoice and credit buttons -->
49             <div class="toptabs">
50                 <ul class="nav nav-tabs" role="tablist">
51                     <li role="presentation" class="transactions">
52                         <a href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% patron.borrowernumber | uri %]" role="tab">Transactions</a>
53                     </li>
54                     <li role="presentation" class="makepayment">
55                         <a href="/cgi-bin/koha/members/pay.pl?borrowernumber=[% patron.borrowernumber | uri %]" role="tab">Make a payment</a>
56                     </li>
57                     <li role="presentation" class="manualinvoice active">
58                         <a href="/cgi-bin/koha/members/maninvoice.pl?borrowernumber=[% patron.borrowernumber | uri %]" role="tab">Create manual invoice</a>
59                     </li>
60                     [% IF CAN_user_updatecharges_manual_credit %]
61                         <li role="presentation" class="manualcredit">
62                             <a href="/cgi-bin/koha/members/mancredit.pl?borrowernumber=[% patron.borrowernumber | uri %]" role="tab">Create manual credit</a>
63                         </li>
64                     [% END %]
65                 </ul> <!-- /.nav.nav-tabs -->
66                 <div class="tab-content">
67                     <div role="tabpanel" class="tab-pane active">
68                 [% IF error == 'itemnumber' %]
69                     <div id="error_message" class="dialog alert">
70                         Error: Invalid barcode entered, please try again
71                     </div>
72                 [% ELSIF error %]
73                     <div id="error_message" class="dialog alert">
74                         An error occurred, please try again: [% error | html %]
75                     </div>
76                 [% END %]
77                 <form action="/cgi-bin/koha/members/maninvoice.pl" method="post" id="maninvoice">
78                     <input type="hidden" name="op" value="cud-add" />
79                     <input type="hidden" name="borrowernumber" id="borrowernumber" value="[% patron.borrowernumber | html %]" />
80                     [% INCLUDE 'csrf-token.inc' %]
81                     <fieldset class="rows">
82                         <legend>Manual invoice</legend>
83                         <ol>
84                             <li>
85                                 <label for="type">Type: </label>
86                                 <select name="type" id="type">
87                                     [% FOREACH debit_type IN debit_types %]
88                                     [% IF debit_type.code == type %]
89                                     <option value="[% debit_type.code | html %]" selected="selected">[%- PROCESS debit_type_description debit_type=debit_type -%]</option>
90                                     [% ELSE %]
91                                     <option value="[% debit_type.code | html %]">[%- PROCESS debit_type_description debit_type=debit_type -%]</option>
92                                     [% END %]
93                                     [% END %]
94                                 </select>
95                             </li>
96                             <li><label for="barcode">Barcode: </label><input type="text" name="barcode" id="barcode" value="[% barcode | html %]" /></li>
97                             <li><label for="desc">Description: </label><input type="text" name="desc" id="desc" size="50" value="[% desc | html %]" /></li>
98                             <li><label for="note">Note: </label><input type="text" name="note" size="50" id="note" value="[% note | html %]" /></li>
99                             <li class="additional_field"><label for="cost">Cost: </label><input type="text" inputmode="decimal" pattern="^\d+(\.\d{2})?$" name="cost" id="cost" min="0" value="[% amount | $Price on_editing => 1 %]" /></li>
100                             <li class="additional_field"><label for="quantity">Quantity: </label><input type="text" name="quantity" id="quantity" value="1" /></li>
101                             <li><label for="amount">Amount: </label><input type="text" inputmode="decimal" pattern="^\d+(\.\d{2})?$" name="amount" id="amount" required="required" min="0" value="[% amount | $Price on_editing => 1 %]" /> Example: 5.00</li>
102                         </ol>
103                     </fieldset>
104
105                     [% IF available_additional_fields %]
106                         [% INCLUDE 'additional-fields-entry.inc' available=available_additional_fields values=additional_field_values %]
107                     [% END %]
108
109                     <fieldset class="action">
110                         <button type="submit" name="add" class="btn btn-primary" value="save">Save</button>
111                         <button type="submit" name="add" class="btn btn-primary" value="save and pay">Save and pay</button>
112                         <a class="cancel" href="/cgi-bin/koha/members/boraccount.pl?borrowernumber=[% patron.borrowernumber | html %]">Cancel</a>
113                     </fieldset>
114                 </form>
115
116                     </div> <!-- /.tab-pane -->
117                 </div> <!-- /.tab-content -->
118             </div> <!-- /.toptabs -->
119
120             </main>
121         </div> <!-- /.col-sm-10.col-sm-push-2 -->
122
123         <div class="col-sm-2 col-sm-pull-10">
124             <aside>
125                 [% INCLUDE 'circ-menu.inc' %]
126             </aside>
127         </div> <!-- /.col-sm-2.col-sm-pull-10 -->
128      </div> <!-- /.row -->
129
130 [% MACRO jsinclude BLOCK %]
131     [% INCLUDE 'str/members-menu.inc' %]
132     [% Asset.js("js/members-menu.js") | $raw %]
133     <script>
134         var type_fees = {};
135         [% FOREACH debit_type IN debit_types %]
136             type_fees['[% debit_type.code | html %]'] = "[% IF debit_type.default_amount %][% debit_type.default_amount | $Price on_editing => 1 %][% END %]";
137         [% END %]
138         $(document).ready(function(){
139             $('#maninvoice').preventDoubleFormSubmit();
140             $("fieldset.rows input, fieldset.rows select").addClass("noEnterSubmit");
141             $("#invoice_type").on("change",function(){
142                 this.form.desc.value = this.options[this.selectedIndex].value;
143                 this.form.amount.value = type_fees[this.options[this.selectedIndex].value];
144             });
145             [% UNLESS amount.defined %]
146             $("#maninvoice #desc").val($("#maninvoice #type option:selected").text());
147             $("#maninvoice #amount").val(type_fees[$("#maninvoice #type option:selected").val()]);
148             $("#maninvoice #cost").val(type_fees[$("#maninvoice #type option:selected").val()]);
149             if(!type_fees[$("#maninvoice #type option:selected").val()]){
150                 $("#maninvoice li.additional_field").hide();
151             }
152             [% END %]
153             $("#maninvoice #type").change(function(){
154                 $("#maninvoice #desc").val($(this).find("option:selected").text());
155                 $("#maninvoice #amount").val(type_fees[$(this).val()]);
156                 $("#maninvoice #cost").val(type_fees[$(this).val()]);
157                 $("#maninvoice #quantity").val('1');
158                 if(type_fees[$(this).val()]){
159                     $("#maninvoice li.additional_field").show();
160                 }
161                 else{
162                     $("#maninvoice li.additional_field").hide();
163                 }
164             });
165             $("#maninvoice #quantity").blur(function(){
166                 $("#maninvoice #amount").val(($("#maninvoice #cost").val() * $(this).val()).toFixed(2));
167             })
168             $("#maninvoice #cost").blur(function(){
169                 $("#maninvoice #amount").val(($("#maninvoice #quantity").val() * $(this).val()).toFixed(2));
170             })
171         });
172     </script>
173 [% END %]
174
175 [% INCLUDE 'intranet-bottom.inc' %]