comment(Inspiring::quote()); })->purpose('Display an inspiring quote'); // Schedule::command('send:invoice-report'); // Schedule::command('send:production-report'); // $rules = [ // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'InvoiceMail', // 'argument' => 'InvoiceMail', // ], // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'SerialInvoiceMail', // 'argument' => 'SerialInvoiceMail', // ], // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'MaterialInvoiceMail', // 'argument' => 'MaterialInvoiceMail', // ], // ]; // 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(); // break; // case 'Hourly': // Schedule::command("send:invoice-report {$rule['argument']}")->hourly(); // break; // case 'Daily': // Schedule::command("send:invoice-report {$rule['argument']}")->dailyAt('07:59'); // break; // default: // Schedule::command("send:invoice-report {$rule['argument']}")->hourly(); // break; // } // } // // Production Report Scheduling // $productionScheduleType = AlertMailRule::where('module', 'ProductionQuantities') // ->where('rule_name', 'ProductionMail') // ->value('schedule_type'); // // $this->info($productionScheduleType); // // \Log::info('Production Schedule Type: ' . $productionScheduleType); // switch ($productionScheduleType) { // case 'Live': // Schedule::command('send:production-report')->everyMinute(); // break; // case 'Hourly': // Schedule::command('send:production-report')->hourly(); // break; // case 'Daily': // Schedule::command('send:production-report')->dailyAt('07:59'); // break; // default: // Schedule::command('send:production-report')->hourly(); // break; // } // app()->booted(function () { // $schedule = app(Schedule::class); // // Dynamic rules for invoice reports // $rules = [ // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'InvoiceMail', // 'argument' => 'InvoiceMail', // ], // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'SerialInvoiceMail', // 'argument' => 'SerialInvoiceMail', // ], // [ // 'module' => 'InvoiceValidation', // 'rule_name' => 'MaterialInvoiceMail', // 'argument' => 'MaterialInvoiceMail', // ], // ]; // 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(); // break; // case 'Hourly': // $schedule->command("send:invoice-report {$rule['argument']}")->hourly(); // break; // case 'Daily': // $schedule->command("send:invoice-report {$rule['argument']}")->dailyAt('07:59'); // break; // default: // $schedule->command("send:invoice-report {$rule['argument']}")->hourly(); // 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(); // break; // case 'Hourly': // $schedule->command('send:production-report')->hourly(); // break; // case 'Daily': // $schedule->command('send:production-report')->dailyAt('07:59'); // break; // default: // $schedule->command('send:production-report')->hourly(); // break; // } // }); app()->booted(function () { $schedule = app(Schedule::class); //Always run every minute — the command itself will filter recipients //$schedule->command('send:production-report')->everyMinute(); // Production Report Scheduling $productionScheduleType = AlertMailRule::where('module', 'ProductionQuantities') ->where('rule_name', 'ProductionMail') ->value('schedule_type'); if ($productionScheduleType) { $command = $schedule->command('send:production-report'); match ($productionScheduleType) { 'Live' => $command->everyMinute(), 'Hourly' => $command->hourly(), 'Daily' => $command->dailyAt('07:59'), default => null, }; } });