Add File based templates

This commit is contained in:
gohil jayvirsinh
2021-06-19 12:11:21 +00:00
committed by Mohit Panjwani
parent 00961bcae1
commit d1dd704cdf
58 changed files with 277 additions and 382 deletions

View File

@@ -2,6 +2,10 @@
namespace Crater\Models;
use Crater\Models\Company;
use Crater\Models\Tax;
use Illuminate\Database\Eloquent\Model;
use Crater\Models\CompanySetting;
use App;
use Barryvdh\DomPDF\Facade as PDF;
use Carbon\Carbon;
@@ -9,7 +13,6 @@ use Crater\Mail\SendEstimateMail;
use Crater\Traits\GeneratesPdfTrait;
use Crater\Traits\HasCustomFieldsTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
@@ -130,11 +133,6 @@ class Estimate extends Model implements HasMedia
return $this->hasMany(Tax::class);
}
public function estimateTemplate()
{
return $this->belongsTo('Crater\Models\EstimateTemplate');
}
public function getEstimateNumAttribute()
{
$position = $this->strposX($this->estimate_number, "-", 1) + 1;
@@ -315,8 +313,7 @@ class Estimate extends Model implements HasMedia
return Estimate::with([
'items.taxes',
'user',
'estimateTemplate',
'taxes',
'taxes'
])
->find($estimate->id);
}
@@ -341,11 +338,10 @@ class Estimate extends Model implements HasMedia
}
return Estimate::with([
'items.taxes',
'user',
'estimateTemplate',
'taxes',
])
'items.taxes',
'user',
'taxes'
])
->find($this->id);
}
@@ -431,7 +427,7 @@ class Estimate extends Model implements HasMedia
}
}
$estimateTemplate = EstimateTemplate::find($this->estimate_template_id);
$estimateTemplate = self::find($this->id)->template_name;
$company = Company::find($this->company_id);
$locale = CompanySetting::getSetting('language', $company->id);
@@ -451,7 +447,7 @@ class Estimate extends Model implements HasMedia
'taxes' => $taxes,
]);
return PDF::loadView('app.pdf.estimate.'.$estimateTemplate->view);
return PDF::loadView('app.pdf.estimate.'.$estimateTemplate);
}
public function getCompanyAddress()

View File

@@ -1,23 +0,0 @@
<?php
namespace Crater\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class EstimateTemplate extends Model
{
use HasFactory;
protected $fillable = ['path', 'view', 'name'];
public function estimates()
{
return $this->hasMany(Estimate::class);
}
public function getPathAttribute($value)
{
return url($value);
}
}

View File

@@ -2,6 +2,12 @@
namespace Crater\Models;
use Crater\Models\Company;
use Crater\Models\CompanySetting;
use Crater\Models\Currency;
use Crater\Models\Tax;
use Illuminate\Database\Eloquent\Model;
use Crater\Models\Payment;
use App;
use Barryvdh\DomPDF\Facade as PDF;
use Carbon\Carbon;
@@ -9,7 +15,6 @@ use Crater\Mail\SendInvoiceMail;
use Crater\Traits\GeneratesPdfTrait;
use Crater\Traits\HasCustomFieldsTrait;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Auth;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
@@ -141,11 +146,6 @@ class Invoice extends Model implements HasMedia
return $this->belongsTo('Crater\Models\User', 'creator_id');
}
public function invoiceTemplate()
{
return $this->belongsTo(InvoiceTemplate::class);
}
public function getInvoicePdfUrlAttribute()
{
return url('/invoices/pdf/'.$this->unique_hash);
@@ -366,11 +366,10 @@ class Invoice extends Model implements HasMedia
}
$invoice = Invoice::with([
'items',
'user',
'invoiceTemplate',
'taxes',
])
'items',
'user',
'taxes'
])
->find($invoice->id);
return $invoice;
@@ -418,11 +417,10 @@ class Invoice extends Model implements HasMedia
}
$invoice = Invoice::with([
'items',
'user',
'invoiceTemplate',
'taxes',
])
'items',
'user',
'taxes'
])
->find($this->id);
return $invoice;
@@ -512,7 +510,7 @@ class Invoice extends Model implements HasMedia
}
}
$invoiceTemplate = InvoiceTemplate::find($this->invoice_template_id);
$invoiceTemplate = self::find($this->id)->template_name;
$company = Company::find($this->company_id);
$locale = CompanySetting::getSetting('language', $company->id);
@@ -532,7 +530,7 @@ class Invoice extends Model implements HasMedia
'taxes' => $taxes,
]);
return PDF::loadView('app.pdf.invoice.'.$invoiceTemplate->view);
return PDF::loadView('app.pdf.invoice.'.$invoiceTemplate);
}
public function getEmailAttachmentSetting()

View File

@@ -1,23 +0,0 @@
<?php
namespace Crater\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class InvoiceTemplate extends Model
{
use HasFactory;
protected $fillable = ['path', 'view', 'name'];
public function invoices()
{
return $this->hasMany(Invoice::class);
}
public function getPathAttribute($value)
{
return url($value);
}
}