Added report listener skip event fire feature..

This commit is contained in:
Cüneyt Şentürk 2024-08-26 13:26:23 +01:00
parent b9057afd08
commit 5d1ffa2d90
3 changed files with 60 additions and 0 deletions

View File

@ -25,11 +25,20 @@ abstract class Report
public function skipThisClass($event)
{
$fire_event = $event;
$this->fireEvent('App\Events\Report\SkipClass', $fire_event);
return (empty($event->class) || !in_array(get_class($event->class), $this->classes));
}
public function skipRowsShowing($event, $group)
{
$fire_event = $event;
$fire_group = $group;
$this->fireEvent('App\Events\Report\SkipRowsShowing', $fire_event, $fire_group);
return $this->skipThisClass($event)
|| empty($event->class->model->settings->group)
|| ($event->class->model->settings->group != $group);
@ -280,6 +289,17 @@ abstract class Report
return $this->getPeriodicDate($date, $event->class->getSetting('period'), $event->class->year);
}
protected function fireEvent($event_class, $event, $group = null)
{
$this->class = $event->class;
if ($group) {
$this->group = $group;
}
event(new $event_class($this));
}
/**
* Register the listeners for the subscriber.
*

View File

@ -0,0 +1,20 @@
<?php
namespace App\Events\Report;
use App\Abstracts\Event;
class SkipClass extends Event
{
public $classes;
/**
* Create a new event instance.
*
* @param $classes
*/
public function __construct($classes)
{
$this->classes = $classes;
}
}

View File

@ -0,0 +1,20 @@
<?php
namespace App\Events\Report;
use App\Abstracts\Event;
class SkipRowsShowing extends Event
{
public $classes;
/**
* Create a new event instance.
*
* @param $classes
*/
public function __construct($classes)
{
$this->classes = $classes;
}
}