strat projects

This commit is contained in:
2018-01-15 09:27:58 +01:00
parent 73f2866020
commit 97f1b988bc
13 changed files with 450 additions and 26 deletions
+19 -14
View File
@@ -16,23 +16,28 @@ class Project extends BaseModel {
return $this->hasMany( 'Offer' );
}
public static function saveProject( $offerID, $offer )
public function projectleader()
{
$offer = (array) $offer;
return $this->belongsTo( 'User', 'projectleader_id' );
}
$offer['startdate'] = date2mysql( $offer['startdate'] );
$offer['accepteddate'] = date2mysql( $offer['accepteddate'] );
$offer['rejectdate'] = date2mysql( $offer['rejectdate'] );
public function customer()
{
return $this->belongsTo( 'Customer' );
}
if ( $offerID == 0 )
{
$offer = Offer::create( $offer );
}
else
{
$offer = Offer::whereId( $offerID )->update( $offer );
}
public static function getAllProjects( $archive = 'F' )
{
$projects = Project::with( [
'projectleader' => function ( $q ) {
$q->selectRaw( "id, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname" );
}] )
->with( 'customer' );
return $offer['id'];
if($archive == 'F') $projects = $projects->whereArchive('F');
$projects = $projects->get();
return $projects;
}
}
+8 -7
View File
@@ -18,7 +18,8 @@ class User extends BaseModel {
public static function getAllUsers( $archive )
{
$users = User::orderBy( 'lastname' );
$users = User::selectRaw("*, CONCAT(firstname, ' ', middlename, ' ', lastname) AS fullname")
->orderBy( 'lastname' );
if ( $archive == 'F' ) $users = $users->whereArchive( 'F' );
@@ -47,23 +48,23 @@ class User extends BaseModel {
public static function saveUser( $userID, $user )
{
$user = (array)$user;
$user = (array) $user;
if( $userID == 0)
if ( $userID == 0 )
{
$user = User::create($user);
$user = User::create( $user );
}
else
{
$user = User::whereId($userID)->update($user);
$user = User::whereId( $userID )->update( $user );
}
return $user['id'];
}
public static function removeUser($userID)
public static function removeUser( $userID )
{
User::whereId($userID)->delete();
User::whereId( $userID )->delete();
}
+80 -2
View File
@@ -11,6 +11,49 @@
<div class="row">
<div class="col-xl-12">
<div role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-xl-3 form-control-label">
offerte nummer
</label>
<div class="col-xl-5">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-asterisk"></i>
</span>
<input type="text"
placeholder="offerte nummer"
class="form-control"
data-bind="textInput:offernumber">
</div>
<small class="invalid-feedback"
data-bind="style:{display: ! offernumber() ? 'block' : 'none'}">
voer een offerte nummer in
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
offerte leider
</label>
<div class="col-xl-8">
<div class="input-group input-group-icon">
<select class="form-control"
data-bind="options:users,
optionsValue:'id',
optionsText:'fullname',
value:offerleader_id,
optionsCaption:'selecteer offerteleider'">
</select>
</div>
<small class="invalid-feedback"
data-bind="style:{display: ! offerleader_id() ? 'block' : 'none'}">
selecteer een offerteleider
</small>
</div>
<div class="col-xl-1">
<i class="icon fa-plus-square greenish pointer" data-bind="click:addUser"></i>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
klant
@@ -76,10 +119,10 @@
<label class="col-xl-3 form-control-label">
kans
</label>
<div class="col-xl-5">
<div class="col-xl-4">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-question"></i>
<i class="icon fa-percent"></i>
</span>
<input type="text"
placeholder="kans"
@@ -90,6 +133,41 @@
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
omzet
</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:own_revenue,
event:{keyup:validateNumber}">
</div>
<small>
eigen omzet
</small>
</div>
<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="overige omzet"
class="form-control align-right"
data-bind="textInput:other_revenue,
event:{keyup:validateNumber}">
</div>
<small>
overige omzet
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
acceptatie datum
@@ -0,0 +1,20 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="project-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen project</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-xl-12">
</div>
</div>
</div>
<div class="modal-footer">
</div>
</div>
</div>
</div>
+6 -2
View File
@@ -4,6 +4,7 @@
<table class="table table-sm">
<thead>
<tr>
<th class="table-tealish-header">nummer</th>
<th class="table-tealish-header">klant</th>
<th class="table-tealish-header">project</th>
<th class="table-tealish-header">datum</th>
@@ -15,6 +16,9 @@
</thead>
<tbody data-bind="foreach:offers">
<tr data-bind="css:{'table-info':$root.selectedRowID() == id}">
<td data-bind="click:$root.selectOffer" class="pointer">
<span data-bind="text:offernumber"></span>
</td>
<td data-bind="click:$root.selectOffer" class="pointer">
<span data-bind="text:customerName"></span>
</td>
@@ -50,12 +54,12 @@
</tbody>
<tfoot>
<tr>
<td colspan="4" class="">
<td colspan="5" class="">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newOffer">
nieuwe offerte
</button>
</td>
<td colspan="2" class="">
<td colspan="3" class="">
<div class="row form-horizontal">
<label class="col-md-4 form-control-label">archief</label>
<div class="col-md-8">
+90 -1
View File
@@ -1 +1,90 @@
<h1>projects</h1>
<div class="container">
<div class="row">
<div class="col-xl-12">
<table class="table table-sm">
<thead>
<tr>
<th class="table-tealish-header">nummer</th>
<th class="table-tealish-header">projectleider</th>
<th class="table-tealish-header">klant</th>
<th class="table-tealish-header">start</th>
<th class="table-tealish-header">eind</th>
<th class="table-tealish-header">gefactureerd</th>
<th class="table-tealish-header">te factureren</th>
<th class="table-tealish-header">totaal factuur</th>
<th class="table-tealish-header">&nbsp;</th>
</tr>
</thead>
<tbody data-bind="foreach:projects">
<tr data-bind="css:{'table-info':$root.selectedRowID() == id}">
<td data-bind="click:$root.selectProject" class="pointer">
<span data-bind="text:projectnumber"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:projectleader"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:customer"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:startdate"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:enddate"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:billed"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:toBillings"></span>
</td>
<td data-bind="click:$root.selectPoject" class="pointer">
<span data-bind="text:billings"></span>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editOffer"></i>
<!-- ko if:archive == 'F' -->
<i class="icon fa-archive pointer" title="archiveer"
data-bind="click:$root.archiveOffer"></i>
<!-- /ko -->
<!-- ko if:archive != 'F' -->
<i class="icon fa-minus-circle redish pointer" title="archiveer"
data-bind="click:$root.archiveOffer"></i>
<!-- /ko -->
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeOffer, css:{'whiteish':$root.selectedRowID() == id}"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="6" class="">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newProject">
nieuw project
</button>
</td>
<td colspan="3" class="">
<div class="row form-horizontal">
<label class="col-md-4 form-control-label">archief</label>
<div class="col-md-8">
<div class="onoffswitch" data-bind="click:toggleArchive">
<input type="checkbox"
name="onoffswitch"
class="onoffswitch-checkbox"
data-bind="checked:archive"
id="myonoffswitch">
<label class="onoffswitch-label" for="myonoffswitch">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
+3
View File
@@ -65,10 +65,12 @@
<script src="js/lib/modules/beheer/customersModule.js"></script>
<script src="js/lib/modules/beheer/externalsModule.js"></script>
<script src="js/lib/modules/projects/offersModule.js"></script>
<script src="js/lib/modules/projects/projectsModule.js"></script>
<script src="js/lib/modules/modals/userModal.js"></script>
<script src="js/lib/modules/modals/customerModal.js"></script>
<script src="js/lib/modules/modals/externalModal.js"></script>
<script src="js/lib/modules/modals/offerModal.js"></script>
<script src="js/lib/modules/modals/projectModal.js"></script>
<script src="js/lib/modules/modals/commentModal.js"></script>
<!---->
@@ -80,4 +82,5 @@
<script src="js/lib/dataservices/offerDataservice.js"></script>
<script src="js/lib/dataservices/commentsDataservice.js"></script>
<script src="js/lib/dataservices/documentsDataservice.js"></script>
<script src="js/lib/dataservices/projectsDataservice.js"></script>
<script src="js/lib/helpers.js"></script>
+1
View File
@@ -4,6 +4,7 @@ $this->load->view('modals/user_modal');
$this->load->view('modals/customer_modal');
$this->load->view('modals/external_modal');
$this->load->view('modals/offer_modal');
$this->load->view('modals/project_modal');
$this->load->view('modals/comment_modal');
$this->load->view('specials/tellme_modal');