app.controller('ScenarioOverviewCtrl', function($rootScope, $scope, $http, $location) { if ($rootScope && $rootScope['user'] && $rootScope['user']['user_role_id'] && $rootScope['user']['user_role_id'] >= 4) { //Draaiboeken OVERZICHT employees and higher $scope.scenariosOverview = { name: 'Draaiboeken', //Panel class panelClass: 'panel-trainingskampen', controller: 'scenario', function: 'getForOverview', showFilters: true, pageLimit: 10, fields: [ 'id', 'name', 'customer_id', 'scenario_status_id', 'from', 'to', 'quotation_status', 'activity_status_id' ], //pair the customer table subQueries: { 'customer': { 'lfield': 'customer_id', 'ffield': 'id', 'controller': 'customer', 'function': 'getForOverview', }, 'scenario_status': { 'lfield': 'scenario_status_id', 'ffield': 'id', 'controller': 'scenario_status', }, 'activity_status': { 'lfield': 'activity_status_id', 'ffield': 'id', 'controller': 'activity_status', } }, fieldDetails: { 'id': { 'label': 'Nummer', }, 'name': { 'label': 'Trainingskamp', }, 'customer_id': { 'label': 'Klant', 'changeTo': ['customer.company_name'], }, 'scenario_status_id': { 'label': 'Status', 'changeTo': ['scenario_status.name'], }, 'from': { 'label': 'Van datum', 'sortAsc': false, }, 'to':{ 'label': 'Tot datum', 'sortAsc': false, }, 'quotation_status':{ 'label': 'Offerte status', }, 'activity_status_id':{ 'label': 'Programma status', 'changeTo': ['activity_status.name'], } }, buttons: { 'C':{ 'id': 'c', 'header': false, 'inline': false, }, 'R': { 'id': 'r', 'name': 'Bekijk traingskamp', 'label': 'Bekijk', 'confirmName': 'View', 'confirmClass': 'info', 'inline': true, 'header': false, 'icon': 'fa-arrow-right', 'action': 'toScenario', 'parentScope': true, }, 'P': { 'id': 'p', 'name': 'Bekijk pdf', 'label': 'PDF', 'confirmName': 'pdf', 'confirmClass': 'pdf', 'inline': true, 'header': false, 'icon': 'fa-file', 'action': 'toPdf', 'parentScope': true, 'whereField': 'scenario_status_id', 'where': { '!=': '1', }, }, 'AC': { 'id': 'ac', 'name': 'Voeg samenwerkingspartner toe', 'label': 'Samenwerkingspartner', 'confirmName': 'Samenwerkingspartner', 'confirmClass': 'success', 'inline': true, 'header': false, 'icon': 'fa-user-plus', 'action': 'addCooperationPartner', 'parentScope': true, 'whereField': 'scenario_status_id', 'where': { '!=': '3', }, }, 'AR': { 'id': 'ar', 'name': 'Archiveer', 'label': 'Archiveer', 'confirmName': 'Archiveer', 'confirmClass': 'success', 'inline': true, 'header': false, 'icon': 'fa-archive', 'action': 'archiveScenario', 'parentScope': true, }, 'U':{ 'id': 'u', 'header': false, 'inline': false, }, 'D':{ 'id': 'd', 'name': 'Verwijder', 'label': 'Verwijder', 'confirmName': 'Delete', 'confirmClass': 'warning', 'inline': ($scope.user.role && $scope.user.role.id && $scope.user.role.id > 4 ? true : false), 'icon':'fa-trash', 'action': 'delete', }, } } } else { //Draaiboeken OVERZICHT lower then employees $scope.scenariosOverview = { name: 'Draaiboeken', //Panel class panelClass: 'panel-trainingskampen', controller: 'scenario', function: 'getForOverview', showFilters: true, pageLimit: 10, fields: [ 'name', 'customer_id', 'scenario_status_id', 'from', 'to', ], //pair the customer table subQueries: { 'customer': { 'lfield': 'customer_id', 'ffield': 'id', 'controller': 'customer', 'function': 'getForOverview', }, 'scenario_status': { 'lfield': 'scenario_status_id', 'ffield': 'id', 'controller': 'scenario_status', }, }, fieldDetails: { 'name': { 'label': 'Trainingskamp', }, 'customer_id': { 'label': 'Klant', 'changeTo': ['customer.company_name'], }, 'scenario_status_id': { 'label': 'Status', 'changeTo': ['scenario_status.name'], }, 'from': { 'label': 'Van datum', 'sortAsc': false, }, 'to':{ 'label': 'Tot datum', 'sortAsc': false, } }, buttons: { 'C':{ 'id': 'c', 'header': false, 'inline': false, }, 'R': { 'id': 'r', 'name': 'Bekijk traingskamp', 'label': 'Bekijk', 'confirmName': 'View', 'confirmClass': 'info', 'inline': true, 'header': false, 'icon': 'fa-arrow-right', 'action': 'toScenario', 'parentScope': true, 'whereField': 'scenario_status_id', 'where': { '!=': '1', }, }, 'P': { 'id': 'p', 'name': 'Bekijk pdf', 'label': 'PDF', 'confirmName': 'pdf', 'confirmClass': 'pdf', 'inline': true, 'header': false, 'icon': 'fa-file', 'action': 'toPdf', 'parentScope': true, 'whereField': 'scenario_status_id', 'where': { '!=': '1', }, }, 'U':{ 'id': 'u', 'header': false, 'inline': false, }, 'D':{ 'id': 'd', 'header': false, 'inline': false, }, } } } //translate table $scope.tableReady = function (tableName) { if (tableName === 'Draaiboeken') { $scope.scenariosOverview.labels = { 'of': 'van', 'rows': 'rijen', 'lastUpdated': 'Laatste wijziging', 'showNotSelectedRows': 'Toon niet geselecteerde rijen', 'showSelectedRows': 'Toon geselecteerde rijen', 'selectAllRows': 'Selecteer alle rijen', 'deSelectAllRows': 'De-selecteer alle rijen', 'selectFilteredRows': 'Selecteer gefilterde rijen', 'deSelectFilteredRows': 'De-selecteer gefilterde rijen', 'false': 'Mislukt', 'true': 'Gelukt', 'statistics': 'Statistieken', 'deleteAllRowsMessage': 'Let op! Je staat op het punt alle geselecteerde rijen te verwijderen', 'ready' : 'Klaar', 'processSubFields' : 'Verwerk subvelden', 'alreadyLoaded' : 'al ingeladen in data.', 'errorInFetching' : 'Error in ophalen', 'dataAvailable' : 'Data al beschikbaar', 'loading' : 'Laden...', }; } } //archive scenario $scope.archiveScenario = function(btn, row, blnSubmit) { //update scenario with archived 1 let req = { method: 'POST', url: '/scenario/update/' + row.id, data: {archived: 1}, } $http(req).then(function(response) { if (response.status && response.data.status) { swal({ title: 'Gelukt!', text: 'Het draaiboek is gearchiveerd', icon: 'success', }); $scope.scenariosOverview.call('initiate'); } else { swal({ title: 'Let op!', text: response.data.message, icon: 'error', }); } }) } //ga naar draaiboek $scope.toScenario = function(btn, row, blnSubmit) { $location.url('/page/draaiboek/' + row['id']); } //ga naar pdf $scope.toPdf = function(btn, row, blnSubmit) { window.open('/scenario/createPdf/' + row['id']); } //get cooperation partners for select $scope.getCooperationPartners = function() { $scope.cooperationPartners = []; let req = { method: 'GET', url: '/scenario/getCooperationPartners', } $http(req).then(function(response) { if (response.status && response.data.status) { $scope.cooperationPartners = response.data.data; } }); } $scope.getCooperationPartners(); //add cooperation partner $scope.addCooperationPartner = function(btn, row, blnSubmit) { $scope.selectedRow = row; $("#cooperationPartnerModal").modal('toggle'); } //save cooperation partner by scenario $scope.saveCooperationPartner = function() { let addPartner = {'user_id': $scope.partner_id, 'scenario_id': $scope.selectedRow['id']} if(addPartner.user_id !== null && addPartner.user_id !== undefined){ let req = { method: 'POST', url: '/scenario_cooperation_partner/insert', data: addPartner, } $http(req).then(function(response) { if (response.status && response.data.status) { swal({ title: 'Gelukt!', text: 'Samenwerkingspartner toegevoegd aan draaiboek ' + $scope.selectedRow['name'], icon: 'success', }) } else { swal({ title: 'Let op!', text: response.data.message, icon: 'error', }) } }) $scope.partner_id = null; $("#cooperationPartnerModal").modal('toggle'); }else{ swal({ title: 'Let op!', text: 'Kies alstublieft een samenwerkingspartner om toe te voegen', icon: 'error', }) } } // update activity status $scope.processActivity = function(btn, row, blnSubmit) { //update scenario with activity status 1 let req = { method: 'POST', url: '/scenario/update/' + row.id, data: {activity_status_id: 2}, } $http(req).then(function(response) { if (response.status && response.data.status) { swal({ title: 'Gelukt!', text: 'De programma status van het scenario is aangepast.', icon: 'success', }); $scope.scenariosOverview.call('initiate'); } else { swal({ title: 'Let op!', text: response.data.message, icon: 'error', }); } }); } });