Update subscriptions
This commit is contained in:
@ -318,18 +318,9 @@ class Toku extends Ideal\Service
|
|||||||
}
|
}
|
||||||
$results = [];
|
$results = [];
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
case 'customers':
|
|
||||||
try {
|
|
||||||
$results['subscription'] = $this->subscription->updateByCustomer($ids);
|
|
||||||
$results['invoice'] = $this->invoice->updateByCustomer($ids);
|
|
||||||
} catch (EmptyResult $exception) {
|
|
||||||
$this->logger->error($exception);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 'subscriptions':
|
case 'subscriptions':
|
||||||
try {
|
try {
|
||||||
$results['subscription'] = $this->subscription->update($ids);
|
$results['subscription'] = $this->subscription->update($ids);
|
||||||
$results['invoice'] = $this->invoice->updateBySubscription($ids);
|
|
||||||
} catch (EmptyResult | EmptyResponse $exception) {
|
} catch (EmptyResult | EmptyResponse $exception) {
|
||||||
$this->logger->error($exception);
|
$this->logger->error($exception);
|
||||||
}
|
}
|
||||||
|
@ -120,10 +120,10 @@ class Subscription extends AbstractEndPoint
|
|||||||
*/
|
*/
|
||||||
public function update(array $idsData): array
|
public function update(array $idsData): array
|
||||||
{
|
{
|
||||||
$toku_ids = array_column($idsData, 'toku_id');
|
$tokuIds = array_column($idsData, 'toku_id');
|
||||||
$old_pids = array_column($idsData, 'product_id');
|
$oldPids = array_column($idsData, 'product_id');
|
||||||
|
|
||||||
$placeholders = array_map(fn($id) => "id{$id}", array_keys($old_pids));
|
$placeholders = array_map(fn($id) => "id{$id}", array_keys($oldPids));
|
||||||
$placeholdersString = implode(', ', array_map(fn($id) => ":{$id}", $placeholders));
|
$placeholdersString = implode(', ', array_map(fn($id) => ":{$id}", $placeholders));
|
||||||
$query = $this->ventaService->getRepository()->getConnection()->getQueryBuilder()
|
$query = $this->ventaService->getRepository()->getConnection()->getQueryBuilder()
|
||||||
->select('venta.id, CONCAT_WS("-", unidad.descripcion, CONCAT_WS("-", propietario.rut, propietario.dv)) AS old_pid')
|
->select('venta.id, CONCAT_WS("-", unidad.descripcion, CONCAT_WS("-", propietario.rut, propietario.dv)) AS old_pid')
|
||||||
@ -132,7 +132,7 @@ class Subscription extends AbstractEndPoint
|
|||||||
->joined('JOIN propiedad_unidad pu ON pu.propiedad = venta.propiedad')
|
->joined('JOIN propiedad_unidad pu ON pu.propiedad = venta.propiedad')
|
||||||
->joined('JOIN unidad ON pu.unidad = unidad.id')
|
->joined('JOIN unidad ON pu.unidad = unidad.id')
|
||||||
->having("old_pid IN ({$placeholdersString})");
|
->having("old_pid IN ({$placeholdersString})");
|
||||||
$values = array_combine($placeholders, $old_pids);
|
$values = array_combine($placeholders, $oldPids);
|
||||||
try {
|
try {
|
||||||
$statement = $this->ventaService->getRepository()->getConnection()->execute($query, $values);
|
$statement = $this->ventaService->getRepository()->getConnection()->execute($query, $values);
|
||||||
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
|
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
|
||||||
@ -143,30 +143,30 @@ class Subscription extends AbstractEndPoint
|
|||||||
|
|
||||||
$accountKeys = $this->getAccountKey(array_column($results, 'id'));
|
$accountKeys = $this->getAccountKey(array_column($results, 'id'));
|
||||||
|
|
||||||
$new_pids = [];
|
$newPids = [];
|
||||||
$keys = [];
|
$keys = [];
|
||||||
foreach ($results as $result) {
|
foreach ($results as $result) {
|
||||||
$idx = array_search($result['old_pid'], $old_pids);
|
$idx = array_search($result['old_pid'], $oldPids);
|
||||||
$new_pids[$idx] = $result['id'];
|
$newPids[$idx] = $result['id'];
|
||||||
if (array_key_exists($result['id'], $accountKeys)) {
|
if (array_key_exists($result['id'], $accountKeys)) {
|
||||||
$keys[$idx] = $accountKeys[$result['id']];
|
$keys[$idx] = $accountKeys[$result['id']];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$output = [];
|
$output = [];
|
||||||
foreach ($toku_ids as $idx => $toku_id) {
|
foreach ($tokuIds as $idx => $tokuId) {
|
||||||
if (!isset($new_pids[$idx])) {
|
if (!isset($newPids[$idx])) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$data = [
|
$data = [
|
||||||
'product_id' => $new_pids[$idx],
|
'product_id' => $newPids[$idx],
|
||||||
];
|
];
|
||||||
if (!$this->edit($toku_id, $data, array_key_exists($idx, $keys) ? $keys[$idx] : null)) {
|
if (!$this->edit($tokuId, $data, array_key_exists($idx, $keys) ? $keys[$idx] : null)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$output[] = [
|
$output[] = [
|
||||||
'toku_id' => $toku_id,
|
'toku_id' => $tokuId,
|
||||||
'old_pid' => $old_pids[$idx],
|
'old_pid' => $oldPids[$idx],
|
||||||
'product_id' => $new_pids[$idx],
|
'product_id' => $newPids[$idx],
|
||||||
'account_key' => array_key_exists($idx, $keys) ? $keys[$idx] : null
|
'account_key' => array_key_exists($idx, $keys) ? $keys[$idx] : null
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user