Merged in bugfix/PMCORE-3083 (pull request #7967)
PMCORE-3083 Approved-by: Julio Cesar Laura Avendaño
This commit is contained in:
@@ -1260,6 +1260,10 @@ class AbstractCases implements CasesInterface
|
||||
if (!empty($properties['caseNumber'])) {
|
||||
$this->setCaseNumber($properties['caseNumber']);
|
||||
}
|
||||
// Add a filter with specific cases or range of cases like '1, 3-5, 8, 10-15'
|
||||
if (!empty($properties['filterCases'])) {
|
||||
$this->setFilterCases($properties['filterCases']);
|
||||
}
|
||||
// Filter by case title
|
||||
if (!empty($properties['caseTitle'])) {
|
||||
$this->setCaseTitle($properties['caseTitle']);
|
||||
@@ -1290,10 +1294,6 @@ class AbstractCases implements CasesInterface
|
||||
$this->setFinishCaseTo($properties['finishCaseTo']);
|
||||
}
|
||||
/** Apply filters related to SEARCH */
|
||||
// Add a filter with specific cases or range of cases like '1, 3-5, 8, 10-15'
|
||||
if (get_class($this) === Search::class && !empty($properties['filterCases'])) {
|
||||
$this->setFilterCases($properties['filterCases']);
|
||||
}
|
||||
// Filter by more than one case statuses like ['DRAFT', 'TO_DO']
|
||||
if (get_class($this) === Search::class && !empty($properties['caseStatuses'])) {
|
||||
$this->setCaseStatuses($properties['caseStatuses']);
|
||||
|
||||
@@ -47,6 +47,18 @@ class Draft extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -50,6 +50,18 @@ class Inbox extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -52,6 +52,18 @@ class Participated extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -49,6 +49,18 @@ class Paused extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -48,14 +48,18 @@ class Search extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers())) {
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo())) {
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
// Join with delegation
|
||||
|
||||
@@ -49,6 +49,18 @@ class Supervising extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if (!empty($this->getCaseTitle())) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -50,6 +50,18 @@ class Unassigned extends AbstractCases
|
||||
if ($this->getCaseNumber()) {
|
||||
$query->case($this->getCaseNumber());
|
||||
}
|
||||
// Filter only cases by specific cases like [1,3,5]
|
||||
if (!empty($this->getCasesNumbers()) && empty($this->getRangeCasesFromTo())) {
|
||||
$query->specificCases($this->getCasesNumbers());
|
||||
}
|
||||
// Filter only cases by range of cases like ['1-5', '10-15']
|
||||
if (!empty($this->getRangeCasesFromTo()) && empty($this->getCasesNumbers())) {
|
||||
$query->rangeOfCases($this->getRangeCasesFromTo());
|
||||
}
|
||||
// Filter cases mixed by range of cases and specific cases like '1,3-5,8'
|
||||
if (!empty($this->getCasesNumbers()) && !empty($this->getRangeCasesFromTo())) {
|
||||
$query->casesOrRangeOfCases($this->getCasesNumbers(), $this->getRangeCasesFromTo());
|
||||
}
|
||||
// Specific case title
|
||||
if ($this->getCaseTitle()) {
|
||||
$query->title($this->getCaseTitle());
|
||||
|
||||
@@ -135,18 +135,49 @@ class Application extends Model
|
||||
*/
|
||||
public function scopeRangeOfCases($query, array $rangeCases)
|
||||
{
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
$query->where(function ($query) use ($rangeCases) {
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope more than one range of cases
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param array $cases
|
||||
* @param array $rangeCases
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeCasesOrRangeOfCases($query, array $cases, array $rangeCases)
|
||||
{
|
||||
$query->where(function ($query) use ($cases, $rangeCases) {
|
||||
// Get the cases related to the task self service
|
||||
$query->specificCases($cases);
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -488,18 +488,49 @@ class Delegation extends Model
|
||||
*/
|
||||
public function scopeRangeOfCases($query, array $rangeCases)
|
||||
{
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
$query->where(function ($query) use ($rangeCases) {
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Scope more than one range of cases
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
* @param array $cases
|
||||
* @param array $rangeCases
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeCasesOrRangeOfCases($query, array $cases, array $rangeCases)
|
||||
{
|
||||
$query->where(function ($query) use ($cases, $rangeCases) {
|
||||
// Get the cases related to the task self service
|
||||
$query->specificCases($cases);
|
||||
foreach ($rangeCases as $fromTo) {
|
||||
$fromTo = explode("-", $fromTo);
|
||||
if (count($fromTo) === 2) {
|
||||
$from = $fromTo[0];
|
||||
$to = $fromTo[1];
|
||||
if ($to > $from) {
|
||||
$query->orWhere(function ($query) use ($from, $to) {
|
||||
$query->casesFrom($from)->casesTo($to);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -50,6 +50,7 @@ class Home extends Api
|
||||
* @param int $process
|
||||
* @param int $task
|
||||
* @param string $caseTitle
|
||||
* @param string $filterCases
|
||||
* @param string $paged
|
||||
* @param string $sort
|
||||
*
|
||||
@@ -65,6 +66,7 @@ class Home extends Api
|
||||
int $process = 0,
|
||||
int $task = 0,
|
||||
string $caseTitle = '',
|
||||
string $filterCases = '',
|
||||
string $paged = '0,15',
|
||||
string $sort = 'APP_NUMBER,DESC'
|
||||
) {
|
||||
@@ -74,6 +76,7 @@ class Home extends Api
|
||||
$properties = [];
|
||||
$properties['caseNumber'] = $caseNumber;
|
||||
$properties['caseTitle'] = $caseTitle;
|
||||
$properties['filterCases'] = $filterCases;
|
||||
$properties['process'] = $process;
|
||||
$properties['task'] = $task;
|
||||
// Get the user that access to the API
|
||||
@@ -105,6 +108,7 @@ class Home extends Api
|
||||
* @param int $process
|
||||
* @param int $task
|
||||
* @param string $caseTitle
|
||||
* @param string $filterCases
|
||||
* @param string $paged
|
||||
* @param string $sort
|
||||
*
|
||||
@@ -120,6 +124,7 @@ class Home extends Api
|
||||
int $process = 0,
|
||||
int $task = 0,
|
||||
string $caseTitle = '',
|
||||
string $filterCases = '',
|
||||
string $paged = '0,15',
|
||||
string $sort = 'APP_NUMBER,DESC'
|
||||
) {
|
||||
@@ -129,6 +134,7 @@ class Home extends Api
|
||||
$properties = [];
|
||||
$properties['caseNumber'] = $caseNumber;
|
||||
$properties['caseTitle'] = $caseTitle;
|
||||
$properties['filterCases'] = $filterCases;
|
||||
$properties['process'] = $process;
|
||||
$properties['task'] = $task;
|
||||
// Get the user that access to the API
|
||||
@@ -160,6 +166,7 @@ class Home extends Api
|
||||
* @param int $process
|
||||
* @param int $task
|
||||
* @param string $caseTitle
|
||||
* @param string $filterCases
|
||||
* @param string $paged
|
||||
* @param string $sort
|
||||
*
|
||||
@@ -175,6 +182,7 @@ class Home extends Api
|
||||
int $process = 0,
|
||||
int $task = 0,
|
||||
string $caseTitle = '',
|
||||
string $filterCases = '',
|
||||
string $paged = '0,15',
|
||||
string $sort = 'APP_NUMBER,DESC'
|
||||
) {
|
||||
@@ -184,6 +192,7 @@ class Home extends Api
|
||||
$properties = [];
|
||||
$properties['caseNumber'] = $caseNumber;
|
||||
$properties['caseTitle'] = $caseTitle;
|
||||
$properties['filterCases'] = $filterCases;
|
||||
$properties['process'] = $process;
|
||||
$properties['task'] = $task;
|
||||
// Get the user that access to the API
|
||||
@@ -217,6 +226,7 @@ class Home extends Api
|
||||
* @param int $process
|
||||
* @param int $task
|
||||
* @param string $caseTitle
|
||||
* @param string $filterCases
|
||||
* @param string $paged
|
||||
* @param string $sort
|
||||
*
|
||||
@@ -232,6 +242,7 @@ class Home extends Api
|
||||
int $process = 0,
|
||||
int $task = 0,
|
||||
string $caseTitle = '',
|
||||
string $filterCases = '',
|
||||
string $paged = '0,15',
|
||||
string $sort = 'APP_NUMBER,DESC'
|
||||
) {
|
||||
@@ -241,6 +252,7 @@ class Home extends Api
|
||||
$properties = [];
|
||||
$properties['caseNumber'] = $caseNumber;
|
||||
$properties['caseTitle'] = $caseTitle;
|
||||
$properties['filterCases'] = $filterCases;
|
||||
$properties['process'] = $process;
|
||||
$properties['task'] = $task;
|
||||
// Get the user that access to the API
|
||||
@@ -272,6 +284,7 @@ class Home extends Api
|
||||
* @param int $process
|
||||
* @param int $task
|
||||
* @param string $caseTitle
|
||||
* @param string $filterCases
|
||||
* @param string $filter
|
||||
* @param string $caseStatus
|
||||
* @param string $startCaseFrom
|
||||
@@ -293,6 +306,7 @@ class Home extends Api
|
||||
int $process = 0,
|
||||
int $task = 0,
|
||||
string $caseTitle = '',
|
||||
string $filterCases = '',
|
||||
string $filter = 'IN_PROGRESS',
|
||||
string $caseStatus = '',
|
||||
string $startCaseFrom = '',
|
||||
@@ -306,6 +320,7 @@ class Home extends Api
|
||||
$properties = [];
|
||||
$properties['caseNumber'] = $caseNumber;
|
||||
$properties['caseTitle'] = $caseTitle;
|
||||
$properties['filterCases'] = $filterCases;
|
||||
$properties['process'] = $process;
|
||||
$properties['task'] = $task;
|
||||
// Get the user that access to the API
|
||||
|
||||
Reference in New Issue
Block a user