mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 05:02:36 +01:00
commit
1ed9d329a5
@ -1 +1 @@
|
||||
5.8.38
|
||||
5.8.39
|
@ -168,7 +168,6 @@ class BaseRule implements RuleInterface
|
||||
/* We should only apply taxes for configured states */
|
||||
if(!array_key_exists($this->client->country->iso_3166_2, $this->region_codes)) {
|
||||
nlog('Automatic tax calculations not supported for this country - defaulting to company country');
|
||||
nlog("With new logic, we should never see this");
|
||||
}
|
||||
|
||||
/** Harvest the client_region */
|
||||
|
@ -134,6 +134,7 @@ class BaseExport
|
||||
|
||||
protected array $invoice_report_keys = [
|
||||
'name' => 'client.name',
|
||||
"currency" => "client.currency_id",
|
||||
"invoice_number" => "invoice.number",
|
||||
"amount" => "invoice.amount",
|
||||
"balance" => "invoice.balance",
|
||||
@ -174,6 +175,8 @@ class BaseExport
|
||||
];
|
||||
|
||||
protected array $recurring_invoice_report_keys = [
|
||||
'name' => 'client.name',
|
||||
"currency" => "client.currency_id",
|
||||
"invoice_number" => "recurring_invoice.number",
|
||||
"amount" => "recurring_invoice.amount",
|
||||
"balance" => "recurring_invoice.balance",
|
||||
@ -298,6 +301,8 @@ class BaseExport
|
||||
];
|
||||
|
||||
protected array $quote_report_keys = [
|
||||
'name' => 'client.name',
|
||||
"currency" => "client.currency_id",
|
||||
'custom_value1' => 'quote.custom_value1',
|
||||
'custom_value2' => 'quote.custom_value2',
|
||||
'custom_value3' => 'quote.custom_value3',
|
||||
@ -336,6 +341,8 @@ class BaseExport
|
||||
];
|
||||
|
||||
protected array $credit_report_keys = [
|
||||
'name' => 'client.name',
|
||||
"currency" => "client.currency_id",
|
||||
"credit_number" => "credit.number",
|
||||
"amount" => "credit.amount",
|
||||
"balance" => "credit.balance",
|
||||
@ -368,6 +375,7 @@ class BaseExport
|
||||
];
|
||||
|
||||
protected array $payment_report_keys = [
|
||||
'name' => 'client.name',
|
||||
"date" => "payment.date",
|
||||
"amount" => "payment.amount",
|
||||
"refunded" => "payment.refunded",
|
||||
@ -385,7 +393,6 @@ class BaseExport
|
||||
"custom_value4" => "payment.custom_value4",
|
||||
"user" => "payment.user_id",
|
||||
"assigned_user" => "payment.assigned_user_id",
|
||||
|
||||
];
|
||||
|
||||
protected array $expense_report_keys = [
|
||||
|
@ -138,9 +138,9 @@ class TaskExport extends BaseExport
|
||||
{
|
||||
$entity = [];
|
||||
$transformed_entity = $this->entity_transformer->transform($task);
|
||||
nlog($this->input['report_keys']);
|
||||
|
||||
foreach (array_values($this->input['report_keys']) as $key) {
|
||||
nlog($key);
|
||||
|
||||
$parts = explode('.', $key);
|
||||
|
||||
if (is_array($parts) && $parts[0] == 'task' && array_key_exists($parts[1], $transformed_entity)) {
|
||||
|
@ -87,7 +87,7 @@ class InvitationController extends Controller
|
||||
->firstOrFail();
|
||||
|
||||
if ($invitation->trashed() || $invitation->{$entity}->is_deleted) {
|
||||
return $this->render('generic.not_available', ['account' => $invitation->company->account, 'company' => $invitation->company]);
|
||||
return $this->render('generic.not_available', ['passed_account' => $invitation->company->account, 'passed_company' => $invitation->company]);
|
||||
}
|
||||
|
||||
if ($invitation->contact->trashed()) {
|
||||
@ -138,11 +138,10 @@ class InvitationController extends Controller
|
||||
|
||||
return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent]);
|
||||
|
||||
return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent])->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
|
||||
}
|
||||
|
||||
return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key})]);
|
||||
|
||||
return redirect()->route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key})])->header('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
|
||||
}
|
||||
|
||||
private function fireEntityViewedEvent($invitation, $entity_string)
|
||||
|
@ -26,7 +26,7 @@ class SubscriptionPurchaseController extends Controller
|
||||
App::setLocale($subscription->company->locale());
|
||||
|
||||
if ($subscription->trashed()) {
|
||||
return $this->render('generic.not_available', ['account' => $subscription->company->account, 'company' => $subscription->company]);
|
||||
return $this->render('generic.not_available', ['passed_account' => $subscription->company->account, 'passed_company' => $subscription->company]);
|
||||
}
|
||||
|
||||
/* Make sure the contact is logged into the correct company for this subscription */
|
||||
|
@ -914,7 +914,7 @@ class QuoteController extends BaseController
|
||||
$contact = $invitation->contact;
|
||||
$quote = $invitation->quote;
|
||||
|
||||
$file = $quote->service()->getEInvoice($contact);
|
||||
$file = $quote->service()->getEQuote($contact);
|
||||
$file_name = $quote->getFileName("xml");
|
||||
|
||||
$headers = ['Content-Type' => 'application/xml'];
|
||||
|
@ -59,6 +59,7 @@ class ShowChartRequest extends Request
|
||||
}
|
||||
|
||||
if (! isset($input['end_date'])) {
|
||||
// $input['end_date'] = now()->lastOfMonth()->format('Y-m-d');
|
||||
$input['end_date'] = now()->format('Y-m-d');
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,12 @@
|
||||
|
||||
namespace App\Jobs\Cron;
|
||||
|
||||
use App\Libraries\MultiDB;
|
||||
use App\Models\Company;
|
||||
use App\Models\Invoice;
|
||||
use App\Libraries\MultiDB;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use App\Utils\Traits\SubscriptionHooker;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class SubscriptionCron
|
||||
{
|
||||
@ -97,4 +98,61 @@ class SubscriptionCron
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Requires the crons to be updated and set to hourly @ 00:01
|
||||
private function timezoneAware()
|
||||
{
|
||||
$grouped_company_ids =
|
||||
|
||||
Invoice::select('company_id')
|
||||
->where('is_deleted', 0)
|
||||
->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL])
|
||||
->where('balance', '>', 0)
|
||||
->where('is_proforma', 0)
|
||||
->whereDate('due_date', '<=', now()->addDay()->startOfDay())
|
||||
->whereNull('deleted_at')
|
||||
->whereNotNull('subscription_id')
|
||||
->groupBy('company_id')
|
||||
->cursor()
|
||||
->each(function ($company_id){
|
||||
|
||||
$company = Company::find($company_id);
|
||||
|
||||
$timezone_now = now()->setTimezone($company->timezone()->name);
|
||||
|
||||
//Capture companies within the window of 00:00 and 00:30
|
||||
if($timezone_now->gt($timezone_now->copy()->startOfDay()) && $timezone_now->lt($timezone_now->copy()->startOfDay()->addMinutes(30))) {
|
||||
|
||||
Invoice::query()
|
||||
->where('company_id', $company->id)
|
||||
->whereNull('deleted_at')
|
||||
->where('is_deleted', 0)
|
||||
->whereIn('status_id', [Invoice::STATUS_SENT, Invoice::STATUS_PARTIAL])
|
||||
->where('is_proforma', 0)
|
||||
->whereNotNull('subscription_id')
|
||||
->where('balance', '>', 0)
|
||||
->whereDate('due_date', '<=', now()->setTimezone($company->timezone()->name)->addDay()->startOfDay())
|
||||
->cursor()
|
||||
->each(function (Invoice $invoice) {
|
||||
|
||||
$subscription = $invoice->subscription;
|
||||
|
||||
$body = [
|
||||
'context' => 'plan_expired',
|
||||
'client' => $invoice->client->hashed_id,
|
||||
'invoice' => $invoice->hashed_id,
|
||||
'subscription' => $subscription->hashed_id,
|
||||
];
|
||||
|
||||
$this->sendLoad($subscription, $body);
|
||||
//This will send the notification daily.
|
||||
//We'll need to handle this by performing some action on the invoice to either archive it or delete it?
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -359,6 +359,17 @@ class ProcessPostmarkWebhook implements ShouldQueue
|
||||
|
||||
$postmark = new PostmarkClient($postmark_secret);
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($message_id);
|
||||
|
||||
try {
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($message_id);
|
||||
} catch(\Exception $e) {
|
||||
|
||||
$postmark_secret = config('services.postmark-outlook.token');
|
||||
$postmark = new PostmarkClient($postmark_secret);
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($message_id);
|
||||
|
||||
}
|
||||
|
||||
return $messageDetail;
|
||||
|
||||
}
|
||||
@ -391,7 +402,17 @@ class ProcessPostmarkWebhook implements ShouldQueue
|
||||
$postmark_secret = !empty($this->company->settings->postmark_secret) ? $this->company->settings->postmark_secret : config('services.postmark.token');
|
||||
|
||||
$postmark = new PostmarkClient($postmark_secret);
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($this->request['MessageID']);
|
||||
|
||||
try {
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($this->request['MessageID']);
|
||||
}
|
||||
catch(\Exception $e){
|
||||
|
||||
$postmark_secret = config('services.postmark-outlook.token');
|
||||
$postmark = new PostmarkClient($postmark_secret);
|
||||
$messageDetail = $postmark->getOutboundMessageDetails($this->request['MessageID']);
|
||||
|
||||
}
|
||||
|
||||
$recipients = collect($messageDetail['recipients'])->flatten()->implode(',');
|
||||
$subject = $messageDetail->subject ?? '';
|
||||
|
@ -1525,10 +1525,11 @@ class Import implements ShouldQueue
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// throw new Exception("Resource invoice/quote document not available.");
|
||||
}
|
||||
|
||||
$entity = false;
|
||||
|
||||
if (array_key_exists('expense_id', $resource) && $resource['expense_id'] && array_key_exists('expenses', $this->ids)) {
|
||||
$expense_id = $this->transformId('expenses', $resource['expense_id']);
|
||||
$entity = Expense::query()->where('id', $expense_id)->withTrashed()->first();
|
||||
|
@ -108,7 +108,7 @@ class PdfSlot extends Component
|
||||
|
||||
}
|
||||
|
||||
public function downloadEInvoice()
|
||||
public function downloadEDocument()
|
||||
{
|
||||
|
||||
$file_name = $this->entity->numberFormatter().'.xml';
|
||||
|
@ -790,19 +790,24 @@ class BaseDriver extends AbstractPaymentDriver
|
||||
'client' => $this->client->present()->name(),
|
||||
]);
|
||||
|
||||
return sprintf('%s: %s', ctrans('texts.invoices'), \implode(', ', collect($this->payment_hash->invoices())->pluck('invoice_number')->toArray()));
|
||||
// return sprintf('%s: %s', ctrans('texts.invoices'), \implode(', ', collect($this->payment_hash->invoices())->pluck('invoice_number')->toArray()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub for disconnecting from the gateway.
|
||||
*
|
||||
* @return void
|
||||
* @return bool
|
||||
*/
|
||||
public function disconnect()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stub for checking authentication.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function auth(): bool
|
||||
{
|
||||
return true;
|
||||
|
@ -165,8 +165,10 @@ class StripePaymentDriver extends BaseDriver
|
||||
}
|
||||
|
||||
if ($this->client
|
||||
&& isset($this->client->country)
|
||||
&& in_array($this->client->country->iso_3166_3, ['AUS', 'DNK', 'DEU', 'ITA', 'LUX', 'NOR', 'SVN', 'GBR', 'AUT', 'EST', 'GRC', 'JPN', 'MYS', 'PRT', 'ESP', 'USA', 'BEL', 'FIN', 'HKG', 'LVA', 'NLD', 'SGP', 'SWE', 'CAN', 'FRA', 'IRL', 'LTU', 'NZL', 'SVK', 'CHE'])) {
|
||||
&& $this->client->currency()
|
||||
&& in_array($this->client->currency()->code, ['CNY', 'AUD', 'CAD', 'EUR', 'GBP', 'HKD', 'JPY', 'SGD', 'MYR', 'NZD', 'USD'])) {
|
||||
// && isset($this->client->country)
|
||||
// && in_array($this->client->country->iso_3166_3, ['AUS', 'DNK', 'DEU', 'ITA', 'LUX', 'NOR', 'SVN', 'GBR', 'AUT', 'EST', 'GRC', 'JPN', 'MYS', 'PRT', 'ESP', 'USA', 'BEL', 'FIN', 'HKG', 'LVA', 'NLD', 'SGP', 'SWE', 'CAN', 'FRA', 'IRL', 'LTU', 'NZL', 'SVK', 'CHE'])) {
|
||||
$types[] = GatewayType::ALIPAY;
|
||||
}
|
||||
|
||||
|
@ -271,7 +271,7 @@ class TemplateService
|
||||
{
|
||||
|
||||
$this->data = $this->preProcessDataBlocks($data);
|
||||
// nlog($this->data);
|
||||
// nlog(json_encode($this->data));
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
@ -17,8 +17,8 @@ return [
|
||||
'require_https' => env('REQUIRE_HTTPS', true),
|
||||
'app_url' => rtrim(env('APP_URL', ''), '/'),
|
||||
'app_domain' => env('APP_DOMAIN', 'invoicing.co'),
|
||||
'app_version' => env('APP_VERSION', '5.8.38'),
|
||||
'app_tag' => env('APP_TAG', '5.8.38'),
|
||||
'app_version' => env('APP_VERSION', '5.8.39'),
|
||||
'app_tag' => env('APP_TAG', '5.8.39'),
|
||||
'minimum_client_version' => '5.0.16',
|
||||
'terms_version' => '1.0.1',
|
||||
'api_secret' => env('API_SECRET', false),
|
||||
|
@ -5265,6 +5265,8 @@ Lorsque les montant apparaîtront sur votre relevé, veuillez revenir sur cette
|
||||
'enable_rappen_rounding_help' => 'Arrondir les totaux au 5 le plus proche',
|
||||
'duration_words' => 'Durée en mots',
|
||||
'upcoming_recurring_invoices' => 'Factures récurrentes à venir',
|
||||
'show_table_footer' => 'Afficher le pied du tableau',
|
||||
'show_table_footer_help' => 'Afficher les totaux dans le pied du tableau',
|
||||
'total_invoices' => 'Total factures',
|
||||
);
|
||||
|
||||
|
@ -10,9 +10,9 @@
|
||||
</div>
|
||||
</button>
|
||||
@if($entity_type == 'invoice' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEInvoice" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_invoice') }}</span>
|
||||
<div wire:loading wire:target="downloadEInvoice">
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||
@ -21,9 +21,9 @@
|
||||
</button>
|
||||
@endif
|
||||
@if($entity_type == 'credit' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadECreit" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_credit') }}</span>
|
||||
<div wire:loading wire:target="downloadECredit">
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||
@ -32,9 +32,9 @@
|
||||
</button>
|
||||
@endif
|
||||
@if($entity_type == 'quote' && $settings->enable_e_invoice)
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEQuote" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<button wire:loading.attr="disabled" wire:click="downloadEDocument" class="bg-primary text-white px-4 py-4 lg:px-2 lg:py-2 rounded" type="button">
|
||||
<span>{{ ctrans('texts.download_e_quote') }}</span>
|
||||
<div wire:loading wire:target="downloadEQuote">
|
||||
<div wire:loading wire:target="downloadEDocument">
|
||||
<svg class="animate-spin h-5 w-5 text-blue" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||
|
@ -7,15 +7,15 @@
|
||||
<div class="m-auto md:w-1/2 lg:w-1/2">
|
||||
<div class="flex flex-col items-center">
|
||||
|
||||
@if($account && !$account->isPaid())
|
||||
@if($passed_account && !$passed_account->isPaid())
|
||||
<div>
|
||||
<img src="{{ asset('images/invoiceninja-black-logo-2.png') }}"
|
||||
class="border-b border-gray-100 h-18 pb-4" alt="Invoice Ninja logo">
|
||||
</div>
|
||||
@elseif(isset($company) && !is_null($company))
|
||||
@elseif(isset($passed_company) && !is_null($passed_company))
|
||||
<div>
|
||||
<img src="{{ $company->present()->logo() }}"
|
||||
class="mx-auto border-b border-gray-100 h-18 pb-4" alt="{{ $company->present()->name() }} logo">
|
||||
<img src="{{ $passed_company->present()->logo() }}"
|
||||
class="mx-auto border-b border-gray-100 h-18 pb-4" alt="{{ $passed_company->present()->name() }} logo">
|
||||
</div>
|
||||
@endif
|
||||
<h1 class="text-center text-3xl mt-10">{{ ctrans("texts.entity_removed_title") }}</h1>
|
||||
|
@ -14,7 +14,7 @@
|
||||
<div class="mb-4">
|
||||
<p class="text-sm leading-6 font-medium text-gray-500">{{ $entity_type }} {{ $entity->number }}:</p>
|
||||
@if($variables && $entity->terms)
|
||||
<h5 data-ref="entity-terms"{!! $entity->parseHtmlVariables('terms', $variables) !!}</h5>
|
||||
<h5 data-ref="entity-terms">{!! $entity->parseHtmlVariables('terms', $variables) !!}</h5>
|
||||
@elseif($entity->terms)
|
||||
<h5 data-ref="entity-terms" class="text-sm leading-5 text-gray-900">{!! $entity->terms !!}</h5>
|
||||
@else
|
||||
|
219
resources/views/templates/delivery_notes/td12.html
Normal file
219
resources/views/templates/delivery_notes/td12.html
Normal file
@ -0,0 +1,219 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Delivery Note - TemplateID #TD12 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
body {
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 2rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
border-bottom: 1px #000 dotted;
|
||||
}
|
||||
|
||||
.totals-row-label {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.totals-row-value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-totals {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
padding-right: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div .label {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
div .value {
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.client-details {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.bottom-margin {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-style: italic;
|
||||
color: #454545
|
||||
}
|
||||
|
||||
.primary-color-highlight {
|
||||
color: $primary_color;
|
||||
}
|
||||
|
||||
.secondary-color-highlight {
|
||||
color: $secondary_color;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<ninja>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td align="left" class="doc-title">Delivery Note</td>
|
||||
<td align="right">{{ img('$company.logo') }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
</ninja>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td align="left" class="">
|
||||
<div class="">
|
||||
<div class="client-details">
|
||||
<p class="section-title">Bill To:</p>
|
||||
</div>
|
||||
<div class="client-details">
|
||||
<p class="primary-color-highlight">$client.name</p>
|
||||
</div>
|
||||
<div class="client-details">
|
||||
<p style="line-height:1.4;">$client.shipping_address</p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="left">
|
||||
<div class="">
|
||||
<div class="client-details">
|
||||
<p class="section-title">Ship To:</p>
|
||||
</div>
|
||||
<div class="client-details">
|
||||
<p class="primary-color-highlight">$client.name</p>
|
||||
</div>
|
||||
<div class="client-details">
|
||||
<p style="line-height:1.4;">$client.shipping_address</p>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<tr>
|
||||
<td align="left" class="">
|
||||
<div class="">
|
||||
<p>Order # $invoice.po_number</p>
|
||||
</div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<div class="">
|
||||
<p>Order Date: $invoice.date</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<ninja>
|
||||
{% set invoice = invoices|first %}
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="table-header">
|
||||
<tr class="table-header primary-color-highlight">
|
||||
<th class="">Item #</th>
|
||||
<th class="" width="50%">Description</th>
|
||||
<th class="centered">Quantity</th>
|
||||
<th class="totals-row-label centered">Delivered</th>
|
||||
<th class="totals-row-label centered">Backorder</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-body">
|
||||
{% for item in invoice.line_items|filter(item => item.type_id == 1) %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ item.product_key }}</td>
|
||||
<td class="">{{ item.notes }}</td>
|
||||
<td class="centered">{{ item.quantity }}</td>
|
||||
<td class="totals-row-label centered">{{ item.quantity }}</td>
|
||||
<td class="totals-row-label centered">{{ item.quantity - item.quantity }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</ninja>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<div class="container">
|
||||
<p class="bottom-margin primary-color-highlight">Notes:</p>
|
||||
|
||||
$invoice.public_notes
|
||||
</div>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
243
resources/views/templates/delivery_notes/td4.html
Normal file
243
resources/views/templates/delivery_notes/td4.html
Normal file
@ -0,0 +1,243 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Delivery Note Design - TemplateID #TD4 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
body {
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 1rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
border-bottom: 1px #000 dotted;
|
||||
}
|
||||
|
||||
.totals-row-label {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.totals-row-value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-totals {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
padding-right: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div .label {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
div .value {
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.three-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
column-gap: 0.4rem;
|
||||
}
|
||||
|
||||
.client-details {}
|
||||
|
||||
.container {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.bottom-margin {
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-style: italic;
|
||||
color: #454545;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.primary-color-highlight {
|
||||
color: $primary_color;
|
||||
}
|
||||
|
||||
.secondary-color-highlight {
|
||||
color: $secondary_color;
|
||||
}
|
||||
|
||||
.order-details {
|
||||
white-space: nowrap;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
dt {
|
||||
margin-right: 7px;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin-left: 3px;
|
||||
}
|
||||
|
||||
.company-logo {
|
||||
max-width: $company_logo_size;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td align="left" class="doc-title">$delivery_note_label</td>
|
||||
<td align="right"><img src="$company.logo" class="company-logo"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table width="100%" height="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td style="">
|
||||
<div class="three-col-grid">
|
||||
|
||||
<div class="" style="margin-left:0; margin-right:auto;">
|
||||
<div class="client-details">
|
||||
<p class="section-title">$to_label:</p>
|
||||
</div>
|
||||
<div id="client-details"></div>
|
||||
</div>
|
||||
|
||||
<div class="" style="margin-left:auto; margin-right:auto;">
|
||||
<div class="client-details">
|
||||
<p class="section-title">$ship_to_label:</p>
|
||||
</div>
|
||||
<div id="shipping-details"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="margin-right:0; margin-left: auto;">
|
||||
<div class="client-details">
|
||||
<p class="section-title" style="padding-right:10px;">$details_label:</p>
|
||||
</div>
|
||||
<div class="two-col-grid">
|
||||
<dt class="order-details primary-color-highlight">$order_number_label #</dt>
|
||||
<ninja>
|
||||
{%set invoice = invoices|first|e %}
|
||||
<dd class="align-left primary-color-highlight">{% if invoice.po_number %} {{
|
||||
invoice.po_number }} {% else %} {{ invoice.number}} {% endif %}</dd>
|
||||
</ninja>
|
||||
<dt class="order-details">$date_label</dt>
|
||||
<dd class="align-left">$invoice.date</dd>
|
||||
<dt class="order-details">$client_label #</dt>
|
||||
<dd class="align-left">$client.number</dd>
|
||||
<!-- <dt class="order-details">Dispatch Date </dt>
|
||||
<dd class="align-left">$date</dd>
|
||||
<dt class="order-details">Delivery Method </dt>
|
||||
<dd class="align-left">UPS</dd> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<ninja>
|
||||
{% set invoice = invoices|first %}
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="table-header">
|
||||
<tr class="table-header primary-color-highlight">
|
||||
<th class="">$item_label #</th>
|
||||
<th class="" width="50%">$description_label</th>
|
||||
<th class="centered">$quantity_label</th>
|
||||
<!-- <th class="totals-row-label centered">Delivered</th>
|
||||
<th class="totals-row-label centered">Backorder</th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-body">
|
||||
{% for item in invoice.line_items|filter(item => item.type_id == 1) %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ item.product_key }}</td>
|
||||
<td class="">{{ item.notes }}</td>
|
||||
<td class="centered">{{ item.quantity }}</td>
|
||||
<!-- <td class="totals-row-label centered">{{ item.quantity }}</td>
|
||||
<td class="totals-row-label centered">{{ item.quantity - item.quantity }}</td> -->
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</ninja>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<div class="container">
|
||||
<p class="bottom-margin primary-color-highlight">$notes_label:</p>
|
||||
|
||||
$invoice.public_notes
|
||||
</div>
|
||||
</table>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
267
resources/views/templates/delivery_notes/td5.html
Normal file
267
resources/views/templates/delivery_notes/td5.html
Normal file
@ -0,0 +1,267 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Delivery Note 2 - TemplateID #TD5 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
@page {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
size: $page_size $page_layout;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-bottom: 0rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
border-bottom: 1px #000 dotted;
|
||||
}
|
||||
|
||||
.totals-row-label {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.totals-row-value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-totals {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.doc-title {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
span {
|
||||
padding-right: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
div .label {
|
||||
text-align: right;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
div .value {
|
||||
text-align: left;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.client-details {
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.container {
|
||||
padding-top: 2rem;
|
||||
}
|
||||
|
||||
.bottom-margin {
|
||||
padding-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
.bottom-border {
|
||||
border-bottom: 0.5px dashed $primary_color;
|
||||
}
|
||||
|
||||
.top-border {
|
||||
border-top: 0.5px dashed $primary_color;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
font-style: italic;
|
||||
color: #454545
|
||||
}
|
||||
|
||||
.primary-color-highlight {
|
||||
color: $primary_color;
|
||||
}
|
||||
|
||||
.secondary-color-highlight {
|
||||
color: $secondary_color;
|
||||
}
|
||||
|
||||
.header-table {
|
||||
margin-top: 0 !important;
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
#footer {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
border-top: 1px solid #000;
|
||||
width: 82%;
|
||||
min-height: 100px;
|
||||
padding-top: 0.5rem;
|
||||
margin-top: 40px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table style="min-width:100%">
|
||||
<thead>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td align="left" class="doc-title">$delivery_note_label</td>
|
||||
<td align="right"><img src="$company.logo" class="company-logo"></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table width="100%" height="100%" cellspacing="0" cellpadding="0" class="" border="0">
|
||||
<tr>
|
||||
<td align="left" class="">
|
||||
<div class="" style="">
|
||||
<div class="client-details">
|
||||
<p class="section-title">$to_label:</p>
|
||||
</div>
|
||||
<div id="client-details"></div>
|
||||
</div>
|
||||
</td>
|
||||
|
||||
<td align="left">
|
||||
<div class="" style="height:100%">
|
||||
<div class="client-details">
|
||||
<p class="section-title">$ship_to_label:</p>
|
||||
</div>
|
||||
<div id="shipping-details"></div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<tr>
|
||||
<td align="left" class="">
|
||||
<div>
|
||||
<p class="bottom-border"># $invoice.po_number</p>
|
||||
</div>
|
||||
</td>
|
||||
<td align="left">
|
||||
<div class="">
|
||||
<p class="bottom-border">$date_label: $invoice.date</p>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<ninja>
|
||||
{% set invoice = invoices|first %}
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="table-header">
|
||||
<tr class="table-header primary-color-highlight">
|
||||
<th class="">$item_label #</th>
|
||||
<th class="" width="50%">$description_label</th>
|
||||
<th class="centered">$quantity_label</th>
|
||||
<!-- <th class="totals-row-label centered">Delivered</th>
|
||||
<th class="totals-row-label centered">Backorder</th> -->
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-body">
|
||||
{% for item in invoice.line_items|filter(item => item.type_id == 1) %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ item.product_key }}</td>
|
||||
<td class="">{{ item.notes }}</td>
|
||||
<td class="centered">{{ item.quantity }}</td>
|
||||
<!-- <td class="totals-row-label centered">{{ item.quantity }}</td>
|
||||
<td class="totals-row-label centered">{{ item.quantity - item.quantity }}</td> -->
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</ninja>
|
||||
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<div class="container">
|
||||
<p class="bottom-margin primary-color-highlight">$notes_label:</p>
|
||||
$invoice.public_notes
|
||||
</div>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td>
|
||||
<div style="border: 0px solid #000; height:100px;">
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
||||
</table>
|
||||
|
||||
<div id="footer" style="border: 0px solid red; width: 95%;">
|
||||
<div style="width: 100%; padding:10px;" class="two-col-grid top-border">
|
||||
<div id="company-details" style="margin-left:0; margin-right:auto;"></div>
|
||||
<div id="company-address" style="margin-right:0; margin-left:auto;"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
444
resources/views/templates/payments/tp6.html
Normal file
444
resources/views/templates/payments/tp6.html
Normal file
@ -0,0 +1,444 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Payment Receipt- TemplateID #TP6 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
.company-logo {
|
||||
max-width: $company_logo_size;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<table class="Wrapper" align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0 auto!important;padding:0;max-width:600px;min-width:600px;width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table class="Divider--kill" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div style="border-bottom-left-radius:5px;border-bottom-right-radius:5px">
|
||||
<table dir="ltr" class=" Header" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="Header-left Target"
|
||||
style="background-color:$primary_color;border:0;border-collapse:collapse;margin:0;padding:0;font-size:0;line-height:0px;background-size:100% 100%;border-top-left-radius:5px; border-top-right-radius:5px;"
|
||||
align="center" height="156" valign="middle" width="">
|
||||
<img src="$company.logo" class="company-logo">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff;margin-top:1rem;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content" align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#32325d;font-size:24px;line-height:32px">
|
||||
<span class="il">$receipt_label</span> $from_label <span
|
||||
dir="ltr">$company.name</span>
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="4"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content" align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:15px;line-height:18px">
|
||||
<span class="il">$receipt_label</span> #$number
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<ninja>
|
||||
{%set payment = payments|first %}
|
||||
{%if payment.transaction_reference %}
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content" align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:15px;line-height:18px">
|
||||
<span class="il">Reference:</span> {{ payment.transaction_reference }}
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="24"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff;width:100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px">
|
||||
<table style="border:0;border-collapse:collapse;margin:0;padding:0;width:100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="DataBlocks-item" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase;">
|
||||
$amount_paid_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
$amount
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="DataBlocks-spacer" width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="DataBlocks-item" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase">
|
||||
$date_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
$payment.date
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
|
||||
<td class="DataBlocks-spacer" width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="DataBlocks-item" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase">
|
||||
$method_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
<span>
|
||||
<ninja>
|
||||
{% set payment = payments|first %}
|
||||
{% if payment %}
|
||||
{{ payment.method }}
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</span>
|
||||
<span></span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="32"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class=""
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;font-weight:bold;text-transform:uppercase">
|
||||
Summary
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="Spacer--kill" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px">
|
||||
<table
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:100%;background-color:#f6f9fc;border-radius:4px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="4"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="" width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Table-content"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:432px">
|
||||
<table class="Table-rows" width="432"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<ninja>
|
||||
{% set totalPrice = 0 %}
|
||||
{% for payment in payments %}
|
||||
{% for pivot in payment.paymentables|filter(pivot =>
|
||||
pivot.is_credit == '0') %}
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;font-weight:bold;text-transform:uppercase">
|
||||
{{ pivot.date }}
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
<div>
|
||||
$invoice_label #{{ pivot.invoice }}
|
||||
<span class="Content"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;color:#8898aa;font-size:14px;line-height:14px">
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td align="right" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
{{ pivot.amount }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td bgcolor="e6ebf1" colspan="3" height="1"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
{% set totalPrice = totalPrice + pivot.amount_raw %}
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;font-weight:bold">
|
||||
$amount_paid_label
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
|
||||
<td align="right" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;font-weight:bold">
|
||||
${{ totalPrice|number_format(2, '.', ',') }}
|
||||
<td>
|
||||
</ninja>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="" width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="4"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td class="Spacer--kill" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="" width="100%" style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="44"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
166
resources/views/templates/payments/tp7.html
Normal file
166
resources/views/templates/payments/tp7.html
Normal file
@ -0,0 +1,166 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Payment Receipt- TemaplateID #TP7 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
@page {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
size: A5 landscape;
|
||||
/* size: 210mm 75mm; */
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.four-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
|
||||
.key-value-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 4fr;
|
||||
}
|
||||
|
||||
.primary-color-highlight {
|
||||
color: $primary_color;
|
||||
}
|
||||
|
||||
.secondary-color-highlight {
|
||||
color: $secondary_color;
|
||||
}
|
||||
|
||||
.company-logo {
|
||||
max-width: $company_logo_size;
|
||||
max-height: 100px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.zero {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pull-left {
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.bottom-border {
|
||||
border-bottom: 1px solid $primary_color;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="two-col-grid" style="">
|
||||
<ninja>
|
||||
<div class="pull-left">
|
||||
<h1 class="primary-color-highlight" style="margin-top:0;">$receipt_label {%if payments|length ==
|
||||
1%}#$number{% endif %}</h2>
|
||||
</div>
|
||||
</ninja>
|
||||
<div class="pull-right"><img src="$company.logo" class="company-logo"></div>
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid">
|
||||
<div class="pull-left">
|
||||
<h4 class="italic" style="margin-bottom:0.5rem;">$to_label</h3>
|
||||
<p style="margin-bottom:0.5rem;">$client.name</p>
|
||||
<ninja>
|
||||
{% set payment = payments|first %}
|
||||
{% if payment.client.vat_number %}
|
||||
<p>$vat_number_label: $vat_number</p>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<!-- <h3 class="secondary-color-highlight zero italic">$to_label</h3>
|
||||
<p>$company.name</p> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="" style="margin-top:20px;">
|
||||
<div class="four-col-grid" style="padding:2px; margin-bottom:2px;">
|
||||
<div style="">$number_label</div>
|
||||
<div style="">$date_label</div>
|
||||
<div style="">$method_label</div>
|
||||
<div style="">$amount_label</div>
|
||||
</div>
|
||||
|
||||
<ninja>
|
||||
{% if payments|e %}
|
||||
{% for payment in payments %}
|
||||
<div class="four-col-grid bottom-border" style="padding:2px;">
|
||||
<div>
|
||||
<p class="primary-color-highlight">#{{ payment.number }}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>{{ payment.date }}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>{{ payment.method }}</p>
|
||||
</div>
|
||||
<div>
|
||||
<p>{{ payment.amount }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid"
|
||||
style="margin-top: 1rem; position:absolute; bottom: 0; width:100%; margin-right:0rem !important; padding-right:0rem;">
|
||||
<div id="company-details" class="pull-left" style="padding-bottom:1rem;">
|
||||
<!-- <h3>$company.name</h3> -->
|
||||
</div>
|
||||
<div class="pull-right" style="padding-right:1rem;">
|
||||
<p>$public_notes</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
185
resources/views/templates/payments/tr8.html
Normal file
185
resources/views/templates/payments/tr8.html
Normal file
@ -0,0 +1,185 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Refund - TemplateID #TR8 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@import url($font_url);
|
||||
|
||||
@page {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
size: A5 landscape;
|
||||
/* size: 210mm 75mm; */
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
.four-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr 1fr;
|
||||
}
|
||||
|
||||
.key-value-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 4fr;
|
||||
}
|
||||
|
||||
.primary-color-highlight {
|
||||
color: $primary_color;
|
||||
}
|
||||
|
||||
.secondary-color-highlight {
|
||||
color: $secondary_color;
|
||||
}
|
||||
|
||||
.company-logo {
|
||||
max-width: $company_logo_size;
|
||||
max-height: 100px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.border {
|
||||
border: 1px solid #000;
|
||||
}
|
||||
|
||||
.zero {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.pull-left {
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.pull-right {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.bottom-border {
|
||||
border-bottom: 1px solid $primary_color;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="two-col-grid" style="">
|
||||
<div class="pull-left">
|
||||
<ninja>
|
||||
<h1 class="primary-color-highlight" style="margin-top:0; margin-bottom:0rem;">$refund_label {% if
|
||||
payments|length == 1%}#$number {% endif %}</h2>
|
||||
</ninja>
|
||||
</div>
|
||||
<div class="pull-right"><img src="$company.logo" class="company-logo"></div>
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid">
|
||||
<div class="pull-left">
|
||||
<h4 class="italic" style="margin-bottom:0.5rem;">$to_label</h3>
|
||||
<p style="margin-bottom:0.5rem;">$client.name</p>
|
||||
<ninja>
|
||||
{% set payment = payments|first %}
|
||||
{% if payment.client.vat_number %}
|
||||
<p>$vat_number_label: $vat_number</p>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<!-- <h3 class="secondary-color-highlight zero italic">$to_label</h3>
|
||||
<p>$company.name</p> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="" style="margin-top:20px;">
|
||||
|
||||
<ninja>
|
||||
{% if payments|e %}
|
||||
{% set totalInvoices = 0 %}
|
||||
{% set totalRefunds = 0 %}
|
||||
{% for payment in payments %}
|
||||
{% for pivot in payment.paymentables|filter((pivot) => (pivot.is_credit == '0'
|
||||
and pivot.refunded_raw > 0)) %}
|
||||
|
||||
<div class="two-col-grid bottom-border" style="padding:2px; padding:5px;">
|
||||
<div style="display:flex;">
|
||||
<p class="primary-color-highlight">$invoice_label #{{ pivot.invoice }}</p>
|
||||
<p class="primary-color-highlight" style="padding-left:1rem;"> ({{ pivot.amount }})</p>
|
||||
</div>
|
||||
<div style="display:flex;">
|
||||
<p style="">{{ pivot.refunded }}</p>
|
||||
<p style="padding-left:1rem;">($refund_label)</p>
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% set totalInvoices = totalInvoices + pivot.amount_raw %}
|
||||
{% set totalRefunds = totalRefunds + pivot.refunded_raw %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="four-col-grid bottom-border" style="padding:2px; padding:5px;">
|
||||
<div style="display:flex; margin-top:1rem">
|
||||
<p class="primary-color-highlight">$invoices_label:</p>
|
||||
</div>
|
||||
<div style="display:flex; margin-top:1rem;">
|
||||
<p style="">{{ totalInvoices|format_currency(currency_code) }}</p>
|
||||
</div>
|
||||
<div style="display:flex; margin-top:1rem">
|
||||
<p class="primary-color-highlight">$refund_label:</p>
|
||||
</div>
|
||||
<div style="display:flex; margin-top:1rem;">
|
||||
<p style="">{{ totalRefunds|format_currency(currency_code) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid"
|
||||
style="margin-top: 1rem; position:absolute; bottom: 0; width:100%; margin-right:0rem !important; padding-right:0rem;">
|
||||
<div id="company-details" class="pull-left" style="padding-bottom:1rem;">
|
||||
<!-- <h3>$company.name</h3> -->
|
||||
</div>
|
||||
<div class="pull-right" style="padding-right:1rem;">
|
||||
<p>$public_notes</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
528
resources/views/templates/payments/tr9.html
Normal file
528
resources/views/templates/payments/tr9.html
Normal file
@ -0,0 +1,528 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Refund Receipt - TemplateID #TR9 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>$refund_label #$number</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ninja>
|
||||
{%set payment = payments|first %}
|
||||
{%set pivot = payment.paymentables|filter(pivot => pivot.refunded_raw > 0)|first %}
|
||||
<table align="center" bgcolor="#ffffff" border="0" cellpadding="0" cellspacing="0" width="600"
|
||||
style="border-top-left-radius:16px;border-top-right-radius:16px;margin:0 auto;min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" height="0"
|
||||
style="border:0;margin:0;padding:0;color:#ffffff;display:none!important;font-size:1px;line-height:1px;max-height:0;max-width:0;opacity:0;overflow:hidden">
|
||||
<span style="color:#ffffff;text-decoration:none;">$refund_label{{ pivot.refunded
|
||||
}}
|
||||
$date_label {{ pivot.updated_at }}</span>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div
|
||||
style="background-color:$primary_color;padding-top:20px; padding-bottom:20px; border-radius:5px;">
|
||||
<table dir="ltr" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="background-color:$primary_color;border:0;border-collapse:collapse;margin:0;padding:0;font-size:0;line-height:0px;background-size:100% 100%;"
|
||||
align="center" valign="center" width="600" height="152">
|
||||
{{ img('$company.logo','') }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tr>
|
||||
<td height="10"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#32325d;font-size:24px;line-height:32px">
|
||||
$refund_label #$number
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<ninja>
|
||||
{%set payment = payments|first %}
|
||||
{%if payment.transaction_reference %}
|
||||
<table class="" width="100%"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;background-color:#ffffff">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td class="Content" align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:'Helvetica Neue',Helvetica,Arial,sans-serif;vertical-align:middle;color:#8898aa;font-size:15px;line-height:18px">
|
||||
<span class="il">$reference_label:</span> {{ payment.transaction_reference
|
||||
}}
|
||||
</td>
|
||||
<td class="" width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;width:472px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#8898aa;font-size:15px;line-height:18px">
|
||||
<span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td height="20"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;margin:0;padding:0;color:#687385;font-family:-apple-system,'SF Pro Display','SF Pro Text','Helvetica',sans-serif;font-size:12px;font-weight:bold;line-height:16px;text-transform:uppercase">
|
||||
</td>
|
||||
<td width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td valign="top" style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase">
|
||||
$refunded_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
{{ payment.refunded }}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td valign="top" style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase">
|
||||
$refund_label $date_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
{{ payment.updated_at}}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="20"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td valign="top" style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<table style="border:0;border-collapse:collapse;margin:0;padding:0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#8898aa;font-size:12px;line-height:16px;white-space:nowrap;font-weight:bold;text-transform:uppercase">
|
||||
$method_label
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;white-space:nowrap">
|
||||
{% if payment.method %}
|
||||
<span>
|
||||
{{ payment.method }}
|
||||
</span>
|
||||
{% else %}
|
||||
<span
|
||||
style="width:100%; min-width:100%; display:block; text-align:center;">
|
||||
-
|
||||
</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td width="64"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px"
|
||||
width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td bgcolor="#e6ebf1" height="1"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px"
|
||||
width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px;max-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0">
|
||||
<table bgcolor="#f6f9fc" border="0" cellpadding="0" cellspacing="0"
|
||||
style="border-radius:8px" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px"
|
||||
width="16">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td
|
||||
style="border:0;margin:0;padding:0;color:#414552;font-family:-apple-system,'SF Pro Display','SF Pro Text','Helvetica',sans-serif;font-size:16px;line-height:24px">
|
||||
<table
|
||||
style="padding-left:5px;padding-right:5px"
|
||||
width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% set totalInvoices = 0 %}
|
||||
{% set totalRefunds = 0 %}
|
||||
{% for pivot in
|
||||
payment.paymentables|filter((pivot) =>
|
||||
(pivot.is_credit == '0'
|
||||
and pivot.refunded_raw > 0)) %}
|
||||
<tr>
|
||||
<td
|
||||
style="white-space:nowrap;border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;width:100%">
|
||||
Invoice: #{{ pivot.invoice }}
|
||||
({{ pivot.amount }})
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td align="right" width="50"
|
||||
valign="top"
|
||||
style="white-space:nowrap;border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
$refunded_label {{
|
||||
pivot.refunded }}
|
||||
</td>
|
||||
</tr>
|
||||
{% set totalInvoices = totalInvoices +
|
||||
pivot.amount_raw %}
|
||||
{% set totalRefunds = totalRefunds +
|
||||
pivot.refunded_raw %}
|
||||
{% endfor %}
|
||||
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td bgcolor="e6ebf1" colspan="3"
|
||||
height="1"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;width:100%">
|
||||
$total_label $invoices_label
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td align="right" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
{{
|
||||
totalInvoices|format_currency(currency_code)
|
||||
}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;width:100%">
|
||||
$total_label $refunded_label
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td align="right" valign="top"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
{{ payment.refunded }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="6"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px"
|
||||
width="16">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if payment.refund_activity %}
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="8"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td
|
||||
style="border:0;margin:0;padding:0;color:#687385;font-family:-apple-system,'SF Pro Display','SF Pro Text','Helvetica',sans-serif;font-weight:400;font-size:12px;line-height:16px;text-transform:uppercase">
|
||||
<span style="border:0;margin:0;padding:0;font-weight:bold">
|
||||
History
|
||||
</span>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="8"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="600" style="min-width:600px">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0">
|
||||
<table bgcolor="#f6f9fc" border="0" cellpadding="0" cellspacing="0"
|
||||
style="border-radius:8px" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0">
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px"
|
||||
width="16">
|
||||
<div> </div>
|
||||
</td>
|
||||
<td
|
||||
style="border:0;margin:0;padding:0;color:#414552;font-family:-apple-system,'SF Pro Display','SF Pro Text','Helvetica',sans-serif;font-size:16px;line-height:24px">
|
||||
<table
|
||||
style="padding-left:5px;padding-right:5px"
|
||||
width="100%">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for activity in
|
||||
payment.refund_activity %}
|
||||
<tr>
|
||||
<td
|
||||
style="white-space:nowrap;border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px;width:100%">
|
||||
{{ activity }}
|
||||
</td>
|
||||
<td width="8"
|
||||
style="border:0;border-collapse:collapse;margin:0;padding:0;color:#ffffff;font-size:1px;line-height:1px">
|
||||
</td>
|
||||
<td align="right" width="50"
|
||||
valign="top"
|
||||
style="white-space:nowrap;border:0;border-collapse:collapse;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Ubuntu,sans-serif;vertical-align:middle;color:#525f7f;font-size:15px;line-height:24px">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px"
|
||||
width="16">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="12"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
<td style="border:0;margin:0;padding:0;font-size:1px;line-height:1px" width="48">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" height="24"
|
||||
style="border:0;margin:0;padding:0;font-size:1px;line-height:1px">
|
||||
<div> </div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
95
resources/views/templates/projects/tp11.html
Normal file
95
resources/views/templates/projects/tp11.html
Normal file
@ -0,0 +1,95 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Project - TemplateID #TP11 -->
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
html {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 2rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
li {
|
||||
padding: 3px;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<ninja>
|
||||
{% if projects|e %}
|
||||
{% for project in projects %}
|
||||
|
||||
<h1>{{ project.name }}</h1>
|
||||
<h3>Due: {{ project.due_date }}</h3>
|
||||
<h6>{{ project.current_hours }} / {{ project.budgeted_hours }}: (Hours / Budgeted Hours @ {{ project.task_rate }}) - Report generated on {{ "now"|date('Y-m-d') }}</h6>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Description</th>
|
||||
<th>Duration</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for task in project.tasks %}
|
||||
|
||||
{% for log in task.time_log%}
|
||||
|
||||
<tr>
|
||||
<td>{{ log.start_date }}</td>
|
||||
<td>
|
||||
<div>
|
||||
<ul>
|
||||
<li>{{ log.description }}</li>
|
||||
<li>{{ task.user.name }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
<td>{{ log.duration|date('h:i:s')}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</body>
|
||||
</html>
|
170
resources/views/templates/samples/stacks.html
Normal file
170
resources/views/templates/samples/stacks.html
Normal file
@ -0,0 +1,170 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Examples of how to use generic invoice ninja stacks that can be configured in the UI (Settings > Invoice Design) -->
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
:root {
|
||||
--primary-color: $primary_color;
|
||||
--secondary-color: $secondary_color;
|
||||
--line-height: 1.6;
|
||||
}
|
||||
|
||||
html {
|
||||
width: 210mm;
|
||||
height: 200mm;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
zoom: 80%;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin-left: $global_margin;
|
||||
margin-right: $global_margin;
|
||||
margin-top: 5;
|
||||
margin-bottom: 5;
|
||||
size: $page_size $page_layout;
|
||||
}
|
||||
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
table tr td,
|
||||
table tr,
|
||||
th {
|
||||
font-size: 18 !important;
|
||||
}
|
||||
|
||||
[data-ref="table"] {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 5px;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
[data-ref="table"]>thead {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
[data-ref="table"]>thead>tr>th {
|
||||
font-size: 1.1rem;
|
||||
padding-bottom: 1.5rem;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr>td {
|
||||
border-top: 1px solid #d8d8d8;
|
||||
border-bottom: 1px solid #d8d8d8;
|
||||
padding: 1rem 1rem;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr>td:first-child {
|
||||
color: var(--primary-color);
|
||||
}
|
||||
|
||||
[data-ref="table"]>thead>tr>th:last-child,
|
||||
[data-ref="table"]>tbody>tr>td:last-child {
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
[data-ref="table"]>thead>tr>th:last-child {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr:nth-child(odd) {
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
|
||||
|
||||
#client-details {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
line-height: var(--line-height);
|
||||
padding-right: 30px;
|
||||
}
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div style="text-align:center;">
|
||||
<h1> Standard Invoice Ninja Blocks </h1>
|
||||
<img class="company-logo" src="$company.logo" alt="$company.name logo">
|
||||
</div>
|
||||
|
||||
<div style="display:flex; padding:2rem;">
|
||||
|
||||
<div style="padding:1rem; border:1px solid #000;">
|
||||
<p>Client Details</p>
|
||||
<div id="client-details"></div>
|
||||
</div>
|
||||
|
||||
<div style="padding:1rem; border:1px solid #000;">
|
||||
<p>Company Details</p>
|
||||
<div id="company-details"></div>
|
||||
</div>
|
||||
|
||||
<div style="padding:1rem; border:1px solid #000;">
|
||||
<p>Company Address</p>
|
||||
<div id="company-address"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="display:flex; padding:2rem;">
|
||||
|
||||
<div style="padding:1rem; border:1px solid #000;">
|
||||
<p>Vendor Details</p>
|
||||
<div id="vendor-details"></div>
|
||||
</div>
|
||||
|
||||
<div style="padding:1rem; border:1px solid #000;">
|
||||
<p>Shipping Address</p>
|
||||
<div id="shipping-details"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<ninja>
|
||||
{% set invoice = invoices|first %}
|
||||
{% set total = 0 %}
|
||||
<table cellspacing="0" data-ref="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item</th>
|
||||
<th>Notes</th>
|
||||
<th>Cost</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for item in invoice.line_items|filter(item => item.type_id == 1) %}
|
||||
<tr>
|
||||
<td>{{ item.product_key }}</td>
|
||||
<td>{{ item.notes }}</td>
|
||||
<td>{{ item.cost_raw|format_currency('GBP') }}</td>
|
||||
</tr>
|
||||
{% set total = total + item.cost_raw %}
|
||||
{% endfor %}
|
||||
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>Total</td>
|
||||
<td>{{ total|format_currency(currency_code) }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
90
resources/views/templates/samples/table.html
Normal file
90
resources/views/templates/samples/table.html
Normal file
@ -0,0 +1,90 @@
|
||||
<!doctype html>
|
||||
<!-- A plain sample of a twig table -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
table {
|
||||
margin-top: 2rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
border-bottom: 1px #000 dotted;
|
||||
}
|
||||
|
||||
.totals-row-label {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.totals-row-value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-totals {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ninja>
|
||||
{% set invoice = invoices|first %}
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="table-header">
|
||||
<tr class="table-header">
|
||||
<th class="">Item #</th>
|
||||
<th class="" width="50%">Description</th>
|
||||
<th class="centered">Quantity</th>
|
||||
<th class="totals-row-label centered">Delivered</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="table-body">
|
||||
{% for item in invoice.line_items|filter(item => item.type_id == 1) %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ item.product_key }}</td>
|
||||
<td class="">{{ item.notes }}</td>
|
||||
<td class="centered">{{ item.quantity }}</td>
|
||||
<td class="totals-row-label centered">{{ item.quantity }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
13
resources/views/templates/samples/twig.html
Normal file
13
resources/views/templates/samples/twig.html
Normal file
@ -0,0 +1,13 @@
|
||||
<!-- This is the most basic starting point of a twig template -->
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<body>
|
||||
<ninja>
|
||||
<!-- Inside of the ninja tags you can place any Twig Content -->
|
||||
</ninja>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<!-- You can read more about twig and the options available here: https://twig.symfony.com/ -->
|
||||
|
249
resources/views/templates/statements/ts1.html
Normal file
249
resources/views/templates/statements/ts1.html
Normal file
@ -0,0 +1,249 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Plain Statement - TemplateID #TS1 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<style>
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
zoom: 80%;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 0 !important; //removes top and bottom default headers
|
||||
size: $page_size $page_layout;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
line-height: 1.5;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 2rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
|
||||
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: center;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
text-align: center;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
.item-row {
|
||||
border-bottom: 1px #000 dotted;
|
||||
}
|
||||
|
||||
.totals-row-label {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.totals-row-value {
|
||||
text-align: right;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.table-totals {
|
||||
display: grid;
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
|
||||
.entity-container {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
.entity-container h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
span {
|
||||
padding-right: 5px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.label {
|
||||
text-align: right;
|
||||
padding: 0;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.value {
|
||||
text-align: left;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
}
|
||||
|
||||
#statement-details {
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
#client-details {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
#company-details {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Header -->
|
||||
<div class="two-col-grid">
|
||||
<div id="client-details"></div>
|
||||
<div id="company-details"></div>
|
||||
</div>
|
||||
|
||||
<!-- Details -->
|
||||
<div class="two-col-grid">
|
||||
<div>
|
||||
</div>
|
||||
<div id="statement-details">
|
||||
<h2>Statement</h2>
|
||||
<p>$start_date - $end_date</p>
|
||||
</div>
|
||||
</div>
|
||||
<ninja>
|
||||
{% if invoices|e %}
|
||||
<div class="entity-container">
|
||||
<h2>Invoices<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">Invoice #</th>
|
||||
<th class="">Invoice Date</th>
|
||||
<th class="">Invoice Due Date</th>
|
||||
<th class="">Total</th>
|
||||
<th class="">Balance</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for invoice in invoices %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ invoice.number }}</td>
|
||||
<td class="">{{ invoice.date }}</td>
|
||||
<td class="">{{ invoice.due_date }}</td>
|
||||
<td class="">{{ invoice.amount }}</td>
|
||||
<td class="">{{ invoice.balance }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if payments|e %}
|
||||
<div class="entity-container">
|
||||
<h2>Payments<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">Invoice #</th>
|
||||
<th class="">Payment Date</th>
|
||||
<th class="">Method</th>
|
||||
<th class="">Amount</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for payment in payments %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ payment.number }}</td>
|
||||
<td class="">{{ payment.date }}</td>
|
||||
{%if payment.is_credit %}
|
||||
<td class="">Credit {{ payment.number }}</td>
|
||||
{%else%}
|
||||
<td class="">{{ payment.method }}</td>
|
||||
{%endif%}
|
||||
<td class="">{{ payment.amount }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if credits|e %}
|
||||
<div class="entity-container">
|
||||
<h2>Credits<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">Credit #</th>
|
||||
<th class="">Credit Date</th>
|
||||
<th class="">Total</th>
|
||||
<th class="">Balance</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for credit in credits %}
|
||||
<tr class="item-row">
|
||||
<td class="">{{ credit.number }}</td>
|
||||
<td class="">{{ credit.date }}</td>
|
||||
<td class="">{{ credit.amount }}</td>
|
||||
<td class="">{{ credit.balance }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if aging %}
|
||||
<div class="entity-container">
|
||||
<h2>Aging<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
{% for key, age in aging %}
|
||||
<th class="">{{ key }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="item-row">
|
||||
{% for key, age in aging %}
|
||||
<td>{{ age }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
325
resources/views/templates/statements/ts2.html
Normal file
325
resources/views/templates/statements/ts2.html
Normal file
@ -0,0 +1,325 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Color Statement - TemplateID #TS2 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<style>
|
||||
@page {
|
||||
margin: 50 0 50 0 !important;
|
||||
}
|
||||
|
||||
body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size !important;
|
||||
zoom: 80%;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: $primary_color;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
table {
|
||||
padding-top: 1rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: center;
|
||||
xpadding-left: 6px;
|
||||
xpadding-right: 6px;
|
||||
xpadding-top: 6px;
|
||||
xpadding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
text-align: center;
|
||||
xpadding-left: 6px;
|
||||
xpadding-right: 6px;
|
||||
xpadding-top: 6px;
|
||||
xpadding-bottom: 6px;
|
||||
}
|
||||
|
||||
tr {}
|
||||
|
||||
tr.border-bottom td {
|
||||
height: 2rem;
|
||||
border-bottom: 1px dashed $primary_color;
|
||||
}
|
||||
|
||||
#logo-container {
|
||||
width: 100%;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#client-wrapper {
|
||||
width: 100%;
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
#client-details {
|
||||
line-height: 0.5;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
#company-details {
|
||||
line-height: 0.5 !important;
|
||||
}
|
||||
|
||||
#company-address {
|
||||
line-height: 0.5 !important;
|
||||
}
|
||||
|
||||
#company-wrapper {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#statement-details {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#entity-container {
|
||||
padding-left: 2rem;
|
||||
padding-right: 2rem;
|
||||
break-inside: avoid-region;
|
||||
}
|
||||
|
||||
#entity-container h2 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#date-range {
|
||||
padding: 0;
|
||||
margin-top: 0;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
.body-margin {
|
||||
margin-left: 2rem;
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
.aging-table {
|
||||
border: 1px dashed $primary_color;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="logo-container">
|
||||
<img src="$company.logo">
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid body-margin">
|
||||
<div id="client-details"></div>
|
||||
<div id="company-wrapper">
|
||||
<div id="company-details"></div>
|
||||
<div id="company-address"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="two-col-grid body-margin">
|
||||
<div></div>
|
||||
<div id="statement-details">
|
||||
<h2>$statement_label</h2>
|
||||
<p id="date-range">$start_date - $end_date</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ninja>
|
||||
{% if invoices|e %}
|
||||
<div id="entity-container">
|
||||
<h2>{{ t('invoices') }}<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">{{ t('invoice') }} #</th>
|
||||
<th class="">{{ t('invoice_date') }}</th>
|
||||
<th class="">{{ t('invoice_due_date') }}</th>
|
||||
<th class="">{{ t('total') }}</th>
|
||||
<th class="">{{ t('balance') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for invoice in invoices %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ invoice.number }}</td>
|
||||
<td class="">{{ invoice.date }}</td>
|
||||
<td class="">{{ invoice.due_date }}</td>
|
||||
<td class="">{{ invoice.amount }}</td>
|
||||
<td class="">{{ invoice.balance }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
||||
{% set sum_balance = invoices|sum('balance_raw') %}
|
||||
{% if sum_balance > 0 %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><b>$balance_label</b></td>
|
||||
<td><b>{{ sum_balance|format_currency(currency_code) }}</b> </td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if invoices|e and show_payments %}
|
||||
<div id="entity-container">
|
||||
<h2>{{ t('payments') }}<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">{{ t('invoice') }} #</th>
|
||||
<th class="">{{ t('payment_date') }}</th>
|
||||
<th></th>
|
||||
<th class="">{{ t('method') }}</th>
|
||||
<th class="">{{ t('amount') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% set net_refunds = 0 %}
|
||||
{% set total_payments = 0%}
|
||||
{% for invoice in invoices %}
|
||||
{% if invoice.payments|e %}
|
||||
{% set parent_payment = invoice.payments|first %}
|
||||
|
||||
{% for payment in invoice.payments %}
|
||||
{% set currency_code = payment.currency %}
|
||||
|
||||
{% for pivot in payment.paymentables %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ pivot.invoice }}</td>
|
||||
<td class="">{{ pivot.created_at }}</td>
|
||||
<td></td>
|
||||
{%if pivot.is_credit %}
|
||||
<td class="">$credit_label {{ pivot.number }}</td>
|
||||
{%else%}
|
||||
<td class="">{{ payment.method }}</td>
|
||||
{%endif%}
|
||||
<td class="">{{ pivot.amount }} </td>
|
||||
</tr>
|
||||
{% if pivot.refunded_raw > 0 %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td>{{ pivot.invoice }}</td>
|
||||
<td>{{ pivot.updated_at }}</td>
|
||||
<td></td>
|
||||
<td>$refund_label</td>
|
||||
<td>({{ pivot.refunded }})</td>
|
||||
</tr>
|
||||
{% set net_refunds = net_refunds + pivot.refunded_raw %}
|
||||
{% endif %}
|
||||
{% set total_payments = total_payments + pivot.amount_raw %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td>{{ currency_code }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><b>$payments_label</b></td>
|
||||
<td><b>{{ total_payments|format_currency(currency_code) }}</b></td>
|
||||
</tr>
|
||||
|
||||
{% if net_refunds > 0 %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><b>$refunded_label</b></td>
|
||||
<td><b>({{ net_refunds|format_currency(currency_code) }})</b></td>
|
||||
</tr>
|
||||
<tr class="item-row border-bottom">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><b>$net_label</b></td>
|
||||
<td><b>{{ (total_payments-net_refunds)|format_currency(currency_code) }}</b> </td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if credits|e and show_credits %}
|
||||
<div id="entity-container">
|
||||
<h2>{{ t('credits') }}<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">{{ t('credit') }} #</th>
|
||||
<th class="">{{ t('credit_date') }}</th>
|
||||
<th class="">{{ t('total') }}</th>
|
||||
<th class="">{{ t('balance') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for credit in credits %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ credit.number }}</td>
|
||||
<td class="">{{ credit.date }}</td>
|
||||
<td class="">{{ credit.amount }}</td>
|
||||
<td class="">{{ credit.balance }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if aging and show_aging %}
|
||||
<div id="entity-container" style="break-inside: avoid;">
|
||||
<h2>{{ t('aging') }}<h2>
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="">
|
||||
<thead class="">
|
||||
<tr class="item-row border-bottom">
|
||||
{% for key, age in aging %}
|
||||
<th class="">{{ key }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="item-row">
|
||||
{% for key, age in aging %}
|
||||
<td class="aging-table">{{ age }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
288
resources/views/templates/statements/ts3.html
Normal file
288
resources/views/templates/statements/ts3.html
Normal file
@ -0,0 +1,288 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Vertial Statement - TemplateID #TS3 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
margin-bottom: 2rem;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
font-family: $font_name, Helvetica, sans-serif;
|
||||
font-size: $font_size;
|
||||
zoom: 80%;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
table tr td,
|
||||
table tr,
|
||||
th {
|
||||
font-size: $font_size !important;
|
||||
}
|
||||
|
||||
table {
|
||||
padding-top: 1rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
border: 0px solid #000;
|
||||
padding-right: 1rem;
|
||||
break-inside: auto;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: center;
|
||||
padding: 0.5rem;
|
||||
background-color: #7e7d80;
|
||||
color: #fff;
|
||||
font-size: 26px !important;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
td {
|
||||
text-align: center;
|
||||
border-right: 1px solid #000;
|
||||
border-bottom: 1px solid #000;
|
||||
height: 2rem;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr>td:first-child {
|
||||
border-left: 1px solid #000;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr>td:last-child {
|
||||
border-right: 1px solid #000;
|
||||
}
|
||||
|
||||
tr {
|
||||
break-inside: avoid;
|
||||
}
|
||||
|
||||
/* tr.border-bottom td{
|
||||
height: 2rem;
|
||||
border-bottom: 0px dashed $primary_color;
|
||||
} */
|
||||
|
||||
.container {
|
||||
display: flex;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.vertical-first {
|
||||
flex: 3%;
|
||||
border-left: 6px solid #000;
|
||||
}
|
||||
|
||||
.vertical-second {
|
||||
flex: 97%;
|
||||
margin-left: 2rem;
|
||||
}
|
||||
|
||||
[data-ref="table"]>tbody>tr:nth-child(odd) {
|
||||
background-color: #ebebeb;
|
||||
}
|
||||
|
||||
.centered-text {
|
||||
text-align: right;
|
||||
/* Center text within the transformed div */
|
||||
margin: 0;
|
||||
/* Reset margin to ensure full centering */
|
||||
color: $primary_color;
|
||||
font-size: 54px !important;
|
||||
letter-spacing: 10px;
|
||||
text-transform: uppercase;
|
||||
font-weight: bolder;
|
||||
}
|
||||
|
||||
.date-text {
|
||||
text-align: right;
|
||||
/* Center text within the transformed div */
|
||||
margin: 0;
|
||||
/* Reset margin to ensure full centering */
|
||||
padding-top: 3rem;
|
||||
font-size: 48px !important;
|
||||
letter-spacing: 5px;
|
||||
text-transform: uppercase;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.vertical-text {
|
||||
background-color: #f0f0f0;
|
||||
/* Change background color as desired */
|
||||
writing-mode: vertical-lr;
|
||||
/* Set vertical writing mode */
|
||||
text-orientation: mixed;
|
||||
/* Ensure text orientation */
|
||||
transform: rotate(-180deg);
|
||||
/* Rotate text to be upright */
|
||||
padding: 20px;
|
||||
justify-content: center;
|
||||
/* Center content horizontally */
|
||||
align-items: center;
|
||||
/* Center content vertically */
|
||||
}
|
||||
|
||||
.two-col-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
.company-logo {
|
||||
max-width: $company_logo_size;
|
||||
text-align: right;
|
||||
float: right;
|
||||
margin-right: 0;
|
||||
max-height: 200px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
#logo-container {
|
||||
display: inline-block;
|
||||
max-height: 200px;
|
||||
border: 0px solid #000;
|
||||
}
|
||||
|
||||
#company-wrapper {
|
||||
margin-left: auto;
|
||||
margin-right: 0;
|
||||
border: 0px solid #000;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
#client-details {
|
||||
line-height: 0.5;
|
||||
border: 0px solid #000;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
#company-details {
|
||||
line-height: 0.5;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
#company-address {
|
||||
line-height: 0.5;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
|
||||
#date-range {
|
||||
padding: 0;
|
||||
margin-top: 2rem;
|
||||
border: 0px solid #000;
|
||||
font-size: 1.3rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="container">
|
||||
<div class="vertical-first vertical-text">
|
||||
<p class="centered-text">$statement_label</p>
|
||||
</div>
|
||||
<div class="vertical-second">
|
||||
<div class="two-col-grid" style="border-bottom: 6px solid #000;" s>
|
||||
<div>
|
||||
<h1>$company.name</h1>
|
||||
</div>
|
||||
<div id="logo-container">
|
||||
<img src="$company.logo" class="company-logo">
|
||||
</div>
|
||||
</div>
|
||||
<div class="two-col-grid body-margin">
|
||||
<div id="client-details"></div>
|
||||
<div id="company-wrapper">
|
||||
<div id="company-details"></div>
|
||||
<div id="company-address"></div>
|
||||
<p id="date-range">$start_date - $end_date</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="min-width:100% width:100%; padding-bottom: 1rem; margin-bottom:1rem;">
|
||||
<ninja>
|
||||
{% if invoices|e %}
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" data-ref="table">
|
||||
<thead class="">
|
||||
<tr class="">
|
||||
<th class="">$date_label</th>
|
||||
<th class="">$invoice_label #</th>
|
||||
<th class="">{{ t('charges') }}</th>
|
||||
<th class="">{{ t('credits') }}</th>
|
||||
<th class="">{{ t('line_total') }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% set running_total = 0%}
|
||||
{% for invoice in invoices %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ invoice.date }}</td>
|
||||
<td class="">{{ invoice.number }}</td>
|
||||
<td class="">{{ invoice.amount }}</td>
|
||||
<td class="">{%set running_total = running_total + invoice.amount_raw %}</td>
|
||||
<td class="">{{ running_total|format_currency(currency_code) }}</td>
|
||||
</tr>
|
||||
{% for payment in invoice.payments %}
|
||||
{% for pivot in payment.paymentables %}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ invoice.date }}</td>
|
||||
<td class="">{{ invoice.number }}</td>
|
||||
<td class="">{%set running_total = running_total - pivot.amount_raw %}</td>
|
||||
<td class="">{{ pivot.amount }}</td>
|
||||
<td class="">{{ running_total|format_currency(currency_code) }}</td>
|
||||
</tr>
|
||||
{% if pivot.refunded_raw > 0%}
|
||||
<tr class="item-row border-bottom">
|
||||
<td class="">{{ invoice.date }}</td>
|
||||
<td class="">{{ invoice.number }} $refund_label</td>
|
||||
<td class="">{%set running_total = running_total + pivot.refunded_raw %}</td>
|
||||
<td class="">({{ pivot.refunded }})</td>
|
||||
<td class="">{{ running_total|format_currency(currency_code) }}</td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
<ninja>
|
||||
{% if aging and show_aging %}
|
||||
<div id="entity-container" style="break-inside: avoid;">
|
||||
<table width="100%" cellspacing="0" cellpadding="0" class="" data-ref="table">
|
||||
<thead class="">
|
||||
<tr class="item-row border-bottom">
|
||||
{% for key, age in aging %}
|
||||
<th class="">{{ key }}</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="item-row">
|
||||
{% for key, age in aging %}
|
||||
<td class="aging-table">{{ age }}</td>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
</ninja>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
72
resources/views/templates/tasks/tt10.html
Normal file
72
resources/views/templates/tasks/tt10.html
Normal file
@ -0,0 +1,72 @@
|
||||
<!DOCTYPE html>
|
||||
<!-- Tasks - TemplateID #TT10 -->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<style>
|
||||
html {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Ubuntu, sans-serif;
|
||||
}
|
||||
|
||||
table {
|
||||
margin-top: 2rem;
|
||||
min-width: 100%;
|
||||
table-layout: fixed;
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
.table-header>tr>th {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
.table-body>tr>td {
|
||||
border-bottom: solid 1px #efefef;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align: left;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 6px;
|
||||
padding-bottom: 6px;
|
||||
}
|
||||
|
||||
td {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<ninja>
|
||||
{% if tasks %}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Description</th>
|
||||
<th>Duration</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for task in tasks %}
|
||||
{% for log in task.time_log %}
|
||||
<tr>
|
||||
<td>{{ log.start_date }}</td>
|
||||
<td>{{ log.description }}</td>
|
||||
<td>{{ log.duration|date('H:i:s') }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endif %}
|
||||
</ninja>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -16,10 +16,7 @@ use App\Http\Controllers\UserController;
|
||||
use App\Http\Controllers\WePayController;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
//Auth::routes(['password.reset' => false]);
|
||||
|
||||
Route::get('/', [BaseController::class, 'flutterRoute'])->middleware('guest');
|
||||
// Route::get('self-update', [SelfUpdateController::class, 'update'])->middleware('guest');
|
||||
|
||||
Route::get('setup', [SetupController::class, 'index'])->middleware('guest');
|
||||
Route::post('setup', [SetupController::class, 'doSetup'])->middleware('guest');
|
||||
@ -37,15 +34,8 @@ Route::post('password/reset', [ResetPasswordController::class, 'reset'])->middle
|
||||
Route::get('wepay/signup/{token}', [WePayController::class, 'signup'])->name('wepay.signup');
|
||||
Route::get('wepay/finished', [WePayController::class, 'finished'])->name('wepay.finished');
|
||||
|
||||
/*
|
||||
* Social authentication
|
||||
*/
|
||||
|
||||
Route::get('auth/{provider}', [LoginController::class, 'redirectToProvider']);
|
||||
|
||||
/*
|
||||
* Inbound routes requiring DB Lookup
|
||||
*/
|
||||
Route::middleware('url_db')->group(function () {
|
||||
Route::get('/user/confirm/{confirmation_code}', [UserController::class, 'confirm']);
|
||||
Route::post('/user/confirm/{confirmation_code}', [UserController::class, 'confirmWithPassword']);
|
||||
|
Loading…
Reference in New Issue
Block a user