This commit is contained in:
Dennis Eichhorn 2023-10-09 22:06:39 +00:00
parent 7e5c01db02
commit 863d32a65d
25 changed files with 127 additions and 619 deletions

View File

@ -12,38 +12,6 @@
"from": "Sales",
"permission": { "permission": 2, "category": null, "element": null },
"parent": 0,
"children": [
{
"id": 1001602001,
"pid": "/",
"type": 2,
"subtype": 1,
"name": "Analysis",
"uri": "{/base}/sales/analysis?{?}",
"target": "self",
"icon": null,
"order": 15,
"from": "Sales",
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1001601001,
"children": [
{
"id": 1001602002,
"pid": "/sales/analysis",
"type": 3,
"subtype": 1,
"name": "Dashboard",
"uri": "{/base}/sales/analysis?{?}",
"target": "self",
"icon": null,
"order": 1,
"from": "Sales",
"permission": { "permission": 2, "category": null, "element": null },
"parent": 1001602001,
"children": []
}
]
}
]
}
]

View File

@ -18,15 +18,4 @@ use phpOMS\Account\PermissionType;
use phpOMS\Router\RouteVerb;
return [
'^.*/sales/analysis(\?.*|$)$' => [
[
'dest' => '\Modules\Sales\Controller\BackendController:viewDashboard',
'verb' => RouteVerb::GET,
'permission' => [
'module' => BackendController::NAME,
'type' => PermissionType::CREATE,
'state' => PermissionCategory::ANALYSIS,
],
],
],
];

View File

