. */ namespace SP\Core\Upgrade; use SP\Core\Exceptions\SPException; use SP\Storage\DB; use SP\Storage\QueryData; /** * Class Customer * * @package SP\Core\Upgrade */ class Customer { /** * Actualizar registros con clientes no existentes * * @param int $customerId Id de cliente por defecto * @return bool */ public static function fixCustomerId($customerId) { $Data = new QueryData(); $Data->setQuery('SELECT customer_id FROM customers ORDER BY customer_id'); $customers = DB::getResultsArray($Data); $paramsIn = trim(str_repeat(',?', count($customers)), ','); $Data->addParam($customerId); foreach ($customers as $customer) { $Data->addParam($customer->customer_id); } try { DB::beginTransaction(); $query = /** @lang SQL */ 'UPDATE accHistory SET acchistory_customerId = ? WHERE acchistory_customerId NOT IN (' . $paramsIn . ') OR acchistory_customerId IS NULL'; $Data->setQuery($query); DB::getQuery($Data); $query = /** @lang SQL */ 'UPDATE accounts SET account_customerId = ? WHERE account_customerId NOT IN (' . $paramsIn . ') OR account_customerId IS NULL'; $Data->setQuery($query); DB::getQuery($Data); DB::endTransaction(); return true; } catch (SPException $e) { DB::rollbackTransaction(); return false; } } }