2017 © Pedro Peláez
 

library schedule

Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time.

image

rennokki/schedule

Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time.

  • Monday, July 30, 2018
  • by rennokki
  • Repository
  • 2 Watchers
  • 7 Stars
  • 122 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 10 Versions
  • 1425 % Grown

The README.md

Build Status codecov StyleCI Latest Stable Version Total Downloads Monthly Downloads License, (*1)

PayPal, (*2)

Schedule

Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time., (*3)

Inspiration

This package is inspired from Spatie's Opening Hours package, which uses a schedule but only statically, rather than binding it to a model. This gave me the idea of brining it closer to Eloquent Models than to the classic Class., (*4)

Installation

Install the package via Composer CLI:, (*5)

$ composer require rennokki/schedule

For versions of Laravel that doesn't support package discovery, you should add this to your config/app.php file, in the providers array:, (*6)

\Rennokki\Schedule\ScheduleServiceProvider::class,

Publish the migration file and the config file., (*7)

$ php artisan vendor:publish

Migrate the database., (*8)

$ php artisan migrate

Add the trait to your model., (*9)

use Rennokki\Schedule\Traits\HasSchedule;

class User extends Model {
    use HasSchedule;
    ...
}

Getting Started

To get stared, let's create a schedule for our user. It will be from Monday to Friday, between 8-12 and 13-18., (*10)

$user->setSchedule([
    'monday' => ['08:00-12:00', '13:00-18:00'],
    'tuesday' => ['08:00-12:00', '13:00-18:00'],
    'wednesday' => ['08:00-12:00', '13:00-18:00'],
    'thursday' => ['08:00-12:00', '13:00-18:00'],
    'friday' => ['08:00-12:00', '13:00-18:00'],
]);

$user->hasSchedule(); // true

Let's say the user has its birthday on 1st March each year, so let's add this to an exclusions list. Adding to this, the first and the second day of Christmas is free for anyone, and let's add 1st May 2018 in our exclusions list too., (*11)

Note: 1st May 2018 will occur only once, it's not recurrent., (*12)

$user->setExclusions([
    '03-01' => ['08:00-12:00'],
    '12-25' => [],
    '12-26' => [],
    '2018-05-01' => [],
]);

Checking for availability

You can check if the user has working hours on a certain day, date. Passing date also works with Carbon instance., (*13)

$user->isAvailableOn('monday'); // true
$user->isAvailableOn('05-28'); // true; This is Monday, in 2018 (current year)
$user->isAvailableOn('2018-05-28'); // true
$user->isAvailableOn(Carbon::create(2018, 5, 28, 0, 0, 0)); // true

$user->isUnavailableOn('monday'); // false
$user->isUnavailableOn('05-28'); // false
$user->isUnavailableOn('2018-05-28'); // false
$user->isUnavailableOn(Carbon::create(2018, 5, 28, 0, 0, 0)); // false

If there is an exclusion that day, it will return the correct value based on the schedule set that day:, (*14)

$user->isUnavailableOn('12-25'); // true
$user->isUnavailableOn('03-01'); // false

Checking for availability at a certain time

You can also check availability for a certain time on a specific day., (*15)

$user->isAvailableOnAt('monday', '09:00'); // true
$user->isUnavailableOnAt('monday', '09:00'); // false

Getting the amount of hours or minutes for a day

You can get the amount of hours or minutes scheduled for a day. Good for tracking workable hours, for example., (*16)

$user->getHoursOn('03-01'); // 4
$user->getHoursOn('12-26'); // 0
$user->getHoursOn('05-28'); // 9
$user->getHoursOn('2018-05-28'); // 9

$user->getMinutesOn('03-01'); // 240

Deleting the schedule

If you plan to delete the user's schedule, you can do so by calling deleteSchedule()., (*17)

$user->deleteSchedule();
$user->hasSchedule(); // false

The Versions

30/07 2018

dev-master

9999999-dev https://github.com/rennokki/schedule

Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

30/07 2018

1.5.2

1.5.2.0 https://github.com/rennokki/schedule

Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

29/06 2018

1.5.1

1.5.1.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

23/06 2018

1.5.0

1.5.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

16/06 2018

1.4.0

1.4.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

01/06 2018

1.3.0

1.3.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

01/06 2018

dev-test-units

dev-test-units https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

The Development Requires

scheduler schedule spatie hours timetable opening opening-hours

29/05 2018

1.2.0

1.2.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

scheduler schedule spatie hours timetable opening opening-hours

27/05 2018

1.1.0

1.1.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

scheduler schedule spatie hours timetable opening opening-hours

27/05 2018

1.0.0

1.0.0.0 https://github.com/rennokki/schedule

Setting up schedule to Eloquent models with the ability of checking schedule based on time.

  Sources   Download

MIT

The Requires

 

scheduler schedule spatie hours timetable opening opening-hours