@ -14,7 +14,6 @@ declare(strict_types=1);
namespace Modules\Sales\Controller;
use phpOMS\Asset\AssetType;
use phpOMS\Contract\RenderableInterface;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
@ -31,54 +30,5 @@ use phpOMS\Views\View;
*/
final class BackendController extends Controller
{
/**
* Method which shows the sales dashboard
*
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param array $data Generic data
*
* @return RenderableInterface Response can be rendered
*
* @since 1.0.0
*/
public function viewDashboard(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
{
$head = $response->data['Content']->head;
$nonce = $this->app->appSettings->getOption('script-nonce');
$head->addAsset(AssetType::CSS, 'Resources/chartjs/Chartjs/chart.css');
$head->addAsset(AssetType::JSLATE, 'Resources/chartjs/Chartjs/chart.js', ['nonce' => $nonce]);
$head->addAsset(AssetType::JSLATE, 'Modules/ClientManagement/Controller.js', ['nonce' => $nonce, 'type' => 'module']);
$view = new View($this->app->l11nManager, $request, $response);
$view->setTemplate('/Modules/Sales/Theme/Backend/sales-analysis-dashboard');
$view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1001602001, $request, $response);
/////
$monthlySalesCustomer = [];
for ($i = 1; $i < 13; ++$i) {
$monthlySalesCustomer[] = [
'net_sales' => $sales = \mt_rand(1200000000, 2000000000),
'customers' => \mt_rand(200, 400),
'year' => 2020,
'month' => $i,
];
}
$view->data['monthlySalesCustomer'] = $monthlySalesCustomer;
$annualSalesCustomer = [];
for ($i = 1; $i < 11; ++$i) {
$annualSalesCustomer[] = [
'net_sales' => $sales = \mt_rand(1200000000, 2000000000) * 12,
'customers' => \mt_rand(200, 400) * 6,
'year' => 2020 - 10 + $i,
];
}
$view->data['annualSalesCustomer'] = $annualSalesCustomer;
return $view;
}
}

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'الجميع',
'Amount' => 'مقدار',
'Analysis' => 'التحليلات',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'مساحة',
'Article' => 'مقالة - سلعة',
'Articles' => 'مقالات',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'معرف العميل',
'ClientName' => 'اسم العميل',
'Clients' => 'عملاء',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'تأكيد',
'CoreData' => 'البيانات الأساسية',
'Country' => 'دولة',
'Created' => 'خلقت',
'Creator' => 'المنشئ',
'CreditNote' => 'اشعار دائن',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'تاريخ',
'DefaultInternational' => 'افتراضي الدولية',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'خصم في٪',
'Documentation' => 'توثيق',
'Employee' => 'موظف',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'الفاو',
'From' => 'من',
'Group' => 'مجموعة',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'دفع',
'Price' => 'السعر',
'Priority' => 'أفضلية',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'كمية',
'Receipt' => 'إيصال',
'Reference' => 'المرجعي',
'Sales' => 'مبيعات',
'Settings' => 'إعدادات',
'Single' => 'غير مرتبطة',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'ولاية',
'Statistics' => 'إحصائيات',
'Status' => 'حالة',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Všechno',
'Amount' => 'Množství',
'Analysis' => 'Analýza',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Plocha',
'Article' => 'Článek',
'Articles' => 'Články',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'ID klienta',
'ClientName' => 'jméno klienta',
'Clients' => 'Klienti',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'potvrzení',
'CoreData' => 'Základní data',
'Country' => 'Země',
'Created' => 'Vytvořený',
'Creator' => 'Tvůrce',
'CreditNote' => 'Dobropis',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'datum',
'DefaultInternational' => 'Výchozí mezinárodní',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Sleva v%',
'Documentation' => 'Dokumentace',
'Employee' => 'Zaměstnanec',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao.',
'From' => 'Z',
'Group' => 'Skupina',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Způsob platby',
'Price' => 'Cena',
'Priority' => 'Přednost',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Množství',
'Receipt' => 'Účtenka',
'Reference' => 'Odkaz',
'Sales' => 'Odbyt',
'Settings' => 'Nastavení',
'Single' => 'Singl',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Stát',
'Statistics' => 'Statistika',
'Status' => 'Postavení',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Alle',
'Amount' => 'Beløb',
'Analysis' => 'Analyse',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Areal',
'Article' => 'Artikel',
'Articles' => 'Artikler',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Klient ID.',
'ClientName' => 'Kundenavn',
'Clients' => 'Klienter.',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Bekræftelse',
'CoreData' => 'Kernedata.',
'Country' => 'Land',
'Created' => 'Oprettet',
'Creator' => 'Skaber.',
'CreditNote' => 'Kreditnota',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'Dato',
'DefaultInternational' => 'Standard International',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Rabat i%',
'Documentation' => 'Dokumentation',
'Employee' => 'Medarbejder',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO.',
'From' => 'Fra',
'Group' => 'Gruppe',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Betaling',
'Price' => 'Pris',
'Priority' => 'Prioritet',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Antal',
'Receipt' => 'Kvittering',
'Reference' => 'Reference',
'Sales' => 'SALG',
'Settings' => 'Indstillinger.',
'Single' => 'Enkelt',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Stat',
'Statistics' => 'Statistikker',
'Status' => 'Status.',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Alle',
'Amount' => 'Höhe',
'Analysis' => 'Analyse',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Bereich',
'Article' => 'Artikel',
'Articles' => 'Artikel',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Kunden ID',
'ClientName' => 'Kundenname',
'Clients' => 'Kunden',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Bestätigung',
'CoreData' => 'Kerndatei',
'Country' => 'Land',
'Created' => 'Erstellt',
'Creator' => 'Schöpfer',
'CreditNote' => 'Gutschrift',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'Datum',
'DefaultInternational' => 'Standard-Internationale',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Rabatt in%',
'Documentation' => 'Dokumentation',
'Employee' => 'Mitarbeiter',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao',
'From' => 'Von',
'Group' => 'Gruppe',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Zahlung',
'Price' => 'Preis',
'Priority' => 'Priorität',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Menge',
'Receipt' => 'Kassenbon',
'Reference' => 'Bezug',
'Sales' => 'Der Umsatz',
'Settings' => 'Einstellungen',
'Single' => 'Single',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Zustand',
'Statistics' => 'Statistiken',
'Status' => 'Status',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Ολα',
'Amount' => 'Ποσό',
'Analysis' => 'Ανάλυση',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Περιοχή',
'Article' => 'Αρθρο',
'Articles' => 'Είδη',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'ταυτότητα πελάτη',
'ClientName' => 'Όνομα Πελάτη',
'Clients' => 'Πελάτες',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Επιβεβαίωση',
'CoreData' => 'Βασικά δεδομένα',
'Country' => 'Χώρα',
'Created' => 'Δημιουργήθηκε',
'Creator' => 'Δημιουργός',
'CreditNote' => 'Πιστωτικό σημείωμα',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'ΔΣΟ',
'Date' => 'Ημερομηνία',
'DefaultInternational' => 'Προεπιλογή Διεθνής',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Έκπτωση σε%',
'Documentation' => 'Τεκμηρίωση',
'Employee' => 'Υπάλληλος',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Φλυαρία',
'From' => 'Από',
'Group' => 'Ομάδα',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Πληρωμή',
'Price' => 'Τιμή',
'Priority' => 'Προτεραιότητα',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Ποσότητα',
'Receipt' => 'Παραλαβή',
'Reference' => 'Αναφορά',
'Sales' => 'Εκπτώσεις',
'Settings' => 'Ρυθμίσεις',
'Single' => 'Μονόκλινο',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'κατάσταση',
'Statistics' => 'Στατιστική',
'Status' => 'Κατάσταση',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Todo',
'Amount' => 'Monto',
'Analysis' => 'Análisis',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Área',
'Article' => 'Artículo',
'Articles' => 'Artículos',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Identificación del cliente',
'ClientName' => 'nombre del cliente',
'Clients' => 'Clientela',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Confirmación',
'CoreData' => 'Datos principales',
'Country' => 'País',
'Created' => 'Creado',
'Creator' => 'Creador',
'CreditNote' => 'Nota de crédito',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => 'Fecha',
'DefaultInternational' => 'Internacional predeterminado',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Descuento en%',
'Documentation' => 'Documentación',
'Employee' => 'Empleado',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao',
'From' => 'Desde',
'Group' => 'Grupo',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Pago',
'Price' => 'Precio',
'Priority' => 'Prioridad',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Cantidad',
'Receipt' => 'Recibo',
'Reference' => 'Referencia',
'Sales' => 'Ventas',
'Settings' => 'Ajustes',
'Single' => 'Único',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Expresar',
'Statistics' => 'Estadísticas',
'Status' => 'Estado',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Kaikki',
'Amount' => 'Määrä',
'Analysis' => 'Analyysi',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Alue',
'Article' => 'Artikla',
'Articles' => 'Artikkelit',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Asiakastunnus',
'ClientName' => 'Asiakkaan Nimi',
'Clients' => 'Asiakkaat',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Vahvistus',
'CoreData' => 'Keskeiset tiedot',
'Country' => 'Maa',
'Created' => 'Luotu',
'Creator' => 'Luoja',
'CreditNote' => 'Luottoluotto',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Dso',
'Date' => 'Päivämäärä',
'DefaultInternational' => 'Oletus kansainvälinen',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Alennus%',
'Documentation' => 'Dokumentointi',
'Employee' => 'Työntekijä',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao',
'From' => 'Peräkkäin',
'Group' => 'Ryhmä',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Maksu',
'Price' => 'Hinta',
'Priority' => 'Etusija',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Määrä',
'Receipt' => 'Kuitti',
'Reference' => 'Viite',
'Sales' => 'Myynti',
'Settings' => 'asetukset',
'Single' => 'Yksittäinen',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Osavaltio',
'Statistics' => 'Tilastot',
'Status' => 'Tila',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Tout',
'Amount' => 'Quantité',
'Analysis' => 'Analyse',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Zone',
'Article' => 'Article',
'Articles' => 'Des articles',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'identité du client',
'ClientName' => 'Nom du client',
'Clients' => 'Clients',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Confirmation',
'CoreData' => 'Données de base',
'Country' => 'Pays',
'Created' => 'Établi',
'Creator' => 'Créateur',
'CreditNote' => 'Note de crédit',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Dso',
'Date' => 'Date',
'DefaultInternational' => 'International par défaut',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Rabais en%',
'Documentation' => 'Documentation',
'Employee' => 'Employé',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao',
'From' => 'À partir de',
'Group' => 'Grouper',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Paiement',
'Price' => 'Prix',
'Priority' => 'Priorité',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Quantité',
'Receipt' => 'Reçu',
'Reference' => 'Référence',
'Sales' => 'Ventes',
'Settings' => 'Réglages',
'Single' => 'Seul',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'État',
'Statistics' => 'Statistiques',
'Status' => 'Statut',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Minden',
'Amount' => 'Összeg',
'Analysis' => 'Elemzés',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Terület',
'Article' => 'Cikk',
'Articles' => 'Árucikkek',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Ügyfélazonosító',
'ClientName' => 'Ügyfél Neve',
'Clients' => 'Kliensek',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Megerősítés',
'CoreData' => 'Alapvető adatok',
'Country' => 'Ország',
'Created' => 'Létrehozott',
'Creator' => 'Teremtő',
'CreditNote' => 'Jóváírás',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => 'Dátum',
'DefaultInternational' => 'Alapértelmezett nemzetközi',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Kedvezmény%',
'Documentation' => 'Dokumentáció',
'Employee' => 'Munkavállaló',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO',
'From' => 'Tól től',
'Group' => 'Csoport',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Fizetés',
'Price' => 'Ár',
'Priority' => 'Kiemelten fontos',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Mennyiség',
'Receipt' => 'Nyugta',
'Reference' => 'Referencia',
'Sales' => 'Értékesítés',
'Settings' => 'Beállítások',
'Single' => 'Egyetlen',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Állapot',
'Statistics' => 'Statisztika',
'Status' => 'Állapot',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Tutto',
'Amount' => 'Quantità',
'Analysis' => 'Analisi',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'La zona',
'Article' => 'Articolo',
'Articles' => 'Artificio',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Identificativo cliente',
'ClientName' => 'nome del cliente',
'Clients' => 'Clienti',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Conferma',
'CoreData' => 'Dati principali',
'Country' => 'Nazione',
'Created' => 'Creato',
'Creator' => 'Creatore',
'CreditNote' => 'Nota di credito',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'Data',
'DefaultInternational' => 'Default International.',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Sconto in%',
'Documentation' => 'Documentazione',
'Employee' => 'Dipendente',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO.',
'From' => 'A partire dal',
'Group' => 'Gruppo',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Pagamento',
'Price' => 'Prezzo',
'Priority' => 'Priorità',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Quantità',
'Receipt' => 'Ricevuta',
'Reference' => 'Riferimento',
'Sales' => 'Saldi',
'Settings' => 'Impostazioni',
'Single' => 'Separare',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Stato',
'Statistics' => 'Statistiche',
'Status' => 'Stato',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => '全て',
'Amount' => '額',
'Analysis' => '分析',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => '領域',
'Article' => '記事',
'Articles' => 'articles',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'クライアントID',
'ClientName' => 'クライアント名',
'Clients' => 'クライアント',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => '確認',
'CoreData' => 'コアデータ',
'Country' => '国',
'Created' => '作成した',
'Creator' => 'クリエーター',
'CreditNote' => 'クレジットノート',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => '日にち',
'DefaultInternational' => 'デフォルトの国際',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => '割引%',
'Documentation' => 'ドキュメンテーション',
'Employee' => '従業員',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'fa fa',
'From' => 'から',
'Group' => 'グループ',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => '支払い',
'Price' => '価格',
'Priority' => '優先度',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => '量',
'Receipt' => 'レシート',
'Reference' => 'リファレンス',
'Sales' => '売り返り',
'Settings' => '設定',
'Single' => '独身',
'Start' => '#VALUE!',
'Start' => '',
'State' => '州',
'Statistics' => '統計学',
'Status' => '状態',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => '모두',
'Amount' => '양',
'Analysis' => '분석',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => '지역',
'Article' => '기사',
'Articles' => '조항',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => '클라이언트 ID.',
'ClientName' => '고객 이름',
'Clients' => '클라이언트',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => '확인',
'CoreData' => '핵심 데이터',
'Country' => '국가',
'Created' => '만들어진',
'Creator' => '창조자',
'CreditNote' => '신용 노트',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => '날짜',
'DefaultInternational' => '기본 국제',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => '할인 %',
'Documentation' => '선적 서류 비치',
'Employee' => '직원',
'End' => '#VALUE!',
'End' => '',
'FAO' => '조금',
'From' => '에서',
'Group' => '그룹',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => '지불',
'Price' => '가격',
'Priority' => '우선 사항',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => '수량',
'Receipt' => '영수증',
'Reference' => '참조',
'Sales' => '매상',
'Settings' => '설정',
'Single' => '하나의',
'Start' => '#VALUE!',
'Start' => '',
'State' => '상태',
'Statistics' => '통계',
'Status' => '상태',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Alle',
'Amount' => 'Beløp',
'Analysis' => 'Analyse',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Område',
'Article' => 'Artikkel',
'Articles' => 'Artikler',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'klient-ID',
'ClientName' => 'Klientens navn',
'Clients' => 'Klienter',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Bekreftelse',
'CoreData' => 'Kjernedata',
'Country' => 'Land',
'Created' => 'Opprettet',
'Creator' => 'Skaperen.',
'CreditNote' => 'Kredittnota',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => 'Dato',
'DefaultInternational' => 'Standard internasjonal',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Rabatt i%',
'Documentation' => 'Dokumentasjon',
'Employee' => 'Ansatt',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO.',
'From' => 'Fra',
'Group' => 'Gruppe',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'innbetaling',
'Price' => 'Pris',
'Priority' => 'Prioritet',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Mengde',
'Receipt' => 'Kvittering',
'Reference' => 'Referanse',
'Sales' => 'Salg',
'Settings' => 'Innstillinger',
'Single' => 'Enkelt',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Stat',
'Statistics' => 'Statistikk',
'Status' => 'Status',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Wszystkie',
'Amount' => 'Kwota',
'Analysis' => 'Analiza',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Powierzchnia',
'Article' => 'Artykuł',
'Articles' => 'Artykuły',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Identyfikator klienta',
'ClientName' => 'Nazwa klienta',
'Clients' => 'Klienci.',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Potwierdzenie',
'CoreData' => 'Podstawowe dane',
'Country' => 'Kraj',
'Created' => 'Utworzony',
'Creator' => 'Twórca',
'CreditNote' => 'Uwaga kredytowa',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO.',
'Date' => 'Data',
'DefaultInternational' => 'Domyślny międzynarodowy',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Zniżka w%',
'Documentation' => 'Dokumentacja',
'Employee' => 'Pracownik',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao.',
'From' => 'Z',
'Group' => 'Grupa',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Zapłata',
'Price' => 'Cena £',
'Priority' => 'Priorytet',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Ilość',
'Receipt' => 'Paragon fiskalny',
'Reference' => 'Odniesienie',
'Sales' => 'Obroty',
'Settings' => 'Ustawienia',
'Single' => 'Pojedynczy',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Państwo',
'Statistics' => 'Statystyka',
'Status' => 'Status',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Tudo',
'Amount' => 'Montante',
'Analysis' => 'Análise',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Área',
'Article' => 'Artigo',
'Articles' => 'Artigos',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'ID do Cliente',
'ClientName' => 'Nome do cliente',
'Clients' => 'Clientes',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Confirmação',
'CoreData' => 'Dados principais',
'Country' => 'País',
'Created' => 'Criado',
'Creator' => 'O Criador',
'CreditNote' => 'Nota de crédito',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Dso.',
'Date' => 'Encontro',
'DefaultInternational' => 'Padrão Internacional',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Desconto em%',
'Documentation' => 'Documentação',
'Employee' => 'Funcionário',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO.',
'From' => 'A partir de',
'Group' => 'Grupo',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Pagamento',
'Price' => 'Preço',
'Priority' => 'Prioridade',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Quantidade',
'Receipt' => 'Recibo',
'Reference' => 'Referência',
'Sales' => 'Vendas',
'Settings' => 'Configurações',
'Single' => 'Solteiro',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Estado',
'Statistics' => 'Estatisticas',
'Status' => 'Status',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Все',
'Amount' => 'Количество',
'Analysis' => 'Анализ',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Площадь',
'Article' => 'Статья',
'Articles' => 'Статьи',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'ID клиента',
'ClientName' => 'имя клиента',
'Clients' => 'Клиенты',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Подтверждение',
'CoreData' => 'Основные данные',
'Country' => 'Страна',
'Created' => 'Созданный',
'Creator' => 'Создатель',
'CreditNote' => 'Кредитная нота',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => 'Дата',
'DefaultInternational' => 'Default International',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Скидка в%',
'Documentation' => 'Документация',
'Employee' => 'Наемный рабочий',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'ФАО',
'From' => 'От',
'Group' => 'Группа',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Оплата',
'Price' => 'Цена',
'Priority' => 'Приоритет',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Количество',
'Receipt' => 'Квитанция',
'Reference' => 'Ссылка',
'Sales' => 'Продажи',
'Settings' => 'Настройки',
'Single' => 'Одинокий',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Состояние',
'Statistics' => 'Статистика',
'Status' => 'Статус',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Allt',
'Amount' => 'Belopp',
'Analysis' => 'Analys',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Område',
'Article' => 'Artikel',
'Articles' => 'Artiklar',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Klient ID',
'ClientName' => 'Kundnamn',
'Clients' => 'Klienter',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Bekräftelse',
'CoreData' => 'Kärndata',
'Country' => 'Land',
'Created' => 'Skapad',
'Creator' => 'Skapare',
'CreditNote' => 'Kreditanteckning',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Do',
'Date' => 'Datum',
'DefaultInternational' => 'Standard International',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Rabatt i%',
'Documentation' => 'Dokumentation',
'Employee' => 'Anställd',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Fao',
'From' => 'Från',
'Group' => 'Grupp',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Betalning',
'Price' => 'Pris',
'Priority' => 'Prioritet',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Kvantitet',
'Receipt' => 'Mottagande',
'Reference' => 'Referens',
'Sales' => 'Försäljning',
'Settings' => 'inställningar',
'Single' => 'Enda',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'stat',
'Statistics' => 'Statistik',
'Status' => 'Status',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'ทั้งหมด',
'Amount' => 'จำนวน',
'Analysis' => 'การวิเคราะห์',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'พื้นที่',
'Article' => 'บทความ',
'Articles' => 'บทความ',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'รหัสลูกค้า',
'ClientName' => 'ชื่อลูกค้า',
'Clients' => 'ลูกค้า',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'การยืนยัน',
'CoreData' => 'ข้อมูลหลัก',
'Country' => 'ประเทศ',
'Created' => 'สร้าง',
'Creator' => 'ผู้สร้าง',
'CreditNote' => 'ใบลดหนี้',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => 'วันที่',
'DefaultInternational' => 'เริ่มต้นระหว่างประเทศ',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'ส่วนลดใน%',
'Documentation' => 'เอกสาร',
'Employee' => 'พนักงาน',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'คน',
'From' => 'จาก',
'Group' => 'กลุ่ม',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'การชำระเงิน',
'Price' => 'ราคา',
'Priority' => 'ลำดับความสำคัญ',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'ปริมาณ',
'Receipt' => 'ใบเสร็จ',
'Reference' => 'อ้างอิง',
'Sales' => 'ฝ่ายขาย',
'Settings' => 'การตั้งค่า',
'Single' => 'เดี่ยว',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'สถานะ',
'Statistics' => 'สถิติ',
'Status' => 'สถานะ',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Herşey',
'Amount' => 'Miktar',
'Analysis' => 'Analiz',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Alan',
'Article' => 'Madde',
'Articles' => 'Nesne',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Müşteri Kimliği',
'ClientName' => 'Müşteri Adı',
'Clients' => 'Müşteriler',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Onayla',
'CoreData' => 'Temel veri',
'Country' => 'Ülke',
'Created' => 'Yaratılmış',
'Creator' => 'Yaratıcı',
'CreditNote' => 'Kredi notu',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Dso',
'Date' => 'Tarih',
'DefaultInternational' => 'Varsayılan Uluslararası',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => '% İndirim',
'Documentation' => 'Belgeler',
'Employee' => 'Çalışan',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'FAO',
'From' => 'İtibaren',
'Group' => 'Grup',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Ödeme',
'Price' => 'Fiyat',
'Priority' => 'Öncelik',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Miktar',
'Receipt' => 'Fiş',
'Reference' => 'Referans',
'Sales' => 'Satış',
'Settings' => 'Ayarlar',
'Single' => 'Bekar',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Belirtmek, bildirmek',
'Statistics' => 'İstatistik',
'Status' => 'Durum',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => 'Все',
'Amount' => 'Сума',
'Analysis' => 'Аналіз',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => 'Площа',
'Article' => 'Стаття',
'Articles' => 'Статті',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => 'Ідентифікатор клієнта',
'ClientName' => 'Назва клієнта',
'Clients' => 'Клієнти',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => 'Підтвердження',
'CoreData' => 'Основні дані',
'Country' => 'Країна',
'Created' => 'Створений',
'Creator' => 'Творець',
'CreditNote' => 'Кредитове авізо',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'Дз',
'Date' => 'Дата',
'DefaultInternational' => 'Міжнародний за замовчуванням',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => 'Знижка у%',
'Documentation' => 'Документація',
'Employee' => 'Співробітник',
'End' => '#VALUE!',
'End' => '',
'FAO' => 'Фах',
'From' => 'Від',
'Group' => 'Група',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => 'Платіж',
'Price' => 'Ціна',
'Priority' => 'Пріоритет',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => 'Кількість',
'Receipt' => 'Квитанція',
'Reference' => 'Довідник',
'Sales' => 'Продаж',
'Settings' => 'Налаштування',
'Single' => 'Одиночний',
'Start' => '#VALUE!',
'Start' => '',
'State' => 'Держава',
'Statistics' => 'Статистика',
'Status' => 'Статус',

