template fixes + bug fixes + style fixes

This commit is contained in:
Dennis Eichhorn 2024-04-02 21:40:48 +00:00
parent b312918aa1
commit f3eb4fa011
10 changed files with 1215 additions and 699 deletions

View File

@ -79,8 +79,8 @@
"pid": "/purchase",
"type": 3,
"subtype": 1,
"name": "Values",
"uri": "{/base}/purchase/supplier/attribute/value/list?{?}",
"name": "Create",
"uri": "{/base}/purchase/supplier/attribute/type/create?{?}",
"target": "self",
"icon": null,
"order": 15,

View File

@ -174,7 +174,7 @@ final class ApiController extends Controller
/** @var \Modules\Attribute\Models\AttributeType[] $types */
$types = SupplierAttributeTypeMapper::getAll()
->where('name', \array_keys($segmentation), 'IN')
->execute();
->executeGetArray();
foreach ($types as $type) {
$internalResponse = clone $response;

View File

@ -14,22 +14,25 @@ declare(strict_types=1);
namespace Modules\SupplierManagement\Controller;
use Modules\Billing\Models\PurchaseBillMapper;
use Modules\Auditor\Models\AuditMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Media\Models\MediaTypeMapper;
use Modules\Organization\Models\Attribute\UnitAttributeMapper;
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeL11nMapper;
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeTypeMapper;
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeValueL11nMapper;
use Modules\SupplierManagement\Models\Attribute\SupplierAttributeValueMapper;
use Modules\SupplierManagement\Models\PermissionCategory;
use Modules\SupplierManagement\Models\SupplierMapper;
use phpOMS\Account\PermissionType;
use phpOMS\Asset\AssetType;
use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\Builder;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Localization\Money;
use phpOMS\DataStorage\Database\Query\Where;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Stdlib\Base\SmartDateTime;
use phpOMS\Utils\StringUtils;
use phpOMS\Views\View;
/**
@ -63,7 +66,7 @@ final class BackendController extends Controller
$view->attributes = SupplierAttributeTypeMapper::getAll()
->with('l11n')
->where('l11n/language', $response->header->l11n->language)
->execute();
->executeGetArray();
$view->path = 'purchase/supplier';
@ -92,7 +95,7 @@ final class BackendController extends Controller
$attributes = SupplierAttributeValueMapper::getAll()
->with('l11n')
->where('l11n/language', $response->header->l11n->language)
->execute();
->executeGetArray();
$view->data['attributes'] = $attributes;
@ -127,7 +130,7 @@ final class BackendController extends Controller
$view->l11ns = SupplierAttributeTypeL11nMapper::getAll()
->where('ref', $view->attribute->id)
->execute();
->executeGetArray();
$view->path = 'purchase/supplier';
@ -159,7 +162,7 @@ final class BackendController extends Controller
$view->l11ns = SupplierAttributeValueL11nMapper::getAll()
->where('ref', $view->attribute->id)
->execute();
->executeGetArray();
// @todo Also find the ItemAttributeType
@ -189,7 +192,7 @@ final class BackendController extends Controller
->with('mainAddress')
->where('unit', $this->app->unitId)
->limit(25)
->execute();
->executeGetArray();
$view->data['supplier'] = $supplier;
@ -211,7 +214,7 @@ final class BackendController extends Controller
public function viewSupplierManagementSupplierCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
{
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/SupplierManagement/Theme/Backend/supplier-create');
$view->setTemplate('/Modules/SupplierManagement/Theme/Backend/supplier-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003202001, $request, $response);
return $view;
@ -243,17 +246,43 @@ final class BackendController extends Controller
$view->setTemplate('/Modules/SupplierManagement/Theme/Backend/supplier-view');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1003202001, $request, $response);
/** @var \Modules\SupplierManagement\Models\Supplier $supplier */
$supplier = SupplierMapper::get()
$pkType = 'id';
$pkValue = $request->getDataInt('id');
if ($pkValue === null) {
$pkType = 'number';
$pkValue = $request->getDataString('number');
}
$view->data['supplier'] = SupplierMapper::get()
->with('account')
->with('contactElements')
->with('account/addresses')
->with('account/contacts')
->with('mainAddress')
->with('files')->limit(5, 'files')->sort('files/id', OrderType::DESC)
->with('notes')->limit(5, 'notes')->sort('notes/id', OrderType::DESC)
->where('id', (int) $request->getData('id'))
->with('attributes')
->with('attributes/type')
->with('attributes/type/l11n')
->with('attributes/value')
//->with('attributes/value/l11n')
//->with('attributes/value/l11n')
->where($pkType, $pkValue)
->where('attributes/type/l11n/language', $response->header->l11n->language)
//->where('attributes/value/l11n/language', $response->header->l11n->language)
/*
->where('attributes/value/l11n', (new Where($this->app->dbPool->get()))
->where(SupplierAttributeValueL11nMapper::getColumnByMember('ref'), '=', null)
->orWhere(SupplierAttributeValueL11nMapper::getColumnByMember('language'), '=', $response->header->l11n->language))
*/
->execute();
$view->data['supplier'] = $supplier;
$view->data['attributeView'] = new \Modules\Attribute\Theme\Backend\Components\AttributeView($this->app->l11nManager, $request, $response);
$view->data['attributeView']->data['default_localization'] = $this->app->l11nServer;
$view->data['attributeTypes'] = SupplierAttributeTypeMapper::getAll()
->with('l11n')
->where('l11n/language', $response->header->l11n->language)
->executeGetArray();
// Get item profile image
// @feature Create a new read mapper function that returns relation models instead of its own model
@ -269,36 +298,105 @@ final class BackendController extends Controller
->on(MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD, '=', MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['self'])
->leftJoin(MediaTypeMapper::TABLE)
->on(MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['external'], '=', MediaTypeMapper::TABLE . '.' . MediaTypeMapper::PRIMARYFIELD)
->where(SupplierMapper::HAS_MANY['files']['self'], '=', $supplier->id)
->where(SupplierMapper::HAS_MANY['files']['self'], '=', $view->data['supplier']->id)
->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'supplier_profile_image');
$clientImage = MediaMapper::get()
$view->data['supplierImage'] = MediaMapper::get()
->where('id', $results)
->limit(1)
->execute();
$view->data['clientImage'] = $clientImage;
$businessStart = UnitAttributeMapper::get()
->with('type')
->with('value')
->where('ref', $this->app->unitId)
->where('type/name', 'business_year_start')
->execute();
// stats
if ($this->app->moduleManager->isActive('Billing')) {
$ytd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->id, new SmartDateTime('Y-01-01'), new SmartDateTime('now'));
$mtd = PurchaseBillMapper::getPurchaseBySupplierId($supplier->id, new SmartDateTime('Y-m-01'), new SmartDateTime('now'));
$lastOrder = PurchaseBillMapper::getLastOrderDateBySupplierId($supplier->id);
$newestInvoices = PurchaseBillMapper::getAll()->with('supplier')->where('supplier', $supplier->id)->sort('id', OrderType::DESC)->limit(5)->execute();
$monthlyPurchaseCosts = PurchaseBillMapper::getSupplierMonthlyPurchaseCosts($supplier->id, (new SmartDateTime('now'))->createModify(-1), new SmartDateTime('now'));
} else {
$ytd = new Money();
$mtd = new Money();
$lastOrder = null;
$newestInvoices = [];
$monthlyPurchaseCosts = [];
$view->data['business_start'] = $businessStart->id === 0 ? 1 : $businessStart->value->getValue();
$view->data['hasBilling'] = $this->app->moduleManager->isActive('Billing');
$view->data['hasAccounting'] = $this->app->moduleManager->isActive('Accounting');
$view->data['prices'] = $view->data['hasBilling']
? \Modules\Billing\Models\Price\PriceMapper::getAll()
->where('supplier', $view->data['supplier']->id)
->where('type', \Modules\Billing\Models\Price\PriceType::PURCHASE)
->executeGetArray()
: [];
/** @var \Modules\Attribute\Models\AttributeType[] $tmp */
$tmp = SupplierAttributeTypeMapper::getAll()
->with('defaults')
->with('defaults/l11n')
->where('name', [
'segment', 'section', 'sales_group', 'product_group', 'product_type',
'sales_tax_code', 'purchase_tax_code',
], 'IN')
->where('defaults/l11n', (new Where($this->app->dbPool->get()))
->where(SupplierAttributeValueL11nMapper::getColumnByMember('ref') ?? '', '=', null)
->orWhere(SupplierAttributeValueL11nMapper::getColumnByMember('language') ?? '', '=', $response->header->l11n->language))
->executeGetArray();
$defaultAttributeTypes = [];
foreach ($tmp as $t) {
$defaultAttributeTypes[$t->name] = $t;
}
$view->data['ytd'] = $ytd;
$view->data['mtd'] = $mtd;
$view->data['lastOrder'] = $lastOrder;
$view->data['newestInvoices'] = $newestInvoices;
$view->data['monthlyPurchaseCosts'] = $monthlyPurchaseCosts;
$view->data['defaultAttributeTypes'] = $defaultAttributeTypes;
/** @var \Modules\Attribute\Models\AttributeType[] $tmp */
$tmp = SupplierAttributeTypeMapper::getAll()
->with('defaults')
->with('defaults/l11n')
->where('name', [
'segment', 'section', 'supplier_group', 'supplier_type',
'sales_tax_code',
], 'IN')
->where('defaults/l11n', (new Where($this->app->dbPool->get()))
->where(SupplierAttributeValueL11nMapper::getColumnByMember('ref') ?? '', '=', null)
->orWhere(SupplierAttributeValueL11nMapper::getColumnByMember('language') ?? '', '=', $response->header->l11n->language))
->executeGetArray();
$supplierSegmentationTypes = [];
foreach ($tmp as $t) {
$supplierSegmentationTypes[$t->name] = $t;
}
$view->data['supplierSegmentationTypes'] = $supplierSegmentationTypes;
$logs = [];
if ($this->app->accountManager->get($request->header->account)->hasPermission(
PermissionType::READ,
$this->app->unitId,
null,
self::NAME,
PermissionCategory::SUPPLIER_LOG,
)
) {
/** @var \Modules\Auditor\Models\Audit[] */
$logs = AuditMapper::getAll()
->where('type', StringUtils::intHash(SupplierMapper::class))
->where('module', 'SupplierManagement')
->where('ref', (string) $view->data['supplier']->id)
->executeGetArray();
}
$view->data['logs'] = $logs;
// @todo join audit with files, attributes, localization, prices, notes, ...
$view->data['files'] = MediaMapper::getAll()
->with('types')
->join('id', SupplierMapper::class, 'files') // id = media id, files = supplier relations
->on('id', $view->data['supplier']->id, relation: 'files') // id = item id
->executeGetArray();
$view->data['media-upload'] = new \Modules\Media\Theme\Backend\Components\Upload\BaseView($this->app->l11nManager, $request, $response);
$view->data['note'] = new \Modules\Editor\Theme\Backend\Components\Note\BaseView($this->app->l11nManager, $request, $response);
$view->data['address-component'] = new \Modules\Admin\Theme\Backend\Components\AddressEditor\AddressView($this->app->l11nManager, $request, $response);
$view->data['contact-component'] = new \Modules\Admin\Theme\Backend\Components\ContactEditor\ContactView($this->app->l11nManager, $request, $response);
return $view;
}

