Refactor task status handling and update styles for task views; add support for 'faktury' status

This commit is contained in:
2024-12-15 11:11:47 +01:00
parent 65d366cc7d
commit 8c42e65d57
12 changed files with 89 additions and 28 deletions

View File

@@ -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
} }
}, },

View File

@@ -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
); );

View File

@@ -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;
} }

View File

@@ -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 )
{ {

View File

@@ -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

View File

@@ -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;

View File

@@ -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 );
} }
}); });
} }

View File

@@ -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([

View File

@@ -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>

View File

@@ -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>