pdf van invullijst

This commit is contained in:
Monique
2022-02-02 11:12:25 +01:00
parent 372d032536
commit de3375bf72
6 changed files with 291 additions and 125 deletions
+23 -13
View File
@@ -27,6 +27,8 @@ class Monitor extends MY_Controller{
$versies = array();
$organisatie=$this->Organisaties_model->get_record_by_id($this->globorgid);
$module = $this->session->userdata('module');
$modulenaam = $this->Modules_model->get_fieldvalue(['id'=>$module],'naamkort');
$modulenaam = str_replace(' ', '', $modulenaam);
$gaverder = true; // zoek verder omdat er nog geen actieve versie is
// zoek eerst de reeds ingevulde versies
// zoek dan de actieve versie
@@ -56,7 +58,9 @@ class Monitor extends MY_Controller{
$versies = array_merge($actieveversie, $versies);
}
};
echo json_encode(array("versies"=>$versies, "soort"=>$organisatie->soort));
echo json_encode(array("versies"=>$versies,
"soort"=>$organisatie->soort,
"module" => $modulenaam));
}
function getperiodesperschoolvanuitpartituur(){
if (!$this->userid) die;
@@ -220,20 +224,26 @@ class Monitor extends MY_Controller{
}
function printlijst(){
$input0 = $this->input->post('data');
$input = json_decode($input0);
//var_dump('input', $input);
$inputstring = $this->input->post('data');
$input = json_decode($inputstring);
$module = $input->module;
$info = $input->info;
$tabel = $input->tabel;
$notitie = $input->notitie;
$zichtbaar = $input->zichtbaar;
$data = [];
$data['module'] = $module;
$data['info'] = $info;
$data['tabel'] = $tabel;
$data['notitie'] = $notitie;
$data['zichtbaar'] = $zichtbaar;
$data['today'] = date("d-m-Y");
$data['organisatie'] = '';
$organisatie = $this->Organisaties_model->get_orgnaam($this->globorgid);
$instrument = $this->Modules_model->get_fieldvalue(array("sysnr" =>$this->module), "naam") ;
if($organisatie) $data['organisatie'] = $organisatie;
$filenaam = $input->filenaam;
$html=$this->load->view("monpas/reports/printlijst.php", $data, true);
$data=array( "instrument" => $instrument,
"organisatie" => $organisatie,
"versie" => $input->orgversie,
"today" => date('d-m-Y'),
"listitems" => json_decode($input->tabelinfo),
"notitie" => $input->notitie);
$html=$this->load->view("monpas/reports/printlijst", $data, true);
$filenaam="MonPasInvullijst";
$this->Phantom_model->create_pdf($html,$filenaam, FALSE,FALSE,FALSE);
}
}
+2 -1
View File
@@ -25,7 +25,8 @@ class Phantom_model extends CI_Model{
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://print.pensare-services.nl/print',
CURLOPT_URL => $_ENV['printserver'],
// CURLOPT_URL => 'https://print.pensare-services.nl/print',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data
));
+76 -38
View File
@@ -13,10 +13,10 @@
value : selectedOrgversion,
event : {change: fChangeVersion}">
</select>
<!-- <span style="display: inline-block; float:right"-->
<!-- class="glyphicon glyphicon-print"-->
<!-- data-bind="click: fPrint">-->
<!-- </span>-->
<span style="display: inline-block; float:right"
class="glyphicon glyphicon-print"
data-bind="click: fPrint">
</span>
</h4>
<div class="row">
@@ -28,11 +28,11 @@
</div>
</div>
<div id ="invultabel">
<div id="invulTabel">
<table>
<tbody data-bind="foreach:listitems">
<tr class="clickable" data-bind="click: $parent.fToonToelichting">
<tbody data-bind="foreach:listitems" >
<tr class="clickable " data-bind="click: $parent.fToonToelichting">
<td style="width:30px; "
data-bind= "text:nummer,
style: {color: disabled()? '#262626' : '#ffffff' ,
@@ -43,24 +43,23 @@
backgroundColor: disabled() ? '#d9d9d9' : '#6f0b3d' }">
</td>
</tr>
<tr>
<tr >
<td colspan = 2>
<!-- ko if: $parent.selectedOrgversion() && $parent.selectedOrgversion().toonOmschrijving()== false -->
<table style="width:100%">
<thead>
<tr>
<th class="header2" style="width: 3%;padding-left: 2px;text-align:right"
data-bind="style: {backgroundColor: disabled() ? '#d9d9d9' : '#e7e2e5'}"> nr
</th>
<th class="header2" style="width: 60%;padding-left: 2px"
<th class="header2" style="width: 50%;padding-left: 2px"
data-bind="style: {backgroundColor: disabled() ? '#d9d9d9' : '#e7e2e5'}">indicator
</th>
<th class="header2" style="width: 30%;padding-left: 2px;text-align:left"
<th class="header2" style="width: 40%;padding-left: 2px;text-align:left"
data-bind="style: {backgroundColor: disabled() ? '#d9d9d9' : '#e7e2e5'}"> score
</th>
</tr>
</thead>
<tbody data-bind="foreach: indicatorscores">
<tr style="border-bottom: 1px solid #ebebeb">
<td style="text-align:right;vertical-align:top" data-bind="text: nummer,
@@ -70,28 +69,39 @@
style: {color: $parent.disabled()? '#d9d9d9' : '#262626' }" style="vertical-align:top">
</td>
<td>
<span data-bind="visible: scoretype==1">
<input class="rapport"
data-bind="textInput: score,
event:{input: $root.fUpdateScoretype12},
enable: $root.editok() && $parent.disabled() == false,
attr:{'id' : $index}" />
</span>
<div class="nietVoorPdf">
<span data-bind="visible: scoretype==1">
<input class="rapport"
data-bind="textInput: score,
event:{input: $root.fUpdateScoretype12},
enable: $root.editok() && $parent.disabled() == false,
attr:{'id' : $index}" />
</span>
</div>
<div class="alleenVoorPdf">
<span data-bind="visible: scoretype==1 || scoretype == 2,
text: score">
</span>
</div>
<div class="nietVoorPdf">
<span data-bind="visible: scoretype == 2">
<input class="integer"
data-bind="textInput: score,
event:{input: $root.fUpdateScoretype12},
visible: scoretype==2,
enable: $root.editok() && $parent.disabled() == false" /> %
</span>
<input class="integer"
data-bind="textInput: score,
event:{input: $root.fUpdateScoretype12},
visible: scoretype==2,
enable: $root.editok() && $parent.disabled() == false" /> %
</span>
</div>
<div data-bind="visible: scoretype==3 || scoretype == 4 || scoretype == 5 || scoretype == 6 || scoretype==7 ">
<!-- ko if: $parent.disabled() == false -->
<!-- ko foreach: $root.scoreopties -->
<!-- ko if: $parent.scoretype == type -->
<input type='radio'
data-bind="checked: $parent.score(),
event:{click: $root.fUpdateScoretypeVanaf3.bind($data, $parent.id)},
attr: {'name': $parent.id , 'value': value},
attr: {'name': $parent.id , 'value': value, 'checked': value == $parent.score()},
enable: $root.editok() " />
<span style="vertical-align:top; display: inline-block; margin-left:5px;" data-bind="text: optie"> </span>
<!-- /ko -->
@@ -117,8 +127,8 @@
<table style="width:100%">
<thead>
<tr>
<th class="header2" style="width: 3%;padding-left: 2px;text-align:right"> nr </th>
<th class="header2" data-bind="attr: {'colspan': $parent.optieslengte()}" style="width: 97%;padding-left: 2px">indicator</th>
<th class="header2" style="width: 20px;padding-left: 2px;text-align:right"> nr </th>
<th class="header2" data-bind="attr: {'colspan': $parent.optieslengte()}" style="padding-left: 2px">indicator</th>
<!-- <th class="header2" style="width: 7%;padding-left: 2px;">insp.</th>-->
</tr>
@@ -132,8 +142,10 @@
</td>
<td data-bind="text: omschrijving,
attr: {'colspan': $root.optieslengte()},
style: {color: $parent.disabled()? '#d9d9d9' : '#262626' }" style="vertical-align:top; border-right: 1px solid #ebebeb;">
style: {color: $parent.disabled()? '#d9d9d9' : '#262626' }"
style="vertical-align:top; border-right: 1px solid #ebebeb;">
</td>
</tr>
<tr style="border-bottom: 1px solid #ebebeb">
<td style="border-left: 1px solid #ebebeb;">
@@ -144,7 +156,7 @@
<input style="vertical-align:top; padding-left: 5px;" type='radio'
data-bind="checked: $parent.score(),
event:{click: $root.fUpdateScoretypeVanaf3.bind($data, $parent.id)},
attr: {'name': $parent.id , 'value': value},
attr: {'name': $parent.id , 'value': value, 'checked': value == $parent.score()},
enable: $root.editok()" />
<p style="vertical-align:top; padding-left: 5px;"
data-bind="text: scoretekst">
@@ -157,7 +169,7 @@
<td style="border-right: 1px solid #ebebeb;vertical-align:top">
<input style="vertical-align:top; padding-left: 5px;" type='radio'
data-bind="checked: $parent.score(),
enable: false" />
enable: false" />
<p style="vertical-align:top; padding-left: 5px;"
data-bind="text: scoretekst">
</p>
@@ -175,18 +187,44 @@
</table>
</div>
<div>
<div >
<p>Notitie</p>
<textarea style="width: 100%; min-height: 70px"
data-bind="textInput: notitie, event:{'input' : fUpdateNotitie}"></textarea>
data-bind="textInput: notitie,
event:{'input' : fUpdateNotitie} ">
</textarea>
</div>
<div class="row">
<!-- voor de pdf-->
<div style="display: none">
<div id="invulNotitie">
<p>Notitie</p>
<textarea style="width: 100%; min-height: 70px"
data-bind="text: notitie ">
</textarea>
</div>
</div>
<div class="row nietVoorPdf">
<div class="col-sm-8">
<div style="background-color: #e7e2e5; padding:10px;">
<p>
<span class="glyphicon glyphicon-unchecked" data-bind="visible: !meetellen(), click: fTelMee"></span>
<span class="glyphicon glyphicon-check" style="margin-right: 5px;" data-bind="visible: meetellen(), click: fTelMee"></span>
Zichtbaar maken bij de tabbladen ijkpunten, resultaatmatrix, ontwikkelagenda & lijsten.<sup>*</sup>
<span class="fa fa-square-o" data-bind="visible: !meetellen(), click: fTelMee"></span>
<span class="fa fa-check-square-o" style="margin-right: 5px;" data-bind="visible: meetellen(), click: fTelMee"></span>
Zichtbaar maken bij de tabbladen ijkpunten, resultaatmatrix, ontwikkelagenda & lijsten.<sup>*</sup>
</p>
</div>
<p style="font-size: small"><sup>*</sup>Vul de gehele lijst in voordat u deze zichtbaar maakt. Niet ingevulde indicatoren worden ook meegenomen bij de berekening van het gemiddelde.</p>
</div>
</div>
<div class="alleenVoorPdf">
<div id="invulZichtbaar" class="col-sm-8">
<div style="background-color: #e7e2e5; padding:10px;">
<p>
<span data-bind="visible: !meetellen()"> &#9633;</span>
<span data-bind="visible: meetellen()">&#10003; </span>
Zichtbaar maken bij de tabbladen ijkpunten, resultaatmatrix, ontwikkelagenda & lijsten.<sup>*</sup>
</p>
</div>
+86 -64
View File
@@ -1,17 +1,89 @@
<style>
<!doctype html>
<html >
<head>
<meta charset="UTF-8">
<title>Invullijst</title>
<script type="text/javascript" src="<?php echo $this->config->item('vendor_url_secure'); ?>/js_lib/jquery.min.js?v=1.17.26"></script>
<link rel="stylesheet" href="/css_lib/bootstrap-3.3.2-dist/css/bootstrap.css" crossorigin="anonymous" />
<!-- -->
<!-- <link rel="stylesheet" href=--><?php //echo MYROOTPATH."public/css/vendor/fontawesome/css/font-awesome.css"?><!-- crossorigin="anonymous" />-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<style>
@font-face {
font-family : 'OpenSans';
src : url( http://app.monpas.nl/fonts/opensans-regular-webfont-webfont.ttf);
}
body {
font-family : 'OpenSans', Helvetica, Arial, sans-serif;
font-size : 1.2em;
}
.header2{
border-bottom: 1px solid #a07b8e;
background-color:#e7e7e7;
font-weight:400;
padding-top:0px;
padding-top:0;
}
.bb{
border-bottom: 1px dotted #ebebeb;
}
</style>
input[type='radio']:after {
background-color: #ffffff;
content: '';
display: inline-block;
visibility: visible;
border: 2px solid gainsboro;
width: 15px;
height: 15px;
border-radius: 15px;
top: -2px;
left: -1px;
position: relative;
}
<div style="font-family: Opensans, Arial,Verdana,sans; font-size: 10px">
<h4> <?=$instrument?>: Invullijst</h4>
input[type='radio']:checked:after {
width: 15px;
height: 15px;
border-radius: 15px;
top: -2px;
left: -1px;
position: relative;
background-color: #6f0b3d !important;
content: '';
display: inline-block;
visibility: visible;
border: 2px solid gainsboro;
}
.breakpagepdf{
page-break-after: always;
}
.rapport{
text-align: right;
padding-right: 3px;
max-width:40px;
}
.alleenVoorPdf{
display: inline;
}
.nietVoorPdf{
display: none;
}
</style>
</head>
<body>
<div >
<!-- --><?php //if (isset($data)) {?>
<p style="font-size: 2em"> <?=$module?>: Invullijst</p>
<hr/>
<table style=" font-family: inherit; font-size:inherit" >
<tr>
@@ -20,7 +92,7 @@
</tr>
<tr>
<td>Lijstversie: </td>
<td><?=$versie?></td>
<td><?=$info?></td>
</tr>
<tr>
<td>Per: </td>
@@ -28,63 +100,13 @@
</tr>
</table>
<hr/>
<div style="width: 950px; "><?=$tabel ?></div>
<?php if ($notitie) {?>
<div style="width: 950px;margin-top: 20px;"><?=$notitie ?></div>
<?php }; ?>
</div>
<table style="width: 100%; font-size:0.7em">
<?php if ($listitems){
foreach($listitems as $item) { ?>
<tr>
<td style="width:30px; background-color:#6f0b3d; color:#ffffff" data-bind="text:nummer"><?=$item->nummer?></td>
<td style="background-color:#6f0b3d; color:#ffffff" ><?=$item->omschrijving?></td>
</tr>
<tr>
<td colspan = 2 style="padding-top:0px">
<table style="width:100%; font-size:0.9em">
<thead>
<tr>
<th class="header2" style="width:3%;padding-left: 2px;text-align:right"> nr </th>
<th class="header2" style="width:60%; padding-left: 2px; text-align: left">indicator</th>
<th class="header2" style="width:30%;padding-left: 2px;text-align:left"> score</th>
</tr>
</thead>
<tbody>
<?php if ($item->indicatorscores){
foreach($item->indicatorscores as $score){ ?>
<tr style="border-bottom: 1px solid #ebebeb">
<td class="bb" style="text-align:right;vertical-align:top"><?=$score->nummer?></td>
<td class="bb" style="vertical-align:top"><?=$score->omschrijving?></td>
<td class="bb">
<?php if ($score->scoretype == 1){echo $score->score;};
if ($score->scoretype == 2){echo $score->score." %";};
if ($score->scoretype == 3 ||$score->scoretype == 4 ||$score->scoretype == 5 ||
$score->scoretype == 6|| $score->scoretype == 7){
if ($score->scoretype== 6) {
$textJa = ' onvol.';
$textNee = 'vol.';}
else {
$textJa ="ja";
$textNee = 'nee';
};
?>
<input type='radio' naam='score' value ='1' <?php if ($score->score ==1) echo "checked"; ?> /><span style="display: inline-block; margin-left:2px; margin-right:5px"><?=$textJa?></span>
<input type='radio' naam='score' value ='2' <?php if ($score->score ==2) echo "checked"; ?> /><span style="display: inline-block; margin-left:2px; margin-right:5px"> <?=$textNee?> </span>
<input type='radio' naam='score' value ='3' <?php if ($score->score ==3) echo "checked"; ?> /> <span style="display: inline-block; margin-left:2px;" > <?=$score->thirdoptiontext?></span>
<?php }
else echo $score->scoretype; ?>
</div>
</td>
</tr>
<?php }; };?>
</tbody>
</table>
</td>
</tr>
<?php }; }; ?>
</table>
<?php if ($notitie){
echo "<p>Notitie</p>";
echo "<span style='font-size:0.8em'>".$notitie."</span>";
} ?>
<div style="width: 950px;margin-top: 20px; "><?=$zichtbaar ?></div>
<?php //}; ?>
</body>
</html>
+39 -1
View File
@@ -42,6 +42,37 @@
font-style: normal;
}
input[type='radio']:after {
width: 15px;
height: 15px;
border-radius: 15px;
top: -2px;
left: -1px;
position: relative;
background-color: #ffffff;
content: '';
display: inline-block;
visibility: visible;
border: 2px solid gainsboro;
}
input[type='radio']:checked:after {
width: 15px;
height: 15px;
border-radius: 15px;
top: -2px;
left: -1px;
position: relative;
background-color: #6f0b3d !important;
content: '';
display: inline-block;
visibility: visible;
border: 2px solid gainsboro;
}
.breakpagepdf{
page-break-after: always;
}
.appriseOuter{
border: 1px solid #003469
@@ -854,6 +885,13 @@ tr.selected, td.selected{
padding-right: 3px;
max-width:40px;
}
.alleenVoorPdf{
display: none;
}
.nietVoorPdf{
display: inline;
}
.integer{
text-align: right;
padding-right: 3px;
@@ -978,7 +1016,7 @@ z-index: 50;
}
.noinput{
border:none;
background-color: #ffffff important!;
background-color: #ffffff !important;
}
.kopje{
background-color: #d8a8bf;
+65 -8
View File
@@ -118,6 +118,7 @@ $(function(){
bezig : ko.observable(false),
meetellen : ko.observable(false),
optieslengte : ko.observable(0),
module : ko.observable(''),
initBindings :function(){
var self = ls.MonitorModel;
@@ -145,6 +146,7 @@ $(function(){
}; // if
self.soort(data.soort);
self.module(data.module);
hideAjaxLoader();
},'json');
},
@@ -211,7 +213,6 @@ $(function(){
fUpdateScoretypeVanaf3: function(data){
var self= ls.MonitorModel
var indicatorscoreID = data;
console.log(this, "this")
var submitData = {
indicatorscoreid : indicatorscoreID,
@@ -260,17 +261,73 @@ $(function(){
fPrint:function(){
var self =ls.MonitorModel;
if (self.bezig()) return;
// if (self.bezig()) return;
self.bezig(true);
var items = ko.toJSON(self.listitems());
var data ={ 'orgversie' : self.selectedOrgversion().info(),
'tabelinfo' : items,
'notitie' : self.notitie()}
data=JSON.stringify(data);
var fvID = self.fvid();
$.post("index.php/monpas/monitor/getlistitems/" + self.selectedOrgversion().id, function(data){
self.listitems.removeAll();
self.scoreopties.removeAll();
if (data.ijkpunten){
$.each(data.ijkpunten,function(i,p){
self.listitems.push(new fAddListitem(p));
});// each
}; //if
if(data.scoreopties){
$.each(data.scoreopties,function(x,o){
self.scoreopties.push(new fAddScoreoptie(o));
});// each
self.optieslengte(self.scoreopties().length);
}
self.notitie(data.notitie);
if(data.meetellen && data.meetellen == 1) {
self.meetellen(true);
}
else{
self.meetellen(false);
}
self.fvid(fvID);
self.fMaakPDF();
},'json');
self.bezig(false);
},
fMaakPDF(){
var self = ls.MonitorModel;
var module = self.module();
var info = self.selectedOrgversion().info();
var tabel = document.getElementById("invulTabel").outerHTML;
var notitie = false;
var ingevuldenotitie = self.notitie();
if (ingevuldenotitie && ingevuldenotitie.length > 0)
notitie = document.getElementById("invulNotitie").outerHTML;
var zichtbaar = document.getElementById("invulZichtbaar").outerHTML;
console.log( notitie, "notitie")
var sd = {
'module' : module,
'info' : info,
'tabel' : tabel,
'notitie' : notitie,
'zichtbaar' : zichtbaar,
'filenaam' : 'formulier' + self.module()+ 'nr' + self.selectedOrgversion().periodenummer
}
data=JSON.stringify(sd);
var $form = $("<form method='post' action='index.php/monpas/monitor/printlijst' target='_blank'>").append($('<input type = "hidden" name="data" id ="data">').val(data) );
$form.appendTo("body").submit();
self.bezig(false);
}
} ; // definition van model