Merge branch 'bugfix/warehouse-e-shop-order-articlepackets' into 'master'
added csv export for triotronik for e shop orders See merge request fronk/thetool!555
This commit is contained in:
@@ -6,15 +6,20 @@ class WarehouseEShopOrderController extends TTCrud {
|
||||
|
||||
protected array $columns = [
|
||||
['key' => 'id', 'text' => 'ID', 'modal' => false],
|
||||
['key' => 'status', 'text' => 'Status', 'required' => true],
|
||||
['key' => 'status', 'text' => 'Status', 'required' => true, 'modal' => ['type' => 'select', 'items' => [
|
||||
['value' => 'new', 'text' => 'Neu'],
|
||||
['value' => 'accepted', 'text' => 'An Lieferant übergeben'],
|
||||
['value' => 'sent', 'text' => 'Gesendet'],
|
||||
['value' => 'done', 'text' => 'Erledigt'],
|
||||
]], 'table' => ['filter' => 'select']],
|
||||
['key' => 'deliveryMode', 'text' => 'Liefermodus', 'required' => true, 'modal' => ['type' => 'select', 'items' => [
|
||||
['value' => 'singleAddress', 'text' => 'Einzelne Adresse'],
|
||||
// ['value' => 'multipleAddresses', 'text' => 'Mehrere Adressen'],
|
||||
]]],
|
||||
['key' => 'deliveryAddressName', 'text' => 'Lieferadresse Name', 'required' => true, 'table' => false],
|
||||
['key' => 'deliveryAddressLine', 'text' => 'Lieferadresse', 'required' => true, 'required_length' => 4],
|
||||
['key' => 'deliveryAddressPLZ', 'text' => 'Lieferadresse PLZ', 'required' => true, 'regex' => '/^\d{4}$/', 'table' => false],
|
||||
['key' => 'deliveryAddressCity', 'text' => 'Lieferadresse Stadt', 'required' => true, 'required_length' => 3, 'table' => false],
|
||||
['key' => 'deliveryAddressName', 'text' => 'Name', 'required' => true],
|
||||
['key' => 'deliveryAddressLine', 'text' => 'Adresse', 'required' => true, 'required_length' => 4],
|
||||
['key' => 'deliveryAddressPLZ', 'text' => 'PLZ', 'required' => true, 'regex' => '/^\d{4}$/'],
|
||||
['key' => 'deliveryAddressCity', 'text' => 'Stadt', 'required' => true, 'required_length' => 3],
|
||||
['key' => 'create', 'text' => 'Erstellt', 'required' => true, 'modal' => false, 'filter' => 'datetime'],
|
||||
['key' => 'createBy', 'text' => 'Erstellt von', 'required' => true,'modal' => ['type' => 'select', 'items' => []]],
|
||||
['key' => 'actions', 'text' => 'Aktionen', 'required' => false, 'modal' => false, 'table' => ['filter' => false, 'sortable' => false, 'class' => 'text-center']],
|
||||
@@ -43,7 +48,7 @@ class WarehouseEShopOrderController extends TTCrud {
|
||||
$this->columns[8]['modal']['items'] = $users;
|
||||
}
|
||||
|
||||
protected function getAllItemsPerOrderAction() {
|
||||
protected function getAllOrderItemsPerOrder(): array {
|
||||
$items = WarehouseEShopOrderItemModel::getAll();
|
||||
$articles = WarehouseArticleModel::getAll();
|
||||
$articlePackets = WarehouseArticlePacketModel::getAll();
|
||||
@@ -68,6 +73,11 @@ class WarehouseEShopOrderController extends TTCrud {
|
||||
];
|
||||
}
|
||||
|
||||
return $orderItems;
|
||||
}
|
||||
|
||||
protected function getAllItemsPerOrderAction() {
|
||||
$orderItems = $this->getAllOrderItemsPerOrder();
|
||||
self::returnJson($orderItems);
|
||||
}
|
||||
|
||||
@@ -125,6 +135,50 @@ class WarehouseEShopOrderController extends TTCrud {
|
||||
die(json_encode($json));
|
||||
}
|
||||
|
||||
protected function CSVExportNewOrdersMarkAcceptedAction() {
|
||||
$orders = WarehouseEShopOrderModel::getAll(['status' => 'new']);
|
||||
$orders = array_map(function($order) {
|
||||
return (array) $order;
|
||||
}, $orders);
|
||||
|
||||
if (empty($orders)) {
|
||||
self::returnJson(['success' => false, 'message' => 'Keine neuen Bestellungen']);
|
||||
die();
|
||||
}
|
||||
|
||||
$ordersItems = $this->getAllOrderItemsPerOrder();
|
||||
|
||||
// Create CSV with these Headers: Adressnummer, Name, Straße, Postleitzahl, Ort, Land, Anschriftenzusatz 1
|
||||
$csv = "Adressnummer,Name,Straße,Postleitzahl,Ort,Land,Anschriftenzusatz 1,Produkte\n";
|
||||
foreach ($orders as $order) {
|
||||
$orderItems = $ordersItems[$order['id']];
|
||||
$orderItemsStr = join(' : ', array_map(function($item) {
|
||||
$articleTitle = $item['articleTitle'] ?? $item['articlePacketTitle'];
|
||||
$quantity = $item['quantity'];
|
||||
return "$quantity x $articleTitle";
|
||||
}, $orderItems));
|
||||
|
||||
$csv .= '23000539,' . $order['deliveryAddressName'] . ',' . $order['deliveryAddressLine'] . ',' . $order['deliveryAddressPLZ'] . ',' . $order['deliveryAddressCity'] . ',AT,,'. $orderItemsStr . "\n";
|
||||
|
||||
WarehouseHistoryModel::create([
|
||||
'table' => 'WarehouseEShopOrder',
|
||||
'row_id' => $order['id'],
|
||||
'key' => 'status',
|
||||
'old_value' => 'new',
|
||||
'new_value' => 'accepted',
|
||||
'note' => 'CSV Export',
|
||||
'user_id' => $this->user->id,
|
||||
'create' => time()
|
||||
]);
|
||||
|
||||
$order['status'] = 'accepted';
|
||||
WarehouseEShopOrderModel::update($order);
|
||||
|
||||
}
|
||||
|
||||
die($csv);
|
||||
}
|
||||
|
||||
protected function beforeUpdate($postData): bool {
|
||||
(new WarehouseHistoryController)->create($postData, $this->mod);
|
||||
return true;
|
||||
|
||||
@@ -24,18 +24,19 @@ class WarehouseHistoryController {
|
||||
public function getHistory($id, string $mod, $columns): array {
|
||||
$history = WarehouseHistoryModel::getByRowId($id, $mod);
|
||||
|
||||
|
||||
return array_map(function ($item) use ($columns) {
|
||||
$item = (array) $item;
|
||||
|
||||
if (isset($this->columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'])) {
|
||||
if (isset($columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'])) {
|
||||
|
||||
if($this->columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'] === 'checkbox') {
|
||||
if($columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'] === 'checkbox') {
|
||||
$item['old_value'] = $item['old_value'] === '1' ? 'Ja' : 'Nein';
|
||||
$item['new_value'] = $item['new_value'] === '1' ? 'Ja' : 'Nein';
|
||||
}
|
||||
|
||||
if($this->columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'] === 'select') {
|
||||
$column = $this->columns[array_search($item['key'], array_column($columns, 'key'))];
|
||||
if($columns[array_search($item['key'], array_column($columns, 'key'))]['modal']['type'] === 'select') {
|
||||
$column = $columns[array_search($item['key'], array_column($columns, 'key'))];
|
||||
$item['old_value'] = $column['modal']['items'][array_search($item['old_value'], array_column($column['modal']['items'], 'value'))]['text'];
|
||||
$item['new_value'] = $column['modal']['items'][array_search($item['new_value'], array_column($column['modal']['items'], 'value'))]['text'];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user