/** * @test */ public function it_builds_a_valid_parseable_template() { $business = $this->createBusiness(); $startAt = $business->pref('start_at', '09:00'); $finishAt = $business->pref('finish_at', '18:00'); $service = $this->createService(['business_id' => $business->id]); $template = $this->vacancyTemplateBuilder->getTemplate($business, $business->services()->first()); $vacancyParser = new VacancyParser(); $parsedStatements = $vacancyParser->parseStatements($template); $this->assertCount(6, $parsedStatements); }
/** * send Business Report. * * @param Business $business * * @return void */ protected function publishVacancies(Business $business) { $this->info(__METHOD__); $this->info("Publishing vacancies for businessId:{$business->id}"); $publishedVacancies = $this->vacancyParser->parseStatements($this->recallStatements($business->id)); if (!$this->autopublishVacancies($business)) { $this->info('Skipped autopublishing vacancies'); return false; } if (!$this->concierge->business($business)->vacancies()->updateBatch($business, $publishedVacancies)) { return false; } // $owner = $business->owners()->first(); // Mail to User // $header = [ // 'email' => $owner->email, // 'name' => $owner->name, // ]; // $this->transmail->locale($business->locale) // ->template('appointments.manager._schedule') // ->subject('manager.business.report.subject', ['date' => date('Y-m-d'), 'business' => $business->name]) // ->send($header, compact('business', 'appointments')); return true; }
/** * Store vacancies from a command string. * * @param Business $business * @param Request $request * * @return Illuminate\Http\Response */ public function storeBatch(Business $business, Request $request, VacancyParser $vacancyParser) { logger()->info(__METHOD__); logger()->info(sprintf('businessId:%s', $business->id)); $this->authorize('manageVacancies', $business); // BEGIN ////////////////// // FOR REFACTOR // ////////////////// $this->concierge->business($business); $statements = $request->input('vacancies'); $unpublish = $request->input('unpublish'); if ($unpublish) { $this->concierge->vacancies()->unpublish(); } $publishedVacancies = $vacancyParser->parseStatements($statements); if (!$this->concierge->vacancies()->updateBatch($business, $publishedVacancies)) { logger()->warning('Nothing to update'); flash()->warning(trans('manager.vacancies.msg.store.nothing_changed')); return redirect()->back(); } if ($request->input('remember')) { $this->rememberStatements($business->id, $statements); } logger()->info('Vacancies updated'); flash()->success(trans('manager.vacancies.msg.store.success')); return redirect()->route('manager.business.show', [$business]); }