Merge pull request #2185 from cuneytsenturk/show-transfer
Added transfer show page
This commit is contained in:
commit
61b72b0a15
721
app/Abstracts/View/Components/TransferShow.php
Normal file
721
app/Abstracts/View/Components/TransferShow.php
Normal file
@ -0,0 +1,721 @@
|
||||
<?php
|
||||
|
||||
namespace App\Abstracts\View\Components;
|
||||
|
||||
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;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
abstract class TransferShow extends Component
|
||||
{
|
||||
use DateTime, Transactions;
|
||||
|
||||
public $transfer;
|
||||
|
||||
/** @var string */
|
||||
public $transferTemplate;
|
||||
|
||||
/** @var array */
|
||||
public $payment_methods;
|
||||
|
||||
public $date_format;
|
||||
|
||||
/** @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 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 $signedUrl;
|
||||
|
||||
/** @var string */
|
||||
public $routeButtonEmail;
|
||||
|
||||
/** @var string */
|
||||
public $routeButtonPdf;
|
||||
|
||||
/** @var string */
|
||||
public $hideButtonTemplate;
|
||||
|
||||
/** @var string */
|
||||
public $routeButtonDelete;
|
||||
|
||||
/** @var string */
|
||||
public $textDeleteModal;
|
||||
|
||||
/** @var bool */
|
||||
public $hideHeader;
|
||||
|
||||
/** @var bool */
|
||||
public $hideHeaderFromAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideHeaderToAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideHeaderAmount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideHeaderPaidAt;
|
||||
|
||||
/** @var string */
|
||||
public $textHeaderFromAccount;
|
||||
|
||||
/** @var string */
|
||||
public $textHeaderToAccount;
|
||||
|
||||
/** @var string */
|
||||
public $textHeaderAmount;
|
||||
|
||||
/** @var string */
|
||||
public $textHeaderPaidAt;
|
||||
|
||||
/** @var string */
|
||||
public $classHeaderFromAccount;
|
||||
|
||||
/** @var string */
|
||||
public $classHeaderToAccount;
|
||||
|
||||
/** @var string */
|
||||
public $classHeaderAmount;
|
||||
|
||||
/** @var string */
|
||||
public $classHeaderPaidAt;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankPhone;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankAddress;
|
||||
|
||||
/** @var string */
|
||||
public $textFromAccountTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textFromAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankPhone;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankAddress;
|
||||
|
||||
/** @var string */
|
||||
public $textToAccountTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textToAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetails;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailDate;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailPaymentMethod;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailReference;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailDescription;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailAmount;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailDate;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailPaymentMethod;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailReference;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailDescription;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailAmount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideAttachment;
|
||||
|
||||
public $attachment;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFooter;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFooterHistories;
|
||||
|
||||
public $histories;
|
||||
|
||||
/** @var string */
|
||||
public $textHistories;
|
||||
|
||||
/** @var string */
|
||||
public $classFooterHistories;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
$transfer, $transferTemplate = '', 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 $hideButtonTemplate = false, bool $hideButtonDelete = false,
|
||||
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 $textDeleteModal = '',
|
||||
bool $hideHeader = false, bool $hideHeaderFromAccount = false, bool $hideHeaderToAccount = false, bool $hideHeaderAmount = false, bool $hideHeaderPaidAt = false,
|
||||
string $textHeaderFromAccount = '', string $textHeaderToAccount = '', string $textHeaderAmount = '', string $textHeaderPaidAt = '',
|
||||
string $classHeaderFromAccount = '', string $classHeaderToAccount = '', string $classHeaderAmount = '', string $classHeaderPaidAt = '',
|
||||
|
||||
bool $hideFromAccount = false, bool $hideFromAccountTitle = false, bool $hideFromAccountName = false, bool $hideFromAccountNumber = false,
|
||||
bool $hideFromAccountBankName = false, bool $hideFromAccountBankPhone = false, bool $hideFromAccountBankAddress = false,
|
||||
string $textFromAccountTitle = '', string $textFromAccountNumber = '',
|
||||
|
||||
bool $hideToAccount = false, bool $hideToAccountTitle = false, bool $hideToAccountName = false, bool $hideToAccountNumber = false,
|
||||
bool $hideToAccountBankName = false, bool $hideToAccountBankPhone = false, bool $hideToAccountBankAddress = false,
|
||||
string $textToAccountTitle = '', string $textToAccountNumber = '',
|
||||
|
||||
bool $hideDetails = false, bool $hideDetailTitle = false, bool $hideDetailDate = false, bool $hideDetailPaymentMethod = false,
|
||||
bool $hideDetailReference = false, bool $hideDetailDescription = false, bool $hideDetailAmount = false,
|
||||
string $textDetailTitle = '', string $textDetailDate = '', string $textDetailPaymentMethod = '', string $textDetailReference = '',
|
||||
string $textDetailDescription = '', string $textDetailAmount = '',
|
||||
|
||||
bool $hideAttachment = false, $attachment = [],
|
||||
bool $hideFooter = false, bool $hideFooterHistories = false, $histories = [],
|
||||
string $textHistories = '', string $classFooterHistories = ''
|
||||
) {
|
||||
$this->transfer = $transfer;
|
||||
$this->transferTemplate = $this->getTransferTemplate($transferTemplate);
|
||||
$this->payment_methods = ($payment_methods) ?: Modules::getPaymentMethods('all');
|
||||
$this->date_format = $this->getCompanyDateFormat();
|
||||
|
||||
// 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->hideButtonTemplate = $hideButtonTemplate;
|
||||
$this->hideButtonDelete = $hideButtonDelete;
|
||||
$this->hideButtonGroupDivider1 = $hideButtonGroupDivider1;
|
||||
$this->hideButtonGroupDivider2 = $hideButtonGroupDivider2;
|
||||
$this->hideButtonGroupDivider3 = $hideButtonGroupDivider3;
|
||||
|
||||
// Navbar Permission
|
||||
$this->permissionCreate = $this->getPermissionCreate($permissionCreate);
|
||||
$this->permissionUpdate = $this->getPermissionUpdate($permissionUpdate);
|
||||
$this->permissionDelete = $this->getPermissionDelete($permissionDelete);
|
||||
|
||||
// Navbar route
|
||||
$this->routeButtonAddNew = $this->getRouteButtonAddNew($routeButtonAddNew);
|
||||
$this->routeButtonEdit = $this->getRouteButtonEdit($routeButtonEdit);
|
||||
$this->routeButtonDuplicate = $this->getRouteButtonDuplicate($routeButtonDuplicate);
|
||||
$this->routeButtonPrint = $this->getRouteButtonPrint($routeButtonPrint);
|
||||
$this->signedUrl = $this->getSignedUrl($signedUrl);
|
||||
$this->routeButtonEmail = $this->getRouteButtonEmail($routeButtonEmail);
|
||||
$this->routeButtonPdf = $this->getRouteButtonPdf($routeButtonPdf);
|
||||
$this->routeButtonDelete = $this->getRouteButtonDelete($routeButtonDelete);
|
||||
|
||||
// Navbar Text
|
||||
$this->textDeleteModal = $textDeleteModal;
|
||||
|
||||
// Header Hide
|
||||
$this->hideHeader = $hideHeader;
|
||||
|
||||
$this->hideHeaderFromAccount = $hideHeaderFromAccount;
|
||||
$this->hideHeaderToAccount = $hideHeaderToAccount;
|
||||
$this->hideHeaderToAccount = $hideHeaderToAccount;
|
||||
$this->hideHeaderAmount = $hideHeaderAmount;
|
||||
$this->hideHeaderPaidAt = $hideHeaderPaidAt;
|
||||
|
||||
// Header Text
|
||||
$this->textHeaderFromAccount = $this->getTextHeaderFromAccount($textHeaderFromAccount);
|
||||
$this->textHeaderToAccount = $this->getTextHeaderToAccount($textHeaderToAccount);
|
||||
$this->textHeaderAmount = $this->getTextHeaderAmount($textHeaderAmount);
|
||||
$this->textHeaderPaidAt = $this->gettextHeaderPaidAt($textHeaderPaidAt);
|
||||
|
||||
// Header Class
|
||||
$this->classHeaderFromAccount = $this->getclassHeaderFromAccount($classHeaderFromAccount);
|
||||
$this->classHeaderToAccount = $this->getClassHeaderToAccount($classHeaderToAccount);
|
||||
$this->classHeaderAmount = $this->getClassHeaderAmount($classHeaderAmount);
|
||||
$this->classHeaderPaidAt = $this->getclassHeaderPaidAt($classHeaderPaidAt);
|
||||
|
||||
// From account Hide
|
||||
$this->hideFromAccount = $hideFromAccount;
|
||||
$this->hideFromAccountTitle = $hideFromAccountTitle;
|
||||
$this->hideFromAccountName = $hideFromAccountName;
|
||||
$this->hideFromAccountNumber = $hideFromAccountNumber;
|
||||
$this->hideFromAccountBankName = $hideFromAccountBankName;
|
||||
$this->hideFromAccountBankPhone = $hideFromAccountBankPhone;
|
||||
$this->hideFromAccountBankAddress = $hideFromAccountBankAddress;
|
||||
|
||||
// From account text
|
||||
$this->textFromAccountTitle = $this->getTextFromAccountTitle($textFromAccountTitle);
|
||||
$this->textFromAccountNumber = $this->getTextFromAccountNumber($textFromAccountNumber);
|
||||
|
||||
// To account Hide
|
||||
$this->hideToAccount = $hideToAccount;
|
||||
$this->hideToAccountTitle = $hideToAccountTitle;
|
||||
$this->hideToAccountName = $hideToAccountName;
|
||||
$this->hideToAccountNumber = $hideToAccountNumber;
|
||||
$this->hideToAccountBankName = $hideToAccountBankName;
|
||||
$this->hideToAccountBankPhone = $hideToAccountBankPhone;
|
||||
$this->hideToAccountBankAddress = $hideToAccountBankAddress;
|
||||
|
||||
// To account text
|
||||
$this->textToAccountTitle = $this->getTextToAccountTitle($textToAccountTitle);
|
||||
$this->textToAccountNumber = $this->getTextToAccountNumber($textToAccountNumber);
|
||||
|
||||
// Detail Information Hide checker
|
||||
$this->hideDetails = $hideDetails;
|
||||
$this->hideDetailTitle = $hideDetailTitle;
|
||||
$this->hideDetailDate = $hideDetailDate;
|
||||
$this->hideDetailPaymentMethod = $hideDetailPaymentMethod;
|
||||
$this->hideDetailReference = $hideDetailReference;
|
||||
$this->hideDetailDescription = $hideDetailDescription;
|
||||
$this->hideDetailAmount = $hideDetailAmount;
|
||||
|
||||
// Releated Information Text
|
||||
$this->textDetailTitle = $this->getTextDetailTitle($textDetailTitle);
|
||||
$this->textDetailDate = $this->getTextDetailDate($textDetailDate);
|
||||
$this->textDetailPaymentMethod = $this->getTextDetailPaymentMethod($textDetailPaymentMethod);
|
||||
$this->textDetailReference = $this->getTextDetailReference($textDetailReference);
|
||||
$this->textDetailDescription = $this->getTextDetailDescription($textDetailDescription);
|
||||
$this->textDetailAmount = $this->getTextDetailAmount($textDetailAmount);
|
||||
|
||||
// Hide Attachment
|
||||
$this->hideAttachment = $hideAttachment;
|
||||
|
||||
// Attachment data..
|
||||
$this->attachment = '';
|
||||
|
||||
if (!empty($attachment)) {
|
||||
$this->attachment = $attachment;
|
||||
} else if (!empty($transfer)) {
|
||||
$this->attachment = $transfer->attachment;
|
||||
}
|
||||
|
||||
// Histories Hide
|
||||
$this->hideFooter = $hideFooter;
|
||||
$this->hideFooterHistories = $hideFooterHistories;
|
||||
|
||||
// Histories
|
||||
$this->histories = $this->getHistories($histories);
|
||||
$this->textHistories = $this->getTextHistories($textHistories);
|
||||
$this->classFooterHistories = $this->getClassFooterHistories($classFooterHistories);
|
||||
}
|
||||
|
||||
protected function getTransferTemplate($transferTemplate)
|
||||
{
|
||||
if (!empty($transferTemplate)) {
|
||||
return $transferTemplate;
|
||||
}
|
||||
|
||||
return setting('transfer.template');
|
||||
}
|
||||
|
||||
protected function getRouteButtonAddNew($routeButtonAddNew)
|
||||
{
|
||||
if (!empty($routeButtonAddNew)) {
|
||||
return $routeButtonAddNew;
|
||||
}
|
||||
|
||||
return 'transfers.create';
|
||||
}
|
||||
|
||||
protected function getRouteButtonEdit($routeButtonEdit)
|
||||
{
|
||||
if (!empty($routeButtonEdit)) {
|
||||
return $routeButtonEdit;
|
||||
}
|
||||
|
||||
return 'transfers.edit';
|
||||
}
|
||||
|
||||
protected function getRouteButtonDuplicate($routeButtonDuplicate)
|
||||
{
|
||||
if (!empty($routeButtonDuplicate)) {
|
||||
return $routeButtonDuplicate;
|
||||
}
|
||||
|
||||
return 'transfers.duplicate';
|
||||
}
|
||||
|
||||
protected function getRouteButtonPrint($routeButtonPrint)
|
||||
{
|
||||
if (!empty($routeButtonPrint)) {
|
||||
return $routeButtonPrint;
|
||||
}
|
||||
|
||||
return 'transfers.print';
|
||||
}
|
||||
|
||||
protected function getSignedUrl($signedUrl)
|
||||
{
|
||||
if (!empty($signedUrl)) {
|
||||
return $signedUrl;
|
||||
}
|
||||
|
||||
try {
|
||||
$signedUrl = URL::signedRoute('signed.transfer.show', [$this->transfer->id]);
|
||||
} catch (\Exception $e) {
|
||||
$signedUrl = false;
|
||||
}
|
||||
|
||||
return $signedUrl;
|
||||
}
|
||||
|
||||
protected function getRouteButtonEmail($routeButtonEmail)
|
||||
{
|
||||
if (!empty($routeButtonEmail)) {
|
||||
return $routeButtonEmail;
|
||||
}
|
||||
|
||||
return 'transfers.email';
|
||||
}
|
||||
|
||||
protected function getRouteButtonPdf($routeButtonPdf)
|
||||
{
|
||||
if (!empty($routeButtonPdf)) {
|
||||
return $routeButtonPdf;
|
||||
}
|
||||
|
||||
return 'transfers.pdf';
|
||||
}
|
||||
|
||||
protected function getRouteButtonDelete($routeButtonDelete)
|
||||
{
|
||||
if (!empty($routeButtonDelete)) {
|
||||
return $routeButtonDelete;
|
||||
}
|
||||
|
||||
return 'transfers.destroy';
|
||||
}
|
||||
|
||||
protected function getPermissionCreate($permissionCreate)
|
||||
{
|
||||
if (!empty($permissionCreate)) {
|
||||
return $permissionCreate;
|
||||
}
|
||||
|
||||
return 'create-banking-transfers';
|
||||
}
|
||||
|
||||
protected function getPermissionUpdate($permissionUpdate)
|
||||
{
|
||||
if (!empty($permissionUpdate)) {
|
||||
return $permissionUpdate;
|
||||
}
|
||||
|
||||
return 'update-banking-transfers';
|
||||
}
|
||||
|
||||
protected function getPermissionDelete($permissionDelete)
|
||||
{
|
||||
if (!empty($permissionDelete)) {
|
||||
return $permissionDelete;
|
||||
}
|
||||
|
||||
return 'delete-banking-transfers';
|
||||
}
|
||||
|
||||
protected function getTextHeaderFromAccount($textHeaderFromAccount)
|
||||
{
|
||||
if (!empty($textHeaderFromAccount)) {
|
||||
return $textHeaderFromAccount;
|
||||
}
|
||||
|
||||
return 'transfers.from_account';
|
||||
}
|
||||
|
||||
protected function getTextHeaderToAccount($textHeaderToAccount)
|
||||
{
|
||||
if (!empty($textHeaderToAccount)) {
|
||||
return $textHeaderToAccount;
|
||||
}
|
||||
|
||||
return 'transfers.to_account';
|
||||
}
|
||||
|
||||
protected function getTextHeaderAmount($textHeaderAmount)
|
||||
{
|
||||
if (!empty($textHeaderAmount)) {
|
||||
return $textHeaderAmount;
|
||||
}
|
||||
|
||||
return 'general.amount';
|
||||
}
|
||||
|
||||
protected function getTextHeaderPaidAt($textHeaderPaidAt)
|
||||
{
|
||||
if (!empty($textHeaderPaidAt)) {
|
||||
return $textHeaderPaidAt;
|
||||
}
|
||||
|
||||
return 'general.date';
|
||||
}
|
||||
|
||||
protected function getClassHeaderFromAccount($classHeaderFromAccount)
|
||||
{
|
||||
if (!empty($classHeaderFromAccount)) {
|
||||
return $classHeaderFromAccount;
|
||||
}
|
||||
|
||||
return 'col-4 col-lg-2';
|
||||
}
|
||||
|
||||
protected function getClassHeaderToAccount($classHeaderToAccount)
|
||||
{
|
||||
if (!empty($classHeaderToAccount)) {
|
||||
return $classHeaderToAccount;
|
||||
}
|
||||
|
||||
return 'col-4 col-lg-6';
|
||||
}
|
||||
|
||||
protected function getClassHeaderAmount($classHeaderAmount)
|
||||
{
|
||||
if (!empty($classHeaderAmount)) {
|
||||
return $classHeaderAmount;
|
||||
}
|
||||
|
||||
return 'col-4 col-lg-2 float-right';
|
||||
}
|
||||
|
||||
protected function getClassHeaderPaidAt($classHeaderPaidAt)
|
||||
{
|
||||
if (!empty($classHeaderPaidAt)) {
|
||||
return $classHeaderPaidAt;
|
||||
}
|
||||
|
||||
return 'col-4 col-lg-2';
|
||||
}
|
||||
|
||||
protected function getTextFromAccountTitle($textToAccountTitle)
|
||||
{
|
||||
if (!empty($textToAccountTitle)) {
|
||||
return $textToAccountTitle;
|
||||
}
|
||||
|
||||
return 'transfers.from_account';
|
||||
}
|
||||
|
||||
protected function getTextFromAccountNumber($textFromAccountNumber)
|
||||
{
|
||||
if (!empty($textFromAccountNumber)) {
|
||||
return $textFromAccountNumber;
|
||||
}
|
||||
|
||||
return 'accounts.number';
|
||||
}
|
||||
|
||||
protected function getTextToAccountTitle($textFromAccountTitle)
|
||||
{
|
||||
if (!empty($textFromAccountTitle)) {
|
||||
return $textFromAccountTitle;
|
||||
}
|
||||
|
||||
return 'transfers.to_account';
|
||||
}
|
||||
|
||||
protected function getTextToAccountNumber($textToAccountNumber)
|
||||
{
|
||||
if (!empty($textToAccountNumber)) {
|
||||
return $textToAccountNumber;
|
||||
}
|
||||
|
||||
return 'accounts.number';
|
||||
}
|
||||
|
||||
protected function getTextDetailTitle($textDetailTitle)
|
||||
{
|
||||
if (!empty($textDetailTitle)) {
|
||||
return $textDetailTitle;
|
||||
}
|
||||
|
||||
return 'transfers.details';
|
||||
}
|
||||
|
||||
protected function getTextDetailDate($textDetailDate)
|
||||
{
|
||||
if (!empty($textDetailDate)) {
|
||||
return $textDetailDate;
|
||||
}
|
||||
|
||||
return 'general.date';
|
||||
}
|
||||
|
||||
protected function getTextDetailPaymentMethod($textDetailPaymentMethod)
|
||||
{
|
||||
if (!empty($textDetailPaymentMethod)) {
|
||||
return $textDetailPaymentMethod;
|
||||
}
|
||||
|
||||
return 'general.payment_methods';
|
||||
}
|
||||
|
||||
protected function getTextDetailReference($textDetailReference)
|
||||
{
|
||||
if (!empty($textDetailReference)) {
|
||||
return $textDetailReference;
|
||||
}
|
||||
|
||||
return 'general.reference';
|
||||
}
|
||||
|
||||
protected function getTextDetailDescription($textDetailDescription)
|
||||
{
|
||||
if (!empty($textDetailDescription)) {
|
||||
return $textDetailDescription;
|
||||
}
|
||||
|
||||
return 'general.description';
|
||||
}
|
||||
|
||||
protected function getTextDetailAmount($textDetailAmount)
|
||||
{
|
||||
if (!empty($textDetailAmount)) {
|
||||
return $textDetailAmount;
|
||||
}
|
||||
|
||||
return 'general.amount';
|
||||
}
|
||||
|
||||
protected function getHistories($histories)
|
||||
{
|
||||
if (!empty($histories)) {
|
||||
return $histories;
|
||||
}
|
||||
|
||||
$histories[] = $this->transfer;
|
||||
|
||||
return $histories;
|
||||
}
|
||||
|
||||
protected function getTextHistories($textHistories)
|
||||
{
|
||||
if (!empty($textHistories)) {
|
||||
return $textHistories;
|
||||
}
|
||||
|
||||
return 'invoices.histories';
|
||||
}
|
||||
|
||||
protected function getClassFooterHistories($classFooterHistories)
|
||||
{
|
||||
if (!empty($classFooterHistories)) {
|
||||
return $classFooterHistories;
|
||||
}
|
||||
|
||||
return 'col-sm-6 col-md-6 col-lg-6 col-xl-6';
|
||||
}
|
||||
}
|
278
app/Abstracts/View/Components/TransferTemplate.php
Normal file
278
app/Abstracts/View/Components/TransferTemplate.php
Normal file
@ -0,0 +1,278 @@
|
||||
<?php
|
||||
|
||||
namespace App\Abstracts\View\Components;
|
||||
|
||||
use App\Abstracts\View\Components\Transfer 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 Image;
|
||||
use Intervention\Image\Exception\NotReadableException;
|
||||
use Storage;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\View\Component;
|
||||
|
||||
abstract class TransferTemplate extends Component
|
||||
{
|
||||
use DateTime;
|
||||
use Transactions;
|
||||
|
||||
public $transfer;
|
||||
|
||||
/** @var array */
|
||||
public $payment_methods;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankPhone;
|
||||
|
||||
/** @var bool */
|
||||
public $hideFromAccountBankAddress;
|
||||
|
||||
/** @var string */
|
||||
public $textFromAccountTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textFromAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccount;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankName;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankPhone;
|
||||
|
||||
/** @var bool */
|
||||
public $hideToAccountBankAddress;
|
||||
|
||||
/** @var string */
|
||||
public $textToAccountTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textToAccountNumber;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetails;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailTitle;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailDate;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailPaymentMethod;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailReference;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailDescription;
|
||||
|
||||
/** @var bool */
|
||||
public $hideDetailAmount;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailTitle;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailDate;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailPaymentMethod;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailReference;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailDescription;
|
||||
|
||||
/** @var string */
|
||||
public $textDetailAmount;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(
|
||||
$transfer, array $payment_methods = [],
|
||||
bool $hideFromAccount = false, bool $hideFromAccountTitle = false, bool $hideFromAccountName = false, bool $hideFromAccountNumber = false,
|
||||
bool $hideFromAccountBankName = false, bool $hideFromAccountBankPhone = false, bool $hideFromAccountBankAddress = false,
|
||||
string $textFromAccountTitle = '', string $textFromAccountNumber = '',
|
||||
|
||||
bool $hideToAccount = false, bool $hideToAccountTitle = false, bool $hideToAccountName = false, bool $hideToAccountNumber = false,
|
||||
bool $hideToAccountBankName = false, bool $hideToAccountBankPhone = false, bool $hideToAccountBankAddress = false,
|
||||
string $textToAccountTitle = '', string $textToAccountNumber = '',
|
||||
|
||||
bool $hideDetails = false, bool $hideDetailTitle = false, bool $hideDetailDate = false, bool $hideDetailPaymentMethod = false,
|
||||
bool $hideDetailReference = false, bool $hideDetailDescription = false, bool $hideDetailAmount = false,
|
||||
string $textDetailTitle = '', string $textDetailDate = '', string $textDetailPaymentMethod = '', string $textDetailReference = '',
|
||||
string $textDetailDescription = '', string $textDetailAmount = ''
|
||||
) {
|
||||
$this->transfer = $transfer;
|
||||
|
||||
$this->payment_methods = ($payment_methods) ?: Modules::getPaymentMethods('all');
|
||||
|
||||
// From account Hide
|
||||
$this->hideFromAccount = $hideFromAccount;
|
||||
$this->hideFromAccountTitle = $hideFromAccountTitle;
|
||||
$this->hideFromAccountName = $hideFromAccountName;
|
||||
$this->hideFromAccountNumber = $hideFromAccountNumber;
|
||||
$this->hideFromAccountBankName = $hideFromAccountBankName;
|
||||
$this->hideFromAccountBankPhone = $hideFromAccountBankPhone;
|
||||
$this->hideFromAccountBankAddress = $hideFromAccountBankAddress;
|
||||
|
||||
// From account text
|
||||
$this->textFromAccountTitle = $this->getTextFromAccountTitle($textFromAccountTitle);
|
||||
$this->textFromAccountNumber = $this->getTextFromAccountNumber($textFromAccountNumber);
|
||||
|
||||
// To account Hide
|
||||
$this->hideToAccount = $hideToAccount;
|
||||
$this->hideToAccountTitle = $hideToAccountTitle;
|
||||
$this->hideToAccountName = $hideToAccountName;
|
||||
$this->hideToAccountNumber = $hideToAccountNumber;
|
||||
$this->hideToAccountBankName = $hideToAccountBankName;
|
||||
$this->hideToAccountBankPhone = $hideToAccountBankPhone;
|
||||
$this->hideToAccountBankAddress = $hideToAccountBankAddress;
|
||||
|
||||
// To account text
|
||||
$this->textToAccountTitle = $this->getTextToAccountTitle($textToAccountTitle);
|
||||
$this->textToAccountNumber = $this->getTextToAccountNumber($textToAccountNumber);
|
||||
|
||||
// Detail Information Hide checker
|
||||
$this->hideDetails = $hideDetails;
|
||||
$this->hideDetailTitle = $hideDetailTitle;
|
||||
$this->hideDetailDate = $hideDetailDate;
|
||||
$this->hideDetailPaymentMethod = $hideDetailPaymentMethod;
|
||||
$this->hideDetailReference = $hideDetailReference;
|
||||
$this->hideDetailDescription = $hideDetailDescription;
|
||||
$this->hideDetailAmount = $hideDetailAmount;
|
||||
|
||||
// Releated Information Text
|
||||
$this->textDetailTitle = $this->getTextDetailTitle($textDetailTitle);
|
||||
$this->textDetailDate = $this->getTextDetailDate($textDetailDate);
|
||||
$this->textDetailPaymentMethod = $this->getTextDetailPaymentMethod($textDetailPaymentMethod);
|
||||
$this->textDetailReference = $this->getTextDetailReference($textDetailReference);
|
||||
$this->textDetailDescription = $this->getTextDetailDescription($textDetailDescription);
|
||||
$this->textDetailAmount = $this->getTextDetailAmount($textDetailAmount);
|
||||
}
|
||||
|
||||
protected function getTextFromAccountTitle($textToAccountTitle)
|
||||
{
|
||||
if (!empty($textToAccountTitle)) {
|
||||
return $textToAccountTitle;
|
||||
}
|
||||
|
||||
return 'transfers.from_account';
|
||||
}
|
||||
|
||||
protected function getTextFromAccountNumber($textFromAccountNumber)
|
||||
{
|
||||
if (!empty($textFromAccountNumber)) {
|
||||
return $textFromAccountNumber;
|
||||
}
|
||||
|
||||
return 'accounts.number';
|
||||
}
|
||||
|
||||
protected function getTextToAccountTitle($textFromAccountTitle)
|
||||
{
|
||||
if (!empty($textFromAccountTitle)) {
|
||||
return $textFromAccountTitle;
|
||||
}
|
||||
|
||||
return 'transfers.to_account';
|
||||
}
|
||||
|
||||
protected function getTextToAccountNumber($textToAccountNumber)
|
||||
{
|
||||
if (!empty($textToAccountNumber)) {
|
||||
return $textToAccountNumber;
|
||||
}
|
||||
|
||||
return 'accounts.number';
|
||||
}
|
||||
|
||||
protected function getTextDetailTitle($textDetailTitle)
|
||||
{
|
||||
if (!empty($textDetailTitle)) {
|
||||
return $textDetailTitle;
|
||||
}
|
||||
|
||||
return 'transfers.details';
|
||||
}
|
||||
|
||||
protected function getTextDetailDate($textDetailDate)
|
||||
{
|
||||
if (!empty($textDetailDate)) {
|
||||
return $textDetailDate;
|
||||
}
|
||||
|
||||
return 'general.date';
|
||||
}
|
||||
|
||||
protected function getTextDetailPaymentMethod($textDetailPaymentMethod)
|
||||
{
|
||||
if (!empty($textDetailPaymentMethod)) {
|
||||
return $textDetailPaymentMethod;
|
||||
}
|
||||
|
||||
return 'general.payment_methods';
|
||||
}
|
||||
|
||||
protected function getTextDetailReference($textDetailReference)
|
||||
{
|
||||
if (!empty($textDetailReference)) {
|
||||
return $textDetailReference;
|
||||
}
|
||||
|
||||
return 'general.reference';
|
||||
}
|
||||
|
||||
protected function getTextDetailDescription($textDetailDescription)
|
||||
{
|
||||
if (!empty($textDetailDescription)) {
|
||||
return $textDetailDescription;
|
||||
}
|
||||
|
||||
return 'general.description';
|
||||
}
|
||||
|
||||
protected function getTextDetailAmount($textDetailAmount)
|
||||
{
|
||||
if (!empty($textDetailAmount)) {
|
||||
return $textDetailAmount;
|
||||
}
|
||||
|
||||
return 'general.amount';
|
||||
}
|
||||
}
|
22
app/Events/Banking/TransferPrinting.php
Normal file
22
app/Events/Banking/TransferPrinting.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Events\Banking;
|
||||
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class TransferPrinting
|
||||
{
|
||||
use SerializesModels;
|
||||
|
||||
public $transfer;
|
||||
|
||||
/**
|
||||
* Create a new event instance.
|
||||
*
|
||||
* @param $transfer
|
||||
*/
|
||||
public function __construct($transfer)
|
||||
{
|
||||
$this->transfer = $transfer;
|
||||
}
|
||||
}
|
@ -15,6 +15,7 @@ use App\Models\Banking\Transfer;
|
||||
use App\Models\Setting\Currency;
|
||||
use App\Utilities\Modules;
|
||||
use Date;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Transfers extends Controller
|
||||
{
|
||||
@ -37,9 +38,9 @@ class Transfers extends Controller
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function show()
|
||||
public function show(Transfer $transfer)
|
||||
{
|
||||
return redirect()->route('transfers.index');
|
||||
return view('banking.transfers.show', compact('transfer'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -53,11 +54,19 @@ class Transfers extends Controller
|
||||
|
||||
$payment_methods = Modules::getPaymentMethods();
|
||||
|
||||
$currencies = Currency::enabled()->orderBy('name')->get()->makeHidden(['id', 'company_id', 'created_at', 'updated_at', 'deleted_at']);
|
||||
|
||||
$currency = Currency::where('code', setting('default.currency'))->first();
|
||||
|
||||
return view('banking.transfers.create', compact('accounts', 'payment_methods', 'currencies', 'currency'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('banking.transfers.create', compact('accounts', 'payment_methods', 'currency', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -72,7 +81,7 @@ class Transfers extends Controller
|
||||
$response = $this->ajaxDispatch(new CreateTransfer($request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transfers.index');
|
||||
$response['redirect'] = route('transfers.show', $response['data']->id);
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.transfers', 1)]);
|
||||
|
||||
@ -88,6 +97,24 @@ class Transfers extends Controller
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Duplicate the specified resource.
|
||||
*
|
||||
* @param Transfer $transfer
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function duplicate(Transfer $transfer)
|
||||
{
|
||||
$clone = $transfer->duplicate();
|
||||
|
||||
$message = trans('messages.success.duplicated', ['type' => trans_choice('general.transfers', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return redirect()->route('transfers.show', $clone->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* Import the specified resource.
|
||||
*
|
||||
@ -139,11 +166,19 @@ class Transfers extends Controller
|
||||
|
||||
$account = $transfer->expense_transaction->account;
|
||||
|
||||
$currencies = Currency::enabled()->orderBy('name')->get()->makeHidden(['id', 'company_id', 'created_at', 'updated_at', 'deleted_at']);
|
||||
|
||||
$currency = Currency::where('code', $account->currency_code)->first();
|
||||
|
||||
return view('banking.transfers.edit', compact('transfer', 'accounts', 'payment_methods', 'currencies', 'currency'));
|
||||
$file_type_mimes = explode(',', config('filesystems.mimes'));
|
||||
|
||||
$file_types = [];
|
||||
|
||||
foreach ($file_type_mimes as $mime) {
|
||||
$file_types[] = '.' . $mime;
|
||||
}
|
||||
|
||||
$file_types = implode(',', $file_types);
|
||||
|
||||
return view('banking.transfers.edit', compact('transfer', 'accounts', 'payment_methods', 'currency', 'file_types'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -159,7 +194,7 @@ class Transfers extends Controller
|
||||
$response = $this->ajaxDispatch(new UpdateTransfer($transfer, $request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('transfers.index');
|
||||
$response['redirect'] = route('transfers.show', $transfer->id);
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.transfers', 1)]);
|
||||
|
||||
@ -210,4 +245,46 @@ class Transfers extends Controller
|
||||
{
|
||||
return $this->exportExcel(new Export, trans_choice('general.transfers', 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Print the transfer.
|
||||
*
|
||||
* @param Transfer $transfer
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function printTransfer(Transfer $transfer)
|
||||
{
|
||||
event(new \App\Events\Banking\TransferPrinting($transfer));
|
||||
|
||||
$view = view($transfer->template_path, compact('transfer'));
|
||||
|
||||
return mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8');
|
||||
}
|
||||
|
||||
/**
|
||||
* Download the PDF file of transfer.
|
||||
*
|
||||
* @param Transfer $transfer
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function pdfTransfer(Transfer $transfer)
|
||||
{
|
||||
event(new \App\Events\Banking\TransferPrinting($transfer));
|
||||
|
||||
$currency_style = true;
|
||||
|
||||
$view = view($transfer->template_path, compact('transfer', 'currency_style'))->render();
|
||||
$html = mb_convert_encoding($view, 'HTML-ENTITIES', 'UTF-8');
|
||||
|
||||
$pdf = app('dompdf.wrapper');
|
||||
$pdf->loadHTML($html);
|
||||
|
||||
//$pdf->setPaper('A4', 'portrait');
|
||||
|
||||
$file_name = trans_choice('general.transfers', 1) . '-' . Str::slug($transfer->id, '-', language()->getShortCode()) . '-' . time() . '.pdf';
|
||||
|
||||
return $pdf->download($file_name);
|
||||
}
|
||||
}
|
||||
|
67
app/Http/Controllers/Modals/TransferTemplates.php
Normal file
67
app/Http/Controllers/Modals/TransferTemplates.php
Normal file
@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Modals;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Setting\Setting as Request;
|
||||
|
||||
class TransferTemplates extends Controller
|
||||
{
|
||||
public $skip_keys = ['company_id', '_method', '_token', '_prefix', '_template'];
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
// Add CRUD permission check
|
||||
$this->middleware('permission:create-settings-settings')->only('create', 'store');
|
||||
$this->middleware('permission:read-settings-settings')->only('index', 'edit');
|
||||
$this->middleware('permission:update-settings-settings')->only('update', 'enable', 'disable');
|
||||
$this->middleware('permission:delete-settings-settings')->only('destroy');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$fields = $request->all();
|
||||
$prefix = $request->get('_prefix', 'transfer');
|
||||
$company_id = $request->get('company_id');
|
||||
|
||||
if (empty($company_id)) {
|
||||
$company_id = company_id();
|
||||
}
|
||||
|
||||
foreach ($fields as $key => $value) {
|
||||
$real_key = $prefix . '.' . $key;
|
||||
|
||||
// Don't process unwanted keys
|
||||
if (in_array($key, $this->skip_keys)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
setting()->set($real_key, $value);
|
||||
}
|
||||
|
||||
// Save all settings
|
||||
setting()->save();
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => trans_choice('general.settings', 2)]);
|
||||
|
||||
$response = [
|
||||
'status' => null,
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'message' => $message,
|
||||
'data' => null,
|
||||
'redirect' => route('settings.invoice.edit'),
|
||||
];
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
@ -84,6 +84,15 @@ class CreateTransfer extends Job
|
||||
'expense_transaction_id' => $expense_transaction->id,
|
||||
'income_transaction_id' => $income_transaction->id,
|
||||
]);
|
||||
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transfers');
|
||||
|
||||
$this->transfer->attachMedia($media, 'attachment');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return $this->transfer;
|
||||
|
@ -38,6 +38,19 @@ class UpdateTransfer extends Job
|
||||
public function handle()
|
||||
{
|
||||
\DB::transaction(function () {
|
||||
// Upload attachment
|
||||
if ($this->request->file('attachment')) {
|
||||
$this->deleteMediaModel($this->transfer, 'attachment', $this->request);
|
||||
|
||||
foreach ($this->request->file('attachment') as $attachment) {
|
||||
$media = $this->getMedia($attachment, 'transfers');
|
||||
|
||||
$this->transfer->attachMedia($media, 'attachment');
|
||||
}
|
||||
} elseif (!$this->request->file('attachment') && $this->transfer->attachment) {
|
||||
$this->deleteMediaModel($this->transfer, 'attachment', $this->request);
|
||||
}
|
||||
|
||||
$expense_currency_code = $this->getCurrencyCode('from');
|
||||
$income_currency_code = $this->getCurrencyCode('to');
|
||||
|
||||
|
@ -3,16 +3,20 @@
|
||||
namespace App\Models\Banking;
|
||||
|
||||
use App\Abstracts\Model;
|
||||
use App\Models\Common\Media as MediaModel;
|
||||
use App\Traits\Currencies;
|
||||
use App\Traits\Media;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Znck\Eloquent\Traits\BelongsToThrough;
|
||||
|
||||
class Transfer extends Model
|
||||
{
|
||||
use BelongsToThrough, Currencies, HasFactory;
|
||||
use BelongsToThrough, Currencies, HasFactory, Media;
|
||||
|
||||
protected $table = 'transfers';
|
||||
|
||||
protected $appends = ['attachment'];
|
||||
|
||||
/**
|
||||
* Attributes that should be mass-assignable.
|
||||
*
|
||||
@ -59,6 +63,36 @@ class Transfer extends Model
|
||||
)->withDefault(['name' => trans('general.na')]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current balance.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getAttachmentAttribute($value = null)
|
||||
{
|
||||
if (!empty($value) && !$this->hasMedia('attachment')) {
|
||||
return $value;
|
||||
} elseif (!$this->hasMedia('attachment')) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->getMedia('attachment')->all();
|
||||
}
|
||||
|
||||
public function delete_attachment()
|
||||
{
|
||||
if ($attachments = $this->attachment) {
|
||||
foreach ($attachments as $file) {
|
||||
MediaModel::where('id', $file->id)->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function getTemplatePathAttribute($value = null)
|
||||
{
|
||||
return $value ?: 'banking.transfers.print_' . setting('transfer.template');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new factory instance for the model.
|
||||
*
|
||||
|
55
app/View/Components/Transfers/Script.php
Normal file
55
app/View/Components/Transfers/Script.php
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers;
|
||||
|
||||
use Illuminate\View\Component;
|
||||
|
||||
class Script extends Component
|
||||
{
|
||||
/** @var string */
|
||||
public $type;
|
||||
|
||||
/** @var string */
|
||||
public $scriptFile;
|
||||
|
||||
/** @var string */
|
||||
public $version;
|
||||
|
||||
public $transfer;
|
||||
|
||||
/**
|
||||
* Create a new component instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(string $type = '', string $scriptFile = '', string $version = '', $transfer = false)
|
||||
{
|
||||
$this->type = $type;
|
||||
$this->scriptFile = ($scriptFile) ? $scriptFile : 'public/js/banking/transfers.js';
|
||||
$this->version = $this->getVersion($version);
|
||||
$this->transfer = $transfer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.script');
|
||||
}
|
||||
|
||||
protected function getVersion($version)
|
||||
{
|
||||
if (!empty($version)) {
|
||||
return $version;
|
||||
}
|
||||
|
||||
if ($alias = config('type.' . $this->type . '.alias')) {
|
||||
return module_version($alias);
|
||||
}
|
||||
|
||||
return version('short');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Attachment.php
Normal file
18
app/View/Components/Transfers/Show/Attachment.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Attachment extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.attachment');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Content.php
Normal file
18
app/View/Components/Transfers/Show/Content.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Content extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.content');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Footer.php
Normal file
18
app/View/Components/Transfers/Show/Footer.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Footer extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.footer');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Header.php
Normal file
18
app/View/Components/Transfers/Show/Header.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Header extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.header');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Histories.php
Normal file
18
app/View/Components/Transfers/Show/Histories.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Histories extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.histories');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/TopButtons.php
Normal file
18
app/View/Components/Transfers/Show/TopButtons.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class TopButtons extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.top-buttons');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Show/Transfer.php
Normal file
18
app/View/Components/Transfers/Show/Transfer.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Show;
|
||||
|
||||
use App\Abstracts\View\Components\TransferShow as Component;
|
||||
|
||||
class Transfer extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.show.transfer');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Template/Ddefault.php
Normal file
18
app/View/Components/Transfers/Template/Ddefault.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Template;
|
||||
|
||||
use App\Abstracts\View\Components\TransferTemplate as Component;
|
||||
|
||||
class Ddefault extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.template.default');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Template/Second.php
Normal file
18
app/View/Components/Transfers/Template/Second.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Template;
|
||||
|
||||
use App\Abstracts\View\Components\TransferTemplate as Component;
|
||||
|
||||
class Second extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.template.second');
|
||||
}
|
||||
}
|
18
app/View/Components/Transfers/Template/Third.php
Normal file
18
app/View/Components/Transfers/Template/Third.php
Normal file
@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\View\Components\Transfers\Template;
|
||||
|
||||
use App\Abstracts\View\Components\TransferTemplate as Component;
|
||||
|
||||
class Third extends Component
|
||||
{
|
||||
/**
|
||||
* Get the view / contents that represent the component.
|
||||
*
|
||||
* @return \Illuminate\Contracts\View\View|string
|
||||
*/
|
||||
public function render()
|
||||
{
|
||||
return view('components.transfers.template.third');
|
||||
}
|
||||
}
|
@ -164,6 +164,9 @@ return [
|
||||
'expense' => env('SETTING_FALLBACK_TRANSACTION_TYPE_EXPENSE', 'expense'),
|
||||
],
|
||||
],
|
||||
'transfer' => [
|
||||
'template' => env('SETTING_FALLBACK_BANKING_TEMPLATE', 'default'),
|
||||
],
|
||||
],
|
||||
|
||||
/*
|
||||
|
BIN
public/img/transfer_templates/default.png
Normal file
BIN
public/img/transfer_templates/default.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 118 KiB |
BIN
public/img/transfer_templates/second.png
Normal file
BIN
public/img/transfer_templates/second.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 79 KiB |
BIN
public/img/transfer_templates/third.png
Normal file
BIN
public/img/transfer_templates/third.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
41
resources/assets/js/views/banking/transfers.js
vendored
41
resources/assets/js/views/banking/transfers.js
vendored
@ -19,7 +19,7 @@ import BulkAction from './../../plugins/bulk-action';
|
||||
Vue.use(DashboardPlugin);
|
||||
|
||||
const app = new Vue({
|
||||
el: '#app',
|
||||
el: '#main-body',
|
||||
|
||||
mixins: [
|
||||
Global
|
||||
@ -30,6 +30,15 @@ const app = new Vue({
|
||||
form: new Form('transfer'),
|
||||
bulk_action: new BulkAction('transfers'),
|
||||
show_rate: false,
|
||||
|
||||
transfer_form: new Form('template'),
|
||||
template: {
|
||||
modal: false,
|
||||
title: '',
|
||||
message: '',
|
||||
html: '',
|
||||
errors: new Error()
|
||||
},
|
||||
}
|
||||
},
|
||||
|
||||
@ -87,5 +96,35 @@ const app = new Vue({
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
onTemplate() {
|
||||
this.template.modal = true;
|
||||
|
||||
this.transfer_form = new Form('template');
|
||||
|
||||
this.transfer_form.template = this.transfer_form._template;
|
||||
},
|
||||
|
||||
addTemplate() {
|
||||
if (this.transfer_form.template != 1) {
|
||||
|
||||
this.transfer_form.submit();
|
||||
|
||||
this.template.errors = this.transfer_form.errors;
|
||||
}
|
||||
|
||||
this.form.loading = true;
|
||||
|
||||
this.$emit("confirm");
|
||||
},
|
||||
|
||||
closeTemplate() {
|
||||
this.template = {
|
||||
modal: false,
|
||||
title: '',
|
||||
message: '',
|
||||
errors: this.transfer_form.errors
|
||||
};
|
||||
},
|
||||
}
|
||||
});
|
||||
|
@ -6,6 +6,7 @@ return [
|
||||
'from_account_rate' => 'From Account Rate',
|
||||
'to_account' => 'To Account',
|
||||
'to_account_rate' => 'To Account Rate',
|
||||
'details' => 'Detail|Details',
|
||||
|
||||
'messages' => [
|
||||
'delete' => ':from to :to (:amount)',
|
||||
|
@ -41,6 +41,8 @@
|
||||
|
||||
{{ Form::textGroup('reference', trans('general.reference'), 'file', []) }}
|
||||
|
||||
{{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], null , 'col-md-12') }}
|
||||
|
||||
{!! Form::hidden('currency_code', null, ['id' => 'currency_code', 'v-model' => 'form.currency_code']) !!}
|
||||
{!! Form::hidden('currency_rate', null, ['id' => 'currency_rate', 'v-model' => 'form.currency_rate']) !!}
|
||||
</div>
|
||||
|
@ -42,6 +42,8 @@
|
||||
|
||||
{{ Form::textGroup('reference', trans('general.reference'), 'file', []) }}
|
||||
|
||||
{{ Form::fileGroup('attachment', trans('general.attachment'), '', ['dropzone-class' => 'w-100', 'multiple' => 'multiple', 'options' => ['acceptedFiles' => $file_types]], !empty($transfer) ? $transfer->attachment : null , 'col-md-12') }}
|
||||
|
||||
{!! Form::hidden('currency_code', $currency->code, ['id' => 'currency_code', 'v-model' => 'form.currency_code']) !!}
|
||||
{!! Form::hidden('currency_rate', $currency->rate, ['id' => 'currency_rate', 'v-model' => 'form.currency_rate']) !!}
|
||||
</div>
|
||||
|
@ -52,7 +52,7 @@
|
||||
@endphp
|
||||
<tr class="row align-items-center border-top-1">
|
||||
<td class="col-sm-2 col-md-1 d-none d-sm-block">{{ Form::bulkActionGroup($item->id, $item->expense_transaction->account->name) }}</td>
|
||||
<td class="col-md-2 d-none d-md-block"><a class="col-aka" href="{{ route('transfers.edit', $item->id) }}">@date($item->expense_transaction->paid_at)</a></td>
|
||||
<td class="col-md-2 d-none d-md-block"><a class="col-aka" href="{{ route('transfers.show', $item->id) }}">@date($item->expense_transaction->paid_at)</a></td>
|
||||
<td class="col-sm-2 col-md-3 d-none d-sm-block long-texts">{{ $item->expense_transaction->account->name }}</td>
|
||||
<td class="col-xs-4 col-sm-4 col-md-2 long-texts">{{ $item->income_transaction->account->name }}</td>
|
||||
<td class="col-xs-4 col-sm-2 col-md-2 text-right long-texts">@money($item->expense_transaction->amount, $item->expense_transaction->currency_code, true)</td>
|
||||
@ -62,6 +62,8 @@
|
||||
<i class="fa fa-ellipsis-h text-muted"></i>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
|
||||
<a class="dropdown-item" href="{{ route('transfers.show', $item->id) }}">{{ trans('general.show') }}</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item" href="{{ route('transfers.edit', $item->id) }}">{{ trans('general.edit') }}</a>
|
||||
@can('delete-banking-transfers')
|
||||
<div class="dropdown-divider"></div>
|
||||
|
@ -0,0 +1,9 @@
|
||||
@extends('layouts.print')
|
||||
|
||||
@section('title', trans_choice('general.transfers', 1))
|
||||
|
||||
@section('content')
|
||||
<x-transfers.template.ddefault
|
||||
:transfer="$transfer"
|
||||
/>
|
||||
@endsection
|
9
resources/views/banking/transfers/print_second.blade.php
Normal file
9
resources/views/banking/transfers/print_second.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@extends('layouts.print')
|
||||
|
||||
@section('title', trans_choice('general.transfers', 1))
|
||||
|
||||
@section('content')
|
||||
<x-transfers.template.second
|
||||
:transfer="$transfer"
|
||||
/>
|
||||
@endsection
|
9
resources/views/banking/transfers/print_third.blade.php
Normal file
9
resources/views/banking/transfers/print_third.blade.php
Normal file
@ -0,0 +1,9 @@
|
||||
@extends('layouts.print')
|
||||
|
||||
@section('title', trans_choice('general.transfers', 1))
|
||||
|
||||
@section('content')
|
||||
<x-transfers.template.third
|
||||
:transfer="$transfer"
|
||||
/>
|
||||
@endsection
|
44
resources/views/banking/transfers/show.blade.php
Normal file
44
resources/views/banking/transfers/show.blade.php
Normal file
@ -0,0 +1,44 @@
|
||||
@extends('layouts.admin')
|
||||
|
||||
@section('title', trans_choice('general.transfers', 1))
|
||||
|
||||
@section('new_button')
|
||||
<x-transfers.show.top-buttons :transfer="$transfer" />
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
<x-transfers.show.content :transfer="$transfer" />
|
||||
@endsection
|
||||
|
||||
@push('content_content_end')
|
||||
<akaunting-modal
|
||||
:show="template.modal"
|
||||
@cancel="template.modal = false"
|
||||
:title="'{{ trans('settings.invoice.choose_template') }}'"
|
||||
:message="template.html"
|
||||
:button_cancel="'{{ trans('general.button.save') }}'"
|
||||
:button_delete="'{{ trans('general.button.cancel') }}'">
|
||||
<template #modal-body>
|
||||
@include('modals.settings.transfer_template')
|
||||
</template>
|
||||
|
||||
<template #card-footer>
|
||||
<div class="float-right">
|
||||
<button type="button" class="btn btn-outline-secondary" @click="closeTemplate">
|
||||
{{ trans('general.cancel') }}
|
||||
</button>
|
||||
|
||||
<button :disabled="form.loading" type="button" class="btn btn-success button-submit" @click="addTemplate">
|
||||
<span v-if="form.loading" class="btn-inner--icon"><i class="aka-loader"></i></span>
|
||||
<span :class="[{'ml-0': form.loading}]" class="btn-inner--text">{{ trans('general.confirm') }}</span>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
</akaunting-modal>
|
||||
@endpush
|
||||
|
||||
@push('scripts_start')
|
||||
<link rel="stylesheet" href="{{ asset('public/css/print.css?v=' . version('short')) }}" type="text/css">
|
||||
|
||||
<x-transfers.script />
|
||||
@endpush
|
1
resources/views/components/transfers/script.blade.php
Normal file
1
resources/views/components/transfers/script.blade.php
Normal file
@ -0,0 +1 @@
|
||||
<script src="{{ asset( $scriptFile . '?v=' . $version) }}"></script>
|
@ -0,0 +1,9 @@
|
||||
@if ($attachment)
|
||||
<div class="row align-items-center">
|
||||
@foreach ($attachment as $file)
|
||||
<div class="col-xs-12 col-sm-4 mb-4">
|
||||
@include('partials.media.file')
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
86
resources/views/components/transfers/show/content.blade.php
Normal file
86
resources/views/components/transfers/show/content.blade.php
Normal file
@ -0,0 +1,86 @@
|
||||
@stack('content_header_start')
|
||||
@if (!$hideHeader)
|
||||
<x-transfers.show.header
|
||||
:transfer="$transfer"
|
||||
hide-header-from-account="{{ $hideHeaderFromAccount }}"
|
||||
text-header-from-account="{{ $textHeaderFromAccount }}"
|
||||
class-header-from-account="{{ $classHeaderFromAccount }}"
|
||||
hide-header-to-account="{{ $hideHeaderToAccount }}"
|
||||
text-header-to-account="{{ $textHeaderToAccount }}"
|
||||
class-header-to-account="{{ $classHeaderToAccount }}"
|
||||
hide-header-amount="{{ $hideHeaderAmount }}"
|
||||
text-header-amount="{{ $textHeaderAmount }}"
|
||||
class-header-amount="{{ $classHeaderAmount }}"
|
||||
hide-header-paid-at="{{ $hideHeaderPaidAt }}"
|
||||
text-header-paid-at="{{ $textHeaderPaidAt }}"
|
||||
class-header-paid-at="{{ $classHeaderPaidAt }}"
|
||||
/>
|
||||
@endif
|
||||
@stack('content_header_end')
|
||||
|
||||
@stack('transfer_start')
|
||||
<x-transfers.show.transfer
|
||||
:transfer="$transfer"
|
||||
transfer-template="{{ $transferTemplate }}"
|
||||
|
||||
hide-from-account="{{ $hideFromAccount }}"
|
||||
hide-from-account-title="{{ $hideFromAccountTitle }}"
|
||||
hide-from-account-name="{{ $hideFromAccountName }}"
|
||||
hide-from-account-number="{{ $hideFromAccountNumber }}"
|
||||
hide-from-account-bank-name="{{ $hideFromAccountBankName }}"
|
||||
hide-from-account-bank-phone="{{ $hideFromAccountBankPhone }}"
|
||||
hide-from-account-bank-address="{{ $hideFromAccountBankAddress }}"
|
||||
|
||||
text-from-account-title="{{ $textFromAccountTitle }}"
|
||||
text-from-account-number="{{ $textFromAccountNumber }}"
|
||||
|
||||
hide-to-account="{{ $hideToAccount }}"
|
||||
hide-to-account-title="{{ $hideToAccountTitle }}"
|
||||
hide-to-account-name="{{ $hideToAccountName }}"
|
||||
hide-to-account-number="{{ $hideToAccountNumber }}"
|
||||
hide-to-account-bank-name="{{ $hideToAccountBankName }}"
|
||||
hide-to-account-bank-phone="{{ $hideToAccountBankPhone }}"
|
||||
hide-to-account-bank-address="{{ $hideToAccountBankAddress }}"
|
||||
|
||||
text-to-account-title="{{ $textToAccountTitle }}"
|
||||
text-to-account-number="{{ $textToAccountNumber }}"
|
||||
|
||||
hide-details="{{ $hideDetails }}"
|
||||
hide-detail-title="{{ $hideDetailTitle }}"
|
||||
hide-detail-date="{{ $hideDetailDate }}"
|
||||
hide-detail-payment-method="{{ $hideDetailPaymentMethod }}"
|
||||
hide-detail-reference="{{ $hideDetailReference }}"
|
||||
hide-detail-description="{{ $hideDetailDescription }}"
|
||||
hide-detail-amount="{{ $hideDetailAmount }}"
|
||||
|
||||
text-detail-title="{{ $textDetailTitle }}"
|
||||
text-detail-date="{{ $textDetailDate }}"
|
||||
text-detail-payment-method="{{ $textDetailPaymentMethod }}"
|
||||
text-detail-reference="{{ $textDetailReference }}"
|
||||
text-detail-description="{{ $textDetailDescription }}"
|
||||
text-detail-amount="{{ $textDetailAmount }}"
|
||||
/>
|
||||
@stack('transfer_end')
|
||||
|
||||
@stack('attachment_start')
|
||||
@if (!$hideAttachment)
|
||||
<x-transfers.show.attachment
|
||||
:transfer="$transfer"
|
||||
:attachment="$attachment"
|
||||
/>
|
||||
@endif
|
||||
@stack('attachment_end')
|
||||
|
||||
@stack('row_footer_start')
|
||||
@if (!$hideFooter)
|
||||
<x-transfers.show.footer
|
||||
:transfer="$transfer"
|
||||
:histories="$histories"
|
||||
class-footer-histories="{{ $classFooterHistories }}"
|
||||
hide-footer-histories="{{ $hideFooterHistories }}"
|
||||
text-histories="{{ $textHistories }}"
|
||||
/>
|
||||
@endif
|
||||
@stack('row_footer_end')
|
||||
|
||||
{{ Form::hidden('transfer_id', $transfer->id, ['id' => 'transfer_id']) }}
|
13
resources/views/components/transfers/show/footer.blade.php
Normal file
13
resources/views/components/transfers/show/footer.blade.php
Normal file
@ -0,0 +1,13 @@
|
||||
<div class="row">
|
||||
@stack('row_footer_histories_start')
|
||||
@if (!$hideFooterHistories)
|
||||
<div class="{{ $classFooterHistories }}">
|
||||
<x-transfers.show.histories
|
||||
:transfer="$transfer"
|
||||
:histories="$histories"
|
||||
text-histories="{{ $textHistories }}"
|
||||
/>
|
||||
</div>
|
||||
@endif
|
||||
@stack('row_footer_histories_end')
|
||||
</div>
|
69
resources/views/components/transfers/show/header.blade.php
Normal file
69
resources/views/components/transfers/show/header.blade.php
Normal file
@ -0,0 +1,69 @@
|
||||
<div class="row" style="font-size: inherit !important">
|
||||
@stack('header_account_start')
|
||||
@if (!$hideHeaderFromAccount)
|
||||
<div class="{{ $classHeaderFromAccount }}">
|
||||
{{ trans_choice($textHeaderFromAccount, 1) }}
|
||||
<br>
|
||||
|
||||
<strong>
|
||||
<span class="float-left long-texts mwpx-200 transaction-head-text">
|
||||
{{ $transfer->expense_transaction->account->name }}
|
||||
</span>
|
||||
</strong>
|
||||
<br><br>
|
||||
</div>
|
||||
@endif
|
||||
@stack('header_account_end')
|
||||
|
||||
@stack('header_category_start')
|
||||
@if (!$hideHeaderToAccount)
|
||||
<div class="{{ $classHeaderToAccount }}">
|
||||
{{ trans_choice($textHeaderToAccount, 1) }}
|
||||
<br>
|
||||
|
||||
<strong>
|
||||
<span class="float-left long-texts mwpx-300 transaction-head-text">
|
||||
{{ $transfer->income_transaction->account->name }}
|
||||
</span>
|
||||
</strong>
|
||||
<br><br>
|
||||
</div>
|
||||
@endif
|
||||
@stack('header_category_end')
|
||||
|
||||
@stack('header_amount_start')
|
||||
@if (!$hideHeaderAmount)
|
||||
<div class="{{ $classHeaderAmount }}">
|
||||
<span class="float-right">
|
||||
{{ trans($textHeaderAmount) }}
|
||||
</span>
|
||||
<br>
|
||||
|
||||
<strong>
|
||||
<span class="float-right long-texts mwpx-100 transaction-head-text">
|
||||
@money($transfer->expense_transaction->amount, $transfer->from_currency_code, true)
|
||||
</span>
|
||||
</strong>
|
||||
<br><br>
|
||||
</div>
|
||||
@endif
|
||||
@stack('header_amount_end')
|
||||
|
||||
@stack('header_paid_at_start')
|
||||
@if (!$hideHeaderPaidAt)
|
||||
<div class="{{ $classHeaderPaidAt }}">
|
||||
<span class="float-right">
|
||||
{{ trans($textHeaderPaidAt) }}
|
||||
</span>
|
||||
<br>
|
||||
|
||||
<strong>
|
||||
<span class="float-right long-texts mwpx-100 transaction-head-text">
|
||||
@date($transfer->transferred_at)
|
||||
</span>
|
||||
</strong>
|
||||
<br><br>
|
||||
</div>
|
||||
@endif
|
||||
@stack('header_paid_at_end')
|
||||
</div>
|
@ -0,0 +1,47 @@
|
||||
<div class="accordion">
|
||||
<div class="card">
|
||||
<div class="card-header" id="accordion-histories-header" data-toggle="collapse" data-target="#accordion-histories-body" aria-expanded="false" aria-controls="accordion-histories-body">
|
||||
<h4 class="mb-0">{{ trans($textHistories) }}</h4>
|
||||
</div>
|
||||
|
||||
<div id="accordion-histories-body" class="collapse hide" aria-labelledby="accordion-histories-header">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-flush table-hover">
|
||||
<thead class="thead-light">
|
||||
@stack('row_footer_histories_head_tr_start')
|
||||
<tr class="row table-head-line">
|
||||
@stack('row_footer_histories_head_start')
|
||||
<th class="col-xs-4 col-sm-3">
|
||||
{{ trans('general.date') }}
|
||||
</th>
|
||||
|
||||
<th class="col-xs-8 col-sm-9 text-left long-texts">
|
||||
{{ trans('general.created') }}
|
||||
</th>
|
||||
@stack('row_footer_histories_head_end')
|
||||
</tr>
|
||||
@stack('row_footer_histories_head_tr_end')
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
@stack('row_footer_histories_body_tr_start')
|
||||
@foreach($histories as $history)
|
||||
<tr class="row align-items-center border-top-1 tr-py">
|
||||
@stack('row_footer_histories_body_td_start')
|
||||
<td class="col-xs-4 col-sm-3">
|
||||
@date($history->created_at)
|
||||
</td>
|
||||
|
||||
<td class="col-xs-4 col-sm-6 text-left long-texts">
|
||||
{{ $history->owner->name }}
|
||||
</td>
|
||||
@stack('row_footer_histories_body_td_end')
|
||||
</tr>
|
||||
@endforeach
|
||||
@stack('row_footer_histories_body_tr_end')
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,93 @@
|
||||
@stack('button_group_start')
|
||||
@if (!$hideButtonMoreActions)
|
||||
<div class="dropup header-drop-top">
|
||||
<button type="button" class="btn btn-white btn-sm" data-toggle="dropdown" aria-expanded="false">
|
||||
<i class="fa fa-chevron-down"></i> {{ trans('general.more_actions') }}
|
||||
</button>
|
||||
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@stack('button_dropdown_start')
|
||||
@stack('edit_button_start')
|
||||
@if (!$hideButtonEdit)
|
||||
@can($permissionUpdate)
|
||||
<a class="dropdown-item" href="{{ route($routeButtonEdit, $transfer->id) }}">
|
||||
{{ trans('general.edit') }}
|
||||
</a>
|
||||
@endcan
|
||||
@endif
|
||||
@stack('edit_button_end')
|
||||
|
||||
@stack('duplicate_button_start')
|
||||
@if (!$hideButtonDuplicate)
|
||||
@can($permissionCreate)
|
||||
<a class="dropdown-item" href="{{ route($routeButtonDuplicate, $transfer->id) }}">
|
||||
{{ trans('general.duplicate') }}
|
||||
</a>
|
||||
@endcan
|
||||
@endif
|
||||
@stack('duplicate_button_end')
|
||||
|
||||
@stack('button_dropdown_divider_1_start')
|
||||
@if (!$hideButtonGroupDivider1)
|
||||
<div class="dropdown-divider"></div>
|
||||
@endif
|
||||
@stack('button_dropdown_divider_1_end')
|
||||
|
||||
@if (!$hideButtonPrint)
|
||||
@stack('button_print_start')
|
||||
<a class="dropdown-item" href="{{ route($routeButtonPrint, $transfer->id) }}" target="_blank">
|
||||
{{ trans('general.print') }}
|
||||
</a>
|
||||
@stack('button_print_end')
|
||||
@endif
|
||||
|
||||
@stack('button_pdf_start')
|
||||
@if (!$hideButtonPdf)
|
||||
<a class="dropdown-item" href="{{ route($routeButtonPdf, $transfer->id) }}">
|
||||
{{ trans('general.download_pdf') }}
|
||||
</a>
|
||||
@endif
|
||||
@stack('button_pdf_end')
|
||||
|
||||
@stack('button_dropdown_divider_2_start')
|
||||
@if (!$hideButtonGroupDivider2)
|
||||
<div class="dropdown-divider"></div>
|
||||
@endif
|
||||
@stack('button_dropdown_divider_2_end')
|
||||
|
||||
@if (!$hideButtonTemplate)
|
||||
@stack('button_template_start')
|
||||
<button type="button" class="dropdown-item" @click="onTemplate">
|
||||
{{ trans('general.form.choose', ['field' => trans_choice('general.templates', 1)]) }}
|
||||
</button>
|
||||
@stack('button_template_end')
|
||||
@endif
|
||||
|
||||
@stack('button_dropdown_divider_3_start')
|
||||
@if (!$hideButtonGroupDivider3)
|
||||
<div class="dropdown-divider"></div>
|
||||
@endif
|
||||
@stack('button_dropdown_divider_3_end')
|
||||
|
||||
@stack('delete_button_start')
|
||||
@if (!$hideButtonDelete)
|
||||
@can($permissionDelete)
|
||||
{!! Form::deleteLink($transfer, $routeButtonDelete, $textDeleteModal, 'transfer_number') !!}
|
||||
@endcan
|
||||
@endif
|
||||
@stack('delete_button_end')
|
||||
@stack('button_dropdown_end')
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@stack('button_group_end')
|
||||
|
||||
@stack('add_new_button_start')
|
||||
@if (!$hideButtonAddNew)
|
||||
@can($permissionCreate)
|
||||
<a href="{{ route($routeButtonAddNew) }}" class="btn btn-white btn-sm">
|
||||
{{ trans('general.add_new') }}
|
||||
</a>
|
||||
@endcan
|
||||
@endif
|
||||
@stack('add_new_button_end')
|
137
resources/views/components/transfers/show/transfer.blade.php
Normal file
137
resources/views/components/transfers/show/transfer.blade.php
Normal file
@ -0,0 +1,137 @@
|
||||
|
||||
|
||||
<div class="card" style="padding: 0; padding-left: 15px; padding-right: 15px; border-radius: 0; box-shadow: 0 4px 16px rgba(0,0,0,.2);">
|
||||
<div class="card-body show-card-body">
|
||||
@if ($transferTemplate)
|
||||
@switch($transferTemplate)
|
||||
@case('second')
|
||||
<x-transfers.template.second
|
||||
:transfer="$transfer"
|
||||
|
||||
hide-from-account="{{ $hideFromAccount }}"
|
||||
hide-from-account-title="{{ $hideFromAccountTitle }}"
|
||||
hide-from-account-name="{{ $hideFromAccountName }}"
|
||||
hide-from-account-number="{{ $hideFromAccountNumber }}"
|
||||
hide-from-account-bank-name="{{ $hideFromAccountBankName }}"
|
||||
hide-from-account-bank-phone="{{ $hideFromAccountBankPhone }}"
|
||||
hide-from-account-bank-address="{{ $hideFromAccountBankAddress }}"
|
||||
|
||||
text-from-account-title="{{ $textFromAccountTitle }}"
|
||||
text-from-account-number="{{ $textFromAccountNumber }}"
|
||||
|
||||
hide-to-account="{{ $hideToAccount }}"
|
||||
hide-to-account-title="{{ $hideToAccountTitle }}"
|
||||
hide-to-account-name="{{ $hideToAccountName }}"
|
||||
hide-to-account-number="{{ $hideToAccountNumber }}"
|
||||
hide-to-account-bank-name="{{ $hideToAccountBankName }}"
|
||||
hide-to-account-bank-phone="{{ $hideToAccountBankPhone }}"
|
||||
hide-to-account-bank-address="{{ $hideToAccountBankAddress }}"
|
||||
|
||||
text-to-account-title="{{ $textToAccountTitle }}"
|
||||
text-to-account-number="{{ $textToAccountNumber }}"
|
||||
|
||||
hide-details="{{ $hideDetails }}"
|
||||
hide-detail-title="{{ $hideDetailTitle }}"
|
||||
hide-detail-date="{{ $hideDetailDate }}"
|
||||
hide-detail-payment-method="{{ $hideDetailPaymentMethod }}"
|
||||
hide-detail-reference="{{ $hideDetailReference }}"
|
||||
hide-detail-description="{{ $hideDetailDescription }}"
|
||||
hide-detail-amount="{{ $hideDetailAmount }}"
|
||||
|
||||
text-detail-title="{{ $textDetailTitle }}"
|
||||
text-detail-date="{{ $textDetailDate }}"
|
||||
text-detail-payment-method="{{ $textDetailPaymentMethod }}"
|
||||
text-detail-reference="{{ $textDetailReference }}"
|
||||
text-detail-description="{{ $textDetailDescription }}"
|
||||
text-detail-amount="{{ $textDetailAmount }}"
|
||||
/>
|
||||
@break
|
||||
@case('third')
|
||||
<x-transfers.template.third
|
||||
:transfer="$transfer"
|
||||
|
||||
hide-from-account="{{ $hideFromAccount }}"
|
||||
hide-from-account-title="{{ $hideFromAccountTitle }}"
|
||||
hide-from-account-name="{{ $hideFromAccountName }}"
|
||||
hide-from-account-number="{{ $hideFromAccountNumber }}"
|
||||
hide-from-account-bank-name="{{ $hideFromAccountBankName }}"
|
||||
hide-from-account-bank-phone="{{ $hideFromAccountBankPhone }}"
|
||||
hide-from-account-bank-address="{{ $hideFromAccountBankAddress }}"
|
||||
|
||||
text-from-account-title="{{ $textFromAccountTitle }}"
|
||||
text-from-account-number="{{ $textFromAccountNumber }}"
|
||||
|
||||
hide-to-account="{{ $hideToAccount }}"
|
||||
hide-to-account-title="{{ $hideToAccountTitle }}"
|
||||
hide-to-account-name="{{ $hideToAccountName }}"
|
||||
hide-to-account-number="{{ $hideToAccountNumber }}"
|
||||
hide-to-account-bank-name="{{ $hideToAccountBankName }}"
|
||||
hide-to-account-bank-phone="{{ $hideToAccountBankPhone }}"
|
||||
hide-to-account-bank-address="{{ $hideToAccountBankAddress }}"
|
||||
|
||||
text-to-account-title="{{ $textToAccountTitle }}"
|
||||
text-to-account-number="{{ $textToAccountNumber }}"
|
||||
|
||||
hide-details="{{ $hideDetails }}"
|
||||
hide-detail-title="{{ $hideDetailTitle }}"
|
||||
hide-detail-date="{{ $hideDetailDate }}"
|
||||
hide-detail-payment-method="{{ $hideDetailPaymentMethod }}"
|
||||
hide-detail-reference="{{ $hideDetailReference }}"
|
||||
hide-detail-description="{{ $hideDetailDescription }}"
|
||||
hide-detail-amount="{{ $hideDetailAmount }}"
|
||||
|
||||
text-detail-title="{{ $textDetailTitle }}"
|
||||
text-detail-date="{{ $textDetailDate }}"
|
||||
text-detail-payment-method="{{ $textDetailPaymentMethod }}"
|
||||
text-detail-reference="{{ $textDetailReference }}"
|
||||
text-detail-description="{{ $textDetailDescription }}"
|
||||
text-detail-amount="{{ $textDetailAmount }}"
|
||||
/>
|
||||
@break
|
||||
@default
|
||||
<x-transfers.template.ddefault
|
||||
:transfer="$transfer"
|
||||
|
||||
hide-from-account="{{ $hideFromAccount }}"
|
||||
hide-from-account-title="{{ $hideFromAccountTitle }}"
|
||||
hide-from-account-name="{{ $hideFromAccountName }}"
|
||||
hide-from-account-number="{{ $hideFromAccountNumber }}"
|
||||
hide-from-account-bank-name="{{ $hideFromAccountBankName }}"
|
||||
hide-from-account-bank-phone="{{ $hideFromAccountBankPhone }}"
|
||||
hide-from-account-bank-address="{{ $hideFromAccountBankAddress }}"
|
||||
|
||||
text-from-account-title="{{ $textFromAccountTitle }}"
|
||||
text-from-account-number="{{ $textFromAccountNumber }}"
|
||||
|
||||
hide-to-account="{{ $hideToAccount }}"
|
||||
hide-to-account-title="{{ $hideToAccountTitle }}"
|
||||
hide-to-account-name="{{ $hideToAccountName }}"
|
||||
hide-to-account-number="{{ $hideToAccountNumber }}"
|
||||
hide-to-account-bank-name="{{ $hideToAccountBankName }}"
|
||||
hide-to-account-bank-phone="{{ $hideToAccountBankPhone }}"
|
||||
hide-to-account-bank-address="{{ $hideToAccountBankAddress }}"
|
||||
|
||||
text-to-account-title="{{ $textToAccountTitle }}"
|
||||
text-to-account-number="{{ $textToAccountNumber }}"
|
||||
|
||||
hide-details="{{ $hideDetails }}"
|
||||
hide-detail-title="{{ $hideDetailTitle }}"
|
||||
hide-detail-date="{{ $hideDetailDate }}"
|
||||
hide-detail-payment-method="{{ $hideDetailPaymentMethod }}"
|
||||
hide-detail-reference="{{ $hideDetailReference }}"
|
||||
hide-detail-description="{{ $hideDetailDescription }}"
|
||||
hide-detail-amount="{{ $hideDetailAmount }}"
|
||||
|
||||
text-detail-title="{{ $textDetailTitle }}"
|
||||
text-detail-date="{{ $textDetailDate }}"
|
||||
text-detail-payment-method="{{ $textDetailPaymentMethod }}"
|
||||
text-detail-reference="{{ $textDetailReference }}"
|
||||
text-detail-description="{{ $textDetailDescription }}"
|
||||
text-detail-amount="{{ $textDetailAmount }}"
|
||||
/>
|
||||
@endswitch
|
||||
@else
|
||||
@include($transferTemplate)
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
179
resources/views/components/transfers/template/default.blade.php
Normal file
179
resources/views/components/transfers/template/default.blade.php
Normal file
@ -0,0 +1,179 @@
|
||||
@if (!$hideFromAccount)
|
||||
<table class="border-bottom-1" style="width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width: 60%; padding-bottom: 15px;">
|
||||
@if (!$hideFromAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textFromAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textFromAccountNumber) }}: {{ $transfer->expense_transaction->account->number }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccount)
|
||||
<table class="border-bottom-1" style="width: 100%; margin-top:15px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width: 60%; padding-bottom: 15px;">
|
||||
@if (!$hideToAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textToAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textToAccountNumber) }}: {{ $transfer->income_transaction->account->number }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetails)
|
||||
@if (!$hideDetailTitle)
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-bottom: 0; padding-top: 32px;">
|
||||
<h2 class="text-center text-uppercase" style="font-size: 16px;">
|
||||
{{ trans_choice($textDetailTitle, 2) }}
|
||||
</h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 70%; padding-top:0; padding-bottom:0;">
|
||||
<table>
|
||||
@if (!$hideDetailDate)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDate) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
@date($transfer->expense_transaction->paid_at)
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailPaymentMethod)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans_choice($textDetailPaymentMethod, 1) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $payment_methods[$transfer->expense_transaction->payment_method] }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailReference)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailReference) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->reference }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailDescription)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDescription) }}
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->description }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
|
||||
@if (!$hideDetailAmount)
|
||||
<td style="width:30%; padding-top:32px; padding-left: 25px;" valign="top">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="background-color: #6da252; -webkit-print-color-adjust: exact; font-weight:bold !important; display:block;">
|
||||
<h5 class="text-muted mb-0 text-white" style="font-size: 20px; color:#ffffff; text-align:center; margin-top: 16px;">
|
||||
{{ trans($textDetailAmount) }}:
|
||||
</h5>
|
||||
|
||||
<p class="font-weight-bold mb-0 text-white" style="font-size: 26px; color:#ffffff; text-align:center;">
|
||||
@money($transfer->expense_transaction->amount, $transfer->expense_transaction->currency_code, true)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
179
resources/views/components/transfers/template/second.blade.php
Normal file
179
resources/views/components/transfers/template/second.blade.php
Normal file
@ -0,0 +1,179 @@
|
||||
@if (!$hideDetails)
|
||||
@if (!$hideDetailTitle)
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-bottom: 0; padding-top: 32px;">
|
||||
<h2 class="text-center text-uppercase" style="font-size: 16px;">
|
||||
{{ trans_choice($textDetailTitle, 2) }}
|
||||
</h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<table class="border-bottom-1">
|
||||
<tr>
|
||||
<td style="width: 70%; padding-top:0; padding-bottom:45px;">
|
||||
<table>
|
||||
@if (!$hideDetailDate)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDate) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
@date($transfer->expense_transaction->paid_at)
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailPaymentMethod)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans_choice($textDetailPaymentMethod, 1) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $payment_methods[$transfer->expense_transaction->payment_method] }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailReference)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailReference) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->reference }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailDescription)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDescription) }}
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->description }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
|
||||
@if (!$hideDetailAmount)
|
||||
<td style="width:30%; padding-top:32px; padding-left: 25px;" valign="top">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="background-color: #6da252; -webkit-print-color-adjust: exact; font-weight:bold !important; display:block;">
|
||||
<h5 class="text-muted mb-0 text-white" style="font-size: 20px; color:#ffffff; text-align:center; margin-top: 16px;">
|
||||
{{ trans($textDetailAmount) }}:
|
||||
</h5>
|
||||
|
||||
<p class="font-weight-bold mb-0 text-white" style="font-size: 26px; color:#ffffff; text-align:center;">
|
||||
@money($transfer->expense_transaction->amount, $transfer->expense_transaction->currency_code, true)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccount)
|
||||
<table class="border-bottom-1" style="width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width: 60%; padding-bottom: 15px;">
|
||||
@if (!$hideFromAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textFromAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textFromAccountNumber) }}: {{ $transfer->expense_transaction->account->number}}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccount)
|
||||
<table class="border-bottom-1" style="width: 100%; margin-top:15px;">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="width: 60%; padding-bottom: 15px;">
|
||||
@if (!$hideToAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textToAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textToAccountNumber) }}: {{ $transfer->income_transaction->account->number }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
191
resources/views/components/transfers/template/third.blade.php
Normal file
191
resources/views/components/transfers/template/third.blade.php
Normal file
@ -0,0 +1,191 @@
|
||||
@if (!$hideFromAccount && !$hideToAccount)
|
||||
<table class="border-bottom-1" style="width: 100%;">
|
||||
<tbody>
|
||||
<tr>
|
||||
@if (!$hideFromAccount)
|
||||
<td style="width: 50%; padding-bottom: 15px;" valign="top">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
@if (!$hideFromAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textFromAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textFromAccountNumber) }}: {{ $transfer->expense_transaction->account->number}}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideFromAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->expense_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccount)
|
||||
<td style="width: 50%; padding-bottom: 15px;" valign="top">
|
||||
<table>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: right;">
|
||||
@if (!$hideToAccountTitle)
|
||||
<h2 class="mb-1" style="font-size: 16px;">
|
||||
{{ trans($textToAccountTitle) }}
|
||||
</h2>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountNumber)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ trans($textToAccountNumber) }}: {{ $transfer->income_transaction->account->number }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankName)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_name }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankPhone)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_phone }}
|
||||
</p>
|
||||
@endif
|
||||
|
||||
@if (!$hideToAccountBankAddress)
|
||||
<p style="margin: 0px; padding: 0px; font-size: 14px;">
|
||||
{{ $transfer->income_transaction->account->bank_address }}
|
||||
</p>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetails)
|
||||
@if (!$hideDetailTitle)
|
||||
<table>
|
||||
<tr>
|
||||
<td style="padding-bottom: 0; padding-top: 32px;">
|
||||
<h2 class="text-center text-uppercase" style="font-size: 16px;">
|
||||
{{ trans_choice($textDetailTitle, 2) }}
|
||||
</h2>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="width: 70%; padding-top:0; padding-bottom:0;">
|
||||
<table>
|
||||
@if (!$hideDetailDate)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDate) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
@date($transfer->expense_transaction->paid_at)
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailPaymentMethod)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans_choice($textDetailPaymentMethod, 1) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $payment_methods[$transfer->expense_transaction->payment_method] }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailReference)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailReference) }}:
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->reference }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
|
||||
@if (!$hideDetailDescription)
|
||||
<tr>
|
||||
<td style="width: 20%; padding-bottom:3px; font-size:14px; font-weight: bold;">
|
||||
{{ trans($textDetailDescription) }}
|
||||
</td>
|
||||
|
||||
<td class="border-bottom-1" style="width:80%; padding-bottom:3px; font-size:14px;">
|
||||
{{ $transfer->expense_transaction->description }}
|
||||
</td>
|
||||
</tr>
|
||||
@endif
|
||||
</table>
|
||||
</td>
|
||||
|
||||
@if (!$hideDetailAmount)
|
||||
<td style="width:30%; padding-top:32px; padding-left: 25px;" valign="top">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="background-color: #6da252; -webkit-print-color-adjust: exact; font-weight:bold !important; display:block;">
|
||||
<h5 class="text-muted mb-0 text-white" style="font-size: 20px; color:#ffffff; text-align:center; margin-top: 16px;">
|
||||
{{ trans($textDetailAmount) }}:
|
||||
</h5>
|
||||
|
||||
<p class="font-weight-bold mb-0 text-white" style="font-size: 26px; color:#ffffff; text-align:center;">
|
||||
@money($transfer->expense_transaction->amount, $transfer->expense_transaction->currency_code, true)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
@endif
|
||||
</tr>
|
||||
</table>
|
||||
@endif
|
49
resources/views/modals/settings/transfer_template.blade.php
Normal file
49
resources/views/modals/settings/transfer_template.blade.php
Normal file
@ -0,0 +1,49 @@
|
||||
<div class="modal-body pb-0">
|
||||
{!! Form::open([
|
||||
'route' => 'modals.transfer-templates.update',
|
||||
'method' => 'PATCH',
|
||||
'id' => 'template',
|
||||
'@submit.prevent' => 'onSubmit',
|
||||
'@keydown' => 'transfer_form.errors.clear($event.target.name)',
|
||||
'files' => true,
|
||||
'role' => 'form',
|
||||
'class' => 'form-loading-button mb-0',
|
||||
'novalidate' => true
|
||||
]) !!}
|
||||
<div class="row">
|
||||
<div class="col-md-4 text-center">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='default'">
|
||||
<img src="{{ asset('public/img/transfer_templates/default.png') }}" class="mb-1 mt-3" height="200" alt="Default"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="default" v-model="transfer_form.template">
|
||||
{{ trans('settings.invoice.default') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-2">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='second'">
|
||||
<img src="{{ asset('public/img/transfer_templates/second.png') }}" class="mb-1 mt-3" height="200" alt="Second"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="second" v-model="transfer_form.template">
|
||||
{{ trans('settings.transfer.second') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-4 text-center px-0">
|
||||
<div class="bg-print border-radius-default print-edge choose" @click="transfer_form.template='third'">
|
||||
<img src="{{ asset('public/img/transfer_templates/third.png') }}" class="mb-1 mt-3" height="200" alt="Third"/>
|
||||
<label>
|
||||
<input type="radio" name="template" value="third" v-model="transfer_form.template">
|
||||
{{ trans('settings.transfer.third') }}
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{!! Form::hidden('transfer_id', $transfer->id) !!}
|
||||
{!! Form::hidden('_template', setting('transfer.template')) !!}
|
||||
{!! Form::hidden('_prefix', 'transfer') !!}
|
||||
{!! Form::close() !!}
|
||||
</div>
|
@ -136,6 +136,9 @@ Route::group(['prefix' => 'banking'], function () {
|
||||
Route::get('transactions/export', 'Banking\Transactions@export')->name('transactions.export');
|
||||
Route::resource('transactions', 'Banking\Transactions');
|
||||
|
||||
Route::get('transfers/{transfer}/print', 'Banking\Transfers@printTransfer')->name('transfers.print');
|
||||
Route::get('transfers/{transfer}/pdf', 'Banking\Transfers@pdfTransfer')->name('transfers.pdf');
|
||||
Route::get('transfers/{transfer}/duplicate', 'Banking\Transfers@duplicate')->name('transfers.duplicate');
|
||||
Route::post('transfers/import', 'Banking\Transfers@import')->name('transfers.import');
|
||||
Route::get('transfers/export', 'Banking\Transfers@export')->name('transfers.export');
|
||||
Route::resource('transfers', 'Banking\Transfers', ['middleware' => ['date.format', 'money']]);
|
||||
@ -233,6 +236,7 @@ Route::group(['as' => 'modals.', 'prefix' => 'modals'], function () {
|
||||
Route::resource('vendors', 'Modals\Vendors');
|
||||
Route::resource('items', 'Modals\Items');
|
||||
Route::patch('invoice-templates', 'Modals\InvoiceTemplates@update')->name('invoice-templates.update');
|
||||
Route::patch('transfer-templates', 'Modals\TransferTemplates@update')->name('transfer-templates.update');
|
||||
Route::get('documents/item-columns/edit', 'Modals\DocumentItemColumns@edit')->name('documents.item-columns.edit');
|
||||
Route::patch('documents/item-columns', 'Modals\DocumentItemColumns@update')->name('documents.item-columns.update');
|
||||
Route::resource('documents/{document}/transactions', 'Modals\DocumentTransactions', [
|
||||
|
@ -42,7 +42,7 @@ class TransfersTest extends FeatureTestCase
|
||||
$transfer = $this->dispatch(new CreateTransfer($this->getRequest()));
|
||||
|
||||
$this->loginAs()
|
||||
->get(route('transfers.edit', $transfer->id))
|
||||
->get(route('transfers.show', $transfer->id))
|
||||
->assertStatus(200)
|
||||
->assertSee($transfer->description);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user