Refactor task status handling and update styles for task views; add support for 'faktury' status
This commit is contained in:
12
.vscode/ftp-kr.sync.cache.json
vendored
12
.vscode/ftp-kr.sync.cache.json
vendored
@@ -197,20 +197,20 @@
|
|||||||
"layout": {
|
"layout": {
|
||||||
"style.css": {
|
"style.css": {
|
||||||
"type": "-",
|
"type": "-",
|
||||||
"size": 17428,
|
"size": 17483,
|
||||||
"lmtime": 1733687831935,
|
"lmtime": 1733781023546,
|
||||||
"modified": false
|
"modified": false
|
||||||
},
|
},
|
||||||
"style.css.map": {
|
"style.css.map": {
|
||||||
"type": "-",
|
"type": "-",
|
||||||
"size": 31290,
|
"size": 31297,
|
||||||
"lmtime": 1733687831935,
|
"lmtime": 1733781023546,
|
||||||
"modified": false
|
"modified": false
|
||||||
},
|
},
|
||||||
"style.scss": {
|
"style.scss": {
|
||||||
"type": "-",
|
"type": "-",
|
||||||
"size": 21703,
|
"size": 21708,
|
||||||
"lmtime": 1733687831811,
|
"lmtime": 1733781023371,
|
||||||
"modified": false
|
"modified": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -87,14 +87,16 @@ class Cron
|
|||||||
$days_reminder = explode( ',', $row['reminders_interval'] );
|
$days_reminder = explode( ',', $row['reminders_interval'] );
|
||||||
$max_days_reminder = max( $days_reminder );
|
$max_days_reminder = max( $days_reminder );
|
||||||
|
|
||||||
if ( $row['status'] != 2 ) {
|
if ( $row['status'] != 2 )
|
||||||
$status = $row['status'];
|
$status = $row['status'];
|
||||||
} else {
|
else
|
||||||
$status = 0;
|
$status = 5;
|
||||||
}
|
|
||||||
|
|
||||||
$task_users = $mdb -> select( 'task_user', 'user_id', ['task_id' => $row['id']] );
|
$task_users = $mdb -> select( 'task_user', 'user_id', ['task_id' => $row['id']] );
|
||||||
|
|
||||||
|
if ( in_array( 6, $task_users ) )
|
||||||
|
$status = 6;
|
||||||
|
|
||||||
$new_task_id = \factory\Tasks::task_save(
|
$new_task_id = \factory\Tasks::task_save(
|
||||||
null, $row['id'], $row['created_by'], $row['name'], $row['text'], $new_date_start, $new_date_end, $row['project_id'], $row['client_id'], $row['pay_rate'], $row['reminders_interval'], $row['recursively'] ? 'on' : 'off', $row['frequency'], $row['period'], $task_users, $row['date_end_month_day'], $row['date_start_month_day'], null, $row['task_change_status'], true, $status
|
null, $row['id'], $row['created_by'], $row['name'], $row['text'], $new_date_start, $new_date_end, $row['project_id'], $row['client_id'], $row['pay_rate'], $row['reminders_interval'], $row['recursively'] ? 'on' : 'off', $row['frequency'], $row['period'], $task_users, $row['date_end_month_day'], $row['date_start_month_day'], null, $row['task_change_status'], true, $status
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -36,37 +36,43 @@ class Tasks
|
|||||||
'tasks_new' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_new' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => \factory\Tasks::get_tasks( 0, $user['id'], $projects ),
|
'tasks' => \factory\Tasks::get_tasks( 0, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] ),
|
] ),
|
||||||
'tasks_to_review' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_to_review' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => \factory\Tasks::get_tasks( 1, $user['id'], $projects ),
|
'tasks' => \factory\Tasks::get_tasks( 1, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] ),
|
] ),
|
||||||
'tasks_closed' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_closed' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => $show_tasks_closed == 'hide' ? null : \factory\Tasks::get_tasks( 2, $user['id'], $projects ),
|
'tasks' => $show_tasks_closed == 'hide' ? null : \factory\Tasks::get_tasks( 2, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] ),
|
] ),
|
||||||
'tasks_bulk' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_bulk' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => \factory\Tasks::get_tasks( 3, $user['id'], $projects ),
|
'tasks' => \factory\Tasks::get_tasks( 3, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] ),
|
] ),
|
||||||
'tasks_suspended' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_suspended' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => \factory\Tasks::get_tasks( 4, $user['id'], $projects ),
|
'tasks' => \factory\Tasks::get_tasks( 4, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] ),
|
] ),
|
||||||
'tasks_to_do' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
'tasks_to_do' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
'tasks' => \factory\Tasks::get_tasks( 5, $user['id'], $projects ),
|
'tasks' => \factory\Tasks::get_tasks( 5, $user['id'], $projects ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
|
'open_task_id' => $open_task_id
|
||||||
|
] ),
|
||||||
|
'tasks_fvat' => \Tpl::view( 'tasks/main_view_by_ajax', [
|
||||||
|
'tasks' => \factory\Tasks::get_tasks( 6, $user['id'], $projects ),
|
||||||
|
'user' => $user,
|
||||||
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => $open_task_id
|
'open_task_id' => $open_task_id
|
||||||
] )
|
] )
|
||||||
] );
|
] );
|
||||||
@@ -100,8 +106,9 @@ class Tasks
|
|||||||
'tasks_bulk' => \factory\Tasks::get_tasks( 3, $user['id'], \S::get_session( 'selected_projects' ) ), // opłaty
|
'tasks_bulk' => \factory\Tasks::get_tasks( 3, $user['id'], \S::get_session( 'selected_projects' ) ), // opłaty
|
||||||
'tasks_suspended' => \factory\Tasks::get_tasks( 4, $user['id'], \S::get_session( 'selected_projects' ) ), // projektowe
|
'tasks_suspended' => \factory\Tasks::get_tasks( 4, $user['id'], \S::get_session( 'selected_projects' ) ), // projektowe
|
||||||
'tasks_to_do' => \factory\Tasks::get_tasks( 5, $user['id'], \S::get_session( 'selected_projects' ) ), // do zrobienia
|
'tasks_to_do' => \factory\Tasks::get_tasks( 5, $user['id'], \S::get_session( 'selected_projects' ) ), // do zrobienia
|
||||||
|
'tasks_fvat' => \factory\Tasks::get_tasks( 6, $user['id'], \S::get_session( 'selected_projects' ) ), // faktury
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses,
|
'statuses' => \factory\Tasks::get_statuses(),
|
||||||
'open_task_id' => \factory\Tasks::get_open_task_id( $user['id'] ),
|
'open_task_id' => \factory\Tasks::get_open_task_id( $user['id'] ),
|
||||||
'projects' => \factory\Projects::user_projects( $user['id'] ),
|
'projects' => \factory\Projects::user_projects( $user['id'] ),
|
||||||
'selected_projects' => \S::get_session( 'selected_projects' ),
|
'selected_projects' => \S::get_session( 'selected_projects' ),
|
||||||
@@ -223,11 +230,13 @@ class Tasks
|
|||||||
{
|
{
|
||||||
$task = \factory\Tasks::task_details( $task_id );
|
$task = \factory\Tasks::task_details( $task_id );
|
||||||
|
|
||||||
|
$statuses = \factory\Tasks::get_statuses();
|
||||||
|
|
||||||
if ( $task['status_change_mail'] )
|
if ( $task['status_change_mail'] )
|
||||||
\S::send_email(
|
\S::send_email(
|
||||||
'jacek.pyziak@project-pro.pl',
|
'jacek.pyziak@project-pro.pl',
|
||||||
'crmPRO - zmieniono status zadania',
|
'crmPRO - zmieniono status zadania',
|
||||||
'<p>Witaj<br/>zmieniono status zadania <b>' . $task['name'] . ' - ' . \factory\Crm::get_client_name( (int)$task['client_id'] ) . '</b> na <b>' . \factory\Tasks::$statuses[ $task['status'] ] . '</b>.</p>'
|
'<p>Witaj<br/>zmieniono status zadania <b>' . $task['name'] . ' - ' . \factory\Crm::get_client_name( (int)$task['client_id'] ) . '</b> na <b>' . $statuses[ $task['status'] ] . '</b>.</p>'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -337,7 +346,7 @@ class Tasks
|
|||||||
echo \Tpl::view( 'tasks/task_popup', [
|
echo \Tpl::view( 'tasks/task_popup', [
|
||||||
'task' => \factory\Tasks::task_details( \S::get( 'task_id' ), $user['id'] ),
|
'task' => \factory\Tasks::task_details( \S::get( 'task_id' ), $user['id'] ),
|
||||||
'user' => $user,
|
'user' => $user,
|
||||||
'statuses' => \factory\Tasks::$statuses
|
'statuses' => \factory\Tasks::get_statuses()
|
||||||
] );
|
] );
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,17 @@ namespace factory;
|
|||||||
|
|
||||||
class Tasks
|
class Tasks
|
||||||
{
|
{
|
||||||
public static $statuses = [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia', 2 => 'zamknięte' ];
|
public static $statuses = [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia', 6 => 'faktury', 2 => 'zamknięte' ];
|
||||||
|
|
||||||
|
static public function get_statuses()
|
||||||
|
{
|
||||||
|
global $user;
|
||||||
|
|
||||||
|
if ( $user['id'] == 1 )
|
||||||
|
return self::$statuses;
|
||||||
|
else
|
||||||
|
return [ 0 => 'nowe', 3 => 'do rozliczenia', 5 => 'do zrobienia', 4 => 'zawieszone', 1 => 'do sprawdzenia' ];
|
||||||
|
}
|
||||||
|
|
||||||
static public function clear_task_opened( $task_id )
|
static public function clear_task_opened( $task_id )
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -38,8 +38,24 @@ class Users
|
|||||||
|
|
||||||
public static function users_list()
|
public static function users_list()
|
||||||
{
|
{
|
||||||
global $mdb;
|
global $mdb, $user;
|
||||||
return $mdb -> select( 'users', '*' );
|
$users = $mdb -> select( 'users', '*' );
|
||||||
|
|
||||||
|
if ( $user['id'] === 1 )
|
||||||
|
{
|
||||||
|
return $users;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$users_list = [];
|
||||||
|
foreach ( $users as $user )
|
||||||
|
{
|
||||||
|
if ( $user['id'] != 6 )
|
||||||
|
$users_list[] = $user;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $users_list;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function settings_save( $user_id, $pushover_api, $pushover_user )
|
public static function settings_save( $user_id, $pushover_api, $pushover_user )
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -301,7 +301,7 @@ body>.top {
|
|||||||
.tasks_container {
|
.tasks_container {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 20px;
|
gap: 5px;
|
||||||
|
|
||||||
.column {
|
.column {
|
||||||
width: 350px;
|
width: 350px;
|
||||||
@@ -328,6 +328,12 @@ body>.top {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.tasks_fvat {
|
||||||
|
h2 {
|
||||||
|
border-bottom: 5px solid #f7fc00;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.tasks_new {
|
&.tasks_new {
|
||||||
h2 {
|
h2 {
|
||||||
border-bottom: 5px solid #ccc;
|
border-bottom: 5px solid #ccc;
|
||||||
|
|||||||
@@ -43,6 +43,23 @@
|
|||||||
<? endforeach;?>
|
<? endforeach;?>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<? if ( $this -> user['id'] === 1 ):?>
|
||||||
|
<div class="column tasks_fvat">
|
||||||
|
<h2>Faktury</h2>
|
||||||
|
<ul>
|
||||||
|
<? foreach ( $this -> tasks_fvat as $task ):?>
|
||||||
|
<?
|
||||||
|
echo \Tpl::view( 'tasks/task_single', [
|
||||||
|
'task' => $task,
|
||||||
|
'user' => $this -> user,
|
||||||
|
'statuses' => $this -> statuses,
|
||||||
|
'task_open' => $this -> open_task_id == $task['id'] ? true : false
|
||||||
|
] );
|
||||||
|
?>
|
||||||
|
<? endforeach;?>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<? endif;?>
|
||||||
<!-- tasks_suspended -->
|
<!-- tasks_suspended -->
|
||||||
<div class="column tasks_suspended">
|
<div class="column tasks_suspended">
|
||||||
<h2>Zadania zawieszone (u klienta)</h2>
|
<h2>Zadania zawieszone (u klienta)</h2>
|
||||||
@@ -143,6 +160,7 @@
|
|||||||
$( '.tasks_container .tasks_bulk ul' ).empty().append( data.tasks_bulk );
|
$( '.tasks_container .tasks_bulk ul' ).empty().append( data.tasks_bulk );
|
||||||
$( '.tasks_container .tasks_suspended ul' ).empty().append( data.tasks_suspended );
|
$( '.tasks_container .tasks_suspended ul' ).empty().append( data.tasks_suspended );
|
||||||
$( '.tasks_container .tasks_to_do ul' ).empty().append( data.tasks_to_do );
|
$( '.tasks_container .tasks_to_do ul' ).empty().append( data.tasks_to_do );
|
||||||
|
$( '.tasks_container .tasks_fvat ul' ).empty().append( data.tasks_fvat );
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ if ( is_array( $this -> clients ) )
|
|||||||
'name' => 'status',
|
'name' => 'status',
|
||||||
'id' => 'status',
|
'id' => 'status',
|
||||||
'value' => $this -> task[ 'status' ],
|
'value' => $this -> task[ 'status' ],
|
||||||
'values' => \factory\Tasks::$statuses
|
'values' => \factory\Tasks::get_statuses()
|
||||||
] );?>
|
] );?>
|
||||||
<? if ( $this -> user['id'] == 1 ):?>
|
<? if ( $this -> user['id'] == 1 ):?>
|
||||||
<?= \Html::input([
|
<?= \Html::input([
|
||||||
|
|||||||
@@ -67,7 +67,7 @@
|
|||||||
<h3>Status</h3>
|
<h3>Status</h3>
|
||||||
<div class="current_status">
|
<div class="current_status">
|
||||||
<select name="task_status" class="form-control" task_id="<?= $this -> task['id'];?>">
|
<select name="task_status" class="form-control" task_id="<?= $this -> task['id'];?>">
|
||||||
<? foreach ( \factory\Tasks::$statuses as $key => $status ):?>
|
<? foreach ( \factory\Tasks::get_statuses() as $key => $status ):?>
|
||||||
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
|
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
|
||||||
<? endforeach;?>
|
<? endforeach;?>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
Status:<br><strong><?= $this -> statuses[ $this -> task['status'] ];?></strong>
|
Status:<br><strong><?= $this -> statuses[ $this -> task['status'] ];?></strong>
|
||||||
<div class="status_change">
|
<div class="status_change">
|
||||||
<select name="task_status" task_id="<?= $this -> task['id'];?>">
|
<select name="task_status" task_id="<?= $this -> task['id'];?>">
|
||||||
<? foreach ( \factory\Tasks::$statuses as $key => $status ):?>
|
<? foreach ( \factory\Tasks::get_statuses() as $key => $status ):?>
|
||||||
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
|
<option value="<?= $key;?>" <? if ( $this -> task['status'] == $key ):?>selected="selected"<? endif;?>><?= $status;?></option>
|
||||||
<? endforeach;?>
|
<? endforeach;?>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user