Conversie codeigniter 4

This commit is contained in:
2026-01-09 11:41:28 +01:00
parent dbd8c8aed2
commit f0b9c6ad40
242 changed files with 20034 additions and 346 deletions
+26
View File
@@ -0,0 +1,26 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="comment-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen commentaar</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">
<textarea data-bind="froala:comment, froalaOptions:options"></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-success"
data-bind="click:saveComment">opslaan
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">annuleren</button>
</div>
</div>
</div>
</div>
+159
View File
@@ -0,0 +1,159 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="customer-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen opdrachtgever
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-md-3 form-control-label">
naam
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-institution"></i>
</span>
<input type="text"
placeholder="naam"
class="form-control"
data-bind="textInput:name,
css:{'is-invalid':nameInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: nameInvalid() ? 'block' : 'none'}">
voer een naam in
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
adres
</label>
<div class="col-md-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-md-3 form-control-label">
postcode
</label>
<div class="col-md-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-md-3 form-control-label">
plaats
</label>
<div class="col-md-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-md-3 form-control-label">
contactpersoon
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="email"
placeholder="contactpersoon"
class="form-control"
data-bind="textInput:contactperson">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
email
</label>
<div class="col-md-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-md-3 form-control-label">
website
</label>
<div class="col-md-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-md-3 form-control-label">
opmerkingen
</label>
<div class="col-md-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:saveCustomer">opslaan
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">annuleren</button>
</div>
</div>
</div>
</div>
+115
View File
@@ -0,0 +1,115 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="employee-target-modal">
<div class="modal-dialog" role="document" style="width:700px;">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen medewerker uren
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<table class="table table-condensed">
<thead>
<tr>
<th colspan="2">start</th>
<th colspan="2">eind</th>
<th colspan="2">&nbsp;</th>
</tr>
<tr>
<th width="25%">maand</th>
<th width="17%">jaar</th>
<th width="25%">maand</th>
<th width="17%">jaar</th>
<th width="16%" title="target per maand">target p/m</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody>
<!-- ko foreach:employeeTargets -->
<tr>
<td data-bind="css:{'red-line': ! saved()}">
<select data-bind="options:$root.months,
optionsText:'month',
optionsValue:'monthID',
value:startmonth,
disable: ! changeable(),
event:{change:$root.setUnsaved}"
class="form-control">
</select>
</td>
<td data-bind="css:{'red-line': ! saved()}">
<select data-bind="options:$root.years,
optionsText:'year',
optionsValue:'year',
value:startyear,
disable: ! changeable(),
event:{change:$root.setUnsaved}"
class="form-control">
</select>
</td>
<td data-bind="css:{'red-line': ! saved()}">
<select data-bind="options:$root.months,
optionsText:'month',
optionsValue:'monthID',
value:endmonth,
disable: ! changeable(),
optionsCaption:'selecteer...',
event:{change:$root.setUnsaved}"
class="form-control">
</select>
</td>
<td data-bind="css:{'red-line': ! saved()}">
<select data-bind="options:$root.years,
optionsText:'year',
optionsValue:'year',
value:endyear,
disable: ! changeable(),
optionsCaption:'selecteer...',
event:{change:$root.setUnsaved}"
class="form-control">
</select>
</td>
<td data-bind="css:{'red-line': ! saved()}">
<input type="text"
class="form-control"
data-bind="textInput:target,
disable: ! changeable(),
event:{keyup:$root.checkNumeric},
event:{change:$root.setUnsaved}">
</td>
<td data-bind="css:{'red-line': ! saved()}">
<button class="btn btn-success"
data-bind="disable: ! validTarget(),
click:$root.saveEmployeeTarget,
visible: changeable()">
opslaan
</button>
</td>
</tr>
<!-- /ko -->
</tbody>
<tfoot>
<tr>
<th colspan="6">
<i class="icon fa-plus-square-o pull-right pointer"
data-bind="click:addEmployeeTarget, visible:newTarget()"></i>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-warning"
data-dismiss="modal">
sluiten
</button>
</div>
</div>
</div>
</div>
+207
View File
@@ -0,0 +1,207 @@
<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 onderaannemer
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-md-3 form-control-label">
naam
</label>
<div class="col-md-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-md-3 form-control-label">
bedrijfsnaam
</label>
<div class="col-md-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-md-3 form-control-label">
adres
</label>
<div class="col-md-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-md-3 form-control-label">
postcode
</label>
<div class="col-md-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-md-3 form-control-label">
plaats
</label>
<div class="col-md-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-md-3 form-control-label">
email
</label>
<div class="col-md-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-md-3 form-control-label">
website
</label>
<div class="col-md-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-md-3 form-control-label">
kvk - nummer
</label>
<div class="col-md-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-md-3 form-control-label">
IBAN
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-institution"></i>
</span>
<input type="text"
placeholder="IBAN"
class="form-control"
data-bind="textInput:iban">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
tarief (per uur)
</label>
<div class="col-md-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-md-3 form-control-label">
opmerkingen
</label>
<div class="col-md-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>
+288
View File
@@ -0,0 +1,288 @@
<div class="modal modal-primary" tabindex="-1" id="offer-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen offerte
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-md-3 control-label">
offerte nummer
</label>
<div class="col-md-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-md-3 control-label">
offerte naam
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-bookmark"></i>
</span>
<input type="text"
placeholder="offerte naam"
class="form-control"
data-bind="textInput:offername">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
offerte leider
</label>
<div class="col-md-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-md-1">
<i class="icon fa-plus-square greenish pointer" data-bind="click:addUser"></i>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
klant
</label>
<div class="col-md-8">
<div class="input-group input-group-icon">
<select class="form-control"
data-bind="options:customers,
optionsValue:'id',
optionsText:'name',
value:customer_id,
optionsCaption:'selecteer klant',
event:{change:getCustomerProjects}"></select>
</div>
<small class="invalid-feedback"
data-bind="style:{display: ! customer_id() ? 'block' : 'none'}">
selecteer een klant
</small>
</div>
<div class="col-md-1">
<i class="icon fa-plus-square greenish pointer" data-bind="click:addCustomer"></i>
</div>
</div>
<!-- <div class="form-group row">-->
<!-- <label class="col-md-3 control-label">-->
<!-- project-->
<!-- </label>-->
<!-- <div class="col-md-8">-->
<!-- <select class="form-control"-->
<!-- data-bind="options:projects,-->
<!-- optionsValue: 'id',-->
<!-- optionsText:'projectnumber',-->
<!-- disable: ! customer_id(),-->
<!-- value:project_id"></select>-->
<!-- </div>-->
<!-- </div>-->
<div class="form-group row">
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
datum offerte
</label>
<div class="col-md-5">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="text"
placeholder="datum offerte"
class="form-control"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' }, value:startdate, css:{'is-invalid': ! offerDateValid()}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: ! offerDateValid() ? 'block' : 'none'}">
voer een offerte datum in
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
kans
</label>
<div class="col-md-4">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-percent"></i>
</span>
<div>
<input type="text"
placeholder="kans"
class="form-control percentage-input"
data-bind="textInput:acceptance_chance,
event:{keyup:validateNumber}">
<span class="percentage-sign">&#x25;</span>
</div>
</div>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
omzet
</label>
<div class="col-md-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 tarief omzet (excl btw)
</small>
</div>
<div class="col-md-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 kosten (excl btw)
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
&nbsp
</label>
<div class="col-md-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 (excl btw)
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
deadline
</label>
<div class="col-md-5">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="email"
placeholder="deadline"
class="form-control"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' }, value:deadline, disable:accepteddate()">
</div>
</div>
<div class="col-md-1">
<span class="icon fa-remove redish pointer"
data-bind="visible:rejectdate(), click:resetDate.bind($data, 'rejectdate')"></span>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
acceptatie datum
</label>
<div class="col-md-5">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="text"
placeholder="acceptatie datum"
class="form-control"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:accepteddate, disable:rejectdate()">
</div>
</div>
<div class="col-md-1">
<span class="icon fa-remove redish pointer"
data-bind="visible:accepteddate(), click:resetDate.bind($data, 'accepteddate')"></span>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 control-label">
afwijsdatum
</label>
<div class="col-md-5">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="email"
placeholder="afwijsdatum"
class="form-control"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' }, value:rejectdate, disable:accepteddate()">
</div>
</div>
<div class="col-md-1">
<span class="icon fa-remove redish pointer"
data-bind="visible:rejectdate(), click:resetDate.bind($data, 'rejectdate')"></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-success"
data-bind="visible:formValid(), click:saveOffer">opslaan
</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">annuleren</button>
</div>
</div>
</div>
</div>
+5
View File
@@ -0,0 +1,5 @@
<div class="tab-content">
<div class="tab-pane animation-slide-top active" id="dashboard">
<?= view('modals/partials/_projectdashboard') ?>
</div>
</div>
+19
View File
@@ -0,0 +1,19 @@
<div class="row" data-bind="fadeVisible:customerID()">
<!-- <div class="col-md-5">-->
<!-- --><?php //$this->load->view( 'modals/partials/_projectoffers' ); ?>
<!-- </div>-->
<div class="col-md-8">
<?= view('modals/partials/_projectcosts') ?>
</div>
<div class="col-md-4">
<?= view('modals/partials/_reservations') ?>
</div>
</div>
<div class="row">
<div class="col-md-8">
<?= view('modals/partials/_invoices') ?>
</div>
<div class="col-md-4">
<?= view('modals/partials/_forecasts') ?>
</div>
</div>
+104
View File
@@ -0,0 +1,104 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
prognoses (incl.btw)
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header" width="25%">
jaar
</th>
<th class="table-cyanish-header" width="25%">
maand
</th>
<th class="table-cyanish-header align-right" width="35%">
bedrag
</th>
<th class="table-cyanish-header" width="15%">&nbsp;</th>
</thead>
<tbody data-bind="foreach:forecasts">
<tr>
<td>
<span data-bind="text:dbo.helpers.findArrayElement('year', 'year', year(), $root.years()),
visible:! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:$root.years,
optionsText:'year',
optionsValue:'year',
value:year,
optionsCaption:'voer jaar in',
visible: inEdit(),
event:{change:$root.saveForecast}">
</select>
</td>
<td>
<span data-bind="text:dbo.helpers.findArrayElement('monthID', 'month', month_id(), $root.months()),
visible:! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:$root.months,
optionsText:'month',
optionsValue:'monthID',
value:month_id,
optionsCaption:'voer maand in',
visible: inEdit(),
event:{change:$root.saveForecast}">
</select>
</td>
<td class="align-right">
<span data-bind="visible:!inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(forecastamount())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:forecastamount, visible:inEdit,
event:{change:$root.saveForecast,keyup:$root.validateNumber.bind($data, 'forecastamount')}"/>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editForecast"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeForecast"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="4">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:addForecast">
nieuwe prognose
</button>
</th>
</tr>
<tr>
<th colspan="4">
<table class="table table-condensed">
<thead>
<tr>
<th>te factureren</th>
<th>geprognosticeerd</th>
<th>nog te prognosticeren</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span data-bind="text:outstanding"></span>
</td>
<td>
<span data-bind="text:totalForecast"></span>
</td>
<td>
<span data-bind="text:toForecast"></span>
</td>
</tr>
</tbody>
</table>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
+57
View File
@@ -0,0 +1,57 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
projecturen
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header" width="40%">
medewerker
</th>
<th class="table-cyanish-header align-right" width="20%">
niet declarabel
</th>
<th class="table-cyanish-header align-right" width="20%">
declarabel
</th>
<th class="table-cyanish-header align-right" width="20%">
omzet
</th>
</thead>
<tbody data-bind="foreach:hourTotals">
<tr>
<td>
<span data-bind="text:fullname"></span>
</td>
<td class="align-right">
<span data-bind="text:nondeclarable"></span> uur
</td>
<td class="align-right">
<span data-bind="text:declarable"></span> uur
</td>
<td class="align-right">
<span data-bind="text:revenues"></span>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th class="table-cyanish-header">
totaal
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:totalNonDeclarable"></span> uur
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:totalDeclarable"></span> uur
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:totalRevenueHours"></span>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
+102
View File
@@ -0,0 +1,102 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
projecturen
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header" width="40%">
medewerker
</th>
<th class="table-cyanish-header" width="15%">
datum
</th>
<th class="table-cyanish-header" width="15%">
declarabel
</th>
<th class="table-cyanish-header align-right" width="15%">
uren
</th>
<th class="table-cyanish-header align-right" width="15%">
omzet
</th>
<!-- <th class="table-cyanish-header" width="8%">-->
<!-- &nbsp;-->
<!-- </th>-->
</thead>
<tbody data-bind="foreach:projecthours">
<tr>
<td>
<span data-bind="text:dbo.helpers.findArrayElement('id', 'fullname', projectemployee_id(), $root.projectEmployees()),
visible:! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:$root.projectEmployees,
optionsText:'fullname',
optionsValue:'id',
value:projectemployee_id,
optionsCaption:'medewerker',
visible: inEdit(),
event:{change:$root.saveProjecthour}">
</select>
</td>
<td>
<span data-bind="text:hourdate, visible:! inEdit()"></span>
<input type="text"
class="form-control form-control-sm"
placeholder="datum"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:hourdate, visible:inEdit,
event:{change:$root.saveProjecthour}"/>
</td>
<td class="align-center">
<i class="icon fa-check" data-bind="visible:hourtype_id() == 1, click:$root.setHourtype.bind($data,2)"></i>
<i class="icon fa-square-o" data-bind="visible:hourtype_id() != 1, click:$root.setHourtype.bind($data, 1)"></i>
</td>
<td class="align-right">
<span data-bind=" visible: ! inEdit()">
<span data-bind="text:hours"></span>
uur
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="uren"
data-bind="textInput:hours, visible:inEdit,
event:{change:$root.saveProjecthour,keyup:$root.validateNumber.bind($data, 'hours')}"/>
</td>
<td class="align-right">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(revenue())"></span>
</td>
<!-- <td>-->
<!-- <i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editProjecthour"></i>-->
<!-- <i class="icon fa-trash redish pointer" title="verwijder"-->
<!-- data-bind="click:$root.removeProjecthour"></i>-->
<!-- </td>-->
</tr>
</tbody>
<tfoot>
<tr>
<th class="table-cyanish-header" colspan="2">Totaal</th>
<th class="table-cyanish-header">&nbsp;</th>
<th class="table-cyanish-header align-right">
<span data-bind="text:totalHours"></span> uur
</th>
<th class="table-cyanish-header align-right">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(totalRevenue())"></span>
</th>
<!-- <th class="table-cyanish-header">&nbsp;</th>-->
</tr>
<!-- <tr>-->
<!-- <td colspan="5">-->
<!-- <button class="btn btn-primary btn-round btn-sm" data-bind="click:newProjecthour">-->
<!-- nieuwe uren-->
<!-- </button>-->
<!-- </td>-->
<!-- </tr>-->
</tfoot>
</table>
</div>
</div>
+197
View File
@@ -0,0 +1,197 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
uitgaande facturen (incl btw)
</h3>
</div>
<div class="panel-body panel-body-project" style="overflow-y:scroll;">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header">&nbsp;</th>
<th class="table-cyanish-header">
factuurnummer
</th>
<th class="table-cyanish-header">
factuurdatum
</th>
<th class="table-cyanish-header align-right">
bedrag (excl btw)
</th>
<th class="table-cyanish-header align-right">
bedrag (incl btw)
</th>
<th class="table-cyanish-header align-right">
openstaand( incl btw)
</th>
<th class="table-cyanish-header align-right">
btw tarief
</th>
<th class="table-cyanish-header" width="45px">
&nbsp;
</th>
</thead>
<tbody data-bind="foreach:invoices">
<tr>
<td>
<i class="icon fa-chevron-right" data-bind="visible: ! showPayments(), click:$root.togglePayments"></i>
<i class="icon fa-chevron-down" data-bind="visible:showPayments(), click:$root.togglePayments"></i>
</td>
<td>
<span data-bind="text:invoicenumber, visible:! inEdit()"></span>
<input type="text"
class="form-control form-control-sm"
placeholder="factuurnummer"
data-bind="textInput:invoicenumber, visible:inEdit,
event:{change:$root.saveInvoice}"/>
</td>
<td>
<span data-bind="text:invoicedate, visible:! inEdit()"></span>
<input type="text"
class="form-control form-control-sm"
placeholder="datum"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:invoicedate, visible:inEdit,
event:{change:$root.saveInvoice}"/>
</td>
<td class="align-right">
<span data-bind=" visible: ! inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(invoiceamount())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:invoiceamount, visible:inEdit,
event:{change:$root.saveInvoice,keyup:$root.validateNumber.bind($data, 'invoiceamount')}"/>
</td>
<td class="align-right">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(inclBtw())"></span>
</td>
<td class="align-right">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(outstanding())"></span>
</td>
<!-- <td class="align-right">-->
<!-- <span data-bind=" visible: ! inEdit()">-->
<!-- <i class="icon fa-euro"></i>-->
<!-- <span data-bind="text:dbo.helpers.numberWithPoints(forecastamount())"></span>-->
<!-- </span>-->
<!-- <input type="text"-->
<!-- class="form-control form-control-sm align-right"-->
<!-- paceholder="bedrag"-->
<!-- data-bind="textInput:forecastamount, visible:inEdit,-->
<!-- event:{change:$root.saveInvoice,keyup:$root.validateNumber.bind($data, 'forecastamount')}"/>-->
<!-- </td>-->
<!-- <td class="align-right">-->
<!-- <span data-bind="text:forecastdate, visible:! inEdit()"></span>-->
<!-- <input type="text"-->
<!-- class="form-control form-control-sm"-->
<!-- placeholder="datum"-->
<!-- data-bind="datepicker:{dateFormat: 'dd-mm-yy' },-->
<!-- value:forecastdate, visible:inEdit,-->
<!-- event:{change:$root.saveInvoice}"/>-->
<!-- </td>-->
<td class="align-right">
<span data-bind="visible:! inEdit()">
<span data-bind="text:dbo.helpers.findArrayElement('id', 'vatrate', vat_id(), $root.vats())"></span>
%
</span>
<select class="form-control form-control-sm"
data-bind="options:$root.vats,
optionsText:'vatrate',
optionsValue:'id',
value:vat_id,
optionsCaption:'btw',
visible:inEdit(),
event:{change:$root.saveInvoice}">
</select>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editInvoice"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeInvoice"></i>
</td>
</tr>
<tr data-bind="visible:showPayments()">
<td colspan="8">
<table class="table table-condensed">
<thead>
<th>&nbsp;</th>
<th class="table-cyanish-header-light">
datum
</th>
<th class="table-cyanish-header-light">
bedrag
</th>
<th class="table-cyanish-header-light">
</th>
</thead>
<tbody data-bind="foreach:payments">
<tr>
<td>&nbsp;</td>
<td>
<span data-bind="text:paymentdate, visible:! inEdit()"></span>
<input type="text"
class="form-control form-control-sm"
placeholder="datum"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:paymentdate, visible:inEdit,
event:{change:$root.savePayment}"/>
</td>
<td>
<span data-bind=" visible: ! inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(paymentamount())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:paymentamount, visible:inEdit,
event:{change:$root.savePayment,
keyup:$root.validateNumber.bind($data, 'paymentamount')}"/>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editPayment.bind($data, $parents[0])"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removePayment"></i>
</td>
</tr>
</tbody>
<tfoot>
<td></td>
<td colspan="3">
<a href="#" data-bind="click:$root.newPayment">
nieuwe betaling
</a>
</td>
</tfoot>
</table>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="3" class="table-cyanish-header"></th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalInvoiceamount())"></span>
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalInclBtw())"></span>
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalOutstanding())"></span>
</th>
<th colspan="2" class="table-cyanish-header"></th>
</tr>
<tr>
<td colspan="5">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newInvoice">
nieuwe factuur
</button>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
@@ -0,0 +1,43 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
opmerkingen
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<tr>
<td colspan="2" class="table-cyanish-header">
offerte opmerkingen
</td>
</tr>
</thead>
<tbody data-bind="foreach:projectFiles">
<td>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editPayment"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removePayment"></i>
</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="2" class="table-cyanish-header">
project opmerkingen
</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">
</td>
</tr>
</tfoot>
</table>
</div>
</div>
+137
View File
@@ -0,0 +1,137 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
inkomende facturen (bedragen incl btw)
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header">
onderaannemer
</th>
<th class="table-cyanish-header">
omschrijving
</th>
<th class="table-cyanish-header">
datum
</th>
<th class="table-cyanish-header align-right">
bedrag
</th>
<th class="table-cyanish-header align-right">
betaald
</th>
<th class="table-cyanish-header align-right">
via<br />reservering
</th>
<th class="table-cyanish-header align-right">
te betalen
</th>
<th class="table-cyanish-header align-right">&nbsp;</th>
</thead>
<tbody data-bind="foreach:projectcosts">
<tr>
<td>
<span data-bind="text:dbo.helpers.findArrayElement('id', 'contactperson', external_id(), $root.externals()),
visible:! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="options:$root.externals,
optionsText:'contactperson',
optionsValue:'id',
value:external_id,
optionsCaption:'extern',
visible: inEdit(),
event:{change:$root.saveProjectcosts}">
</select>
</td>
<td>
<span data-bind=" visible: ! inEdit()">
<span data-bind="text:description"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="omschrijving"
data-bind="textInput:description, visible:inEdit,
event:{change:$root.saveProjectcosts}"/>
</td>
<td>
<span data-bind="text:date, visible:! inEdit()"></span>
<input type="text"
class="form-control form-control-sm"
placeholder="start"
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:date, visible:inEdit,
event:{change:$root.saveProjectcosts}"/>
</td>
<td class="align-right">
<span data-bind=" visible: ! inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(costs())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:costs, visible:inEdit,
event:{change:$root.saveProjectcosts,keyup:$root.validateNumber.bind($data, 'costs')}"/>
</td>
<td class="align-right">
<span data-bind=" visible: ! inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(payed())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:payed, visible:inEdit,
event:{change:$root.saveProjectcosts,keyup:$root.validateNumber.bind($data, 'payed')}"/>
</td>
<td class="align-center">
<!-- ko if:fromReservation() -->
&nbsp;<i class="icon fa-check pointer"
data-bind="click:$root.toggleFromReservation"></i>
<!-- /ko -->
<!-- ko if: ! fromReservation() -->
&nbsp;<i class="icon fa-square-o pointer"
data-bind="click:$root.toggleFromReservation"></i>
<!-- /ko -->
</td>
<td class="align-right">
<span>
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(toPay())"></span>
</span>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editProjectcosts"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeProjectcosts"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th colspan="3" class="table-cyanish-header"></th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalCosts())"></span>
</th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalPayed())"></span>
</th>
<th class="table-cyanish-header"></th>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalToPay())"></span>
</th>
<th class="table-cyanish-header"></th>
</tr>
<tr>
<td colspan="8">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:newProjectcost">
nieuwe projectkosten
</button>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
@@ -0,0 +1,159 @@
<div class="row">
<div class="col-md-6">
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
Projectgegevens
</h3>
</div>
<div class="panel-body panel-body-project">
<div class="row">
<label class="col-md-4 col-form-label">omschrijving</label>
<div class="col-md-8">
<input type="text" class="form-control form-control-sm"
data-bind="textInput:projectname, event:{keyup:saveProjectname}"/>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">klant</label>
<div class="col-md-8">
<select class="form-control form-control-sm"
data-bind="options:customers,
optionsText:'name',
optionsValue: 'id',
value:customerID,
disable:offers().length > 0,
optionsCaption:'selecteer klant',
event:{change:saveProject},
css:{'is-invalid': ! customerID()}"></select>
<small class="invalid-feedback"
data-bind="style:{display: ! customerID() ? 'block' : 'none'}">
selecteer een klant
</small>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">projectleider</label>
<div class="col-md-8">
<select class="form-control form-control-sm"
data-bind="options:users,
optionsText:'fullname',
optionsValue:'id',
value:projectleaderID,
optionsCaption:'projectleider',
event:{change:saveProject}">
</select>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">begin project</label>
<div class="col-md-8">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="text"
placeholder="start project"
class="form-control form-control-sm"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:startdate,
event:{change:saveProject}">
</div>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">eind project</label>
<div class="col-md-8">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-calendar"></i>
</span>
<input type="text"
placeholder="eind project"
class="form-control form-control-sm"
readonly
data-bind="datepicker:{dateFormat: 'dd-mm-yy' },
value:enddate,
event:{change:saveProject}">
</div>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">BTW percentage</label>
<div class="col-md-3">
<select class="form-control form-control-sm"
data-bind="options:vats,
optionsText:'vatrate',
optionsValue:'id',
value:vat_id,
event:{change:$root.saveProject},
optionsCaption:'selecteer btw ...'"></select>
</div>
<div class="divider"></div>
<label class="col-md-4 col-form-label">te besteden uren</label>
<div class="col-md-8">
<h4><span data-bind="text:(totalBudget() - totalHours())"></span></h4>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
Financieel
</h3>
</div>
<div class="panel-body panel-body-project">
<label class="col-md-6 col-form-label">Eigen tarief omzet(excl.btw)</label>
<div class="col-md-6">
<h4 class="form-control-label">
<i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:ownRevenue"></span>
</h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Overige kosten(excl.btw)</label>
<div class="col-md-6">
<h4 class="form-control-label">
<i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:otherRevenue"></span>
</h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Kosten derden(excl.btw)</label>
<div class="col-md-6">
<h4 class="form-control-label">
<i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:costs"></span>
</h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Totaal omzet(excl.btw)</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:totalRevenues"></span></h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Totaal omzet(incl.btw)</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:totalRevenuesIncl"></span></h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Totaal gefactureerd</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:totalInvoiced"></span></h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Nog te factureren</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:outstanding"></span></h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Totaal betaald</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:payed"></span></h4>
</div>
<div class="divider"></div>
<label class="col-md-6 col-form-label">Gefactureerd niet betaald</label>
<div class="col-md-6">
<h4><i class="icon fa-euro"> </i><span class="euro-amount" data-bind="text:outstandingInvoices"></span></h4>
</div>
</div>
</div>
</div>
</div>
@@ -0,0 +1,82 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
project medewerkers
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header" width="40%">
naam
</th>
<th class="table-cyanish-header align-right" width="20%">
tarief
</th>
<th class="table-cyanish-header align-right" width="25%">
budget
</th>
<th class="table-cyanish-header" width="15%">
&nbsp;&nbsp;
</th>
</thead>
<tbody data-bind="foreach:projectEmployees">
<tr>
<td>
<span data-bind="text:dbo.helpers.findArrayElement('id', 'fullname', employeeID(), $root.users()),
visible: ! inEdit()"></span>
<select class="form-control form-control-sm"
data-bind="
options:$root.users,
optionsText:'fullname',
optionsValue:'id',
value:employeeID,
optionsCaption:'naam',
event:{change:$root.changeProjectemployee},
visible:inEdit"></select>
</td>
<td class="align-right">
<span data-bind=" visible: ! inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:tarif"></span>
</span class="align-right">
<input type="text"
class="form-control form-control-sm"
paceholder="tarief"
data-bind="textInput:tarif, visible:inEdit,
event:{change:$root.saveProjectemployee,keyup:$root.validateNumber.bind($data, 'tarif')}"/>
</td>
<td class="align-right">
<span data-bind="visible: ! inEdit()"><span data-bind="text:budget"></span> uur</span>
<input type="text"
class="form-control form-control-sm"
placeholder="budget"
data-bind="textInput:budget, visible:inEdit,
event:{change:$root.saveProjectemployee,keyup:$root.validateNumber.bind($data, 'budget')}"/>
</td>
<td>
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editProjectemployee"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeProjectemployee"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th class="table-cyanish-header align-right" colspan="2">&nbsp;</th>
<th class="table-cyanish-header align-right">
<span data-bind="text:totalBudget"></span> uur
</th>
<th class="table-cyanish-header align-right"></th>
</tr>
<tr>
<td colspan="6">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:addProjectemployee">
nieuwe project medewerker
</button>
</td>
</tr>
</tfoot>
</table>
</div>
</div>
@@ -0,0 +1,37 @@
<div class="col-md-8">
<table class="table table-condensed">
<thead>
<tr>
<th>door</th>
<th>datum</th>
<th>bestandsnaam</th>
<th>&nbsp;</th>
</tr>
</thead>
<tbody data-bind="foreach:documents">
<tr>
<td>
<span data-bind="text:fullname"></span>
</td>
<td>
<span data-bind="text:uploaddate"></span>
</td>
<td>
<span data-bind="text:originalname"></span>
</td>
<td>
<i class="icon fa-download pointer" data-bind="click:$root.downloadDocument"></i>
<i class="icon fa-trash redish pointer" data-bind="click:$root.removeFile"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr></tr>
</tfoot>
</table>
<div class="upload-btn-wrapper" data-bind="">
<button class="upload-btn">voeg bestand toe</button>
<input type="file" name="userfile" data-bind="event:{change:addDocument}" id="fileinput"/>
</div>
<hr/>
</div>
@@ -0,0 +1,49 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
offerte
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header">
nummer
</th>
<th class="table-cyanish-header">
start
</th>
<th class="table-cyanish-header align-right">
eigen omzet (excl btw)
</th>
<th class="table-cyanish-header align-right">
overig omzet (excl btw)
</th>
<th class="table-cyanish-header">
&nbsp;
</th>
</thead>
<tbody data-bind="foreach:offers">
<tr>
<td>
<span data-bind="text:offernumber"></span>
</td>
<td>
<span data-bind="text:startdate"></span>
</td>
<td class="align-right">
<span data-bind="text:dbo.helpers.numberWithPoints(own_revenue.toFixed(0))"></span>
</td>
<td class="align-right">
<span data-bind="text:dbo.helpers.numberWithPoints(other_revenue.toFixed(0))"></span>
</td>
<!-- <td>-->
<!-- <i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editOffer"></i>-->
<!-- <i class="icon fa-trash redish pointer" title="verwijder"-->
<!-- data-bind="click:$root.removeOffer"></i>-->
<!-- </td>-->
</tr>
</tbody>
</table>
</div>
</div>
@@ -0,0 +1,68 @@
<div class="panel panel-bordered panel-primary panel-line">
<div class="panel-heading panel-heading-project">
<h3 class="">
gereserveerd op spaarrekening (incl. btw)
</h3>
</div>
<div class="panel-body panel-body-project">
<table class="table table-sm">
<thead>
<th class="table-cyanish-header align-right" width="40%">
bedrag
</th>
<th class="table-cyanish-header" width="40%">
klant
</th>
<th class="table-cyanish-header" width="20%">&nbsp;</th>
</thead>
<tbody data-bind="foreach:reservations">
<tr>
<td class="align-right" data-bind="css:{'red-line':invalidReservation()}">
<span data-bind="visible:!inEdit()">
<i class="icon fa-euro"></i>
<span data-bind="text:dbo.helpers.numberWithPoints(reservationamount())"></span>
</span>
<input type="text"
class="form-control form-control-sm align-right"
paceholder="bedrag"
data-bind="textInput:reservationamount, visible:inEdit,
event:{change:$root.saveReservation,keyup:$root.validateNumber.bind($data, 'reservationamount')}"/>
</td>
<td data-bind="css:{'red-line':invalidReservation()}">
<span data-bind="text:dbo.helpers.findArrayElement('id', 'contactperson', external_id(), $root.externals()),
visible:! inEdit()"></span>
<select class="form-control"
data-bind="
options:$root.externals,
optionsText:'contactperson',
optionsValue:'id',
value:external_id,
optionsCaption:'selecteer...',
visible: inEdit(),
event:{change:$root.saveReservation}"
</td>
<td data-bind="css:{'red-line':invalidReservation()}">
<i class="icon fa-edit pointer" title="wijzig" data-bind="click:$root.editReservation"></i>
<i class="icon fa-trash redish pointer" title="verwijder"
data-bind="click:$root.removeReservation"></i>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<th class="align-right table-cyanish-header">
<span data-bind="text:dbo.helpers.numberWithPoints(totalReservationamount())"></span>
</th>
<th class="table-cyanish-header" colspan="2"></th>
</tr>
<tr>
<th colspan="4">
<button class="btn btn-primary btn-round btn-sm" data-bind="click:addReservation">
nieuwe reservering
</button>
</th>
</tr>
</tfoot>
</table>
</div>
</div>
+84
View File
@@ -0,0 +1,84 @@
<div class="project-page" id="project-modal" data-bind="fadeVisible:showProject()">
<div class="container" style="margin-top:15px;padding-top:15px;">
<div class="nav-tabs-horizontal nav-tabs-animate nav-tab-reverse">
<ul class="nav nav-tabs nav-tabs-solid">
<li class="nav-item"
role="presentation"
data-bind="css:{'active':activeTab()=='DASHBOARD'},
click:setActiveTab.bind($data,'DASHBOARD')">
<a>
<i class="icon fa-hacker-news"></i>
algemeen</a>
</li>
<li class="nav-item"
role="presentation"
data-bind="css:{'active':activeTab()=='FINANCIAL'},
click:setActiveTab.bind($data,'FINANCIAL')">
<a>
<i class="icon fa-euro"></i>
financieel</a>
</li>
<li class="nav-item"
role="presentation"
data-bind="css:{'active':activeTab()=='EMPLOYEES'},
click:setActiveTab.bind($data,'EMPLOYEES')">
<a>
<i class="icon fa-user-circle"></i>
medewerkers</a>
</li>
<li class="nav-item"
role="presentation"
data-bind="css:{'active':activeTab()=='FILES'},
click:setActiveTab.bind($data,'FILES')">
<a>
<i class="icon fa-files"></i>
bestanden en opmerkingen</a>
</li>
</ul>
<div style="position:relative; float:right;">
<h3 style="position:absolute;top:-65px; right:30px; width:350px;">
Projectnummer: <span data-bind="text:projectnumber"></span>
<i class="icon fa-refresh pointer blueish" title="ververs" data-bind="click:refreshProject"></i>
</h3>
<button class="btn btn-danger" data-bind="click:closeProject"
style="position:absolute;right:0px;top:-50px">
sluit
</button>
</div>
<div id="project-scroller">
<div class="tab-pane animation-slide-top"
id="dashboard"
data-bind="visible:activeTab()=='DASHBOARD'">
<?= view('modals/partials/_dashboard') ?>
</div>
<div class="tab-pane animation-slide-top"
id="financial"
data-bind="visible:activeTab()=='FINANCIAL'">
<?= view('modals/partials/_financials') ?>
</div>
<div class="tab-pane animation-slide-top"
id="employees"
data-bind="visible:activeTab()=='EMPLOYEES'">
<div class="row" data-bind="fadeVisible:customerID()">
<div class="col-md-5" data-bind="fadeVisible:customerID()">
<?= view('modals/partials/_projectemployees') ?>
</div>
<div class="col-md-7">
<?= view('modals/partials/_hourTotals') ?>
</div>
</div>
</div>
<div class="tab-pane animation-slide-top"
id="files"
data-bind="visible:activeTab()=='FILES'">
<div class="row" data-bind="fadeVisible:customerID()">
<?= view('modals/partials/_projectfiles') ?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
+159
View File
@@ -0,0 +1,159 @@
<div class="modal modal-fade-in-scale-up modal-primary" tabindex="-1" id="user-modal">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">toevoegen / wijzigen medewerker
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</h5>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-12">
<div role="form" class="form-horizontal">
<div class="form-group row">
<label class="col-md-3 form-control-label">
voornaam
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="text"
placeholder="voornaam"
class="form-control"
data-bind="textInput:firstname,
css:{'is-invalid':firstnameInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: firstnameInvalid() ? 'block' : 'none'}">
voer een voornaam in<span data-bind="text:firstnameInvalid"></span>
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
tussenvoegsel
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="text"
placeholder="tussenvoegsel"
class="form-control"
data-bind="textInput:middlename">
</div>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
achternaam
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="text"
placeholder="achternaam"
class="form-control"
data-bind="textInput:lastname,
css:{'is-invalid':lastnameInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: lastnameInvalid() ? 'block' : 'none'}">
voer een achternaam in<span data-bind="text:lastnameInvalid"></span>
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
gebruikersnaam
</label>
<div class="col-md-9">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-user"></i>
</span>
<input type="text"
placeholder="gebruikersnaam"
class="form-control"
data-bind="textInput:username,
css:{'is-invalid':usernameInvalid}">
</div>
<small class="invalid-feedback"
data-bind="style:{display: usernameInvalid() ? 'block' : 'none'}">
voer een gebruikernaam in<span data-bind="text:username"></span>
</small>
</div>
</div>
<div class="form-group row">
<label class="col-md-3 form-control-label">
email
</label>
<div class="col-md-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-md-3 form-control-label">
uurtarief
</label>
<div class="col-md-4">
<div class="input-group input-group-icon">
<span class="input-group-addon">
<i class="icon fa-euro"></i>
</span>
<input type="text"
placeholder="uurtarief"
class="form-control align-right"
data-bind="textInput:hourlyRate,
event:{keyup:validateNumber.bind($data, 'hourlyRate')}">
</div>
</div>
</div>
<div class="form-group row">
<div class="col-md-3">&nbsp;</div>
<!-- ko foreach:roles -->
<div class="radio-inline">
<i class="icon fa-circle-o blueish"
style="cursor:pointer;"
data-bind="visible:$root.role() != rolelevel,
click:$root.setRole"></i>
<i class="icon fa-check-circle-o greenish"
data-bind="visible:$root.role() == rolelevel"></i>
<label data-bind="text:rolename">
</label>
</div>
<!-- /ko -->
</div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-success"
data-bind="visible:formValid(), click:saveUser">opslaan</button>
<button type="button" class="btn btn-warning" data-dismiss="modal">annuleren</button>
</div>
</div>
</div>
</div>