public static function getAllTaxesIncludingCountryRegion()
{
// Tax key = IDTAX:IDCOUNTRYTAX:IDREGIONTAX
$db = Factory::getDBO();
$q = 'SELECT CONCAT_WS(\':\', t.id, 0, 0) as tkey, t.id, t.title, t.tax_rate, t.calculation_type FROM #__phocacart_taxes AS t ORDER BY t.ordering ASC';
$db->setQuery($q);
$itemsT = $db->loadAssocList('tkey');
$q = 'SELECT CONCAT_WS(\':\', tc.tax_id, tc.id, 0) as tkey, tc.id, tc.title, tc.tax_id, tc.tax_rate, t.calculation_type FROM #__phocacart_tax_countries AS tc' . ' LEFT JOIN #__phocacart_taxes AS t ON t.id = tc.tax_id' . ' ORDER BY t.ordering ASC';
$db->setQuery($q);
$itemsC = $db->loadAssocList('tkey');
$q = 'SELECT CONCAT_WS(\':\', tr.tax_id, 0, tr.id) as tkey, tr.id, tr.title, tr.tax_id, tr.tax_rate, t.calculation_type FROM #__phocacart_tax_regions AS tr' . ' LEFT JOIN #__phocacart_taxes AS t ON t.id = tr.tax_id' . ' ORDER BY t.ordering ASC';
$db->setQuery($q);
$itemsR = $db->loadAssocList('tkey');
$items = array_merge($itemsT, $itemsC, $itemsR);
return $items;
}