Merge branch 'master' of bitbucket.org:pensare/dbois

# Conflicts:
#	application/controllers/projects/EmployeeHoursController.php
#	application/views/pages/employeehours_view.php
#	public/js/lib/modules/projects/employeehoursModule.js
This commit is contained in:
2018-04-02 17:34:19 +02:00
15 changed files with 137 additions and 69 deletions
@@ -56,13 +56,15 @@ class EmployeeHoursController extends MY_Controller {
if ( $hourType == 'PROJECTS' )
{
$projectemployeeID = Projectemployee::select( 'id' )
$projectemployee = Projectemployee::select( 'id' )
->whereUserId( $data['employee_id'] )
->whereprojectId( $projectID )
->first();
$data['projectemployee_id'] = $projectemployeeID;
$data['projectemployee_id'] = $projectemployee->id;
unset( $data['employee_id'] );
$data['hourtype_id'] = $data['hourtype_id'] - 8;
$employeehourID = Projecthour::saveProjecthour( $employeehourID, $data );
}
else
@@ -15,7 +15,7 @@ class ProjectsController extends MY_Controller {
if ( AUTHENTICATED == FALSE ) die( 'NO ACCESS' );
$models = [];
$models = ['projects/Invoices_model'];
$libraries = [];
$this->load->model( $models );
@@ -38,6 +38,9 @@ class ProjectsController extends MY_Controller {
{
$project = Project::getProject( $projectID );
$project->outstanding =
$this->Invoices_model->getOutstandingPerProject( $project->id );
$this->json( $project );
}
@@ -23,4 +23,20 @@ class Invoices_model extends MY_Model {
return $invoiced;
}
public function getOutstandingPerProject( $projectID )
{
$this->sql = "
SELECT (own_revenue + other_revenue) - SUM(INV.invoiceamount) AS outstanding
FROM invoices INV
JOIN projects PRJ
ON PRJ.id = INV.project_id
JOIN offers OFF
ON PRJ.id = OFF.project_id
WHERE PRJ.id = {$projectID} ";
$invoiced = $this->get_query_row( 'outstanding' );
return $invoiced;
}
}
+20
View File
@@ -168,6 +168,26 @@
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
kosten derden
</label>
<div class="col-xl-4">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-euro"></i>
</span>
<input type="text"
placeholder="eigen omzet"
class="form-control align-right"
data-bind="textInput:costs,
event:{keyup:validateNumber}">
</div>
<small>
kosten derden (incl btw)
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
acceptatie datum
@@ -72,6 +72,11 @@
</button>
</th>
</tr>
<tr>
<th colspan="4">
<b><h5>openstaand: <span data-bind="text:dbo.helpers.numberWithPoints(Math.round(outstanding()))"></span></h5></b>
</th>
</tr>
</tfoot>
</table>
</div>
@@ -86,7 +86,7 @@
</div>
<div class="col-md-3">
<div class="form-group row">
<h4 class="form-control-label">eigenomzet:
<h4 class="form-control-label">eigen omzet:
<i class="icon fa-euro"> </i><span data-bind="text:ownRevenue"></span>
</h4>
</div>
+6 -6
View File
@@ -55,19 +55,19 @@
<!-- <div class="col-md-5">-->
<!-- --><?php //$this->load->view( 'modals/partials/_projectoffers' ); ?>
<!-- </div>-->
<div class="col-md-7">
<div class="col-md-8">
<?php $this->load->view( 'modals/partials/_projectcosts' ); ?>
</div>
<div class="col-md-5">
<?php $this->load->view('modals/partials/_forecasts'); ?>
<div class="col-md-4">
<?php $this->load->view( 'modals/partials/_reservations' ); ?>
</div>
</div>
<div class="row">
<div class="col-md-9">
<div class="col-md-8">
<?php $this->load->view( 'modals/partials/_invoices' ); ?>
</div>
<div class="col-md-3">
<?php $this->load->view( 'modals/partials/_reservations' ); ?>
<div class="col-md-4">
<?php $this->load->view('modals/partials/_forecasts'); ?>
</div>
</div>
</div>
@@ -22,7 +22,6 @@
optionsText:'fullname',
optionsValue:'id',
value:$root.selectedEmployeeID,
optionsCaption:'alle...',
event:{change:refreshEmployeehours}"></select>
</div>
</div>
@@ -42,7 +41,7 @@
</thead>
<tbody data-bind="foreach:employeehours">
<tr>
<td data-bind="css:{'red-line': id == 0}">
<td data-bind="css:{'red-line': id() == 0}">
<span data-bind="text:dbo.helpers.findArrayElement('id', 'fullname', employee_id(), $root.employees()),
visible: ! inEdit()"></span>
<select class="form-control form-control-sm"
@@ -52,16 +51,17 @@
value:employee_id,
optionsCaption: 'selecteer...',
visible:inEdit(),
enable: ! $root.selectedEmployeeID,
event:{change:$root.changeEmployee}"></select>
</td>
<td data-bind="css:{'red-line': id == 0}">
<td data-bind="css:{'red-line': id() == 0}">
<span data-bind="text:hourdate, visible:! inEdit()"></span>
<input class="form-control form-control-sm"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:hourdate, visible:inEdit(),
event:{change:$root.saveEmployeehour}"
</td>
<td data-bind="css:{'red-line': id == 0}">
<td data-bind="css:{'red-line': id() == 0}">
<span data-bind="text:dbo.helpers.findArrayElement('id', 'description', hourtype_id(), $root.hourtypes()),
visible: ! inEdit()"></span>
<select class="form-control form-control-sm"
@@ -73,7 +73,7 @@
visible:inEdit(),
event:{change:$root.saveEmployeehours}"></select>
</td>
<td data-bind="css:{'red-line': id == 0}">
<td data-bind="css:{'red-line': id() == 0}">
<!-- ko if: hourType() == 'PROJECTS' -->
<span data-bind="text:dbo.helpers.findArrayElement('projectID', 'projectname', projectID(), projects()),
visible: ! inEdit()"></span>
@@ -83,10 +83,11 @@
optionsValue:'projectID',
value:projectID,
optionsCaption:'selecteer...',
visible:inEdit()"></select>
visible:inEdit(),
event:{change:$root.saveEmployeehours}"></select>
<!-- /ko -->
</td>
<td class="align-right" data-bind="css:{'red-line': id == 0}">
<td class="align-right" data-bind="css:{'red-line': id() == 0}">
<span data-bind=" visible: ! inEdit()">
<span data-bind="text:hours"></span>
uur
@@ -97,7 +98,7 @@
data-bind="textInput:hours, visible:inEdit,
event:{change:$root.saveEmployeehours,keyup:$root.validateNumber.bind($data, 'hours')}"/>
</td>
<td data-bind="css:{'red-line': id == 0}">
<td data-bind="css:{'red-line': id() == 0}">
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editEmployeehour"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeEmployeehour"></i>
@@ -7,7 +7,7 @@
<select class="form-control form-control-sm"
data-bind="options:years,
optionsText:'year',
optionsValue: 'id',
optionsValue: 'year',
value:selectedYear,
event:{change:refreshTab}"></select>
</div>
@@ -22,17 +22,17 @@
</th>
<!-- /ko -->
<th class="rotate">
<div><span>totaal</span></div>
<div><span>eigen budget beschikbaar (ex btw)</span></div>
</th>
<th class="rotate">
<div><span>budget (ex btw)</span></div>
</th>
<th class="rotate">
<div><span>derden (ex btw)</span></div>
</th>
<th class="rotate">
<div><span>beschikbaar</span></div>
<div><span>totaal geschreven omzet</span></div>
</th>
<!-- <th class="rotate">-->
<!-- <div><span>derden (ex btw)</span></div>-->
<!-- </th>-->
<!-- <th class="rotate">-->
<!-- <div><span>beschikbaar</span></div>-->
<!-- </th>-->
<th class="rotate">
<div><span>saldo</span></div>
</th>
@@ -58,21 +58,21 @@
<span data-bind="text:revenues"></span>
</td>
<!-- /ko -->
<th class="align-right">
<td class="align-right">
<span data-bind="text:ownRevenue"></span>
</td>
<td class="align-right">
<span data-bind="text:totalEmployeeRevenues"></span>
</th>
<td class="align-right">
<span data-bind="text:budget"></span>
</td>
<td class="align-right">
<span data-bind="text:externCosts"></span>
</td>
<th class="align-right">
<span data-bind="text:budgetAvailable"></span>
</th>
<th class="align-right">
<span data-bind="text:saldo"></span>
<span data-bind="text:availableRevenue"></span>
</th>
<!-- <td class="align-right">-->
<!-- <span data-bind="text:externCosts"></span>-->
<!-- </td>-->
<!-- <th class="align-right">-->
<!-- <span data-bind="text:saldo"></span>-->
<!-- </th>-->
<th class="align-right">
<span data-bind="text:workInProgress"></span>
</th>
@@ -91,21 +91,21 @@
<span data-bind="text:totalRevenue"></span>
</th>
<!-- /ko -->
<th class="align-right">
<span data-bind="text:totalOwnRevenue"></span>
</th>
<th class="align-right">
<span data-bind="text:totalEmployeeRevenues"></span>
</th>
<th class="align-right">
<span data-bind="text:totalBudget"></span>
</th>
<th class="align-right">
<span data-bind="text:totalCosts"></span>
</th>
<th class="align-right">
<span data-bind="text:totalAvailableBudget"></span>
</th>
<th class="align-right">
<span data-bind="text:totalSaldo"></span>
<span data-bind="text:totalAvailableRevenues"></span>
</th>
<!-- <th class="align-right">-->
<!-- <span data-bind="text:totalCosts"></span>-->
<!-- </th>-->
<!-- <th class="align-right">-->
<!-- <span data-bind="text:totalSaldo"></span>-->
<!-- </th>-->
<th class="align-right">
<span data-bind="text:totalWorkInProgress"></span>
</th>