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 { // 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', ], ]; // 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'); 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 $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; } } }