externals

This commit is contained in:
2018-01-01 11:08:24 +01:00
parent cf345f6f43
commit 53ef539985
17 changed files with 726 additions and 29 deletions
@@ -12,6 +12,8 @@ class customersController extends MY_Controller {
{
parent::__construct();
if( AUTHENTICATED == FALSE )
$models = [];
$libraries = [];
@@ -1,12 +1,12 @@
<?php
/**
* Created by Pensare Software.
* Customer: Theo Weijmer
* External: Theo Weijmer
* Date: 25/12/2017
* Time: 10:11
*/
class externalsControllerController extends MY_Controller {
class externalsController extends MY_Controller {
public function __construct()
{
@@ -24,43 +24,43 @@ class externalsControllerController extends MY_Controller {
}
public function getAllCustomers( $archive = 'F' )
public function getAllExternals( $archive = 'F' )
{
$users = Customer::getAllCustomers( $archive );
$externals = External::getAllExternals( $archive );
$this->json( $users );
$this->json( $externals );
}
public function saveCustomer()
public function saveExternal()
{
$userValidation = new CustomerValidation();
$externalValidation = new ExternalValidation();
if ( ! $userValidation->getValidationResult() )
if ( ! $externalValidation->getValidationResult() )
return $this->json( [
'success' => FALSE, 'messages' => $userValidation->getErrorMessages()] );
'success' => FALSE, 'messages' => $externalValidation->getErrorMessages()] );
$user = $this->input->post();
$external = $this->input->post();
$userID = $user['id'];
unset( $user['id'] );
$externalID = $external['id'];
unset( $external['id'] );
$userID = Customer::saveCustomer( $userID, $user );
$externalID = External::saveExternal( $externalID, $external );
$this->json( ['success' => TRUE, 'userID' => $userID] );
$this->json( ['success' => TRUE, 'externalID' => $externalID] );
}
public function archiveCustomer( $userID, $status )
public function archiveExternal( $externalID, $status )
{
Customer::whereId( $userID )->update( ['archive' => $status] );
External::whereId( $externalID )->update( ['archive' => $status] );
}
public function removeCustomer( $userID )
public function removeExternal( $externalID )
{
$removeCustomer = new RemoveCustomer( $userID );
$removeExternal = new RemoveExternal( $externalID );
if ( $removeCustomer->getAllowDelete() === FALSE ) return $this->json( ['result' => FALSE] );
if ( $removeExternal->getAllowDelete() === FALSE ) return $this->json( ['result' => FALSE] );
Customer::removeCustomer( $userID );
External::removeExternal( $externalID );
$this->json( ['result' => TRUE] );
}
+8 -1
View File
@@ -38,7 +38,14 @@ class MY_Controller extends CI_Controller {
public function json( $data )
{
echo json_encode( $data );
$this->output
->set_content_type( 'application/json' )
->set_output( json_encode( $data ) );
}
public function unAuthorized()
{
}
}
@@ -0,0 +1,36 @@
<?php
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 27/12/2017
* Time: 17:45
*/
class RemoveExternal {
private $externalID;
private $allowDelete = TRUE;
public function __construct( $userID )
{
$this->setExternalID( $userID );
$this->handle();
}
public function getAllowDelete()
{
return $this->allowDelete;
}
private function setExternalID( $externalID )
{
$this->externalID = $externalID;
}
private function handle()
{
}
}
@@ -0,0 +1,36 @@
<?php
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 10/07/16
* Time: 13:35
*/
require_once( APPPATH . 'libraries/validation/inputValidations/BaseValidation.php' );
class ExternalValidation extends BaseValidation {
protected $validationFields = [
'contactperson' => [
'validations' => 'required|alphaNumericSpaces',
'fieldname' => 'contact'
],
'email' => [
'validations' => 'email',
'fieldname' => 'email'
],
'rate' => [
'validations' => 'numeric',
'fieldname' => 'tarief'
]
];
public function __construct()
{
parent::__construct();
$this->ci =& get_instance();
}
}
@@ -0,0 +1,18 @@
<?php
/**
* Created by Pensare Software.
* User: Theo Weijmer
* Date: 15/12/2017
* Time: 19:37
*/
class External_model extends MY_Model {
protected $tablename = "externals";
public function __construct()
{
parent::__construct();
}
}
+47
View File
@@ -0,0 +1,47 @@
<?php
/**
* Created by Pensare Software.
* External: Theo Weijmer
* Date: 21/12/2017
* Time: 18:04
*/
class External extends BaseModel {
protected $table = "externals";
public static function getAllExternals( $archive )
{
$externals = External::orderBy( 'name' );
if ( $archive == 'F' ) $externals = $externals->whereArchive( 'F' );
$externals = $externals->get();
return $externals;
}
public static function saveExternal( $externalID, $external )
{
$external = (array)$external;
if( $externalID == 0)
{
$external = External::create($external);
}
else
{
$external = External::whereId($externalID)->update($external);
}
return $external['id'];
}
public static function removeExternal($externalID)
{
External::whereId($externalID)->delete();
}
}
+1 -1
View File
@@ -21,7 +21,7 @@
<i class="icon fa-institution"></i>
</span>
<input type="text"
placeholder="voornaam"
placeholder="naam"
class="form-control"
data-bind="textInput:name,
css:{'is-invalid':nameInvalid}">
+190
View File
@@ -0,0 +1,190 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="external-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen externe</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 role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-xl-3 form-control-label">
naam
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="text"
placeholder="contactperson"
class="form-control"
data-bind="textInput:contactperson,
css:{'is-invalid':contactpersonInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: contactpersonInvalid() ? 'block' : 'none'}">
voer een naam in
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
bedrijfsnaam
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-institution"></i>
</span>
<input type="text"
placeholder="bedrijfsnaam"
class="form-control"
data-bind="textInput:name">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
adres
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-address-book-o"></i>
</span>
<input type="text"
placeholder="adres"
class="form-control"
data-bind="textInput:address">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
postcode
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-address-book-o"></i>
</span>
<input type="text"
placeholder="postcode"
class="form-control"
data-bind="textInput:postcode">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
plaats
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-address-book-o"></i>
</span>
<input type="text"
placeholder="plaats"
class="form-control"
data-bind="textInput:place">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
email
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-envelope"></i>
</span>
<input type="email"
placeholder="email"
class="form-control"
data-bind="textInput:email,
css:{'is-invalid':emailInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: emailInvalid() ? 'block' : 'none'}">
email ongeldig<span data-bind="text:emailInvalid"></span>
</small>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
website
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-link"></i>
</span>
<input type="email"
placeholder="email"
class="form-control"
data-bind="textInput:website">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
kvk - nummer
</label>
<div class="col-xl-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-institution"></i>
</span>
<input type="text"
placeholder="kvk nummer"
class="form-control"
data-bind="textInput:kvk_number">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
tarief (per uur)
</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="tarief"
class="form-control align-right"
data-bind="textInput:rate, event:{keyup:validateNumber}">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-xl-3 form-control-label">
opmerkingen
</label>
<div class="col-xl-9">
<textarea class="form-control" data-bind="textInput:remarks"></textarea>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-success"
data-bind="visible:formValid(), click:saveExternal">opslaan
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">annuleren</button>
</div>
</div>
</div>
</div>
+7 -7
View File
@@ -13,7 +13,7 @@
<th class="table-tealish-header">&nbsp;</th>
</tr>
</thead>
<tbody data-bind="foreach:customers">
<tbody data-bind="foreach:externals">
<tr>
<td><span data-bind="text:contactperson"</td>
<td><span data-bind="text:name"></span></td>
@@ -22,25 +22,25 @@
<td><span data-bind="text:email"></span></td>
<td><span data-bind="text:rate"></span></td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editCustomer"></i>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editExternal"></i>
<!-- ko if:archive == 'F' -->
<i class="icon fa-archive pointer" title="archiveer"
data-bind="click:$root.archiveCustomer"></i>
data-bind="click:$root.archiveExternal"></i>
<!-- /ko -->
<!-- ko if:archive != 'F' -->
<i class="icon fa-minus-circle redish pointer" title="archiveer"
data-bind="click:$root.archiveCustomer"></i>
data-bind="click:$root.archiveExternal"></i>
<!-- /ko -->
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeCustomer"></i>
data-bind="click:$root.removeExternal"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="4" class="">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newCustomer">
nieuwe opdrachtgever
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newExternal">
nieuwe externe
</button>
</td>
<td colspan="2" class="">
+3
View File
@@ -54,12 +54,15 @@
<script src="js/lib/modules/menuModule.js"></script>
<script src="js/lib/modules/beheer/usersModule.js"></script>
<script src="js/lib/modules/beheer/customersModule.js"></script>
<script src="js/lib/modules/beheer/externalsModule.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/dataservices/pageDataservice.js"></script>
<script src="js/lib/dataservices/userDataservice.js"></script>
<script src="js/lib/dataservices/customerDataservice.js"></script>
<script src="js/lib/dataservices/externalDataservice.js"></script>
<script src="js/lib/dataservices/rolesDataservice.js"></script>
<script src="js/lib/helpers.js"></script>
+1
View File
@@ -2,6 +2,7 @@
$this->load->view('modals/user_modal');
$this->load->view('modals/customer_modal');
$this->load->view('modals/external_modal');
$this->load->view('specials/tellme_modal');