diff --git a/app/Console/Commands/ScheduleList.php b/app/Console/Commands/ScheduleList.php index 1e3f6a1d1..3bd0479e8 100644 --- a/app/Console/Commands/ScheduleList.php +++ b/app/Console/Commands/ScheduleList.php @@ -7,74 +7,138 @@ use Illuminate\Console\Scheduling\Schedule; class ScheduleList { + // public function schedule(Schedule $schedule): void + // { + // // Invoice Report Scheduling + // $scheduleType = AlertMailRule::where('module', 'InvoiceValidation') + // ->where('rule_name', 'InvoiceMail') + // ->value('schedule_type'); + + // switch ($scheduleType) { + // case 'Live': + // $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); + // break; + // case 'Hourly': + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // // case 'Daily': + // // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') + // // break; + // case 'Daily': + // $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') + // break; + // default: + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // } + + // $SerialscheduleType = AlertMailRule::where('module', 'InvoiceValidation') + // ->where('rule_name', 'SerialInvoiceMail') + // ->value('schedule_type'); + + // switch ($SerialscheduleType) { + // case 'Live': + // $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); + // break; + // case 'Hourly': + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // // case 'Daily': + // // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') + // // break; + // case 'Daily': + // $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') + // break; + // default: + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // } + + + // $materialscheduleType = AlertMailRule::where('module', 'InvoiceValidation') + // ->where('rule_name', 'MaterialInvoiceMail') + // ->value('schedule_type'); + + // switch ($materialscheduleType) { + // case 'Live': + // $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); + // break; + // case 'Hourly': + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // // case 'Daily': + // // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') + // // break; + // case 'Daily': + // $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') + // break; + // default: + // $schedule->command('send:invoice-report')->hourly()->runInBackground(); + // break; + // } + + // // Production Report Scheduling + // $productionScheduleType = AlertMailRule::where('module', 'ProductionQuantities') + // ->where('rule_name', 'ProductionMail') + // ->value('schedule_type'); + + // switch ($productionScheduleType) { + // case 'Live': + // $schedule->command('send:production-report')->everyMinute()->runInBackground(); + // break; + // case 'Hourly': + // $schedule->command('send:production-report')->hourly()->runInBackground(); + // break; + // case 'Daily': + // $schedule->command('send:production-report')->dailyAt('07:59')->runInBackground(); + // break; + // default: + // $schedule->command('send:production-report')->hourly()->runInBackground(); + // break; + // } + // } + public function schedule(Schedule $schedule): void { - // Invoice Report Scheduling - $scheduleType = AlertMailRule::where('module', 'InvoiceValidation') - ->where('rule_name', 'InvoiceMail') - ->value('schedule_type'); + // Define the rules you want to schedule + $rules = [ + [ + 'module' => 'InvoiceValidation', + 'rule_name' => 'InvoiceMail', + 'argument' => 'InvoiceMail', + ], + [ + 'module' => 'InvoiceValidation', + 'rule_name' => 'SerialInvoiceMail', + 'argument' => 'SerialInvoiceMail', + ], + [ + 'module' => 'InvoiceValidation', + 'rule_name' => 'MaterialInvoiceMail', + 'argument' => 'MaterialInvoiceMail', + ], + ]; - switch ($scheduleType) { - case 'Live': - $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); - break; - case 'Hourly': - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; - // case 'Daily': - // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') - // break; - case 'Daily': - $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') - break; - default: - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; - } + // Loop through each rule and schedule accordingly + foreach ($rules as $rule) { + $scheduleType = AlertMailRule::where('module', $rule['module']) + ->where('rule_name', $rule['rule_name']) + ->value('schedule_type'); - $SerialscheduleType = AlertMailRule::where('module', 'InvoiceValidation') - ->where('rule_name', 'SerialInvoiceMail') - ->value('schedule_type'); - - switch ($SerialscheduleType) { - case 'Live': - $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); - break; - case 'Hourly': - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; - // case 'Daily': - // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') - // break; - case 'Daily': - $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') - break; - default: - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; - } - - - $materialscheduleType = AlertMailRule::where('module', 'InvoiceValidation') - ->where('rule_name', 'MaterialInvoiceMail') - ->value('schedule_type'); - - switch ($materialscheduleType) { - case 'Live': - $schedule->command('send:invoice-report')->everyMinute()->runInBackground(); - break; - case 'Hourly': - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; - // case 'Daily': - // $schedule->command('send:invoice-report')->daily()->runInBackground(); //->dailyAt('07:59') - // break; - case 'Daily': - $schedule->command('send:invoice-report')->dailyAt('07:59')->runInBackground(); //->dailyAt('07:59') - break; - default: - $schedule->command('send:invoice-report')->hourly()->runInBackground(); - break; + switch ($scheduleType) { + case 'Live': + $schedule->command("send:invoice-report {$rule['argument']}")->everyMinute()->runInBackground(); + break; + case 'Hourly': + $schedule->command("send:invoice-report {$rule['argument']}")->hourly()->runInBackground(); + break; + case 'Daily': + $schedule->command("send:invoice-report {$rule['argument']}")->dailyAt('07:59')->runInBackground(); + break; + default: + $schedule->command("send:invoice-report {$rule['argument']}")->hourly()->runInBackground(); + break; + } } // Production Report Scheduling