Skip to content

Commit d27edd3

Browse files
committed
First version
1 parent b3881b9 commit d27edd3

File tree

5 files changed

+509
-2
lines changed

5 files changed

+509
-2
lines changed

README.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,16 @@
1-
FusionInvoice-templates-area
2-
============================
1+
#FusionInvoice area templates
2+
3+
Free invoice and quote templates to use with [FusionInvoice](https://www.fusioninvoice.com/)
4+
5+
##How to use
6+
- Download this repository by clicking the "Download Zip" button on the right
7+
- Upload the app/ folder in the root folder of your FusionInvoice installation
8+
- Change the default invoice and quote template in your FusionInvoice system settings
9+
- If you have a logo, recommended height is 150px
10+
11+
##TODO / Known Issues
12+
- $quote->amount->total_tax not working (FusionInvoce core issue)
13+
- Taxes details only work when an invoice tax rate is defined (not with items taxes) (FusionInvoce core issue)
14+
- Mixing invoice tax rate and items taxes make taxes details incorrect (FusionInvoce core issue)
15+
- Translations for "Total taxes", "Total excluding taxes", "Total including taxes" (FusionInvoce core issue)
16+
- Set a fixed height for the details table ([DomPDF issue](https://github.com/dompdf/dompdf/issues/857))
Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
<!doctype html>
2+
<html>
3+
<head>
4+
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
5+
<title>{{ trans('fi.invoice') }} {{ $invoice->number }}</title>
6+
7+
<style>
8+
* {
9+
margin: 0px;
10+
}
11+
12+
body {
13+
font-family: sans-serif;
14+
}
15+
16+
#wrapper {
17+
padding: 40px 40px 0 40px;
18+
}
19+
20+
a {
21+
color: inherit;
22+
text-decoration: none;
23+
}
24+
25+
p {
26+
padding-bottom: 5px;
27+
}
28+
29+
table {
30+
width: 100%;
31+
border-collapse: collapse;
32+
}
33+
34+
td, th {
35+
vertical-align: top;
36+
text-align: left;
37+
}
38+
39+
th {
40+
white-space: nowrap;
41+
}
42+
43+
.text-right {
44+
text-align: right;
45+
}
46+
47+
.text-normal {
48+
font-weight: normal;
49+
}
50+
51+
#header {
52+
font-size: 100%;
53+
}
54+
55+
#contacts {
56+
font-size: 90%;
57+
margin-top: 30px;
58+
}
59+
60+
#header td:first-child,
61+
#contacts td:first-child {
62+
width: 55%;
63+
}
64+
65+
#details {
66+
font-size: 85%;
67+
margin-top: 30px;
68+
}
69+
70+
#details th, #details td {
71+
padding: 10px;
72+
border: 1px solid #e8e8e8;
73+
border-top: none;
74+
border-bottom: none;
75+
}
76+
77+
#details tbody th, #details tbody td {
78+
border-top: 1px dotted #e8e8e8;
79+
}
80+
81+
#details tbody tr:first-child th, #details tbody tr:first-child td {
82+
border-top: 1px solid #e8e8e8;
83+
}
84+
85+
#details tfoot {
86+
border: 1px solid #e8e8e8;
87+
}
88+
89+
#details tfoot tr + tr th, #details tfoot tr + tr td {
90+
padding-top: 0;
91+
}
92+
93+
#details .description {
94+
font-size: 70%;
95+
padding-top: 3px;
96+
font-style: italic;
97+
}
98+
99+
#terms {
100+
font-size: 85%;
101+
margin-top: 30px;
102+
}
103+
104+
#footer {
105+
font-size: 70%;
106+
width: 100%;
107+
text-align: center;
108+
position: absolute;
109+
bottom: 40px;
110+
}
111+
</style>
112+
</head>
113+
<body>
114+
115+
<div id="wrapper">
116+
117+
<table id="header">
118+
<tr>
119+
<td>
120+
{{ $logo }}
121+
</td>
122+
<td class="text-right">
123+
<p><strong>{{ trans('fi.invoice') }} {{ $invoice->number }}</strong><br></p>
124+
<p>{{ trans('fi.date') }}: {{ $invoice->formatted_created_at }}</p>
125+
<p>{{ trans('fi.due_date') }}: {{ $invoice->formatted_due_at }}</p>
126+
</td>
127+
</tr>
128+
</table>
129+
130+
<table id="contacts">
131+
<tr>
132+
<td>
133+
<p>
134+
<strong>
135+
@if ($invoice->user->company) {{ $invoice->user->company }}
136+
@else {{ $invoice->user->name }} @endif
137+
</strong>
138+
</p>
139+
<p>
140+
{{ $invoice->user->formatted_address }}
141+
</p>
142+
<p>
143+
@if ($invoice->user->company) {{ $invoice->user->name }}<br> @endif
144+
<a href="mailto:{{ $invoice->user->email }}">{{ $invoice->user->email }}</a>
145+
</p>
146+
<p>
147+
@if ($invoice->user->phone) {{ trans('fi.phone') }}: {{ $invoice->user->phone }}<br> @endif
148+
@if ($invoice->user->mobile) {{ trans('fi.mobile') }}: {{ $invoice->user->mobile }}<br> @endif
149+
@if ($invoice->user->fax) {{ trans('fi.fax') }}: {{ $invoice->user->fax }} @endif
150+
</p>
151+
<p>
152+
<a href="{{ $invoice->user->web }}">{{ $invoice->user->web }}</a>
153+
</p>
154+
</td>
155+
<td>
156+
<p>
157+
<strong>{{ $invoice->client->name }}</strong>
158+
</p>
159+
<p>
160+
{{ $invoice->client->formatted_address }}
161+
</p>
162+
<p>
163+
<a href="mailto:{{ $invoice->client->email }}">{{ $invoice->client->email }}</a>
164+
</p>
165+
<p>
166+
@if ($invoice->client->phone) {{ trans('fi.phone') }}: {{ $invoice->client->phone }}<br> @endif
167+
@if ($invoice->client->mobile) {{ trans('fi.mobile') }}: {{ $invoice->client->mobile }}<br> @endif
168+
@if ($invoice->client->fax) {{ trans('fi.fax') }}: {{ $invoice->client->fax }} @endif
169+
</p>
170+
<p>
171+
<a href="{{ $invoice->client->web }}">{{ $invoice->client->web }}</a>
172+
</p>
173+
</td>
174+
</tr>
175+
</table>
176+
177+
<table id="details">
178+
<thead>
179+
<tr style="background-color: #e8e8e8;">
180+
<th>{{ trans('fi.product') }}</th>
181+
<th class="text-right" style="width:70px;">{{ trans('fi.quantity') }}</th>
182+
<th class="text-right" style="width:70px;">{{ trans('fi.price') }}</th>
183+
@if ($invoice->amount->total_tax > 0)<th class="text-right" style="width:70px;">{{ trans('fi.tax_rate') }}</th>@endif
184+
<th class="text-right" style="width:80px;">{{ trans('fi.subtotal') }}</th>
185+
</tr>
186+
</thead>
187+
<tbody>
188+
@foreach ($invoice->items as $item)
189+
<tr>
190+
<td>
191+
{{ $item->name }}
192+
<div class="description">{{ $item->formatted_description }}</div>
193+
</td>
194+
<td class="text-right">{{ $item->formatted_quantity }}</td>
195+
<td class="text-right">{{ $item->formatted_price }}</td>
196+
@if ($invoice->amount->total_tax > 0)<td class="text-right">@if ($item->taxRate) {{ $item->taxRate->formatted_percent }} @endif</td>@endif
197+
<td class="text-right">{{ $item->amount->formatted_subtotal }}</td>
198+
</tr>
199+
@endforeach
200+
</tbody>
201+
<tfoot>
202+
{{--*/ $colspan = 3 /*--}}
203+
@if ($invoice->amount->total_tax > 0)
204+
{{--*/ $colspan = 4 /*--}}
205+
<tr>
206+
<th colspan="{{ $colspan }}" class="border-top text-right text-normal">{{ trans('fi.subtotal') }}</th>
207+
<td class="border-top text-right">{{ $invoice->amount->formatted_item_subtotal }}</td>
208+
</tr>
209+
@foreach ($invoice->taxRates as $invoiceTaxRate)
210+
<tr>
211+
<td colspan="{{ $colspan }}" class="text-right">{{ $invoiceTaxRate->taxRate->name }} {{ $invoiceTaxRate->taxRate->formatted_percent }}</td>
212+
<td class="text-right">{{ $invoiceTaxRate->formatted_tax_total }}</td>
213+
</tr>
214+
@endforeach
215+
<tr>
216+
<th colspan="{{ $colspan }}" class="text-right text-normal">{{ trans('fi.total') }} {{ trans('fi.tax') }}</th>
217+
<td class="text-right">{{ $invoice->amount->formatted_total_tax }}</td>
218+
</tr>
219+
@endif
220+
<tr>
221+
<th colspan="{{ $colspan }}" class="text-right">{{ trans('fi.total') }}</th>
222+
<td class="text-right"><strong>{{ $invoice->amount->formatted_total }}</strong> @if ($invoice->is_foreign_currency) ({{ $invoice->amount->formatted_converted_total }}) @endif</td>
223+
</tr>
224+
@if ($invoice->amount->paid > 0)
225+
<tr>
226+
<td colspan="{{ $colspan }}" class="text-right">{{ trans('fi.paid') }}</td>
227+
<td class="text-right">{{ $invoice->amount->formatted_paid }} @if ($invoice->is_foreign_currency) ({{ $invoice->amount->formatted_converted_paid }}) @endif</td>
228+
</tr>
229+
<tr>
230+
<td colspan="{{ $colspan }}" class="text-right">{{ trans('fi.balance') }}</td>
231+
<td class="text-right">{{ $invoice->amount->formatted_balance }} @if ($invoice->is_foreign_currency) ({{ $invoice->amount->formatted_converted_balance }}) @endif</td>
232+
</tr>
233+
@endif
234+
</tfoot>
235+
</table>
236+
237+
<table id="terms">
238+
<tr>
239+
<td>
240+
@if ($invoice->terms) {{ $invoice->formatted_terms }} @endif
241+
</td>
242+
</tr>
243+
</table>
244+
245+
</div>
246+
247+
<div id="footer" align="center">
248+
{{ $invoice->formatted_footer }}
249+
</div>
250+
251+
</body>
252+
</html>

0 commit comments

Comments
 (0)