// Fix group association on carrierwizard

This commit is contained in:
Rémi Gaillard
2013-07-26 19:38:06 +02:00
parent 159d0b3904
commit 77f4eec64f
2 changed files with 21 additions and 11 deletions
+15
View File
@@ -1275,5 +1275,20 @@ class CarrierCore extends ObjectModel
return true; return true;
} }
public function setGroups($groups, $delete = true)
{
if ($delete)
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$id_carrier);
if (!count($groups))
return true;
$sql = 'INSERT INTO '._DB_PREFIX_.'carrier_group (id_carrier, id_group) VALUES ';
foreach ($groups as $id_group)
$sql .= '('.(int)$this->id.', '.(int)$id_group.'),';
return Db::getInstance()->execute(rtrim($sql, ','));
}
} }
@@ -426,7 +426,6 @@ class AdminCarrierWizardControllerCore extends AdminController
)); ));
$fields_value = $this->getStepFourFieldsValues($carrier); $fields_value = $this->getStepFourFieldsValues($carrier);
// Added values of object Group // Added values of object Group
$carrier_groups = $carrier->getGroups(); $carrier_groups = $carrier->getGroups();
$carrier_groups_ids = array(); $carrier_groups_ids = array();
@@ -741,15 +740,11 @@ class AdminCarrierWizardControllerCore extends AdminController
protected function changeGroups($id_carrier, $delete = true) protected function changeGroups($id_carrier, $delete = true)
{ {
if ($delete) $carrier = new Carrier((int)$id_carrier);
Db::getInstance()->execute('DELETE FROM '._DB_PREFIX_.'carrier_group WHERE id_carrier = '.(int)$id_carrier); if (!Validate::isLoadedObject($carrier))
$groups = Db::getInstance()->executeS('SELECT id_group FROM `'._DB_PREFIX_.'group`'); return false;
foreach ($groups as $group)
if (Tools::getIsset('groupBox') && in_array($group['id_group'], Tools::getValue('groupBox'))) return $carrier->setGroups(Tools::getValue('groupBox'));
return Db::getInstance()->execute('
INSERT INTO '._DB_PREFIX_.'carrier_group (id_group, id_carrier)
VALUES('.(int)$group['id_group'].','.(int)$id_carrier.')
');
} }
public function changeZones($id) public function changeZones($id)