Update XLVask parsers with correct product IDs, add skipped item details to task logs, and handle special case for vask_udf_rt parser logic.

This commit is contained in:
Jepp9350
2025-06-10 16:03:28 +02:00
parent 59a0c642d3
commit 940969a466
7 changed files with 16 additions and 6 deletions
@@ -21,6 +21,6 @@ class xlvask_parser_manual_ht_varmtvand extends xlvask_product_parser
*/
protected function parse(xlvask_wash_item $wash_item, xlvask_usage_log $xlvask_usage_log): products_o
{
return (new products_o())->select(64); // Other irrelevant product ID
return (new products_o())->select(68); // Manual varmt vand
}
}
@@ -21,6 +21,6 @@ class xlvask_parser_manuel_ht_koldtvand extends xlvask_product_parser
*/
protected function parse(xlvask_wash_item $wash_item, xlvask_usage_log $xlvask_usage_log): products_o
{
return (new products_o())->select(64); // Other irrelevant product ID
return (new products_o())->select(65); // Manual koldt vand
}
}
@@ -21,6 +21,6 @@ class xlvask_parser_manuel_s_bepistol_t extends xlvask_product_parser
*/
protected function parse(xlvask_wash_item $wash_item, xlvask_usage_log $xlvask_usage_log): products_o
{
return (new products_o())->select(64); // Other irrelevant product ID
return (new products_o())->select(66); // Manuel sæbe pistol
}
}
@@ -21,6 +21,6 @@ class xlvask_parser_manuel_spot_free extends xlvask_product_parser
*/
protected function parse(xlvask_wash_item $wash_item, xlvask_usage_log $xlvask_usage_log): products_o
{
return (new products_o())->select(64); // Other irrelevant product ID
return (new products_o())->select(67); // Manuel Spot free
}
}
@@ -21,6 +21,8 @@ class xlvask_parser_vask_udf_rt extends xlvask_product_parser
*/
protected function parse(xlvask_wash_item $wash_item, xlvask_usage_log $xlvask_usage_log): products_o
{
return (new products_o())->select(64); // Other irrelevant product ID
// For some reason, in XLVask the primary product is stored as vask_udf_rt in some cases,
// This is a workaround to handle that case. (Since the functionality is exactly the same as // xlvask_parser_stor_bil)
return (new xlvask_parser_stor_bil())->parseProduct(...func_get_args());
}
}
@@ -241,10 +241,17 @@ class xlvask_tasks
}
echo '### Total: ' . $log->getTotalPrice() . PHP_EOL;
echo '### Skipped items: ' . count($tmp_skipped_items) . PHP_EOL;
if (count($tmp_skipped_items) > 0) {
echo '### Skipped items details: ' . PHP_EOL;
foreach ( $tmp_skipped_items as $skipped_item ) {
/** @var xlvask_wash_item $skipped_item */
echo '## ' . $skipped_item->Count . ' x ' . $skipped_item->OriginalProductName . ' @ ' . $skipped_item->getPriceExVat() . ' as ' . $skipped_item->getProduct($log)->id . ' ( ' . $skipped_item->getProduct($log)->name->value() . ' )' . PHP_EOL;
}
}
echo '#' . PHP_EOL;
if (!$log->isLinkedToOrder()) {
echo '# This wash is not linked to an order, generating a new order.' . PHP_EOL;
}
echo '# ------------------------' . PHP_EOL;
}
@@ -309,6 +309,7 @@ class xlvask_usage_log
$primaryItems = [
'Stor bil',
'Lille bil',
'Vask udført',
];
usort($generatedItems, function ($a, $b) use ($primaryItems) {
// Check if the item is a primary item