View File

@ -20,7 +20,7 @@ return ['Sales' => [
'All' => '全部',
'Amount' => '数量',
'Analysis' => '分析',
'Analyze' => '#VALUE!',
'Analyze' => '',
'Area' => '区域',
'Article' => '文章',
'Articles' => '文章',
@ -32,14 +32,14 @@ return ['Sales' => [
'ClientID' => '客户ID',
'ClientName' => '客户名称',
'Clients' => '客户',
'Comparison' => '#VALUE!',
'Comparison' => '',
'Confirmation' => '确认',
'CoreData' => '核心数据',
'Country' => '国家',
'Created' => '创造了',
'Creator' => '创造者',
'CreditNote' => '信用票据',
'Current' => '#VALUE!',
'Current' => '',
'DSO' => 'DSO',
'Date' => '日期',
'DefaultInternational' => '违约国际',
@ -51,7 +51,7 @@ return ['Sales' => [
'DiscountP' => '折扣%%',
'Documentation' => '文件',
'Employee' => '员工',
'End' => '#VALUE!',
'End' => '',
'FAO' => '粮农组织',
'From' => '从',
'Group' => '团体',
@ -81,14 +81,14 @@ return ['Sales' => [
'Payment' => '支付',
'Price' => '价格',
'Priority' => '优先事项',
'Profit' => '#VALUE!',
'Profit' => '',
'Quantity' => '数量',
'Receipt' => '收据',
'Reference' => '参考',
'Sales' => '销售量',
'Settings' => '设置',
'Single' => '单身的',
'Start' => '#VALUE!',
'Start' => '',
'State' => '状态',
'Statistics' => '统计数据',
'Status' => '地位',

View File

@ -1,399 +0,0 @@
<?php
/**
* Jingga
*
* PHP Version 8.1
*
* @package Modules\Billing
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
use phpOMS\Localization\Money;
/**
* @var \phpOMS\Views\View $this
*/
echo $this->data['nav']->render();
?>
<div class="row">
<div class="col-xs-12 col-lg-4">
<section class="portlet">
<div class="portlet-body">
<h2><?= $this->getHtml('Current'); ?></h2>
<div class="form-group">
<div class="input-control">
<label for="iOname"><?= $this->getHtml('Start'); ?></label>
<input type="date">
</div>
<div class="input-control">
<label for="iOname"><?= $this->getHtml('End'); ?></label>
<input type="date">
</div>
</div>
<h2><?= $this->getHtml('Comparison'); ?></h2>
<div class="form-group">
<div class="input-control">
<label for="iOname"><?= $this->getHtml('Start'); ?></label>
<input type="date">
</div>
<div class="input-control">
<label for="iOname"><?= $this->getHtml('End'); ?></label>
<input type="date">
</div>
</div>
</div>
<div class="portlet-foot">
<input id="iSubmitGeneral" name="submitGeneral" type="submit" value="<?= $this->getHtml('Analyze'); ?>">
</div>
</section>
</div>
<div class="col-xs-12 col-lg-4">
<section class="portlet highlight-2">
<div class="portlet-head">Actual</div>
<div class="portlet-body">
<div class="form-group">
<div>Sales MTD:</div>
<div>+12.0 %</div>
</div>
<div class="form-group">
<div>Sales YTD:</div>
<div>+1.2 %</div>
</div>
<div class="form-group">
<div>Gross Profit Current:</div>
<div>+12.0 %</div>
</div>
<div class="form-group">
<div>Gross Profit Previous:</div>
<div>+1.2 %</div>
</div>
</div>
</section>
</div>
<div class="col-xs-12 col-lg-4">
<section class="portlet highlight-3">
<div class="portlet-head">Budget</div>
<div class="portlet-body">
<div class="form-group">
<div>Sales MTD:</div>
<div>+12.0 %</div>
</div>
<div class="form-group">
<div>Sales YTD:</div>
<div>+1.2 %</div>
</div>
<div class="form-group">
<div>Gross Profit Current:</div>
<div>+12.0 %</div>
</div>
<div class="form-group">
<div>Gross Profit Budget:</div>
<div>+1.2 %</div>
</div>
</div>
</section>
</div>
</div>
<div class="row">
<div class="col-xs-12 col-lg-6">
<section class="portlet">
<div class="portlet-head">
Sales / Profit - Monthly
<?php include __DIR__ . '/../../../../Web/Backend/Themes/popup-export-data.tpl.php'; ?>
</div>
<?php $salesCustomer = $this->data['monthlySalesCustomer']; ?>
<div class="portlet-body">
<canvas id="sales-region" data-chart='{
"type": "bar",
"data": {
"labels": [
<?php
$temp = [];
foreach ($salesCustomer as $monthly) {
$temp[] = $monthly['month'] . '/' . \substr((string) $monthly['year'], -2);
}
?>
<?= '"' . \implode('", "', $temp) . '"'; ?>
],
"datasets": [
{
"label": "<?= $this->getHtml('Profit'); ?>",
"type": "line",
"data": [
<?php
$temp = [];
foreach ($salesCustomer as $monthly) {
$temp[] = ((int) $monthly['customers']);
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis-2",
"fill": false,
"borderColor": "rgb(255, 99, 132)",
"backgroundColor": "rgb(255, 99, 132)",
"tension": 0.0
},
{
"label": "<?= $this->getHtml('Sales'); ?>",
"type": "bar",
"data": [
<?php
$temp = [];
foreach ($salesCustomer as $monthly) {
$temp[] = ((int) $monthly['net_sales']) / 1000;
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis-1",
"fill": false,
"borderColor": "rgb(54, 162, 235)",
"backgroundColor": "rgb(54, 162, 235)",
"tension": 0.0
}
]
},
"options": {
"title": {
"display": false,
"text": "Sales / Profit"
},
"scales": {
"yAxes": [
{
"id": "axis-1",
"display": true,
"position": "left"
},
{
"id": "axis-2",
"display": true,
"position": "right",
"scaleLabel": {
"display": true,
"labelString": "<?= $this->getHtml('Profit'); ?>"
},
"gridLines": {
"display": false
}
}
]
}
}
}'></canvas>
<div class="more-container">
<input id="more-customer-sales" type="checkbox" name="more-container">
<label for="more-customer-sales">
<span>Data</span>
<i class="fa fa-chevron-right expand"></i>
</label>
<div>
<table class="default">
<thead>
<tr>
<td>Month
<td>Sales
<td>Customer count
<tbody>
<?php
$sum1 = 0;
$sum2 = 0;
foreach ($salesCustomer as $values) :
$sum1 += ((int) $values['net_sales']) / 1000;
$sum2 += ((int) $values['customers']);
?>
<tr>
<td><?= $values['month'] . '/' . \substr((string) $values['year'], -2); ?>
<td><?= (new Money(((int) $values['net_sales']) / 10000))->getCurrency(); ?>
<td><?= ((int) $values['customers']); ?>
<?php endforeach; ?>
<tr>
<td>Total
<td><?= (new Money($sum1))->getCurrency(); ?>
<td><?= (int) ($sum2 / 12); ?>
</table>
</div>
</div>
</div>
</section>
</div>
<div class="col-xs-12 col-lg-6">
<section class="portlet">
<div class="portlet-head">
Sales / Profit - Annual
<?php include __DIR__ . '/../../../../Web/Backend/Themes/popup-export-data.tpl.php'; ?>
</div>
<?php $salesCustomer = $this->data['annualSalesCustomer']; ?>
<div class="portlet-body">
<canvas id="sales-customer-annual" data-chart='{
"type": "bar",
"data": {
"labels": [
<?php
$temp = [];
foreach ($salesCustomer as $annual) {
$temp[] = $annual['year'];
}
?>
<?= '"' . \implode('", "', $temp) . '"'; ?>
],
"datasets": [
{
"label": "<?= $this->getHtml('Profit'); ?>",
"type": "line",
"data": [
<?php
$temp = [];
foreach ($salesCustomer as $annual) {
$temp[] = ((int) $annual['customers']);
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis-2",
"fill": false,
"borderColor": "rgb(255, 99, 132)",
"backgroundColor": "rgb(255, 99, 132)",
"tension": 0.0
},
{
"label": "<?= $this->getHtml('Sales'); ?>",
"type": "bar",
"data": [
<?php
$temp = [];
foreach ($salesCustomer as $annual) {
$temp[] = ((int) $annual['net_sales']) / 1000;
}
?>
<?= \implode(',', $temp); ?>
],
"yAxisID": "axis-1",
"fill": false,
"borderColor": "rgb(54, 162, 235)",
"backgroundColor": "rgb(54, 162, 235)",
"tension": 0.0
}
]
},
"options": {
"title": {
"display": false,
"text": "Sales / Profit"
},
"scales": {
"yAxes": [
{
"id": "axis-1",
"display": true,
"position": "left"
},
{
"id": "axis-2",
"display": true,
"position": "right",
"scaleLabel": {
"display": true,
"labelString": "<?= $this->getHtml('Profit'); ?>"
},
"gridLines": {
"display": false
}
}
]
}
}
}'></canvas>
<div class="more-container">
<input id="more-customer-sales-annual" type="checkbox" name="more-container">
<label for="more-customer-sales-annual">
<span>Data</span>
<i class="fa fa-chevron-right expand"></i>
</label>
<div>
<table class="default">
<thead>
<tr>
<td>Year
<td>Sales
<td>Customer count
<tbody>
<?php
foreach ($salesCustomer as $values) :
?>
<tr>
<td><?= (string) $values['year']; ?>
<td><?= (new Money(((int) $values['net_sales']) / 10000))->getCurrency(); ?>
<td><?= ((int) $values['customers']); ?>
<?php endforeach; ?>
</table>
</div>
</div>
</div>
</section>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<section class="portlet">
<div class="portlet-head">
Sales / Attribute
<?php include __DIR__ . '/../../../../Web/Backend/Themes/popup-export-data.tpl.php'; ?>
</div>
<table class="default">
<thead>
<tr>
<td>Product
<td>Sales PY
<td>Sales B
<td>Sales A
<td>Diff PY
<td>Diff B
<tbody>
</table>
</section>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<section class="portlet">
<div class="portlet-head">
Sales / Region
<?php include __DIR__ . '/../../../../Web/Backend/Themes/popup-export-data.tpl.php'; ?>
</div>
<table class="default">
<thead>
<tr>
<td>Country
<td>Sales PY
<td>Sales B
<td>Sales A
<td>Diff PY
<td>Diff B
<tbody>
</table>
</section>
</div>
</div>