View File

@ -31,4 +31,6 @@ abstract class PermissionCategory extends Enum
public const ANALYSIS = 2;
public const ATTRIBUTE = 4;
public const SUPPLIER_LOG = 5;
}

View File

@ -19,11 +19,11 @@ return ['SupplierManagement' => [
'AreaManager' => 'Bereichsleiter',
'Articlegroup' => 'ArtikelGroup.',
'Articles' => 'Artikel',
'Attribute' => '',
'Attribute' => 'Attribut',
'AttributeTypes' => 'Attributetypen',
'Attributes' => '',
'Attributes' => 'Attribute',
'Balance' => 'Gleichgewicht',
'Bills' => '',
'Bills' => 'Rechnungen',
'Bonus' => 'Bonus',
'CLV' => 'CLV',
'Calendar' => 'Kalender',
@ -33,7 +33,7 @@ return ['SupplierManagement' => [
'Contact' => 'Kontakt',
'Country' => 'Land',
'Created' => 'Erstellt',
'CreatedAt' => '',
'CreatedAt' => 'Erstellt',
'CreditRating' => 'Kreditbeurteilung',
'Creditcard' => 'Kreditkarte',
'DSO' => 'DSO.',
@ -45,7 +45,7 @@ return ['SupplierManagement' => [
'DiscountBonus' => '',
'DiscountP' => 'Rabatt %',
'Documents' => 'Unterlagen',
'Due' => '',
'Due' => 'Fällig',
'Email' => 'Email',
'Fax' => 'Fax',
'Files' => 'Dateien',
@ -56,7 +56,7 @@ return ['SupplierManagement' => [
'Invoice' => 'Rechnung',
'Invoices' => 'Rechnungen',
'IsDefault' => 'Ist default',
'Items' => '',
'Items' => 'Artikel',
'LastContact' => 'Letzter Kontakt',
'LastOrder' => 'Letzte Bestellung',
'Log' => 'Protokoll',
@ -85,7 +85,7 @@ return ['SupplierManagement' => [
'Prices' => 'Preise',
'Productgroup' => 'Produktgruppe',
'Profile' => 'Profil',
'Profit' => '',
'Profit' => 'Gewinn',
'Purchase' => 'Kaufen',
'Quantity' => 'Menge',
'RecentInvoices' => 'Jüngste Rechnungen',
@ -97,12 +97,37 @@ return ['SupplierManagement' => [
'Suppliers' => 'Lieferanten',
'Support' => 'Unterstützung',
'Tags' => 'Stichworte',
'Title' => '',
'Title' => 'Titel',
'TotalPrice' => '',
'Type' => 'Typ',
'UnitPrice' => '',
'Website' => '',
'Wire' => 'Kabel',
'YTDSales' => 'Ytd Sales.',
'Website' => 'Webseite',
'Wire' => 'Überweisung',
'YTDSales' => 'Ytd Sales',
'SLV' => 'SLV',
'Bill' => 'Rechnung',
'Account' => 'Konto',
'EarningIndicator' => 'Verkaufssteuerkennzeichen',
'CostIndicator' => 'Einkaufssteuerkennzeichen',
'Zip' => 'Reißverschluss',
'Status' => 'Status',
'Bills' => 'Rechnungen',
'Items' => 'Artikel',
'ViewAccount' => 'Buchhaltung',
'CreateBill' => 'Erstelle Rechnung',
':status-1' => 'Aktiv',
':status-2' => 'Inaktiv',
':status-3' => 'Blockiert',
'Pricing' => 'Pricing',
'Start' => 'Start',
'End' => 'End',
'ItemSegment' => 'Artikelsegment',
'ClientSegment' => 'Kundensegment',
'ItemSection' => 'Artikelsparte',
'ClientSection' => 'Kundensparte',
'ItemSalesGroup' => 'Artikel Umsatzgruppe',
'ClientGroup' => 'Kundengruppe',
'ClientType' => 'Kundenart',
'ItemType' => 'Artikeltyp',
'Item' => 'Artikel',
]];

View File

@ -56,7 +56,6 @@ return ['SupplierManagement' => [
'Invoice' => 'Invoice',
'Invoices' => 'Invoices',
'IsDefault' => 'Is default',
'Items' => '',
'LastContact' => 'Last Contact',
'LastOrder' => 'Last Order',
'Log' => 'Log',
@ -102,7 +101,33 @@ return ['SupplierManagement' => [
'Type' => 'Type',
'UnitPrice' => '',
'Website' => 'Website',
'Account' => 'Account',
'EarningIndicator' => 'Sales tax code',
'CostIndicator' => 'Purchase tax code',
'Wire' => 'Wire',
'YTDSales' => 'YTD Sales',
'Zip' => 'Zip',
'SLV' => 'SLV',
'Bill' => 'Bill',
'Status' => 'Status',
'Bills' => 'Bills',
'Items' => 'Items',
'ViewAccount' => 'View Account',
'CreateBill' => 'Create Bill',
':status-1' => 'Active',
':status-2' => 'Inactive',
':status-3' => 'Banned',
'Pricing' => 'Pricing',
'Start' => 'Start',
'End' => 'End',
'ItemSegment' => 'Item Segment',
'ClientSegment' => 'Client Segment',
'ItemSection' => 'Item Section',
'ClientSection' => 'Client Section',
'ItemSalesGroup' => 'Item Sales Group',
'ClientGroup' => 'Client Group',
'ClientType' => 'Client Type',
'ItemProductGroup' => 'Item Product Group',
'ItemType' => 'Item Type',
'Item' => 'Item',
]];

View File

@ -1,194 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.2
*
* @package Modules\SupplierManagement
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
/**
* @var \phpOMS\Views\View $this
*/
echo $this->data['nav']->render(); ?>
<div class="tabview tab-2">
<div class="box">
<ul class="tab-links">
<li><label for="c-tab-1"><?= $this->getHtml('Master'); ?></label>
<li><label for="c-tab-2"><?= $this->getHtml('Contact'); ?></label>
<li><label for="c-tab-3"><?= $this->getHtml('Addresses'); ?></label>
<li><label for="c-tab-4"><?= $this->getHtml('PaymentTerm'); ?></label>
<li><label for="c-tab-5"><?= $this->getHtml('Payment'); ?></label>
<li><label for="c-tab-6"><?= $this->getHtml('Files'); ?></label>
<li><label for="c-tab-7"><?= $this->getHtml('Logs'); ?></label>
</ul>
</div>
<div class="tab-content">
<input type="radio" id="c-tab-1" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-1' ? ' checked' : ''; ?>>
<div class="tab">
<section class="box w-33 lf">
<header><h1><?= $this->getHtml('Supplier'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iId"><?= $this->getHtml('ID', '0', '0'); ?></label>
<tr><td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input type="number" id="iId" min="1" name="id" required></span>
<tr><td><label for="iName1"><?= $this->getHtml('Name1'); ?></label>
<tr><td><input type="text" id="iName1" name="name1" required>
<tr><td><label for="iName2"><?= $this->getHtml('Name2'); ?></label>
<tr><td><input type="text" id="iName2" name="name2">
<tr><td><label for="iName3"><?= $this->getHtml('Name3'); ?></label>
<tr><td><input type="text" id="iName3" name="name3">
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Create', '0', '0'); ?>" name="create-supplier">
</table>
</form>
</div>
</section>
</div>
<input type="radio" id="c-tab-2" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-2' ? ' checked' : ''; ?>>
<div class="tab">
<section class="box w-33 lf">
<header><h1><?= $this->getHtml('Contact'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iCType"><?= $this->getHtml('Type'); ?></label>
<tr><td><select id="iCType" name="actype">
<option><?= $this->getHtml('Email'); ?>
<option><?= $this->getHtml('Fax'); ?>
<option><?= $this->getHtml('Phone'); ?>
</select>
<tr><td><label for="iCStype"><?= $this->getHtml('Subtype'); ?></label>
<tr><td><select id="iCStype" name="acstype">
<option><?= $this->getHtml('Office'); ?>
<option><?= $this->getHtml('Sales'); ?>
<option><?= $this->getHtml('Purchase'); ?>
<option><?= $this->getHtml('Accounting'); ?>
<option><?= $this->getHtml('Support'); ?>
</select>
<tr><td><label for="iCInfo"><?= $this->getHtml('Info'); ?></label>
<tr><td><input type="text" id="iCInfo" name="cinfo">
<tr><td><label for="iCData"><?= $this->getHtml('Contact'); ?></label>
<tr><td><input type="text" id="iCData" name="cdata">
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Add', '0', '0'); ?>">
</table>
</form>
</div>
</section>
</div>
<input type="radio" id="c-tab-3" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-3' ? ' checked' : ''; ?>>
<div class="tab">
<section class="box w-33 lf">
<header><h1><?= $this->getHtml('Address'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iAType"><?= $this->getHtml('Type'); ?></label>
<tr><td><select id="iAType" name="atype">
<option><?= $this->getHtml('Default'); ?>
<option><?= $this->getHtml('Delivery'); ?>
<option><?= $this->getHtml('Invoice'); ?>
</select>
<tr><td><label for="iAddress"><?= $this->getHtml('Address'); ?></label>
<tr><td><input type="text" id="iAddress" name="address">
<tr><td><label for="iZip"><?= $this->getHtml('Zip'); ?></label>
<tr><td><input type="text" id="iZip" name="zip">
<tr><td><label for="iCountry"><?= $this->getHtml('Country'); ?></label>
<tr><td><input type="text" id="iCountry" name="country">
<tr><td><label for="iAInfo"><?= $this->getHtml('Info'); ?></label>
<tr><td><input type="text" id="iAInfo" name="ainfo">
<tr><td><span class="check"><input type="checkbox" id="iDefault" name="default" checked><label for="iDefault"><?= $this->getHtml('IsDefault'); ?></label></span>
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Add', '0', '0'); ?>">
</table>
</form>
</div>
</section>
</div>
<input type="radio" id="c-tab-4" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-4' ? ' checked' : ''; ?>>
<div class="tab">
<section class="box w-33 lf">
<header><h1><?= $this->getHtml('PaymentTerm'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iSource"><?= $this->getHtml('ID'); ?></label>
<tr><td><span class="input"><button type="button" formaction=""><i class="g-icon">book</i></button><input id="iSource" name="source" type="text"></span>
<tr><td><label for="iSegment"><?= $this->getHtml('Segment'); ?></label>
<tr><td><input id="iSegment" name="segment" type="text">
<tr><td><label for="iProductgroup"><?= $this->getHtml('Productgroup'); ?></label>
<tr><td><input id="iProductgroup" name="productgroup" type="text">
<tr><td><label for="iGroup"><?= $this->getHtml('Group'); ?></label>
<tr><td><input id="iGroup" name="group" type="text">
<tr><td><label for="iArticlegroup"><?= $this->getHtml('Articlegroup'); ?></label>
<tr><td><input id="iArticlegroup" name="articlegroup" type="text">
<tr><td><label for="iTerm"><?= $this->getHtml('Type'); ?></label>
<tr><td><select id="iTerm" name="term" required>
<option>
</select>
<tr><td><span class="check"><input type="checkbox" id="iFreightage" name="freightage"><label for="iFreightage"><?= $this->getHtml('Freightage'); ?></label></span>
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Add', '0', '0'); ?>">
</table>
</form>
</div>
</section>
</div>
<input type="radio" id="c-tab-5" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-5' ? ' checked' : ''; ?>>
<div class="tab">
<section class="box w-33 lf">
<header><h1><?= $this->getHtml('Payment'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iACType"><?= $this->getHtml('Type'); ?></label>
<tr><td><select id="iACType" name="actype">
<option><?= $this->getHtml('Wire'); ?>
<option><?= $this->getHtml('Creditcard'); ?>
</select>
<tr><td colspan="2"><input type="submit" value="<?= $this->getHtml('Add', '0', '0'); ?>">
</table>
</form>
</div>
</section>
</div>
<input type="radio" id="c-tab-6" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-6' ? ' checked' : ''; ?>>
<div class="tab">
</div>
<input type="radio" id="c-tab-7" name="tabular-2"<?= $this->request->uri->fragment === 'c-tab-7' ? ' checked' : ''; ?>>
<div class="tab">
<?php
$footerView = new \phpOMS\Views\PaginationView($this->l11nManager, $this->request, $this->response);
$footerView->setTemplate('/Web/Templates/Lists/Footer/PaginationBig');
$footerView->setPages(20);
$footerView->setPage(1);
?>
<div class="box w-100">
<table class="default sticky">
<caption><?= $this->getHtml('Logs'); ?><i class="g-icon end-xs download btn">download</i></caption>
<thead>
<tr>
<td>IP
<td><?= $this->getHtml('ID', '0', '0'); ?>
<td><?= $this->getHtml('Name'); ?>
<td class="wf-100"><?= $this->getHtml('Log'); ?>
<td><?= $this->getHtml('Date'); ?>
<tfoot>
<tr>
<td colspan="6">
<tbody>
<tr>
<td><?= $this->printHtml($this->request->getOrigin()); ?>
<td><?= $this->printHtml($this->request->header->account); ?>
<td><?= $this->printHtml($this->request->header->account); ?>
<td>Creating suppier
<td><?= $this->printHtml((new \DateTime('now'))->format('Y-m-d H:i:s')); ?>
</table>
</div>
</div>
</div>
</div>

View File

@ -166,7 +166,7 @@ $bills = $this->data['newestInvoices'] ?? [];
/** @var \Modules\Billing\Models\Bill $value */
foreach ($bills as $key => $value) :
++$count;
$url = UriFactory::build('{/base}/purchase/bill?{?}&id=' . $value->id);
$url = UriFactory::build('{/base}/purchase/bill/view?{?}&id=' . $value->id);
?>
<tr data-href="<?= $url; ?>">
<td><label class="checkbox" for="iBillSelect-<?= $key; ?>">

File diff suppressed because it is too large Load Diff