![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/syn.corals.io/Corals/modules/Syndicate/Jobs/ |
<?php namespace Corals\Modules\Syndicate\Jobs; use Corals\Modules\Syndicate\Models\Fee; use Corals\Modules\Syndicate\Models\FeeSetup; use Corals\Modules\Syndicate\Models\Pharmacist; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; class GenerateFeeJob implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; /** * @var FeeSetup */ public $fees_setup; /** * @param FeeSetup $fees_setup */ public function __construct(FeeSetup $fees_setup) { $this->fees_setup = $fees_setup; } /** * Execute the job. * * @return void */ public function handle() { $query = Pharmacist::query() ->where('status_code', '!=', 'Syndicate::pharmacist_status.dead') ->orderBy('id'); switch ($this->fees_setup->frequency_type) { case 'Syndicate::payment_method.annual': $query->whereDoesntHave('fees', function ($query) { $query->where('year', $this->fees_setup->year)->where('type_code', $this->fees_setup->fee_code); }); break; case 'Syndicate::payment_method.one-time': $query->whereDoesntHave('fees', function ($query) { $query->where('type_code', $this->fees_setup->fee_code); }); break; } $query->chunk(100, function ($users) { $data = []; foreach ($users as $user) { $data[] = [ 'user_id' => $user->id, 'year' => $this->fees_setup->year, 'type_code' => $this->fees_setup->fee_code, 'due' => $this->fees_setup->amount, 'paid' => 0, 'created_at' => now(), 'updated_at' => now(), ]; } Fee::query()->insert($data); }); } }