Skip to content
Code-Schnipsel Gruppen Projekte
Bestätigt Commit 08550ddb erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

fix: added transactions to the erp dashboard

Übergeordneter 75f881e4
No related branches found
No related tags found
2 Merge Requests!61feat: erp process object extended,!60feat: erp process object extended
......@@ -407,6 +407,18 @@ define('package/quiqqer/erp/bin/backend/controls/Comments', [
);
});
return;
case 'quiqqer/payment-transaction':
require([
'package/quiqqer/payment-transactions/bin/backend/controls/windows/Transaction'
], (TransactionWindow) => {
console.log(Target.get('data-object-hash'));
new TransactionWindow({
txid: Target.get('data-object-hash')
}).open();
});
return;
}
QUI.fireEvent('onQuiqqerErpCommentsClick', [this, Target]);
......
......@@ -62,8 +62,6 @@ define('package/quiqqer/erp/bin/backend/controls/dashboard/cards/GlobalProcessId
this.$getPlugins().then((plugins) => {
const columnModel = [];
console.log(plugins);
columnModel.push({
header: QUILocale.get(lg, 'dashboard.erp.date'),
dataIndex: 'date',
......@@ -106,6 +104,7 @@ define('package/quiqqer/erp/bin/backend/controls/dashboard/cards/GlobalProcessId
}
if (plugins.indexOf('quiqqer/salesorders') !== -1) {
console.log(1, QUILocale.get(lg, 'dashboard.erp.salesOrder'));
columnModel.push({
header: QUILocale.get(lg, 'dashboard.erp.salesOrder'),
dataIndex: 'salesorders',
......@@ -141,19 +140,19 @@ define('package/quiqqer/erp/bin/backend/controls/dashboard/cards/GlobalProcessId
});
}
if (plugins.indexOf('quiqqer/payments') !== -1) {
if (plugins.indexOf('quiqqer/delivery-notes') !== -1) {
columnModel.push({
header: QUILocale.get(lg, 'dashboard.erp.payments'),
dataIndex: 'payments',
header: QUILocale.get(lg, 'dashboard.erp.deliveryNotes'),
dataIndex: 'deliveryNotes',
dataType: 'string',
width: 240
});
}
if (plugins.indexOf('quiqqer/delivery-notes') !== -1) {
if (plugins.indexOf('quiqqer/payment-transactions') !== -1) {
columnModel.push({
header: QUILocale.get(lg, 'dashboard.erp.deliveryNotes'),
dataIndex: 'deliveryNotes',
header: QUILocale.get(lg, 'dashboard.erp.transactions'),
dataIndex: 'transactions',
dataType: 'string',
width: 240
});
......@@ -219,7 +218,6 @@ define('package/quiqqer/erp/bin/backend/controls/dashboard/cards/GlobalProcessId
data: data
});
console.log(result);
this.$Grid.hideLoader();
resolve(result);
}, {
......
......@@ -707,10 +707,14 @@
<de><![CDATA[Auftrag #[hash] erstellt]]></de>
<en><![CDATA[Sales order #[hash] created]]></en>
</locale>
<locale name="process.history.booking.created">
<locale name="process.history.booking.created">
<de><![CDATA[Buchung #[hash] erstellt]]></de>
<en><![CDATA[Booking #[hash] created]]></en>
</locale>
<locale name="process.history.transaction.created">
<de><![CDATA[Zahlung von [amount] eingegangen / gebucht. (#[hash])]]></de>
<en><![CDATA[Payment from [amount] received / posted. (#[hash])]]></en>
</locale>
</groups>
<groups name="quiqqer/erp" datatype="js">
......@@ -1474,9 +1478,9 @@ Allowed characters: Letters, numbers and _ ä ö ü ß]]></en>
<de><![CDATA[Vertrag]]></de>
<en><![CDATA[Contract]]></en>
</locale>
<locale name="dashboard.erp.payments">
<de><![CDATA[Zahlungen]]></de>
<en><![CDATA[Payments]]></en>
<locale name="dashboard.erp.transactions">
<de><![CDATA[Zahlungen / Transaktionen]]></de>
<en><![CDATA[Payments / Transactions]]></en>
</locale>
<locale name="dashboard.erp.deliveryNotes">
<de><![CDATA[Lieferschein]]></de>
......
......@@ -137,6 +137,7 @@ public function getCompleteHistory(): Comments
$this->parseOrders($History);
$this->parsePurchasing($History);
$this->parseSalesOrders($History);
$this->parseTransactions($History);
try {
QUI::getEvents()->fireEvent('quiqqerErpGetCompleteHistory', [$this, $this->processId]);
......@@ -258,16 +259,27 @@ protected function parseOrders(Comments $History): void
$orders = $this->getOrders();
foreach ($orders as $Order) {
/* order macht das schon selbst
$History->addComment(
QUI::getLocale()->get('quiqqer/erp', 'process.history.order.created'),
strtotime($Order->getCreateDate()),
'quiqqer/order',
'fa fa-shopping-basket'
);
*/
$history = $Order->getHistory()->toArray();
$hasCreateMessage = false;
$createMessage = QUI::getLocale()->get('quiqqer/erp', 'process.history.order.created', [
'hash' => $Order->getHash()
]);
foreach ($history as $entry) {
if ($entry['message'] === $createMessage) {
$hasCreateMessage = true;
break;
}
}
if ($hasCreateMessage === false) {
$History->addComment(
$createMessage,
strtotime($Order->getCreateDate()),
'quiqqer/order',
'fa fa-shopping-basket'
);
}
foreach ($history as $entry) {
if (empty($entry['source'])) {
......@@ -661,6 +673,25 @@ public function getSalesOrders(): array
//endregion
//region transactions
protected function parseTransactions(Comments $History): void
{
// orders
$transactions = $this->getTransactions();
foreach ($transactions as $Transaction) {
$History->addComment(
QUI::getLocale()->get('quiqqer/erp', 'process.history.transaction.created', [
'hash' => $Transaction->getHash(),
'amount' => $Transaction->getAmountFormatted()
]),
strtotime($Transaction->getDate()),
'quiqqer/payment-transaction',
'fa fa-money',
false,
$Transaction->getHash()
);
}
}
/**
* @return bool
......@@ -679,9 +710,7 @@ public function hasTransactions(): bool
*/
public function getTransactions(): array
{
try {
QUI::getPackage('quiqqer/payment-transactions');
} catch (QUI\Exception $Exception) {
if (!QUI::getPackageManager()->isInstalled('quiqqer/payment-transactions')) {
return [];
}
......
......@@ -9,6 +9,7 @@
use QUI;
use QUI\ERP\Accounting\Invoice\Handler as InvoiceHandler;
use QUI\ERP\Accounting\Offers\Handler as OfferHandler;
use QUI\ERP\Accounting\Payments\Transactions\Factory as TransactionFactory;
use QUI\ERP\Booking\Table as BookingTable;
use QUI\ERP\Order\Handler as OrderHandler;
use QUI\ERP\Purchasing\Processes\Handler as PurchasingHandler;
......@@ -25,6 +26,7 @@
* - quiqqer/booking
* - quiqqer/contracts
* - quiqqer/payments
* - quiqqer/payment-transactions
* - quiqqer/delivery-notes
*/
class Processes
......@@ -72,6 +74,12 @@ public function getList(): array
QUI\System\Log::addError($exception->getMessage());
}
try {
$this->readTransactions();
} catch (QUI\Database\Exception $exception) {
QUI\System\Log::addError($exception->getMessage());
}
uasort($this->list, function ($a, $b) {
return strtotime($b['date']) - strtotime($a['date']);
});
......@@ -94,6 +102,7 @@ public function getWantedPluginList(): array
'quiqqer/offers',
'quiqqer/order',
'quiqqer/payments',
'quiqqer/payment-transactions',
'quiqqer/purchasing',
'quiqqer/salesorders'
];
......@@ -249,6 +258,43 @@ protected function readSalesOrders(): void
}
}
/**
* Read all sales orders
*
* @return void
* @throws QUI\Database\Exception
*/
protected function readTransactions(): void
{
if (!QUI::getPackageManager()->isInstalled('quiqqer/payment-transactions')) {
return;
}
$transactions = QUI::getDatabase()->fetch([
'select' => 'hash,global_process_id,date',
'from' => TransactionFactory::table()
]);
foreach ($transactions as $transaction) {
$gpi = $transaction['global_process_id'];
if (empty($gpi)) {
$gpi = $transaction['hash'];
}
if (!isset($this->list[$gpi])) {
$this->list[$gpi] = [];
}
$this->list[$gpi]['date'] = $this->getEarlierDate(
$this->list[$gpi]['date'] ?? null,
$transaction['date']
);
$this->list[$gpi]['transactions'] = $transaction['hash'];
}
}
/**
* Read all purchases
*
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren