1313 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			1313 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Abstracts\View\Components;
 | |
| 
 | |
| use App\Abstracts\View\Components\Transaction as Base;
 | |
| use App\Models\Common\Media;
 | |
| use App\Traits\DateTime;
 | |
| use App\Traits\Transactions;
 | |
| use App\Utilities\Modules;
 | |
| use File;
 | |
| use Illuminate\Support\Facades\Log;
 | |
| use Illuminate\Support\Facades\URL;
 | |
| use Illuminate\Support\Str;
 | |
| use Image;
 | |
| use Intervention\Image\Exception\NotReadableException;
 | |
| use Illuminate\Support\Facades\Storage;
 | |
| 
 | |
| abstract class TransactionShow extends Base
 | |
| {
 | |
|     use DateTime, Transactions;
 | |
| 
 | |
|     public $type;
 | |
| 
 | |
|     public $transaction;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $transactionTemplate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $logo;
 | |
| 
 | |
|     /** @var array */
 | |
|     public $payment_methods;
 | |
| 
 | |
|     public $date_format;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routePrefix;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonAddNew;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonMoreActions;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonEdit;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonDuplicate;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonPrint;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonShare;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonEmail;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonPdf;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonDelete;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $checkButtonReconciled;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonGroupDivider1;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonGroupDivider2;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideButtonGroupDivider3;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $permissionCreate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $permissionUpdate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $permissionDelete;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonAddNew;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonEdit;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonDuplicate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonPrint;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeContactShow;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $signedUrl;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonEmail;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonPdf;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeButtonDelete;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textDeleteModal;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeader;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeaderAccount;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeaderCategory;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeaderContact;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeaderAmount;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideHeaderPaidAt;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHeaderAccount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHeaderCategory;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHeaderContact;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHeaderAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHeaderPaidAt;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classHeaderAccount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classHeaderCategory;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classHeaderContact;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classHeaderAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classHeaderPaidAt;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompany;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyLogo;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyDetails;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyName;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyAddress;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyTaxNumber;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyPhone;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCompanyEmail;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContentTitle;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hidePaidAt;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideAccount;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideCategory;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hidePaymentMethods;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideReference;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideDescription;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textContentTitle;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textPaidAt;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textAccount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textCategory;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textPaymentMethods;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textReference;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textDescription;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textPaidBy;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContact;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactInfo;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactName;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactAddress;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactTaxNumber;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactPhone;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideContactEmail;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelated;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelatedDocumentNumber;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelatedContact;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelatedDocumentDate;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelatedDocumentAmount;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRelatedAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedTransansaction;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedDocumentNumber;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedContact;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedDocumentDate;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedDocumentAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRelatedAmount;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $routeDocumentShow;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideAttachment;
 | |
| 
 | |
|     public $attachment;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideFooter;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideFooterHistories;
 | |
| 
 | |
|     public $histories;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textHistories;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $classFooterHistories;
 | |
| 
 | |
|     /** @var string */
 | |
|     public $textRecurringType;
 | |
| 
 | |
|     /** @var bool */
 | |
|     public $hideRecurringMessage;
 | |
| 
 | |
|     /**
 | |
|      * Create a new component instance.
 | |
|      *
 | |
|      * @return void
 | |
|      */
 | |
|     public function __construct(
 | |
|         $type, $transaction, $transactionTemplate = '', $logo = '', array $payment_methods = [],
 | |
|         bool $hideButtonAddNew = false, bool $hideButtonMoreActions = false, bool $hideButtonEdit = false, bool $hideButtonDuplicate = false, bool $hideButtonPrint = false, bool $hideButtonShare = false,
 | |
|         bool $hideButtonEmail = false, bool $hideButtonPdf = false, bool $hideButtonDelete = false, bool $checkButtonReconciled = true,
 | |
|         bool $hideButtonGroupDivider1 = false, bool $hideButtonGroupDivider2 = false, bool $hideButtonGroupDivider3 = false,
 | |
|         string $permissionCreate = '', string $permissionUpdate = '', string $permissionDelete = '',
 | |
|         string $routeButtonAddNew = '', string $routeButtonEdit = '', string $routeButtonDuplicate = '', string $routeButtonPrint = '', string $signedUrl = '',
 | |
|         string $routeButtonEmail = '', string $routeButtonPdf = '', string $routeButtonDelete = '', string $routeContactShow = '',
 | |
|         string $textDeleteModal = '',
 | |
|         bool $hideHeader = false, bool $hideHeaderAccount = false, bool $hideHeaderCategory = false, bool $hideHeaderContact = false, bool $hideHeaderAmount = false, bool $hideHeaderPaidAt = false,
 | |
|         string $textHeaderAccount = '', string $textHeaderCategory = '', string $textHeaderContact = '', string $textHeaderAmount = '', string $textHeaderPaidAt = '',
 | |
|         string $classHeaderAccount = '', string $classHeaderCategory = '', string $classHeaderContact = '', string $classHeaderAmount = '', string $classHeaderPaidAt = '',
 | |
| 
 | |
|         bool $hideCompany = false, bool $hideCompanyLogo = false, bool $hideCompanyDetails = false, bool $hideCompanyName = false, bool $hideCompanyAddress = false,
 | |
|         bool $hideCompanyTaxNumber = false, bool $hideCompanyPhone = false, bool $hideCompanyEmail = false,
 | |
|         bool $hideContentTitle = false,bool $hidePaidAt = false, bool $hideAccount = false, bool $hideCategory = false, bool $hidePaymentMethods = false, bool $hideReference = false, bool $hideDescription = false,
 | |
|         bool $hideAmount = false,
 | |
|         string $textContentTitle = '', string $textPaidAt = '', string $textAccount = '', string $textCategory = '', string $textPaymentMethods = '', string $textReference = '', string $textDescription = '',
 | |
|         string $textAmount = '', string $textPaidBy = '',
 | |
|         bool $hideContact = false, bool $hideContactInfo = false, bool $hideContactName = false, bool $hideContactAddress = false, bool $hideContactTaxNumber = false,
 | |
|         bool $hideContactPhone = false, bool $hideContactEmail = false,
 | |
|         bool $hideRelated = false, bool $hideRelatedDocumentNumber = false, bool $hideRelatedContact = false, bool $hideRelatedDocumentDate = false, bool $hideRelatedDocumentAmount = false, bool $hideRelatedAmount = false,
 | |
|         string $textRelatedTransansaction = '', string $textRelatedDocumentNumber = '', string $textRelatedContact = '', string $textRelatedDocumentDate = '', string $textRelatedDocumentAmount = '', string $textRelatedAmount = '',
 | |
|         string $routeDocumentShow = '',
 | |
| 
 | |
|         bool $hideAttachment = false, $attachment = [],
 | |
|         bool $hideFooter = false, bool $hideFooterHistories = false, $histories = [],
 | |
|         string $textHistories = '', string $classFooterHistories = '', string $textRecurringType = '', bool $hideRecurringMessage = false
 | |
|     ) {
 | |
|         $this->type = $type;
 | |
|         $this->transaction = $transaction;
 | |
|         $this->transactionTemplate = $this->getTransactionTemplate($type, $transactionTemplate);
 | |
|         $this->logo = $this->getLogo($logo);
 | |
|         $this->payment_methods = ($payment_methods) ?: Modules::getPaymentMethods('all');
 | |
|         $this->date_format = $this->getCompanyDateFormat();
 | |
|         $this->textRecurringType = $this->getTextRecurringType($type, $textRecurringType);
 | |
|         $this->hideRecurringMessage = $hideRecurringMessage;
 | |
|         $this->routePrefix = $this->getRoutePrefix($type);
 | |
| 
 | |
|         // Navbar Hide
 | |
|         $this->hideButtonAddNew = $hideButtonAddNew;
 | |
|         $this->hideButtonMoreActions = $hideButtonMoreActions;
 | |
|         $this->hideButtonEdit = $hideButtonEdit;
 | |
|         $this->hideButtonDuplicate  = $hideButtonDuplicate;
 | |
|         $this->hideButtonPrint  = $hideButtonPrint;
 | |
|         $this->hideButtonShare = $hideButtonShare;
 | |
|         $this->hideButtonEmail = $hideButtonEmail;
 | |
|         $this->hideButtonPdf  = $hideButtonPdf;
 | |
|         $this->hideButtonDelete = $hideButtonDelete;
 | |
|         $this->checkButtonReconciled = $checkButtonReconciled;
 | |
|         $this->hideButtonGroupDivider1 = $hideButtonGroupDivider1;
 | |
|         $this->hideButtonGroupDivider2 = $hideButtonGroupDivider2;
 | |
|         $this->hideButtonGroupDivider3 = $hideButtonGroupDivider3;
 | |
| 
 | |
|         // Navbar Permission
 | |
|         $this->permissionCreate = $this->getPermissionCreate($type, $permissionCreate);
 | |
|         $this->permissionUpdate = $this->getPermissionUpdate($type, $permissionUpdate);
 | |
|         $this->permissionDelete = $this->getPermissionDelete($type, $permissionDelete);
 | |
| 
 | |
|         // Navbar route
 | |
|         $this->routeButtonAddNew = $this->getRouteButtonAddNew($type, $routeButtonAddNew);
 | |
|         $this->routeButtonEdit = $this->getRouteButtonEdit($type, $routeButtonEdit);
 | |
|         $this->routeButtonDuplicate = $this->getRouteButtonDuplicate($type, $routeButtonDuplicate);
 | |
|         $this->routeButtonPrint = $this->getRouteButtonPrint($type, $routeButtonPrint);
 | |
|         $this->signedUrl = $this->getSignedUrl($type, $signedUrl);
 | |
|         $this->routeButtonEmail = $this->getRouteButtonEmail($type, $routeButtonEmail);
 | |
|         $this->routeButtonPdf = $this->getRouteButtonPdf($type, $routeButtonPdf);
 | |
|         $this->routeButtonDelete = $this->getRouteButtonDelete($type, $routeButtonDelete);
 | |
|         $this->routeContactShow = $this->getRouteContactShow($type, $routeContactShow);
 | |
| 
 | |
|         // Navbar Text
 | |
|         $this->textDeleteModal = $textDeleteModal;
 | |
| 
 | |
|         // Header Hide
 | |
|         $this->hideHeader = $hideHeader;
 | |
| 
 | |
|         $this->hideHeaderAccount = $hideHeaderAccount;
 | |
|         $this->hideHeaderCategory = $hideHeaderCategory;
 | |
|         $this->hideHeaderContact = $hideHeaderContact;
 | |
|         $this->hideHeaderCategory = $hideHeaderCategory;
 | |
|         $this->hideHeaderAmount = $hideHeaderAmount;
 | |
|         $this->hideHeaderPaidAt = $hideHeaderPaidAt;
 | |
| 
 | |
|         // Header Text
 | |
|         $this->textHeaderAccount = $this->getTextHeaderAccount($type, $textHeaderAccount);
 | |
|         $this->textHeaderCategory = $this->getTextHeaderCategory($type, $textHeaderCategory);
 | |
|         $this->textHeaderContact = $this->getTextHeaderContact($type, $textHeaderContact);
 | |
|         $this->textHeaderAmount = $this->getTextHeaderAmount($type, $textHeaderAmount);
 | |
|         $this->textHeaderPaidAt = $this->gettextHeaderPaidAt($type, $textHeaderPaidAt);
 | |
| 
 | |
|         // Header Class
 | |
|         $this->classHeaderAccount = $this->getClassHeaderAccount($type, $classHeaderAccount);
 | |
|         $this->classHeaderContact = $this->getClassHeaderContact($type, $classHeaderContact);
 | |
|         $this->classHeaderCategory = $this->getClassHeaderCategory($type, $classHeaderCategory);
 | |
|         $this->classHeaderAmount = $this->getClassHeaderAmount($type, $classHeaderAmount);
 | |
|         $this->classHeaderPaidAt = $this->getClassHeaderPaidAt($type, $classHeaderPaidAt);
 | |
| 
 | |
|         // Hide Attachment
 | |
|         $this->hideAttachment = $hideAttachment;
 | |
| 
 | |
|         // Company Information Hide checker
 | |
|         $this->hideCompany = $hideCompany;
 | |
|         $this->hideCompanyLogo = $hideCompanyLogo;
 | |
|         $this->hideCompanyDetails = $hideCompanyDetails;
 | |
|         $this->hideCompanyName = $hideCompanyName;
 | |
|         $this->hideCompanyAddress = $hideCompanyAddress;
 | |
|         $this->hideCompanyTaxNumber = $hideCompanyTaxNumber;
 | |
|         $this->hideCompanyPhone = $hideCompanyPhone;
 | |
|         $this->hideCompanyEmail = $hideCompanyEmail;
 | |
| 
 | |
|         // Transaction Information Hide checker
 | |
|         $this->hideContentTitle = $hideContentTitle;
 | |
|         $this->hidePaidAt = $hidePaidAt;
 | |
|         $this->hideAccount = $hideAccount;
 | |
|         $this->hideCategory = $hideCategory;
 | |
|         $this->hidePaymentMethods = $hidePaymentMethods;
 | |
|         $this->hideReference = $hideReference;
 | |
|         $this->hideDescription = $hideDescription;
 | |
|         $this->hideAmount = $hideAmount;
 | |
| 
 | |
|         // Transaction Information Text
 | |
|         $this->textContentTitle = $this->getTextContentTitle($type, $textContentTitle);
 | |
|         $this->textPaidAt = $this->getTextPaidAt($type, $textPaidAt);
 | |
|         $this->textAccount = $this->getTextAccount($type, $textAccount);
 | |
|         $this->textCategory = $this->getTextCategory($type, $textCategory);
 | |
|         $this->textPaymentMethods = $this->getTextPaymentMethods($type, $textPaymentMethods);
 | |
|         $this->textReference = $this->getTextReference($type, $textReference);
 | |
|         $this->textDescription = $this->getTextDescription($type, $textDescription);
 | |
|         $this->textAmount = $this->getTextAmount($type, $textAmount);
 | |
|         $this->textPaidBy = $this->getTextPaidBy($type, $textPaidBy);
 | |
| 
 | |
|         // Contact Information Hide checker
 | |
|         $this->hideContact = $hideContact;
 | |
|         $this->hideContactInfo = $hideContactInfo;
 | |
|         $this->hideContactName = $hideContactName;
 | |
|         $this->hideContactAddress = $hideContactAddress;
 | |
|         $this->hideContactTaxNumber = $hideContactTaxNumber;
 | |
|         $this->hideContactPhone = $hideContactPhone;
 | |
|         $this->hideContactEmail = $hideContactEmail;
 | |
| 
 | |
|         // Related Information Hide checker
 | |
|         $this->hideRelated = $hideRelated;
 | |
|         $this->hideRelatedDocumentNumber = $hideRelatedDocumentNumber;
 | |
|         $this->hideRelatedContact = $hideRelatedContact;
 | |
|         $this->hideRelatedDocumentDate = $hideRelatedDocumentDate;
 | |
|         $this->hideRelatedDocumentAmount = $hideRelatedDocumentAmount;
 | |
|         $this->hideRelatedAmount = $hideRelatedAmount;
 | |
| 
 | |
|         // Related Information Text
 | |
|         $this->textRelatedTransansaction = $this->getTextRelatedTransansaction($type, $textRelatedTransansaction);
 | |
|         $this->textRelatedDocumentNumber = $this->getTextRelatedDocumentNumber($type, $textRelatedDocumentNumber);
 | |
|         $this->textRelatedContact = $this->getTextRelatedContact($type, $textRelatedContact);
 | |
|         $this->textRelatedDocumentDate = $this->getTextRelatedDocumentDate($type, $textRelatedDocumentDate);
 | |
|         $this->textRelatedDocumentAmount = $this->getTextRelatedDocumentAmount($type, $textRelatedDocumentAmount);
 | |
|         $this->textRelatedAmount = $this->getTextRelatedAmount($type, $textRelatedAmount);
 | |
| 
 | |
|         $this->routeDocumentShow = $this->routeDocumentShow($type, $routeDocumentShow);
 | |
| 
 | |
|         // Attachment data..
 | |
|         $this->attachment = '';
 | |
| 
 | |
|         if (!empty($attachment)) {
 | |
|             $this->attachment = $attachment;
 | |
|         } else if (!empty($transaction)) {
 | |
|             $this->attachment = $transaction->attachment;
 | |
|         }
 | |
| 
 | |
|         // Histories Hide
 | |
|         $this->hideFooter = $hideFooter;
 | |
|         $this->hideFooterHistories = $hideFooterHistories;
 | |
| 
 | |
|         // Histories
 | |
|         $this->histories = $this->getHistories($histories);
 | |
|         $this->textHistories = $this->getTextHistories($type, $textHistories);
 | |
|         $this->classFooterHistories = $this->getClassFooterHistories($type, $classFooterHistories);
 | |
|     }
 | |
| 
 | |
|     protected function getTransactionTemplate($type, $transactionTemplate)
 | |
|     {
 | |
|         if (!empty($transactionTemplate)) {
 | |
|             return $transactionTemplate;
 | |
|         }
 | |
| 
 | |
|         if ($template = config('type.' . $type . 'template', false)) {
 | |
|             return $template;
 | |
|         }
 | |
| 
 | |
|         $transactionTemplate = setting($this->getSettingKey($type, 'template')) ?: 'default';
 | |
| 
 | |
|         return $transactionTemplate;
 | |
|     }
 | |
| 
 | |
|     protected function getLogo($logo)
 | |
|     {
 | |
|         if (!empty($logo)) {
 | |
|             return $logo;
 | |
|         }
 | |
| 
 | |
|         $media_id = (!empty($this->transaction->contact->logo) && !empty($this->transaction->contact->logo->id)) ? $this->transaction->contact->logo->id : setting('company.logo');
 | |
| 
 | |
|         $media = Media::find($media_id);
 | |
| 
 | |
|         if (!empty($media)) {
 | |
|             $path = $media->getDiskPath();
 | |
| 
 | |
|             if (Storage::missing($path)) {
 | |
|                 return $logo;
 | |
|             }
 | |
|         } else {
 | |
|             $path = base_path('public/img/company.png');
 | |
|         }
 | |
| 
 | |
|         try {
 | |
|             $image = Image::cache(function($image) use ($media, $path) {
 | |
|                 $width = setting('invoice.logo_size_width');
 | |
|                 $height = setting('invoice.logo_size_height');
 | |
| 
 | |
|                 if ($media) {
 | |
|                     $image->make(Storage::get($path))->resize($width, $height)->encode();
 | |
|                 } else {
 | |
|                     $image->make($path)->resize($width, $height)->encode();
 | |
|                 }
 | |
|             });
 | |
|         } catch (NotReadableException | \Exception $e) {
 | |
|             Log::info('Company ID: ' . company_id() . ' components/transactionshow.php exception.');
 | |
|             Log::info($e->getMessage());
 | |
| 
 | |
|             $path = base_path('public/img/company.png');
 | |
| 
 | |
|             $image = Image::cache(function($image) use ($path) {
 | |
|                 $width = setting('invoice.logo_size_width');
 | |
|                 $height = setting('invoice.logo_size_height');
 | |
| 
 | |
|                 $image->make($path)->resize($width, $height)->encode();
 | |
|             });
 | |
|         }
 | |
| 
 | |
|         if (empty($image)) {
 | |
|             return $logo;
 | |
|         }
 | |
| 
 | |
|         $extension = File::extension($path);
 | |
| 
 | |
|         return 'data:image/' . $extension . ';base64,' . base64_encode($image);
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonAddNew($type, $routeButtonAddNew)
 | |
|     {
 | |
|         if (!empty($routeButtonAddNew)) {
 | |
|             return $routeButtonAddNew;
 | |
|         }
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'create');
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.create';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonEdit($type, $routeButtonEdit)
 | |
|     {
 | |
|         if (!empty($routeButtonEdit)) {
 | |
|             return $routeButtonEdit;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'edit', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.edit';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonDuplicate($type, $routeButtonDuplicate)
 | |
|     {
 | |
|         if (!empty($routeButtonDuplicate)) {
 | |
|             return $routeButtonDuplicate;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'duplicate', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.duplicate';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonPrint($type, $routeButtonPrint)
 | |
|     {
 | |
|         if (!empty($routeButtonPrint)) {
 | |
|             return $routeButtonPrint;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'print', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.print';
 | |
|     }
 | |
| 
 | |
|     protected function getSignedUrl($type, $signedUrl)
 | |
|     {
 | |
|         if (!empty($signedUrl)) {
 | |
|             return $signedUrl;
 | |
|         }
 | |
| 
 | |
|         $page = config('type.' . $type . '.route.prefix');
 | |
|         $alias = config('type.' . $type . '.alias');
 | |
| 
 | |
|         $route = '';
 | |
| 
 | |
|         if (!empty($alias)) {
 | |
|             $route .= $alias . '.';
 | |
|         }
 | |
| 
 | |
|         $route .= 'signed.' . $page . '.show';
 | |
| 
 | |
|         try {
 | |
|             route($route, [$this->transaction->id, 'company_id' => company_id()]);
 | |
| 
 | |
|             $signedUrl = URL::signedRoute($route, [$this->transaction->id]);
 | |
|         } catch (\Exception $e) {
 | |
|             $signedUrl = URL::signedRoute('signed.payments.show', [$this->transaction->id]);
 | |
|         }
 | |
| 
 | |
|         return $signedUrl;
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonEmail($type, $routeButtonEmail)
 | |
|     {
 | |
|         if (!empty($routeButtonEmail)) {
 | |
|             return $routeButtonEmail;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'email', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.email';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonPdf($type, $routeButtonPdf)
 | |
|     {
 | |
|         if (!empty($routeButtonPdf)) {
 | |
|             return $routeButtonPdf;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'pdf', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.pdf';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteButtonDelete($type, $routeButtonDelete)
 | |
|     {
 | |
|         if (!empty($routeButtonDelete)) {
 | |
|             return $routeButtonDelete;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($type, 'destroy', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.destroy';
 | |
|     }
 | |
| 
 | |
|     protected function getRouteContactShow($type, $routeContactShow)
 | |
|     {
 | |
|         if (!empty($routeContactShow)) {
 | |
|             return $routeContactShow;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = Str::plural(config('type.' . $type . '.contact_type'), 2) . '.show';
 | |
| 
 | |
|         try {
 | |
|             route($route, $parameter);
 | |
|         } catch (\Exception $e) {
 | |
|             try {
 | |
|                 $route = Str::plural($type, 2) . '.' . $config_key;
 | |
| 
 | |
|                 route($route, $parameter);
 | |
|             } catch (\Exception $e) {
 | |
|                 $route = '';
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'customers.show';
 | |
|     }
 | |
| 
 | |
|     protected function getPermissionCreate($type, $permissionCreate)
 | |
|     {
 | |
|         if (!empty($permissionCreate)) {
 | |
|             return $permissionCreate;
 | |
|         }
 | |
| 
 | |
|         $permissionCreate = $this->getPermissionFromConfig($type, 'create');
 | |
| 
 | |
|         return $permissionCreate;
 | |
|     }
 | |
| 
 | |
|     protected function getPermissionUpdate($type, $permissionUpdate)
 | |
|     {
 | |
|         if (!empty($permissionUpdate)) {
 | |
|             return $permissionUpdate;
 | |
|         }
 | |
| 
 | |
|         $permissionUpdate = $this->getPermissionFromConfig($type, 'update');
 | |
| 
 | |
|         return $permissionUpdate;
 | |
|     }
 | |
| 
 | |
|     protected function getPermissionDelete($type, $permissionDelete)
 | |
|     {
 | |
|         if (!empty($permissionDelete)) {
 | |
|             return $permissionDelete;
 | |
|         }
 | |
| 
 | |
|         $permissionDelete = $this->getPermissionFromConfig($type, 'delete');
 | |
| 
 | |
|         return $permissionDelete;
 | |
|     }
 | |
| 
 | |
|     protected function getTextHeaderAccount($type, $textHeaderAccount)
 | |
|     {
 | |
|         if (!empty($textHeaderAccount)) {
 | |
|             return $textHeaderAccount;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'header_account', 'accounts', 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.accounts';
 | |
|     }
 | |
| 
 | |
|     protected function getTextHeaderCategory($type, $textHeaderCategory)
 | |
|     {
 | |
|         if (!empty($textHeaderCategory)) {
 | |
|             return $textHeaderCategory;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'header_category', 'categories', 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.categories';
 | |
|     }
 | |
| 
 | |
|     protected function getTextHeaderContact($type, $textHeaderContact)
 | |
|     {
 | |
|         if (!empty($textHeaderContact)) {
 | |
|             return $textHeaderContact;
 | |
|         }
 | |
| 
 | |
|         $default_key = Str::plural(config('type.' . $type . '.contact_type'), 2);
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'header_contact', $default_key, 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.customers';
 | |
|     }
 | |
| 
 | |
|     protected function getTextHeaderAmount($type, $textHeaderAmount)
 | |
|     {
 | |
|         if (!empty($textHeaderAmount)) {
 | |
|             return $textHeaderAmount;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'header_amount', 'amount');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.amount';
 | |
|     }
 | |
| 
 | |
|     protected function getTextHeaderPaidAt($type, $textHeaderPaidAt)
 | |
|     {
 | |
|         if (!empty($textHeaderPaidAt)) {
 | |
|             return $textHeaderPaidAt;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'header_paid_at', 'date');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.date';
 | |
|     }
 | |
| 
 | |
|     protected function getClassHeaderAccount($type, $classHeaderAccount)
 | |
|     {
 | |
|         if (!empty($classHeaderAccount)) {
 | |
|             return $classHeaderAccount;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'header_account');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-4 col-lg-3';
 | |
|     }
 | |
| 
 | |
|     protected function getClassHeaderContact($type, $classHeaderContact)
 | |
|     {
 | |
|         if (!empty($classHeaderContact)) {
 | |
|             return $classHeaderContact;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'header_contact');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-4 col-lg-2';
 | |
|     }
 | |
| 
 | |
|     protected function getClassHeaderCategory($type, $classHeaderCategory)
 | |
|     {
 | |
|         if (!empty($classHeaderCategory)) {
 | |
|             return $classHeaderCategory;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'header_category');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-4 col-lg-3';
 | |
|     }
 | |
| 
 | |
|     protected function getClassHeaderAmount($type, $classHeaderAmount)
 | |
|     {
 | |
|         if (!empty($classHeaderAmount)) {
 | |
|             return $classHeaderAmount;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'header_amount');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-4 col-lg-2';
 | |
|     }
 | |
| 
 | |
|     protected function getClassHeaderPaidAt($type, $classHeaderPaidAt)
 | |
|     {
 | |
|         if (!empty($classHeaderPaidAt)) {
 | |
|             return $classHeaderPaidAt;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'header_paid_at');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-4 col-lg-2';
 | |
|     }
 | |
| 
 | |
|     protected function getTextContentTitle($type, $textContentTitle)
 | |
|     {
 | |
|         if (!empty($textContentTitle)) {
 | |
|             return $textContentTitle;
 | |
|         }
 | |
| 
 | |
|         switch ($type) {
 | |
|             case 'bill':
 | |
|             case 'expense':
 | |
|             case 'purchase':
 | |
|                 $default_key = 'payment_made';
 | |
|                 break;
 | |
|             default:
 | |
|                 $default_key = 'revenue_received';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, $type . '_made', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.revenue_received';
 | |
|     }
 | |
| 
 | |
|     protected function getTextPaidAt($type, $textPaidAt)
 | |
|     {
 | |
|         if (!empty($textPaidAt)) {
 | |
|             return $textPaidAt;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'paid_at', 'date');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.date';
 | |
|     }
 | |
| 
 | |
|     protected function getTextAccount($type, $textAccount)
 | |
|     {
 | |
|         if (!empty($textAccount)) {
 | |
|             return $textAccount;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'accounts', 'accounts', 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.accounts';
 | |
|     }
 | |
| 
 | |
|     protected function getTextCategory($type, $textCategory)
 | |
|     {
 | |
|         if (!empty($textCategory)) {
 | |
|             return $textCategory;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'categories', 'categories', 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.categories';
 | |
|     }
 | |
| 
 | |
|     protected function getTextPaymentMethods($type, $textPaymentMethods)
 | |
|     {
 | |
|         if (!empty($textPaymentMethods)) {
 | |
|             return $textPaymentMethods;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'payment_methods', 'payment_methods', 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.payment_methods';
 | |
|     }
 | |
| 
 | |
|     protected function getTextReference($type, $textReference)
 | |
|     {
 | |
|         if (!empty($textReference)) {
 | |
|             return $textReference;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'reference', 'reference');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.reference';
 | |
|     }
 | |
| 
 | |
|     protected function getTextDescription($type, $textDescription)
 | |
|     {
 | |
|         if (!empty($textDescription)) {
 | |
|             return $textDescription;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'description', 'description');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.description';
 | |
|     }
 | |
| 
 | |
|     protected function getTextAmount($type, $textAmount)
 | |
|     {
 | |
|         if (!empty($textAmount)) {
 | |
|             return $textAmount;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'amount', 'amount');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.amount';
 | |
|     }
 | |
| 
 | |
|     protected function getTextPaidBy($type, $textPaidBy)
 | |
|     {
 | |
|         if (!empty($textPaidBy)) {
 | |
|             return $textPaidBy;
 | |
|         }
 | |
| 
 | |
|         switch ($type) {
 | |
|             case 'bill':
 | |
|             case 'expense':
 | |
|             case 'purchase':
 | |
|                 $default_key = 'paid_to';
 | |
|                 break;
 | |
|             default:
 | |
|                 $default_key = 'paid_by';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'paid_to_by', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.paid_by';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedTransansaction($type, $textRelatedTransansaction)
 | |
|     {
 | |
|         if (!empty($textRelatedTransansaction)) {
 | |
|             return $textRelatedTransansaction;
 | |
|         }
 | |
| 
 | |
|         switch ($type) {
 | |
|             case 'bill':
 | |
|             case 'expense':
 | |
|             case 'purchase':
 | |
|                 $default_key = 'related_bill';
 | |
|                 break;
 | |
|             default:
 | |
|                 $default_key = 'related_invoice';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_type', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'revenues.related_invoice';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedDocumentNumber($type, $textRelatedDocumentNumber)
 | |
|     {
 | |
|         if (!empty($textRelatedDocumentNumber)) {
 | |
|             return $textRelatedDocumentNumber;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_document_number', 'numbers');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.numbers';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedContact($type, $textRelatedContact)
 | |
|     {
 | |
|         if (!empty($textRelatedContact)) {
 | |
|             return $textRelatedContact;
 | |
|         }
 | |
| 
 | |
|         $default_key = Str::plural(config('type.' . $type . '.contact_type'), 2);
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_contact', $default_key, 'trans_choice');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.customers';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedDocumentDate($type, $textRelatedDocumentDate)
 | |
|     {
 | |
|         if (!empty($textRelatedDocumentDate)) {
 | |
|             return $textRelatedDocumentDate;
 | |
|         }
 | |
| 
 | |
|         switch ($type) {
 | |
|             case 'bill':
 | |
|             case 'expense':
 | |
|             case 'purchase':
 | |
|                 $default_key = 'bill_date';
 | |
|                 break;
 | |
|             default:
 | |
|                 $default_key = 'invoice_date';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_document_date', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'invoices.invoice_date';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedDocumentAmount($type, $textRelatedDocumentAmount)
 | |
|     {
 | |
|         if (!empty($textRelatedDocumentAmount)) {
 | |
|             return $textRelatedDocumentAmount;
 | |
|         }
 | |
| 
 | |
|         switch ($type) {
 | |
|             case 'bill':
 | |
|             case 'expense':
 | |
|             case 'purchase':
 | |
|                 $default_key = 'bill_amount';
 | |
|                 break;
 | |
|             default:
 | |
|                 $default_key = 'invoice_amount';
 | |
|                 break;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_document_amount', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.amount';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRelatedAmount($type, $textRelatedAmount)
 | |
|     {
 | |
|         if (!empty($textRelatedAmount)) {
 | |
|             return $textRelatedAmount;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'related_amount', 'amount');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.amount';
 | |
|     }
 | |
| 
 | |
|     protected function routeDocumentShow($type, $routeDocumentShow)
 | |
|     {
 | |
|         if (!empty($routeDocumentShow)) {
 | |
|             return $routeDocumentShow;
 | |
|         }
 | |
| 
 | |
|         if (!$this->transaction->document) {
 | |
|             return $routeDocumentShow;
 | |
|         }
 | |
| 
 | |
|         //example route parameter.
 | |
|         $parameter = 1;
 | |
| 
 | |
|         $route = $this->getRouteFromConfig($this->transaction->document->type, 'show', $parameter);
 | |
| 
 | |
|         if (!empty($route)) {
 | |
|             return $route;
 | |
|         }
 | |
| 
 | |
|         return 'invoices.show';
 | |
|     }
 | |
| 
 | |
|     protected function getHistories($histories)
 | |
|     {
 | |
|         if (!empty($histories)) {
 | |
|             return $histories;
 | |
|         }
 | |
| 
 | |
|         $histories[] = $this->transaction;
 | |
| 
 | |
|         return $histories;
 | |
|     }
 | |
| 
 | |
|     protected function getTextHistories($type, $textHistories)
 | |
|     {
 | |
|         if (!empty($textHistories)) {
 | |
|             return $textHistories;
 | |
|         }
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'histories', 'histories');
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'invoices.histories';
 | |
|     }
 | |
| 
 | |
|     protected function getClassFooterHistories($type, $classFooterHistories)
 | |
|     {
 | |
|         if (!empty($classFooterHistories)) {
 | |
|             return $classFooterHistories;
 | |
|         }
 | |
| 
 | |
|         $class = $this->getClassFromConfig($type, 'footer_histories');
 | |
| 
 | |
|         if (!empty($class)) {
 | |
|             return $class;
 | |
|         }
 | |
| 
 | |
|         return 'col-sm-6 col-md-6 col-lg-6 col-xl-6';
 | |
|     }
 | |
| 
 | |
|     protected function getTextRecurringType($type, $textRecurringType)
 | |
|     {
 | |
|         if (!empty($textRecurringType)) {
 | |
|             return $textRecurringType;
 | |
|         }
 | |
| 
 | |
|         $default_key = config('type.' . $type . '.translation.prefix');
 | |
| 
 | |
|         $translation = $this->getTextFromConfig($type, 'recurring_tye', $default_key);
 | |
| 
 | |
|         if (!empty($translation)) {
 | |
|             return $translation;
 | |
|         }
 | |
| 
 | |
|         return 'general.revenues';
 | |
|     }
 | |
| 
 | |
|     protected function getRoutePrefix($type) {
 | |
|         if ($prefix = config('type.' . $type . '.route.prefix', false)){
 | |
|             return 'revenues';
 | |
|         }
 | |
| 
 | |
|         return $prefix;
 | |
|     }
 | |
| }
 |