1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 13:12:50 +01:00
This commit is contained in:
Benjamin Beganović 2021-02-09 16:47:41 +01:00
parent 41e2bbfc93
commit d8c6d40cab
10 changed files with 194 additions and 58 deletions

View File

@ -434,6 +434,7 @@ class Design extends BaseDesign
['element' => 'span', 'content' => '$entity.terms', 'properties' => ['data-ref' => 'total_table-terms', 'style' => 'text-align: left;']],
]],
]],
['element' => 'div', 'properties' => ['class' => 'totals-table-right-side'], 'elements' => []],
];
foreach (['discount', 'custom_surcharge1', 'custom_surcharge2', 'custom_surcharge3', 'custom_surcharge4'] as $property) {
@ -461,8 +462,7 @@ class Design extends BaseDesign
}
foreach ($taxes as $i => $tax) {
$elements[] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => 'This is placeholder for the 3rd fraction of element.', 'properties' => ['style' => 'opacity: 0%']], // Placeholder for fraction of element (3fr)
$elements[1]['elements'][] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content', 'content' => $tax['name'], 'properties' => ['data-ref' => 'totals-table-total_tax_' . $i . '-label']],
['element' => 'span', 'content', 'content' => Number::formatMoney($tax['total'], $this->context['client']), 'properties' => ['data-ref' => 'totals-table-total_tax_' . $i]],
]];
@ -475,15 +475,13 @@ class Design extends BaseDesign
}
foreach ($taxes as $i => $tax) {
$elements[] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => 'This is placeholder for the 3rd fraction of element.', 'properties' => ['style' => 'opacity: 0%']], // Placeholder for fraction of element (3fr)
$elements[1]['elements'][] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content', 'content' => $tax['name'], 'properties' => ['data-ref' => 'totals-table-line_tax_' . $i . '-label']],
['element' => 'span', 'content', 'content' => Number::formatMoney($tax['total'], $this->context['client']), 'properties' => ['data-ref' => 'totals-table-line_tax_' . $i]],
]];
}
} else {
$elements[] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => 'This is placeholder for the 3rd fraction of element.', 'properties' => ['style' => 'opacity: 0%']], // Placeholder for fraction of element (3fr)
$elements[1]['elements'][] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => $variable . '_label', 'properties' => ['data-ref' => 'totals_table-' . substr($variable, 1) . '-label']],
['element' => 'span', 'content' => $variable, 'properties' => ['data-ref' => 'totals_table-' . substr($variable, 1)]],
]];
@ -491,13 +489,17 @@ class Design extends BaseDesign
}
if (!is_null($this->entity->partial) && $this->entity->partial > 0) {
$elements[] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => 'This is placeholder for the 3rd fraction of element.', 'properties' => ['style' => 'opacity: 0%']], // Placeholder for fraction of element (3fr)
$elements[1]['elements'][] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => '$partial_due_label', 'properties' => ['data-ref' => 'totals_table-partial_due-label']],
['element' => 'span', 'content' => '$partial_due'],
]];
}
$elements[1]['elements'][] = ['element' => 'div', 'elements' => [
['element' => 'span', 'content' => '',],
['element' => 'span', 'content' => ''],
]];
return $elements;
}
}

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -31,9 +32,6 @@
.company-logo {
height: 6rem;
padding: 2rem;
background-color: white;
margin: -4rem 2rem 2rem;
}
#company-details,
@ -55,6 +53,8 @@
.client-entity-wrapper {
display: grid;
grid-template-columns: 1.5fr 1fr;
padding-left: 1rem;
padding-top: 3rem;
}
.entity-details-wrapper {
@ -99,8 +99,8 @@
#product-table > thead > tr > th,
#delivery-note-table > thead > tr > th,
#task-table > thead > tr > th {
padding: 1.5rem;
font-size: 1.5rem;
padding: 1.5rem 3rem;
font-size: 1rem;
}
#product-table > thead > tr > th:last-child,
@ -112,7 +112,7 @@
#product-table > tbody > tr > td,
#delivery-note-table > tbody > tr > td,
#task-table > tbody > tr > td {
padding: 1.5rem;
padding: 1.5rem 3rem;
}
#product-table > tbody > tr > td:last-child,
@ -137,12 +137,26 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: .5rem;
padding-left: 1.2rem;
gap: 20px;
padding-left: 3rem;
padding-right: 3rem;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals
@ -165,28 +179,34 @@
text-align: right;
padding-right: 1.5rem;
}
.entity-label {
text-transform: uppercase;
color: var(--primary-color);
padding-left: 2rem;
font-size: 1.5rem;
}
</style>
<div class="header-wrapper" id="header">
<div></div>
<img class="company-logo" src="$company.logo" alt="$company.name logo"/>
<div id="company-details"></div>
<div id="company-address"></div>
</div>
<div id="body">
<img
class="company-logo"
src="$company.logo"
alt="$company.name logo"
/>
<div class="client-entity-wrapper">
<div id="client-details" cellspacing="0"></div>
<div class="client-wrapper-left-side">
<h4 class="entity-label">$entity_label</h4>
<div id="client-details" cellspacing="0"></div>
</div>
<div class="entity-details-wrapper">
<table id="entity-details"></table>
<div class="entity-details-wrapper-right-side">
<div class="entity-details-wrapper">
<table id="entity-details"></table>
</div>
</div>
</div>

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -68,7 +69,6 @@
#client-details {
display: flex;
flex-direction: column;
color: var(--primary-color);
}
#client-details > * {
@ -90,6 +90,7 @@
#entity-details th {
font-weight: normal;
padding-bottom: .5rem;
}
#product-table,
@ -177,16 +178,28 @@
border-bottom-right-radius: 1rem;
}
#table-totals > * {
background-color: #f7f7f7;
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
gap: 20px;
grid-template-columns: 2fr 1fr;
gap: 80px;
padding-left: 1rem;
padding-top: 0.5rem;
padding-bottom: 0.8rem;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals
> *
[data-element='product-table-balance-due-label'],

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -33,7 +34,6 @@
#company-details {
display: flex;
flex-direction: column;
color: #9f9f9f;
}
#company-details > span:first-child {
@ -43,12 +43,12 @@
#company-address {
display: flex;
flex-direction: column;
color: #9f9f9f;
}
.entity-label {
text-transform: uppercase;
margin-top: 3.5rem;
padding-left: 1rem;
margin-bottom: 1rem;
font-weight: bold;
color: var(--primary-color);
@ -58,8 +58,8 @@
display: grid;
grid-template-columns: 1fr 1fr;
padding: 1rem;
border-top: 1px solid #9f9f9f;
border-bottom: 1px solid #9f9f9f;
border-top: 1px solid #d8d8d8;
border-bottom: 1px solid #d8d8d8;
}
#entity-details {
@ -113,7 +113,8 @@
#product-table > tbody > tr > td,
#delivery-note-table > tbody > tr > td,
#task-table > tbody > tr > td {
border-bottom: 1px solid #9f9f9f;
border-top: 1px solid #d8d8d8;
border-bottom: 1px solid #d8d8d8;
padding: 1rem;
}
@ -133,12 +134,26 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: .5rem;
padding-left: 1rem;
gap: 20px;
padding-left: 3rem;
padding-right: 3rem;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -136,10 +137,24 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: 1rem;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -143,12 +144,25 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: 0.5rem;
padding-left: 1rem;
gap: 20px;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -150,12 +151,25 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: 0.5rem;
padding-left: 1rem;
gap: 20px;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -11,6 +11,7 @@
font-size: "$font_size";
margin: 0;
padding: 0;
zoom: 80%;
}
@page {
@ -161,12 +162,26 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
margin-top: 0.5rem;
margin-right: 1.5rem;
margin-left: 1.5rem;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -114,12 +115,25 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: .5rem;
padding-left: 1rem;
gap: 20px;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals

View File

@ -9,6 +9,7 @@
-moz-osx-font-smoothing: grayscale;
font-family: Arial, Helvetica, sans-serif;
font-size: "$font_size";
zoom: 80%;
}
@page {
@ -161,12 +162,25 @@
page-break-inside: avoid;
}
#table-totals > * {
#table-totals {
display: grid;
grid-template-columns: 3fr 1fr 1fr;
grid-template-columns: 2fr 1fr;
padding-top: 0.5rem;
padding-left: 1rem;
gap: 20px;
gap: 80px;
}
#table-totals .totals-table-right-side>* {
display: grid;
grid-template-columns: 1fr 1fr;
}
#table-totals>.totals-table-right-side>*> :nth-child(1) {
text-align: left;
}
#table-totals>.totals-table-right-side>*> :nth-child(2) {
text-align: right;
}
#table-totals