From f9c36fd761ca3ccaab704a3c7ea4a58555e5a91e Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Thu, 21 Apr 2016 13:02:19 +0300 Subject: [PATCH] Fix for saving invoice client with id/public_id --- app/Console/Commands/PruneData.php | 57 ++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 app/Console/Commands/PruneData.php diff --git a/app/Console/Commands/PruneData.php b/app/Console/Commands/PruneData.php new file mode 100644 index 000000000000..89703764243e --- /dev/null +++ b/app/Console/Commands/PruneData.php @@ -0,0 +1,57 @@ +info(date('Y-m-d').' Running PruneData...'); + + // delete accounts who never registered, didn't create any invoices, + // hansn't logged in within the past 6 months and isn't linked to another account + $sql = 'select a.id + from (select id, last_login from accounts) a + left join users u on u.account_id = a.id and u.public_id = 0 + left join invoices i on i.account_id = a.id + left join user_accounts ua1 on ua1.user_id1 = u.id + left join user_accounts ua2 on ua2.user_id2 = u.id + left join user_accounts ua3 on ua3.user_id3 = u.id + left join user_accounts ua4 on ua4.user_id4 = u.id + left join user_accounts ua5 on ua5.user_id5 = u.id + where u.registered = 0 + and a.last_login < DATE_SUB(now(), INTERVAL 6 MONTH) + and (ua1.id is null and ua2.id is null and ua3.id is null and ua4.id is null and ua5.id is null) + group by a.id + having count(i.id) = 0'; + + $results = DB::select($sql); + + foreach ($results as $result) { + $this->info("Deleting {$result->id}"); + DB::table('accounts') + ->where('id', '=', $result->id) + ->delete(); + } + + $this->info('Done'); + } + + protected function getArguments() + { + return array( + //array('example', InputArgument::REQUIRED, 'An example argument.'), + ); + } + + protected function getOptions() + { + return array( + //array('example', null, InputOption::VALUE_OPTIONAL, 'An example option.', null), + ); + } +}