mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-09-20 00:11:35 +02:00
Added check for account data
This commit is contained in:
parent
683f66762a
commit
0aca2e7fb4
@ -53,42 +53,69 @@ class CheckData extends Command {
|
|||||||
|
|
||||||
$this->checkBalances();
|
$this->checkBalances();
|
||||||
|
|
||||||
$this->checkActivityAccount();
|
$this->checkAccountData();
|
||||||
|
|
||||||
$this->info('Done');
|
$this->info('Done');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function checkActivityAccount()
|
private function checkAccountData()
|
||||||
{
|
{
|
||||||
$entityTypes = [
|
$tables = [
|
||||||
ENTITY_INVOICE,
|
'activities' => [
|
||||||
ENTITY_CLIENT,
|
ENTITY_INVOICE,
|
||||||
ENTITY_CONTACT,
|
ENTITY_CLIENT,
|
||||||
ENTITY_PAYMENT,
|
ENTITY_CONTACT,
|
||||||
ENTITY_INVITATION,
|
ENTITY_PAYMENT,
|
||||||
|
ENTITY_INVITATION,
|
||||||
|
ENTITY_USER
|
||||||
|
],
|
||||||
|
'invoices' => [
|
||||||
|
ENTITY_CLIENT,
|
||||||
|
ENTITY_USER
|
||||||
|
],
|
||||||
|
'payments' => [
|
||||||
|
ENTITY_INVOICE,
|
||||||
|
ENTITY_CLIENT,
|
||||||
|
ENTITY_USER,
|
||||||
|
ENTITY_INVITATION,
|
||||||
|
ENTITY_CONTACT
|
||||||
|
],
|
||||||
|
'tasks' => [
|
||||||
|
ENTITY_INVOICE,
|
||||||
|
ENTITY_CLIENT,
|
||||||
|
ENTITY_USER
|
||||||
|
],
|
||||||
|
'credits' => [
|
||||||
|
ENTITY_CLIENT,
|
||||||
|
ENTITY_USER
|
||||||
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
foreach ($entityTypes as $entityType) {
|
foreach ($tables as $table => $entityTypes) {
|
||||||
$activities = DB::table('activities')
|
foreach ($entityTypes as $entityType) {
|
||||||
->join("{$entityType}s", "{$entityType}s.id", '=', "activities.{$entityType}_id");
|
$records = DB::table($table)
|
||||||
|
->join("{$entityType}s", "{$entityType}s.id", '=', "{$table}.{$entityType}_id");
|
||||||
|
|
||||||
if ($entityType != ENTITY_CLIENT) {
|
if ($entityType != ENTITY_CLIENT) {
|
||||||
$activities = $activities->join('clients', 'clients.id', '=', 'activities.client_id');
|
$records = $records->join('clients', 'clients.id', '=', "{$table}.client_id");
|
||||||
}
|
}
|
||||||
|
|
||||||
$activities = $activities->where('activities.account_id', '!=', DB::raw("{$entityType}s.account_id"))
|
$records = $records->where("{$table}.account_id", '!=', DB::raw("{$entityType}s.account_id"))
|
||||||
->get(['activities.id', "clients.account_id", "clients.user_id"]);
|
->get(["{$table}.id", "clients.account_id", "clients.user_id"]);
|
||||||
|
|
||||||
$this->info(count($activities) . " {$entityType} activity with incorrect account id");
|
if (count($records)) {
|
||||||
|
$this->info(count($records) . " {$table} records with incorrect {$entityType} account id");
|
||||||
|
|
||||||
if ($this->option('fix') == 'true') {
|
if ($this->option('fix') == 'true') {
|
||||||
foreach ($activities as $activity) {
|
foreach ($records as $record) {
|
||||||
DB::table('activities')
|
DB::table($table)
|
||||||
->where('id', $activity->id)
|
->where('id', $record->id)
|
||||||
->update([
|
->update([
|
||||||
'account_id' => $activity->account_id,
|
'account_id' => $record->account_id,
|
||||||
'user_id' => $activity->user_id,
|
'user_id' => $record->user_id,
|
||||||
]);
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user