function results(e){ if(isArray(e)){ $('#table').DataTable().ajax.reload(); } else { if(isNumber(e)){ console.log(e); } else { alert(e); } } } function config($stateProvider, $urlRouterProvider, $ocLazyLoadProvider, $locationProvider) { var tempUrl = "views/common/page.html"; $urlRouterProvider.otherwise("/login"); $ocLazyLoadProvider.config({ // Set to true if you want to see what and when is dynamically loaded debug: false }); $stateProvider.state('index',{url: "", abstract: true, templateUrl: "views/common/content.html", // templateUrl: "views/common/contentfullwidth.html", controllerAs: "main", controller: MainCtrl}).state('index.dashboard',{url: "/dashboard", templateUrl: tempUrl, data: { pageTitle: 'Dashboard', specialClass: '' }, controller: function($scope,users,post){ var user = users.data(); post({rt:'dashboard.page'}).success(function(e){ $scope.element = e.obj; $scope.mdata = e.mdata; }); }}).state('login',{url: "/login", templateUrl: "views/login.html", data: { pageTitle: 'Login', specialClass: 'login-bg' }, controller: function($scope,$state,users,post){ users.logout(); $scope.status = 0; post({rt:'logintemp'}).success(function(e){ $scope.company = e; console.log(e); }); angular.element('.txtmail').focus() var input = $('.validate-input .input100'); $scope.submit = function(e,j){ var check = true; for(var i=0; i<"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } */ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('oths.projectent',{menu: { tag: 'nav', show: true, label: 'MZZ Enterprise', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'MZZ Enterprise', specialClass: '' }, url: "/mzzent", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { var row = { prjid:-1, idquo:0, idinv:0 } gotoview(row); }; bfunction.quotview = function ( e, dt, node, config ) { if(rowSel) gotoview(rowSel); } function gotoview(rowSel){ users.setParam({pid: rowSel.prjid, id:rowSel.idquo, iid: rowSel.idinv, idcomp:2}); $state.go('oths.edit'); } post({rt:'job.projectent.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } //console.log(dtcol);return; $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 16, datapost: { rt: 'job.projectent.data', user: user, gval:1}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } */ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('oths.projpreview',{url: "/view/preview/:id/:page", templateUrl: tempUrl, data: { pageTitle: 'Preview', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$stateParams){ var user = users.data(); var param = users.getParam(); if(param == null){ $state.go('oths.project'); return; } var pid = param.pid; // post({rt:'project.preview.view',pid:pid,user:user}).success(function(e){ post({rt:'project.preview.view', id:$stateParams.id, page:$stateParams.page, user:user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); }}).state('oths.projview',{url: "/view/project", templateUrl: tempUrl, data: { pageTitle: 'View Project', specialClass: '' }, controller: function($scope,users,post,$state,$sce){ var user = users.data(); var param = users.getParam(); if(param == null){ $state.go('oths.project'); return; } var pid = param.pid; post({rt:'project.preview.viewproj',pid:pid,user:user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } // $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); }}).state('oths.quotform',{data: { pageTitle: 'Quotation', specialClass: '' }, url: "/quotation/form", templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$window){ var user = users.data(); var param = users.getParam(); var parampost = Object.assign({rt:'project.quotation.form'},param); if(param == null){ $state.go('oths.project'); return; } var xpid = param.pid; post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.groups = e.groups; $scope.details = e.details; }); $scope.submit = function(mode){ var data = $scope.data; var param = {rt:'project.quotation.submit',pid:xpid,data:data,user:user,tms:tms()}; post(param).success(function(e){ if(parseInt(e) == 1){ toastr.options.onShown = function() { $window.location.reload(); } toastr.success('Successfull') } else if (parseInt(e) == 2){ toastr.success('Successfull') $state.go('oths.quotview'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); console.log(e); } }); } $scope.group = function(id,qid){ uiModal({ param: {rt:'project.group.form',id:id,qid:qid,tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'project.group.submit',id:id,idx:qid,data:e.data,user:user, tms:tms()}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; toastr.success('Group Added') } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); console.log(e); } }); }, }); } $scope.delgroup = function(id,txt){ var i = confirm('Are you sure to delete \'' + txt + '\'?'); if(!i){ return; } post({rt:'project.group.delete',id:id,tms:tms()}).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; } else { console.log(e); } }); } $scope.items = function(id,parentid){ uiModal({ param: {rt:'project.details.form',id:id, tms:tms(),type:1}, size: 'xlg', close: function(e){ var param = {rt:'project.details.save',id:id,pid:parentid,data:e.data,user:user, tms:tms()}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; toastr.success('Item Added') } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i){ return; } post({rt:'project.details.delete',id:id,tms:tms()}).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; } else { console.log(e); } }); } }}).state('oths.quotview',{url: "/view/quotation", templateUrl: tempUrl, data: { pageTitle: 'Quotation', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$window,uiModal){ var user = users.data(); var param = users.getParam(); if(param == null){ $state.go('oths.project'); return; } var xpid = param.pid; post({rt:'project.preview.viewquot',user:user, pid: xpid}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.revise = function(){ if(!confirm('Do you want to revise?')) return; post({rt:'project.quotation.revise',pid:xpid,user:user,tms:tms()}) .success(function(e){ if(parseInt(e) != 0){ // users.setParam({id:e}); // $state.go('oths.quotform'); $window.location.reload(); } else { console.log(e); } }); } $scope.quodel = function(){ var i = confirm('Are you sure to delete?'); if(!i) return; var param = {rt:'project.quotation.delete',pid:xpid, user:user,tms:tms()}; post(param).success(function(e){ if(e == 1){ $state.go('oths.edit'); return; } toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); }); } $scope.actionafterconfirm = function(e){ users.setParam({id:e, pid: xpid}); $state.go('oths.confirmation'); } /* $scope.confirmation = function(){ uiModal({ param: {rt:'job.general.modalworkconfirm',pid:xpid, tms:tms()}, close: function(e){ var param = {rt:'project.quotation.confirm',pid:xpid, user:user,tms:tms(),data: e.data}; post(param).success(function(e){ if( e == 0 ){ console.log(e); } else { if(parseInt(e)){ users.setParam({id:e, pid: xpid}); $state.go('oths.confirmation'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); } } }); }, }); } */ }}).state('oths.rpt11quotweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Quotation Week', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Quotation Weekly', specialClass: '' }, url: "/report/weekly/quotation/:mode/:type", params: {mode: 1, type: 'quotation'}, controller: QuotMonthWeekCtrl}).state('oths.rpt12quotmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Quotation Month', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Quotation Monthly', specialClass: '' }, url: "/report/monthly/quotation/:mode/:type", params: {mode: 2, type: 'quotation'}, controller: QuotMonthWeekCtrl}).state('oths.rpt22progressmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Work Progress', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Work Progress', specialClass: '' }, url: "/report/ongoing/:mode/:type", params: {mode: 2, type: 'ongoing'}, controller: QuotMonthWeekCtrl}).state('oths.rpt31revenueweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Revenue Week', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Revenue Weekly', specialClass: '' }, url: "/report/weekly/revenue/:mode/:type", params: {mode: 1, type: 'revenue'}, controller: QuotMonthWeekCtrl}).state('oths.rpt32revenuemonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Revenue Month', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Revenue Monthly', specialClass: '' }, url: "/report/monthly/revenue/:mode/:type", params: {mode: 2, type: 'revenue'}, controller: QuotMonthWeekCtrl}).state('oths.rpt41salesweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Sales Week', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Sales Weekly', specialClass: '' }, url: "/report/weekly/sales/:mode/:type", params: {mode: 1, type: 'rsales'}, controller: QuotMonthWeekCtrl}).state('oths.rpt42salesmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Sales Month', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Sales Monthly', specialClass: '' }, url: "/report/monthly/sales/:mode/:type", params: {mode: 2, type: 'rsales'}, controller: QuotMonthWeekCtrl}).state('tmm',{menu: { tag: 'nav', show: true, label: 'TM Mapping', val: access.admin, cust: group.tmm, class: 'fas fa-project-diagram fa-fw'}, url: "/tmm", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl,}).state('tmm.boq',{data: { pageTitle: 'BOQ Form', specialClass: '' }, url: "/boq/:xqid", params: {xqid:0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); //var xqid = param.id; var xpid = param.pid; var xqid = $stateParams.xqid; var parampost = Object.assign({rt:'tmm.boq.form', id: xqid, pid: xpid}); if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.submit = function(mode){ var data = $scope.data; var param = {rt:'tmm.boq.submit',id:xqid,data:data,user:user,mode:mode,tms:tms()}; if(mode == 1 && xqid > 0 ){ if(!confirm('Are you sure?')) return; if($scope.details.length == 0 || $scope.data.quotgrand == 0){ toastr.error('Please complete the BOQ details','Unsuccessfull',{timeOut: 5000}); return; } } if(xqid == undefined) { param.id = 0; xqid = 0; } post(param).success(function(e){ if(parseInt(e) == 0) { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); console.log(e); } else { toastr.success('Successfull'); if(mode == 1){ $state.go('tmm.project'); } else { if(xqid == 0){ //users.setParam({pid: xpid, id:e}); //$window.location.reload(); $state.go('tmm.boq',{xqid:e}); } else { $state.go('tmm.boqview',{xqid:xqid}); //$state.go('tmm.editlor'); } } } }); } $scope.items = function(id){ uiModal({ param: {rt:'tmm.details.form',id:id, tms:tms(),type:1}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmm.details.save',id:id,idx:xqid,data:e.data,user:user,tms:tms(),det:1}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.data = e.data; toastr.success('Item added successfull'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i){ return; } post({rt:'tmm.details.delete',id:id,xid:xqid,tms:tms(),type:1}).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; toastr.success('Item deleted successfull'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}) console.log(e); } }); } }}).state('tmm.boqrevise',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/boq/revise", templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } var param = {rt:'tmm.boq.revise',pid:xpid,user:user,tms:tms()}; post(param).success(function(e){ if(isNumber(e) && e > 0){ toastr.options.onShown = function() { users.setParam({pid: xpid, id:e}); $state.go('tmm.boq') } toastr.success('Revised successfull') } else { toastr.options.onShown = function() { //$state.go('tmm.editlor'); console.log(e); } toastr.error(e,'Revised Unsuccessfull',{timeOut:5000}) } }); }}).state('tmm.boqtoinv',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/inv/generated/:poid/:boq", params: {poid: 0,boq:0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; var poid = $stateParams.poid; var boq = $stateParams.boq; if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } if(poid == null || boq == null ){ $state.go('tmm.editlor'); return; } var dp = {rt:'tmm.invoice.quo2inv',pid:xpid,poid:poid,boq:boq,user:user,tms:tms()}; console.log(dp); post(dp).success(function(e){ if( parseInt(e) > 0 ){ users.setParam({pid: xpid, id:param.id}); $state.go('tmm.invform',{invid:e}) return; } else { toastr.options.onShown = function() { $state.go('tmm.editlor'); console.log(e); } toastr.error('Invoice cannot be created','Unsuccessfull',{timeOut:5000}) } }); }}).state('tmm.boqtoinv0',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/inv/generated/:poid", params: {poid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; var poid = $stateParams.poid; if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } if(poid == null){ $state.go('tmm.project'); return; } var dp = {rt:'tmm.invoice.quo2inv',pid:xpid,poid:poid,user:user,tms:tms()}; post(dp).success(function(e){ if( parseInt(e) > 0 ){ users.setParam({pid: xpid, id:param.id}); $state.go('tmm.invform',{invid:e}) return; } else { toastr.options.onShown = function() { $state.go('tmm.editlor'); console.log(e); } toastr.error('Invoice cannot be created','Unsuccessfull',{timeOut:5000}) } }); }}).state('tmm.boqview',{url: "/boq/view/:xqid", params: {xqid:0}, templateUrl: tempUrl, data: { pageTitle: 'BOQ View', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$window,$stateParams){ var user = users.data(); var param = users.getParam(); var xqid = $stateParams.xqid; //var parampost = Object.assign({rt:'tmm.preview.boqview',user:user},param); var parampost = {rt:'tmm.preview.boqview',user:user, id: xqid}; var url = ''; post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.actionafterconfirm = function(){ $state.go('tmm.project'); } }}).state('tmm.doform',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/do/form/:invid", params:{invid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var invid = $stateParams.invid; var param = users.getParam(); var parampost = Object.assign({rt:'tmm.do.form',invid:invid},param); var xpid = param.pid; if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } if(invid == 0) { $state.go('tmm.editlor'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.save = function(){ var data = $scope.data; post({rt:'tmm.do.save',pid:xpid, invid:invid,user:user,tms:tms(),data:data}).success(function(e){ if(e == 0){ toastr.error(e,'Unsuccessfull',{timeOut:5000}) return; } toastr.success('Successfull') }); } $scope.items = function(id){ uiModal({ param: {rt:'tmm.details.form',id:id, tms:tms(),type:2}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmm.details.save',id:id, idx:invid,data:e.data, user:user, tms:tms(),det:2}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; toastr.success('Successfull') } else { toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i) return; var dp = {rt:'tmm.details.delete',id:id,pid:xpid,tms:tms(), xid:invid,type:2}; post(dp).success(function(e){ if(isObject(e)){ toastr.success('Successfull deleted') $scope.details = e.details; // $scope.data = e.data; } else { toastr.success(e,'Unsuccessfull',{timeOut:5000}) // console.log(e); } }); } }}).state('tmm.doview',{templateUrl: tempUrl, data: { pageTitle: 'DO', specialClass: '' }, url: "/view/DO/:xdo", params: {xdo:0}, controller: function($scope,users,post,$state,$sce,$window,$stateParams){ var user = users.data(); var param = users.getParam(); var xdo = $stateParams.xdo; if(xdo == 0){ $state.go('tmm.project'); return; } post({rt:'tmm.preview.viewdo',user:user, xdo: xdo}).success(function(e){ if(e == 0){ $state.go('tmm.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.invdel = function(){ var i = confirm('Are you sure to delete?'); if(!i) return; var param = {rt:'tmm.invoice.delete',pid:xpid, invid:invid, user:user,tms:tms()}; post(param).success(function(e){ if(e == 202){ alert('Invoice cannot be deleted'); return; } if(e == 1){ $state.go('tmm.editlor'); return; } toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); }); } }}).state('tmm.editlor',{data: { pageTitle: 'Edit LOR', specialClass: '' }, url: "/lor/edit/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: ProjectTMMCtrl, controllerAs: 'ptmm'}).state('tmm.editlor0',{data: { pageTitle: 'Edit LOR', specialClass: '' }, url: "/lor/edit/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: ProjectTMMCtrl}).state('tmm.entedit',{data: { pageTitle: 'Project', specialClass: '' }, url: "/project/edit/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: TmmContrCtrl}).state('tmm.invform',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/inv/form/:invid", params:{invid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var invid = $stateParams.invid; var param = users.getParam(); var parampost = Object.assign({rt:'tmm.invoice.form',invid:invid},param); var xpid = param.pid; if(param == null){ $state.go('tmm.project'); alert('Error page'); return; } if(invid == 0) { $state.go('tmm.editlor'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.save = function(){ var data = $scope.data; post({rt:'tmm.invoice.save',pid:xpid, invid:invid,user:user,tms:tms(),data:data}).success(function(e){ if(e == 0){ toastr.error(e,'Unsuccessfull',{timeOut:5000}) return; } toastr.success('Successfull') }); } $scope.items = function(id){ uiModal({ param: {rt:'tmm.details.form',id:id, tms:tms(),type:2}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmm.details.save',id:id, idx:invid,data:e.data, user:user, tms:tms(),det:2}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; toastr.success('Successfull') } else { toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i) return; var dp = {rt:'tmm.details.delete',id:id,pid:xpid,tms:tms(), xid:invid,type:2}; post(dp).success(function(e){ if(isObject(e)){ toastr.success('Successfull deleted') $scope.details = e.details; // $scope.data = e.data; } else { toastr.success(e,'Unsuccessfull',{timeOut:5000}) // console.log(e); } }); } }}).state('tmm.invview',{url: "/view/invoice/:invid", params: {invid:0}, templateUrl: tempUrl, data: { pageTitle: 'Invoice', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$window,$stateParams){ var user = users.data(); var param = users.getParam(); var invid = $stateParams.invid; if(param == null){ $state.go('tmm.project'); return; } if(invid == 0){ $state.go('tmm.editlor'); return; } var xpid = param.pid; post({rt:'tmm.preview.invview', user:user, pid: xpid, invid: invid}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.revise = function(){ var i = confirm('Do you want to revise?'); if(!i) return; post({rt:'tmm.invoice.revise',pid:xpid, user:user, invid: invid, tms:tms()}).success(function(e){ if(parseInt(e) != 0){ $window.location.reload(); } else { toastr.error(e,'Revise unsuccessfull',{timeOut:5000}); console.log(e); } }); } $scope.invdel = function(){ var i = confirm('Are you sure to delete?'); if(!i) return; var param = {rt:'tmm.invoice.delete',pid:xpid, invid:invid, user:user,tms:tms()}; post(param).success(function(e){ if(e == 202){ alert('Invoice cannot be deleted'); return; } if(e == 1){ $state.go('tmm.editlor'); return; } toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); }); } }}).state('tmm.newlor',{menu: { tag: 'nav', show: true, label: 'Create LOR', val: access.admin, class: 'fas fa-file fa-fw'}, data: { pageTitle: 'Create LOR', specialClass: '' }, url: "/lor/new/:mode", templateUrl: tempUrl, params: {mode: 0}, controller: ProjectTMMCtrl}).state('tmm.project',{menu: { tag: 'nav', show: true, label: 'TM Mapping', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'TM Mapping', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.clone = function ( e, dt, node, config ) { var id = 0; if(!rowSel) return; var pono = prompt("Please enter PO NO", ""); if (pono != null) { if(pono.length < 5) return; post({rt:'job.tmm.duplicate', user: user, pid: rowSel.prjid, pono: pono}).success(function(e){ var chkvalid = !/\D/.test(e); if(chkvalid){ if( (e*1) > 0){ dt.ajax.reload(); console.log(e); return; //users.setParam({pid: e,id:rowSel.idquo, idinv:0}); //$state.go('tmm.editlor'); return; } } toastr.error(e,'Unsuccessfull',{timeOut: 5000}); }); } }; function gotoview(rowSel){ users.setParam({pid: rowSel.prjid,id:rowSel.idquo, idinv:rowSel.idinv}); $state.go('tmm.' + rowSel.act); } post({rt:'job.tmm.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 10, datapost: { rt: 'job.tmm.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('tmm.projectent',{menu: { tag: 'nav', show: true, label: 'Contractor', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Contractor', specialClass: '' }, url: "/mzzent", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { var row = { prjid:-1, idquo:0, idinv:0 } gotoview(row); }; bfunction.quotview = function ( e, dt, node, config ) { if(rowSel) gotoview(rowSel); } function gotoview(rowSel){ users.setParam({pid: rowSel.prjid, id:rowSel.idquo, iid: rowSel.idinv, idcomp:2}); $state.go('tmm.entedit'); } post({rt:'job.tmment.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 16, datapost: { rt: 'job.tmment.data', user: user, gval:3}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('tmm.projectfollowup',{menu: { tag: 'nav', show: true, label: 'Follow Up', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Follow Up', specialClass: '' }, url: "/followup", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; function gotoview(rowSel){ users.setParam({pid: rowSel.prjid,id:rowSel.idquo, idinv:rowSel.idinv}); $state.go('tmm.' + rowSel.act); } post({rt:'job.tmm.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'job.tmm.datafollow', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('tmm.rpt1lor',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'LOR Report', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'LOR Report', specialClass: '' }, url: "/report/lor/:mode/:type", params: {mode: 3, type: 'lorsummary'}, controller: RptSummaryCtrl}).state('tmm.rpt2po',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Receive PO', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Receive PO', specialClass: '' }, url: "/report/po/:mode/:type", params: {mode: 2}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; // mode = 1 Weekly // mode = 2 Monthly if(mode == undefined) return; param = {rt:'tmm.preview.viewporeport', mode: mode, user: user} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; $scope.mdata = e.mdata; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } else if(mode == 3){ addr = '&year='; } var range = false; $scope.changecal = function(e){ isShow = !isShow; if(e != '') range = e; var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate = function(i){ sts = ''; if(i > 0){ sts = '&state=' + i; } url2 = url + sts; sts = ''; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate2 = function(i){ if(i > 0){ sts = '&state=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; } document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selarea = function(i){ sts = ''; if(i > 0){ sts = '&area=' + i; } // var url2 = url + addr + range + sts; // if(!range){ url2 = url + sts; sts = ''; // } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('tmm.rpt30inv',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Invoice Report', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Invoice Report', specialClass: '' }, url: "/report/inv/:mode/:type", params: {mode: 2}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; // mode = 1 Weekly // mode = 2 Monthly if(mode == undefined) return; param = {rt:'tmm.preview.viewsalesreport', mode: mode, user: user} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; $scope.mdata = e.mdata; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } else if(mode == 3){ addr = '&year='; } var range = false; $scope.changecal = function(e){ isShow = !isShow; if(e != '') range = e; var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate = function(i){ sts = ''; if(i > 0){ sts = '&state=' + i; } url2 = url + sts; sts = ''; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate2 = function(i){ if(i > 0){ sts = '&state=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; } document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selarea = function(i){ sts = ''; if(i > 0){ sts = '&area=' + i; } // var url2 = url + addr + range + sts; // if(!range){ url2 = url + sts; sts = ''; // } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('tmm.rpt310swipe',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Swipe Report', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Swipe Report', specialClass: '' }, url: "/report/swipe/:mode/:type", params: {mode: 2, type: 'swipesummary'}, controller: RptSummaryCtrl}).state('tmm.rpt31revenueweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Revenue Week', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Revenue Weekly', specialClass: '' }, url: "/report/weekly/revenue/:mode/:type", params: {mode: 1, type: 'revenue'}, controller: QuotTMCtrl}).state('tmm.rpt32revenuemonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Revenue Month', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Revenue Monthly', specialClass: '' }, url: "/report/monthly/revenue/:mode/:type", params: {mode: 2, type: 'revenue'}, controller: QuotTMCtrl}).state('tmm.rpt41salesweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Sales Week', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Sales Weekly', specialClass: '' }, url: "/report/weekly/sales/:mode/:type", params: {mode: 1, type: 'rsales'}, controller: QuotTMCtrl}).state('tmm.rpt42salesmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Sales Month', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Sales Monthly', specialClass: '' }, url: "/report/monthly/sales/:mode/:type", params: {mode: 2, type: 'rsales'}, controller: QuotTMCtrl}).state('tmd',{menu: { tag: 'nav', show: true, label: 'TM Dismantle', val: access.admin, cust: group.tmd, class: 'fas fa-project-diagram fa-fw'}, url: "/tmd", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl,}).state('tmd.boq',{data: { pageTitle: 'BOQ Form', specialClass: '' }, url: "/boq", templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$window){ var user = users.data(); var param = users.getParam(); var parampost = Object.assign({rt:'tmd.boq.form'},param); var xqid = param.id; var xpid = param.pid; if(param == null){ $state.go('tmd.project'); alert('Error page'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.submit = function(mode){ var data = $scope.data; var param = {rt:'tmd.boq.submit',id:xqid,data:data,user:user,mode:mode,tms:tms()}; if(mode == 1 && xqid > 0 ){ if(!confirm('Are you sure?')) return; if($scope.details.length == 0 || $scope.data.quotgrand == 0){ toastr.error('Please complete the BOQ details','Unsuccessfull',{timeOut: 5000}); return; } } if(xqid == undefined) { param.id = 0; xqid = 0; } post(param).success(function(e){ if(parseInt(e) == 0) { toastr.error(e,'Unsuccessfull',{timeOut: 5000}); console.log(e); } else { toastr.success('Successfull'); if(mode == 1){ $state.go('tmd.project'); } else { if(xqid == 0){ users.setParam({pid: xpid, id:e}); $window.location.reload(); } else { $state.go('tmd.editlor'); } } } }); } $scope.items = function(id){ uiModal({ param: {rt:'tmd.details.form',id:id, tms:tms(),type:1}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmd.details.save',id:id,idx:xqid,data:e.data,user:user,tms:tms(),det:1}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.data = e.data; toastr.success('Item added successfull'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i){ return; } post({rt:'tmd.details.delete',id:id,xid:xqid,tms:tms(),type:1}).success(function(e){ if(isObject(e)){ $scope.details = e.details; $scope.groups = e.groups; toastr.success('Item deleted successfull'); } else { toastr.error(e,'Unsuccessfull',{timeOut: 5000}) console.log(e); } }); } }}).state('tmd.boqrevise',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/boq/revise", templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; if(param == null){ $state.go('tmd.project'); alert('Error page'); return; } var param = {rt:'tmd.boq.revise',pid:xpid,user:user,tms:tms()}; post(param).success(function(e){ if(isNumber(e) && e > 0){ toastr.options.onShown = function() { users.setParam({pid: xpid, id:e}); $state.go('tmd.boq') } toastr.success('Revised successfull') } else { toastr.options.onShown = function() { //$state.go('tmd.editlor'); console.log(e); } toastr.error(e,'Revised Unsuccessfull',{timeOut:5000}) } }); }}).state('tmd.boqtoinv',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/inv/generated/:poid", params: {poid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; var poid = $stateParams.poid; if(param == null){ $state.go('tmd.project'); alert('Error page'); return; } if(poid == null){ $state.go('tmd.project'); return; } var dp = {rt:'tmd.invoice.quo2inv',pid:xpid,poid:poid,user:user,tms:tms()}; post(dp).success(function(e){ if( parseInt(e) > 0 ){ users.setParam({pid: xpid, id:param.id}); $state.go('tmd.invform',{invid:e}) return; } else { toastr.options.onShown = function() { $state.go('tmd.editlor'); console.log(e); } toastr.error('Invoice cannot be created','Unsuccessfull',{timeOut:5000}) } }); }}).state('tmd.boqview',{url: "/boq/view", templateUrl: tempUrl, data: { pageTitle: 'BOQ View', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$window){ var user = users.data(); var param = users.getParam(); var parampost = Object.assign({rt:'tmd.preview.boqview',user:user},param); var url = ''; post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.actionafterconfirm = function(){ $state.go('tmd.project'); } }}).state('tmd.doform',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/do/form/:invid", params:{invid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var invid = $stateParams.invid; var param = users.getParam(); var parampost = Object.assign({rt:'tmd.do.form',invid:invid},param); var xpid = param.pid; if(param == null){ $state.go('tmd.project'); alert('Error page'); return; } if(invid == 0) { $state.go('tmd.editlor'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.save = function(){ var data = $scope.data; post({rt:'tmd.do.save',pid:xpid, invid:invid,user:user,tms:tms(),data:data}).success(function(e){ if(e == 0){ toastr.error(e,'Unsuccessfull',{timeOut:5000}) return; } toastr.success('Successfull') }); } $scope.items = function(id){ uiModal({ param: {rt:'tmd.details.form',id:id, tms:tms(),type:2}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmd.details.save',id:id, idx:invid,data:e.data, user:user, tms:tms(),det:2}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; toastr.success('Successfull') } else { toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i) return; var dp = {rt:'tmd.details.delete',id:id,pid:xpid,tms:tms(), xid:invid,type:2}; post(dp).success(function(e){ if(isObject(e)){ toastr.success('Successfull deleted') $scope.details = e.details; // $scope.data = e.data; } else { toastr.success(e,'Unsuccessfull',{timeOut:5000}) // console.log(e); } }); } }}).state('tmd.doview',{templateUrl: tempUrl, data: { pageTitle: 'DO', specialClass: '' }, url: "/view/DO/:xdo", params: {xdo:0}, controller: function($scope,users,post,$state,$sce,$window,$stateParams){ var user = users.data(); var param = users.getParam(); var xdo = $stateParams.xdo; if(xdo == 0){ $state.go('tmd.project'); return; } post({rt:'tmd.preview.viewdo',user:user, xdo: xdo}).success(function(e){ if(e == 0){ $state.go('tmd.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.invdel = function(){ var i = confirm('Are you sure to delete?'); if(!i) return; var param = {rt:'tmd.invoice.delete',pid:xpid, invid:invid, user:user,tms:tms()}; post(param).success(function(e){ if(e == 202){ alert('Invoice cannot be deleted'); return; } if(e == 1){ $state.go('tmd.editlor'); return; } toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); }); } }}).state('tmd.editlor',{data: { pageTitle: 'Edit LOR', specialClass: '' }, url: "/lor/edit/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: ProjectTMDCtrl}).state('tmd.invform',{data: { pageTitle: 'Invoice', specialClass: '' }, url: "/inv/form/:invid", params:{invid: 0}, templateUrl: tempUrl, controller: function($scope,users,post,uiModal,$state,$stateParams){ var user = users.data(); var invid = $stateParams.invid; var param = users.getParam(); var parampost = Object.assign({rt:'tmd.invoice.form',invid:invid},param); var xpid = param.pid; if(param == null){ $state.go('tmd.project'); alert('Error page'); return; } if(invid == 0) { $state.go('tmd.editlor'); return; } post(parampost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.details = e.details; $scope.mdata = e.mdata; }); $scope.save = function(){ var data = $scope.data; post({rt:'tmd.invoice.save',pid:xpid, invid:invid,user:user,tms:tms(),data:data}).success(function(e){ if(e == 0){ toastr.error(e,'Unsuccessfull',{timeOut:5000}) return; } toastr.success('Successfull') }); } $scope.items = function(id){ uiModal({ param: {rt:'tmd.details.form',id:id, tms:tms(),type:2}, controller: 'ProjectModalCtrl', size: 'lg', close: function(e){ var param = {rt:'tmd.details.save',id:id, idx:invid,data:e.data, user:user, tms:tms(),det:2}; post(param).success(function(e){ if(isObject(e)){ $scope.details = e.details; toastr.success('Successfull') } else { toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); } }); }, }); } $scope.delitem = function(id){ var i = confirm('Are you sure to delete?'); if(!i) return; var dp = {rt:'tmd.details.delete',id:id,pid:xpid,tms:tms(), xid:invid,type:2}; post(dp).success(function(e){ if(isObject(e)){ toastr.success('Successfull deleted') $scope.details = e.details; // $scope.data = e.data; } else { toastr.success(e,'Unsuccessfull',{timeOut:5000}) // console.log(e); } }); } }}).state('tmd.invview',{url: "/view/invoice/:invid", params: {invid:0}, templateUrl: tempUrl, data: { pageTitle: 'Invoice', specialClass: '' }, controller: function($scope,users,post,$state,$sce,$window,$stateParams){ var user = users.data(); var param = users.getParam(); var invid = $stateParams.invid; if(param == null){ $state.go('tmd.project'); return; } if(invid == 0){ $state.go('tmd.editlor'); return; } var xpid = param.pid; post({rt:'tmd.preview.invview', user:user, pid: xpid, invid: invid}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.revise = function(){ var i = confirm('Do you want to revise?'); if(!i) return; post({rt:'tmd.invoice.revise',pid:xpid, user:user, invid: invid, tms:tms()}).success(function(e){ if(parseInt(e) != 0){ $window.location.reload(); } else { toastr.error(e,'Revise unsuccessfull',{timeOut:5000}); console.log(e); } }); } $scope.invdel = function(){ var i = confirm('Are you sure to delete?'); if(!i) return; var param = {rt:'tmd.invoice.delete',pid:xpid, invid:invid, user:user,tms:tms()}; post(param).success(function(e){ if(e == 202){ alert('Invoice cannot be deleted'); return; } if(e == 1){ $state.go('tmd.editlor'); return; } toastr.error(e,'Unsuccessfull',{timeOut:5000}) console.log(e); }); } }}).state('tmd.newlor',{menu: { tag: 'nav', show: true, label: 'Create LOR', val: access.admin, class: 'fas fa-file fa-fw'}, data: { pageTitle: 'Create LOR', specialClass: '' }, url: "/lor/new/:mode", templateUrl: tempUrl, params: {mode: 0}, controller: ProjectTMDCtrl}).state('tmd.project',{menu: { tag: 'nav', show: true, label: 'Project', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Project', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.clone = function ( e, dt, node, config ) { var id = 0; if(!rowSel) return; var pono = prompt("Please enter PO NO", ""); if (pono != null) { if(pono.length < 5) return; post({rt:'job.tmd.duplicate', user: user, pid: rowSel.prjid, pono: pono}).success(function(e){ var chkvalid = !/\D/.test(e); if(chkvalid){ if( (e*1) > 0){ dt.ajax.reload(); console.log(e); return; //users.setParam({pid: e,id:rowSel.idquo, idinv:0}); //$state.go('tmd.editlor'); return; } } toastr.error(e,'Unsuccessfull',{timeOut: 5000}); }); } }; function gotoview(rowSel){ users.setParam({pid: rowSel.prjid,id:rowSel.idquo, idinv:rowSel.idinv}); $state.go('tmd.' + rowSel.act); } post({rt:'job.tmd.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'job.tmd.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('tmd.rpt2po',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Receive PO', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Receive PO', specialClass: '' }, url: "/report/po/:mode/:type", params: {mode: 2}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; // mode = 1 Weekly // mode = 2 Monthly if(mode == undefined) return; param = {rt:'tmd.preview.viewporeport', mode: mode, user: user} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; $scope.mdata = e.mdata; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } else if(mode == 3){ addr = '&year='; } var range = false; $scope.changecal = function(e){ isShow = !isShow; if(e != '') range = e; var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate = function(i){ sts = ''; if(i > 0){ sts = '&state=' + i; } url2 = url + sts; sts = ''; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate2 = function(i){ if(i > 0){ sts = '&state=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; } document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selarea = function(i){ sts = ''; if(i > 0){ sts = '&area=' + i; } // var url2 = url + addr + range + sts; // if(!range){ url2 = url + sts; sts = ''; // } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('tmd.rpt3inv',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Invoice Report', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Invoice Report', specialClass: '' }, url: "/report/inv/:mode/:type", params: {mode: 2}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; // mode = 1 Weekly // mode = 2 Monthly if(mode == undefined) return; param = {rt:'tmd.preview.viewsalesreport', mode: mode, user: user} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; $scope.mdata = e.mdata; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } else if(mode == 3){ addr = '&year='; } var range = false; $scope.changecal = function(e){ isShow = !isShow; if(e != '') range = e; var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate = function(i){ sts = ''; if(i > 0){ sts = '&state=' + i; } url2 = url + sts; sts = ''; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selstate2 = function(i){ if(i > 0){ sts = '&state=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; } document.getElementById('printout').src = url2; $scope.url = url2; } $scope.selarea = function(i){ sts = ''; if(i > 0){ sts = '&area=' + i; } // var url2 = url + addr + range + sts; // if(!range){ url2 = url + sts; sts = ''; // } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('tnb',{menu: { tag: 'nav', show: true, label: 'TNB', val: access.admin, cust: group.tnb, class: 'fas fa-project-diagram fa-fw'}, url: "/tnb", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl,}).state('tnb.1projnew',{menu: { tag: 'nav', show: true, label: 'Create Project', val: access.admin, class: 'fas fa-file fa-fw'}, data: { pageTitle: 'Create Project', specialClass: '' }, url: "/project/new/:mode", templateUrl: tempUrl, params: {mode: 0}, controller: ProjectTNBCtrl}).state('tnb.project',{menu: { tag: 'nav', show: true, label: 'Project', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Project', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; function gotoview(rowSel){ users.setParam({pid: rowSel.prjid,id:rowSel.idquo}); $state.go('tnb.' + rowSel.act); } post({rt:'job.tnb.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 9, datapost: { rt: 'job.tnb.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('tnb.projupdate',{data: { pageTitle: 'Update Project', specialClass: '' }, url: "/project/edit/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: ProjectTNBCtrl}).state('tnb.psoi',{menu: { tag: 'nav', show: true, label: 'Invoice', val: access.admin, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Invoice', specialClass: '' }, url: "/invoice", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { opemodal(-1); }; function opemodal(id){ users.setParam({id:id}); if(id == -1) $state.go('tnb.soiform'); else if(id > 0) $state.go('tnb.rptsoi'); /* uiModal({ param: {rt:'tnb.soi.modalform', id:id, tms:tms()}, size: 'xlg', close: function(e){ var param = {rt:'tnb.soi.modalsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 0){ console.log(e); toastr.error('Unsuccessfull'); return; } $('#table').DataTable().ajax.reload(); toastr.success('Saved successfull'); }); }, }); */ } post({rt:'job.soi.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'job.soi.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ opemodal(rowSel.soiid); } }); }); } }); }); }}).state('tnb.rpt',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Summary Report', val: access.admin, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Summary Report', specialClass: '' }, url: "/report/summary/:mode/:type", params: {mode: 2, type: 'tnbsummary'}, controller: RptSummaryCtrl}).state('tnb.rptsoi',{templateUrl: tempUrl, data: { pageTitle: 'Invoice', specialClass: '' }, url: "/report/invoice", controller: function($scope,users,post,$state,$sce,$window){ var user = users.data(); var param = users.getParam(); if(param == null){ $state.go('tmm.project'); return; } var id = param.id; post({ rt:'job.preview.soireport',user:user, id: id }).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); }}).state('tnb.soiform',{data: { pageTitle: 'Invoice Form', specialClass: '' }, url: "/invoice/form/:mode", templateUrl: tempUrl, params: {mode: 1}, controller: InvTNBCtrl}).state('op',{menu: { tag: 'nav', show: true, label: 'Operation', val: access.operation, class: 'fas fa-project-diagram fa-fw'}, url: "/operation", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl}).state('op.mapapproved',{url: "/mappingapproved", templateUrl: tempUrl, data: { pageTitle: 'Site Visit', specialClass: '' }, controller: function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; var group = 'op'; post({rt:'project.operation.mapcheck',group:group, id:xpid,user:user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.data = e.data; $scope.mdata = e.mdata; }); $scope.submit = function(){ var i = confirm('Are you sure?'); var param = {rt:'project.operation.appvsubmit',pid:xpid,data:$scope.data,user:user,tms:tms()}; if(!i) return; post(param).success(function(e){ if(e == 1){ $state.go(group+'.project') } else { toastr.error(e,'Unsuccessfull',{timeOut:5000}) // console.log(e); } }); } }}).state('op.mapedit',{templateUrl: tempUrl, data: { pageTitle: 'Edit Data Site', specialClass: '' }, url: "/mapedit/:opid", params: {opid: 0}, controller: function($scope,users,post,dtoptions,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var group = 'op'; var datapost = {rt:'project.operation.mapdata', group:group, user:user, flagupdate:0}; var xpid = 0; var opid = $stateParams.opid; if(opid > 0){ xpid = opid; datapost.flagupdate = 1; } else { if(param == null){ $state.go(group + '.project'); return; } else { xpid = param.pid; } } datapost.pid = xpid; post(datapost).success(function(e){ if(e == 0){ $state.go(group + '.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.op = e.op; $scope.daily = e.daily; $scope.mdata = e.mdata; $scope.data = e.data; }); $scope.submit = function(){ var data = $scope.data; var param = {rt:'project.operation.mapdatasave',id:xpid, data:data, user:user,tms:tms(), flagupdate: 0}; if(opid > 0){ param.flagupdate = 1; } post(param).success(function(e){ if(parseInt(e) == 1){ if(opid > 0){ $state.go('op.rpteditingmonth'); } else { $state.go(group+'.project'); } } else { console.log(e); } }); } },}).state('op.project',{menu: { tag: 'nav', show: true, label: 'Project', val: access.operation, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Project', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.quotview = function ( e, dt, node, config ) { if(rowSel) gotoview(rowSel); } function gotoview(rowSel){ users.setParam({pid: rowSel.prjid, id:rowSel.idquo, iid: rowSel.idinv}); $state.go('op.' + rowSel.act); } post({rt:'job.operation.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } //console.log(dtcol);return; $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'job.operation.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } */ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('op.rpteditingmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Report Editing Map', val: access.operation, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Report Editing Map', specialClass: '' }, url: "/report/monthly/editingmap/:mode/:type", params: {mode: 2, type: 'editingmap'}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; var type = $stateParams.type; if(mode == undefined) return; param = {rt:'project.preview.' + type, mode: mode} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; var range = false; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } $scope.changecal = function(e){ isShow = !isShow; if(e != ''){ range = e; } else { range = ''; } var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.comp = function(i){ sts = ''; if(i > 0){ sts = '&compid=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; sts = ''; } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('op.workorder',{url: "/workorder/", data: { pageTitle: 'Work Order', specialClass: '' }, templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var param = users.getParam(); var xpid = param.pid; var group = 'op'; post({rt:'project.operation.wsorderform',id:xpid,tms:tms(),group:group,user:user,}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.mdata = e.mdata; $scope.data = e.data; }); $scope.submit = function(){ var data = $scope.data; var param = {rt:'project.operation.wsordersave',id:xpid,data:data,user:user,tms:tms()}; post(param).success(function(e){ if(parseInt(e) == 1){ $state.go(group + '.project'); } else { console.log(e); } }); } }}).state('ws',{menu: { tag: 'nav', show: true, label: 'Worksite', val: access.worksite, class: 'fas fa-project-diagram fa-fw'}, url: "/worksite", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl}).state('ws.project',{menu: { tag: 'nav', show: true, label: 'Project', val: access.worksite, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Project', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.quotview = function ( e, dt, node, config ) { if(rowSel) gotoview(rowSel); } function gotoview(rowSel){ users.setParam({pid: rowSel.prjid, id:rowSel.idquo, iid: rowSel.idinv}); $state.go('ws.' + rowSel.act); } post({rt:'job.worksite.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } //console.log(dtcol);return; $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'job.worksite.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } */ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('ws.rpt21workweek',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Report Weekly', val: access.worksite, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Report Weekly', specialClass: '' }, url: "/report/weekly/worksite/:mode/:type", params: {mode: 1, type: 'worksite'}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; var type = $stateParams.type; if(mode == undefined) return; param = {rt:'project.preview.' + type, mode: mode} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; var range = false; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } $scope.changecal = function(e){ isShow = !isShow; if(e != ''){ range = e; } else { range = ''; } var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.comp = function(i){ sts = ''; if(i > 0){ sts = '&compid=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; sts = ''; } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('ws.rpt22workmonth',{templateUrl: tempUrl, menu: { tag: 'nav', show: true, label: 'Report Monthly', val: access.worksite, class: 'fa fa-chart-bar fa-fw'}, data: { pageTitle: 'Report Monthly', specialClass: '' }, url: "/report/monthly/worksite/:mode/:type", params: {mode: 2, type: 'worksite'}, controller: QuotMonthWeekCtrl}).state('ws.worksite',{templateUrl: tempUrl, data: { pageTitle: 'Work Site', specialClass: '' }, url: "/form/:wpid", params: {wpid: 0}, controller: function($scope,users,post,dtoptions,uiModal,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var group = 'ws'; var datapost = {rt:'project.worksite.form', group:group, user:user, flagupdate:0}; var xpid = 0; var wpid = $stateParams.wpid; if(wpid > 0){ xpid = wpid; datapost.flagupdate = 1; } else { if(param == null){ $state.go(group + '.project'); return; } else { xpid = param.pid; } } datapost.pid = xpid; post(datapost).success(function(e){ if(e == 0){ $state.go(group + '.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.op = e.op; $scope.mdata = e.mdata; $scope.data = e.data; }); $scope.submit = function(){ var data = $scope.data; var param = {rt:'project.worksite.submit',pid:xpid,data:data,user:user,tms:tms()}; post(param).success(function(e){ if(e == -1){ toastr.error(e,'Unsuccessfull',{timeOut: 5000}); return; } $scope.op.actdist = e; toastr.success('Successfull'); }); } $scope.report = function(id){ uiModal({ param: {rt:'project.workdaily.modal',id:id,pid:xpid, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'project.workdaily.submit',id:id,pid:xpid,data:e.data,user:user, tms:tms()}; post(param).success(function(e){ if(isObject(e)){ $scope.op.actdist = e.dist; $scope.mdata.daily = e.daily; } else { console.log(e); } }); }, }); } $scope.delete = function(id){ var i = confirm('Are you sure to delete?'); if(!i) return; post({rt:'project.workdaily.delete',id:id,pid:xpid,tms:tms()}).success(function(e){ if(isObject(e)){ $scope.op.actdistance = e.dist; $scope.mdata.daily = e.daily; } else { console.log(e); } }); } $scope.wdone = function(){ uiModal({ controller: 'WorksiteDoneModalCtrl', param: {rt:'project.worksite.wsdone',id:xpid, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'project.worksite.done',pid:xpid,data:e.data,user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $state.go(group+'.project'); } else { console.log(e); } }); }, }); } },}).state('ws.worksiteview',{templateUrl: tempUrl, data: { pageTitle: 'Worksite', specialClass: '' }, url: "/view/details/:wpid", params: {wpid: 0}, controller: function($scope,users,post,$state,$sce,uiModal,$stateParams){ var user = users.data(); var param = users.getParam(); var group = 'ws'; var datapost = {rt:'project.preview.viewworksite', group:group, user:user, flagupdate:0}; var xpid = 0; var wpid = $stateParams.wpid; if(wpid > 0){ xpid = wpid; datapost.flagupdate = 1; } else { if(param == null){ $state.go(group + '.project'); return; } else { xpid = param.pid; } } datapost.pid = xpid; post(datapost).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.wdone = function(){ uiModal({ controller: 'WorksiteDoneModalCtrl', param: {rt:'project.worksite.wsdone',id:xpid, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'project.worksite.done',pid:xpid,data:e.data,user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $state.go(group+'.project'); } else { console.log(e); } }); }, }); } }}).state('edp',{menu: { tag: 'nav', show: true, label: 'Mapping', val: access.edp, class: 'fas fa-project-diagram fa-fw'}, url: "/edp", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl}).state('edp.mapping',{templateUrl: tempUrl, data: { pageTitle: 'Mapping', specialClass: '' }, url: "/mapping/:mpid", params: {mpid: 0}, controller: function($scope,users,post,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var group = 'edp'; var parampost = {rt:'edp.particular.form', group:group, user:user, flagupdate:0}; var xpid = 0; var mpid = $stateParams.mpid; if(mpid > 0){ xpid = mpid; parampost.flagupdate = 1; } else { if(param == null){ $state.go(group + '.project'); return; } else { xpid = param.pid; } } parampost.pid = xpid; post(parampost).success(function(e){ if(e == 0){ $state.go(group + '.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.daily = e.daily; $scope.mdata = e.mdata; $scope.data = e.data; }); function submit(callback){ var data = angular.copy($scope.data); post({rt:'edp.particular.submit',pid:xpid,data:data,user:user,tms:tms()}).success(function(e){ if(e == 1){ // toastr.options.onShown = function() { // } // toastr.success('Successfull') callback(e); } else { console.log(e); } }); }; $scope.submit = function(){ submit(function(){ if(mpid == 0){ toastr.success('Successfull') } else { $state.go('edp.rptmapmonth'); } }) }; $scope.done = function(){ var i = confirm('Do you want to submit?'); if(!i) return; submit(function(i){ post({rt:'edp.particular.done',pid:xpid,note:'Mapping done',user:user,tms:tms()}).success(function(e){ var status = e.status; var msg = e.msg; if(status == 0){ toastr.error(msg.toString().replace(',','
'),'Incomplete',{timeOut: 5000}); // $scope.err = {status:1, msg: msg}; } else { $state.go(group+'.project'); } }); }) }; },}).state('edp.mapping0',{templateUrl: tempUrl, data: { pageTitle: 'Mapping', specialClass: '' }, url: "/mapping/:mpid", params: {mpid: 0}, controller: function($scope,users,post,$state,$stateParams){ var user = users.data(); var param = users.getParam(); var group = 'edp'; var parampost = {rt:'project.edp.form', group:group, user:user, flagupdate:0}; var xpid = 0; var mpid = $stateParams.mpid; if(mpid > 0){ xpid = mpid; parampost.flagupdate = 1; } else { if(param == null){ $state.go(group + '.project'); return; } else { xpid = param.pid; } } parampost.pid = xpid; post(parampost).success(function(e){ if(e == 0){ $state.go(group + '.project'); return; } if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; $scope.daily = e.daily; $scope.mdata = e.mdata; $scope.data = e.data; }); function submit(callback){ var data = angular.copy($scope.data); post({rt:'project.edp.submit',pid:xpid,data:data,user:user,tms:tms()}).success(function(e){ if(e == 1){ // toastr.options.onShown = function() { // } // toastr.success('Successfull') callback(e); } else { console.log(e); } }); }; $scope.submit = function(){ submit(function(){ if(mpid == 0){ toastr.success('Successfull') } else { $state.go('edp.rptmapmonth'); } }) }; $scope.done = function(){ var i = confirm('Do you want to submit?'); if(!i) return; submit(function(i){ post({rt:'project.edp.done',pid:xpid,note:'Mapping done',user:user,tms:tms()}).success(function(e){ var status = e.status; var msg = e.msg; if(status == 0){ toastr.error(msg.toString().replace(',','
'),'Incomplete',{timeOut: 5000}); // $scope.err = {status:1, msg: msg}; } else { $state.go(group+'.project'); } }); }) }; },}).state('edp.project',{menu: { tag: 'nav', show: true, label: 'Project', val: access.edp, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Project', specialClass: '' }, url: "/project", templateUrl: tempUrl, controller: function($scope,users,post,dtoptions,$state,uiModal){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.quotview = function ( e, dt, node, config ) { if(rowSel) gotoview(rowSel); } function gotoview(rowSel){ users.setParam({pid: rowSel.prjid, id:rowSel.idquo, iid: rowSel.idinv}); $state.go('edp.mapping'); } post({rt:'job.mapping.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "full", fnstr); } } $scope.element = e.obj; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 15, datapost: { rt: 'job.mapping.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $( 'td', nRow ).bind('dblclick', function(){ $scope.$apply(function() { rowSel = aData; $('[data-toggle="tooltip"]').tooltip('hide'); if(rowSel){ gotoview(rowSel); } }); }); } }); }); }}).state('edp.rptmap1week',{menu: { tag: 'nav', show: true, label: 'Report Weekly', val: access.edp, class: 'fa fa-chart-bar fa-fw'}, url: "/report/weekly/mapping/:mode/:type", templateUrl: tempUrl, data: { pageTitle: 'Report Weekly', specialClass: '' }, params: {mode: 1, type: 'mapping'}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; var type = $stateParams.type; if(mode == undefined) return; param = {rt:'project.preview.' + type, mode: mode} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; var range = false; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } $scope.changecal = function(e){ isShow = !isShow; if(e != ''){ range = e; } else { range = ''; } var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.comp = function(i){ sts = ''; if(i > 0){ sts = '&compid=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; sts = ''; } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('edp.rptmapmonth',{menu: { tag: 'nav', show: true, label: 'Report Monthly', val: access.edp, class: 'fa fa-chart-bar fa-fw'}, url: "/report/monthly/mapping/:mode/:type", templateUrl: tempUrl, data: { pageTitle: 'Report Monthly', specialClass: '' }, params: {mode: 2, type: 'mapping'}, controller: function($scope,users,post,$sce,$stateParams,$window){ var user = users.data(); var url = ''; var mode = $stateParams.mode; var type = $stateParams.type; if(mode == undefined) return; param = {rt:'project.preview.' + type, mode: mode} post(param).success(function(e){ if(!isObject(e)){ console.log(e); return; } url = e.data; $scope.url = $sce.trustAsResourceUrl(e.data); $scope.element = e.obj; }); $scope.print = function(){ var newWin = window.frames["printout"]; newWin.print(); } var isShow = false; $scope.open_cal = function($event){ var cal = $window.document.getElementById('cal'); $event.preventDefault(); $event.stopPropagation(); if(!isShow){ cal.focus(); } else { cal.blur(); } isShow = !isShow; } var addr = ''; var sts = ''; var range = false; if(mode == 1){ addr = '&weekly='; } else if(mode == 2){ addr = '&mycal='; } $scope.changecal = function(e){ isShow = !isShow; if(e != ''){ range = e; } else { range = ''; } var url2 = url + addr + range + sts; document.getElementById('printout').src = url2; $scope.url = url2; } $scope.comp = function(i){ sts = ''; if(i > 0){ sts = '&compid=' + i; } var url2 = url + addr + range + sts; if(!range){ url2 = url + sts; sts = ''; } document.getElementById('printout').src = url2; $scope.url = url2; } }}).state('edp.rptscore',{menu: { tag: 'nav', show: true, label: 'Report Score Perfomance', val: access.edp, class: 'fa fa-chart-bar fa-fw'}, url: "/report/score/:mode/:type", templateUrl: tempUrl, data: { pageTitle: 'Report Score Perfomance', specialClass: '' }, params: {mode: 2, type: 'scoreperfomence'}, controller: RptSummaryCtrl}).state('edp.rptsummary',{menu: { tag: 'nav', show: true, label: 'Report Summary', val: access.edp, class: 'fa fa-chart-bar fa-fw'}, url: "/report/summary/:mode/:type", templateUrl: tempUrl, data: { pageTitle: 'Report Summary', specialClass: '' }, params: {mode: 2, type: 'mappingsummary'}, controller: RptSummaryCtrl}).state('account',{menu: { tag: 'nav', show: true, label: 'Account', val: group.acc, class: 'fas fa-project-diagram fa-fw'}, url: "/account", abstract: true, templateUrl: "views/common/content.html", controllerAs: "main", controller: MainCtrl}).state('account.1income',{menu: { tag: 'nav', show: true, label: 'Invoice Pending', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Invoice Pending', specialClass: '' }, url: "/pending", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; $scope.payment = function(id){ uiModal({ param: {rt:'account.receive.modalform', idx:id,tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.receive.modalsave', id:0, idx:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else if(e == 101) { $('#table').DataTable().ajax.reload(); toastr.success('Payment complete'); } else if(e == 100) { alert('Invalid amount'); } else { console.log(e); } }); }, }); }; $scope.creditnote = function(id){ uiModal({ param: {rt:'account.creditnote.modalform', idx:id,tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.creditnote.modalsave', id:0, idx:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else if(e == 101) { $('#table').DataTable().ajax.reload(); toastr.success('Payment complete'); } else if(e == 100) { alert('Invalid amount'); } else { console.log(e); } }); }, }); }; post({rt:'account.pending.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.pending.data', user: user}, //length:10, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { rowSel = aData; if(rowSel){ var id = rowSel.invid; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); viewpage(id); } }); }); */ }, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.1rptpettycash',{menu: { tag: 'nav', show: true, label: 'Petty Cash', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Petty Cash', specialClass: '' }, url: "/report/pettycash/:type", params: {type: 'pettycash'}, controller: RptAccCtrl}).state('account.2pettycash',{data: { pageTitle: 'Petty Cash', specialClass: '' }, url: "/pettycash", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; var dtselect = ''; users.destroy(); function modalform(id){ uiModal({ param: {rt:'account.pettycash.modalform', dt:dtselect, id:id,tms:tms()}, size: 'lg', close: function(e){ dtselect = e.data.pcdate; var param = {rt:'account.pettycash.modalsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else { console.log(e); } }); }, }); } function topupform(id){ uiModal({ param: {rt:'account.pettycash.topupform', id:id,tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.pettycash.topupsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else { console.log(e); } }); }, }); } bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { modalform(0); }; bfunction.topup = function ( e, dt, node, config ) { topupform(0); }; bfunction.openbal = function ( e, dt, node, config ) { uiModal({ param: {rt:'account.pettycash.openbalcal', tms:tms()}, size: 'md', close: function(e){ uiModal({ param: {rt:'account.pettycash.openbalform', data:e.data, tms:tms()}, size: 'sm', close: function(e){ var param = {rt:'account.pettycash.openbalsave', data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ toastr.success('Successfull save'); } else { console.log(e); } }); }, }); }, }); }; bfunction.closeacc = function ( e, dt, node, config ) { topupform(0); }; $scope.update = modalform; $scope.topupupdate = topupform; $scope.viewreceipt = function(id){ uiModal({ param: {rt:'account.preview.voucherpettycash', id:id, user:user, tms:tms()}, size: 'xlg', close: function(e){}, }); } $scope.delete = function(id,iid,pid){ var i = confirm('Are you sure to delete?'); if(i){ var param = {rt:'account.pettycash.ptdel', id:id, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull deleted'); } else { console.log(e); } }); } } $scope.topupdel = function(id,idbook){ var i = confirm('Are you sure to delete?'); if(i){ var param = {rt:'account.pettycash.topupdel', id:id, idbook:idbook, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull deleted'); } else { console.log(e); } }); } } post({rt:'account.pettycash.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.bal1 = 0.00; $scope.bal2 = 0.00; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ length: 20, datapost: { rt: 'account.pettycash.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, results: function(e){ var bal = e.bal; $scope.bal1 = bal[0]; $scope.bal2 = bal[1]; $scope.$apply(); return e.table; }, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){}, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.3salary',{menu: { tag: 'nav', show: true, label: 'Salary', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Salary', specialClass: '' }, url: "/salary", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); function modalform(id){ uiModal({ param: {rt:'account.salary.modalform', id:id,tms:tms()}, close: function(e){ var param = {rt:'account.salary.modalsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else { console.log(e); } }); }, }); } bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { modalform(0); }; $scope.update = modalform; $scope.voucher = function(id){ uiModal({ param: {rt:'account.preview.viewvoucher', id:id, user:user, tms:tms()}, size: 'xlg', close: function(e){}, }); }; $scope.vdel = function(id){ var i = confirm('Are you sure to delete?') if(i){ post({rt:'account.salary.salarydel', id:id, user: user, tms:tms()}).success(function(e){ if(e==1){ toastr.success('Data has been deleted'); $('#table').DataTable().ajax.reload(); } else { toastr.error('Delete unsuccessfull','Unsuccessfull',{timeOut:5000}) console.log(e); } }); } }; post({rt:'account.salary.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.salary.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { rowSel = aData; if(rowSel){ var id = rowSel.invid; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); viewpage(id); } }); }); */ }, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.bankbook',{menu: { tag: 'nav', show: true, label: 'Bank Book', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Bank Book', specialClass: '' }, url: "/bankbook", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); function modalform(id){ uiModal({ param: {rt:'account.bankbook.modalform', id:id,tms:tms()}, size: 'xlg', close: function(e){ var param = {rt:'account.bankbook.modalsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else if(e == 101) { $('#table').DataTable().ajax.reload(); toastr.success('Payment complete'); } else { console.log(e); } }); }, }); } bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.addnew = function ( e, dt, node, config ) { modalform(0); }; $scope.form = modalform; $scope.voucher = function(id){ uiModal({ param: {rt:'account.preview.viewvoucher', id:id, user:user, tms:tms()}, size: 'xlg', close: function(e){}, }); }; $scope.vdel = function(id){ var i = confirm('Are you sure to delete?') if(i){ post({rt:'account.share.modaldel', id:id, user: user, tms:tms()}).success(function(e){ if(e==1){ toastr.success('Data has been deleted'); $('#table').DataTable().ajax.reload(); } else { toastr.error('Delete unsuccessfull','Unsuccessfull',{timeOut:5000}) console.log(e); } }); } }; post({rt:'account.bankbook.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.bankbook.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ }, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.creditor',{menu: { tag: 'nav', show: true, label: 'Creditor', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'Creditor', specialClass: '' }, url: "/creditor", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,$state,uiModal,$compile,$state){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); $scope.update = function (id, xid){ uiModal({ param: {rt:'account.creditor.modalform', id:id, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.creditor.modalsave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else { console.log(e); } }); }, }); } $scope.pay = function(id){ uiModal({ param: {rt:'account.creditor.payform', id:id, user:user, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.creditor.paysave', id:id, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else { console.log(e); } }); }, }); }; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; //bfunction.report = function ( e, dt, node, config ) { //$state.go('account.rptcreditor'); //}; post({rt:'account.creditor.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.creditor.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.creditor2month',{//menu: { tag: 'nav', show: true, label: 'Report Creditor', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Report Creditor', specialClass: '' }, url: "/creditor/report/month/:type", params: {type: 'creditormonthly'}, controller: RptAccCtrl}).state('account.creditor2yearly',{//menu: { tag: 'nav', show: true, label: 'Report Creditor', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Report Creditor', specialClass: '' }, url: "/creditor/report/year/:type", params: {type: 'creditoryearly'}, controller: RptAccCtrl}).state('account.historycreditnote',{//menu: { tag: 'nav', show: true, label: 'History Credit Note', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'History Credit Note', specialClass: '' }, url: "/creditnote", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); $scope.update = function(id, xid){ uiModal({ param: {rt:'account.creditnote.modalform', id:id, idx:xid, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.creditnote.modalsave', id:id, idx:xid, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else if(e == 101) { $('#table').DataTable().ajax.reload(); toastr.success('Payment complete'); } else if(e == 100) { alert('Invalid amount'); } else { console.log(e); } }); }, }); } $scope.views = function(id){ uiModal({ param: {rt:'account.preview.creditnote', id:id, user:user, tms:tms()}, size: 'xlg', close: function(e){ }, }); } bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; $scope.delete = function(id,iid,pid){ var i = confirm('Are you sure to delete?'); if(i){ var param = {rt:'account.creditnote.rcvdel', id:id, pid:pid, iid:iid, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull deleted'); } else { console.log(e); } }); } } post({rt:'account.creditnote.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.creditnote.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { rowSel = aData; if(rowSel){ var id = rowSel.invid; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); viewpage(id); } }); }); */ }, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.historyreceipt',{//menu: { tag: 'nav', show: true, label: 'History Receipt', val: access.account, class: 'fas fa-project-diagram fa-fw'}, data: { pageTitle: 'History Receipt', specialClass: '' }, url: "/receipt", templateUrl: tempUrl, controller:function($scope,users,post,dtoptions,uiModal,$compile){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); function viewpage(id, xid){ uiModal({ param: {rt:'account.receive.modalform', id:id, idx:xid, tms:tms()}, size: 'lg', close: function(e){ var param = {rt:'account.receive.modalsave', id:id, idx:xid, data:e.data, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull save'); } else if(e == 101) { $('#table').DataTable().ajax.reload(); toastr.success('Payment complete'); } else if(e == 100) { alert('Invalid amount'); } else { console.log(e); } }); }, }); } function receipt(id){ uiModal({ param: {rt:'account.preview.viewreceipt', id:id, user:user, tms:tms()}, size: 'xlg', close: function(e){ }, }); } bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; $scope.receipt = receipt; $scope.update = viewpage; $scope.delete = function(id,iid,pid,idbook){ var i = confirm('Are you sure to delete?'); if(i){ var param = {rt:'account.receive.rcvdel', id:id, pid:pid, iid:iid, idbook:idbook, user:user, tms:tms()}; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); toastr.success('Successfull deleted'); } else { console.log(e); } }); } } post({rt:'account.receipt.table', user: user}).success(function(e){ if(!isObject(e)){ console.log(e); return; } $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var dtb = dt.buttons; for(var i=0; i < dtcol.length; i++){ if(dtcol[i].mRender){ var fnstr = dtcol[i].mRender; dtcol[i].mRender = new Function("data", "type", "row", fnstr); } } $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'account.receipt.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', init: function(){}, bfunction: bfunction, button: dtb, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ /* if( parseInt(aData.unread) == 1 ){ $('td', nRow).each(function(){ $(this).addClass('font-weight-bold'); }); } $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { rowSel = aData; if(rowSel){ var id = rowSel.invid; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); viewpage(id); } }); }); */ }, createrow : function(row){ $compile(angular.element(row).contents())($scope); } }); }); }}).state('account.rpt1outstanding',{menu: { tag: 'nav', show: true, label: 'Outstanding', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Outstanding', specialClass: '' }, url: "/outstanding/:type", params: {type: 'outstanding'}, controller: RptAccCtrl}).state('account.rpt2collectpayment',{menu: { tag: 'nav', show: true, label: 'Memo Received', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Memo Received', specialClass: '' }, url: "/collectpayment/:type", params: {type: 'collectpayment'}, controller: RptAccCtrl}).state('account.rpt3debtor',{menu: { tag: 'nav', show: true, label: 'Statement Account', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Statement Account', specialClass: '' }, url: "/debtor/:type", params: {type: 'debtor'}, controller: RptAccCtrl}).state('account.rpt4profitloss',{menu: { tag: 'nav', show: true, label: 'Report Profit And Loss', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Report Profit And Loss', specialClass: '' }, url: "/profitloss/:type", params: {type: 'profitloss'}, controller: RptAccCtrl}).state('account.rpt5monthly',{menu: { tag: 'nav', show: true, label: 'Report Income & Expenses', val: access.account, class: 'fas fa-chart-bar fa-fw'}, templateUrl: tempUrl, data: { pageTitle: 'Report Income & Expenses', specialClass: '' }, url: "/incomeexpend/:type", params: {type: 'incomeexpend'}, controller: RptAccCtrl}).state('setting',{menu: { tag: 'nav', label: 'Setting', val: group.set, cust: group.set, class: 'fa fa-cog fa-fw'},url: "",abstract: true,templateUrl: "views/common/content.html",controllerAs: "main",controller: MainCtrl}).state('setting.client',{menu: { tag: 'nav', show: true, label: 'Client', val: access.admin, class: 'fa fa-users fa-fw'},url: "/client", templateUrl: tempUrl, data: { pageTitle: 'Client' }, controller:function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var rowSel = false; users.destroy(); var bfunction = []; bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.new = function ( e, dt, node, config ) { dialog(0); }; bfunction.edit = function ( e, dt, node, config ) { if(rowSel){ dialog(rowSel.custid); } }; bfunction.del = function ( e, dt, node, config ) { if(rowSel){ var xid = rowSel.custid; var i = confirm('Are you sure to delete?'); var param = { rt: 'setting.client.delete', id: xid } if(!i) return; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); } else { alert(e); console.log(e); } }); } }; post({rt:'setting.client.table'}).success(function(e){ $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var btn = dt.buttons; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'setting.client.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', bfunction: bfunction, button: btn, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { var data = aData; if(data !== undefined){ var id = data.custid; dialog(id); } }); }); } }); }); function dialog(xuid){ rowSel = false; uiModal({ param: {rt:'setting.client.modal',id:xuid}, close: function(e){ var param = {rt:'setting.client.save',id:xuid,data:e.data,user:user}; post(param).success(function(e){ results(e); }); }, dismiss: function(){ $('tr.table-info').removeClass('table-info'); rowSel = false; } }); } }}).state('setting.company',{menu: { tag: 'nav', show: true, label: 'Company', val: access.setting, class: 'fas fa-user-friends fa-fw'}, url: "/company", templateUrl: tempUrl, data: { pageTitle: 'Company' }, controller:function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.new = function ( e, dt, node, config ) { dialog(0); }; bfunction.edit = function ( e, dt, node, config ) { if(rowSel){ dialog(rowSel.compid); } }; bfunction.del = function ( e, dt, node, config ) { if(rowSel){ var xid = rowSel.uid; var i = confirm('Are you sure to delete?'); var param = { rt: 'setting.users.delete', id: xid } if(!i) return; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); } else { alert(e); console.log(e); } }); } }; bfunction.reset = function( e, dt, node, config ) { if(rowSel){ var xid = rowSel.uid; var i = confirm('Are you sure to reset?'); var param = { rt: 'setting.users.reset_password', id: xid, uid:user.uid} if(!i) return; post(param).success(function(e){ if(e == 1){ alert('Success reset password!\nDefault password: 123456'); } else { alert(e); console.log(e); } }); } }; post({rt:'setting.mzz.table'}).success(function(e){ $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var btn = dt.buttons; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'setting.mzz.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', bfunction: bfunction, button: btn, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { var data = aData; if(data !== undefined){ var id = data.compid; dialog(id); } }); }); } }); }); function dialog(xuid){ rowSel = false; uiModal({ param: {rt:'setting.mzz.modal',id:xuid}, size: 'lg', close: function(e){ var data = e.data; var param = {rt:'setting.mzz.save',id:xuid,data:data,user:user}; post(param).success(function(e){ $('#userstable').DataTable().ajax.reload(); }); }, dismiss: function(){ $('tr.table-info').removeClass('table-info'); rowSel = false; } }); } }}).state('setting.services',{menu: { tag: 'nav', show: true, label: 'Services', val: access.admin, class: 'fa fa-list-alt'},url: "/services", templateUrl: tempUrl, data: { pageTitle: 'Services' }, controller:function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.new = function ( e, dt, node, config ) { dialog(0); }; bfunction.edit = function ( e, dt, node, config ) { if(rowSel){ dialog(rowSel.iqid); } }; bfunction.del = function ( e, dt, node, config ) { if(rowSel){ var xid = rowSel.iqid; var i = confirm('Are you sure to delete?'); var param = { rt: 'setting.services.delete', id: xid } if(!i) return; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); } else { alert(e); console.log(e); } }); } }; post({rt:'setting.services.table'}).success(function(e){ $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var btn = dt.buttons; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'setting.services.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', bfunction: bfunction, button: btn, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { var data = aData; if(data !== undefined){ var id = data.iqid; dialog(id); } }); }); } }); }); function dialog(xuid){ rowSel = false; uiModal({ param: {rt:'setting.services.modal',id:xuid}, size: 'lg', close: function(e){ var param = {rt:'setting.services.save',id:xuid,data:e.data,user:user}; post(param).success(function(e){ $('#table').DataTable().ajax.reload(); }); }, dismiss: function(){ $('tr.table-info').removeClass('table-info'); rowSel = false; } }); } }}).state('setting.state',{menu: { tag: 'nav', show: true, label: 'State', val: access.setting, class: 'fas fa-globe-asia fa-fw'},url: "/state", templateUrl: tempUrl, data: { pageTitle: 'State' }, controller:function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.new = function ( e, dt, node, config ) { dialog(0); }; bfunction.edit = function ( e, dt, node, config ) { if(rowSel){ dialog(rowSel.stateid); } }; bfunction.del = function ( e, dt, node, config ) { if(rowSel){ var xid = rowSel.stateid; var i = confirm('Are you sure to delete?'); var param = { rt: 'setting.state.delete', id: xid } if(!i) return; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); } else { alert(e); console.log(e); } }); } }; post({rt:'setting.state.table'}).success(function(e){ $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var btn = dt.buttons; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'setting.state.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', bfunction: bfunction, button: btn, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { var data = aData; if(data !== undefined){ var id = data.stateid; dialog(id); } }); }); } }); }); function dialog(xuid){ rowSel = false; uiModal({ param: {rt:'setting.state.modal',id:xuid}, close: function(e){ var param = {rt:'setting.state.save',id:xuid,data:e.data,user:user}; post(param).success(function(e){ $('#table').DataTable().ajax.reload(); }); }, dismiss: function(){ $('tr.table-info').removeClass('table-info'); rowSel = false; } }); } }}).state('setting.users',{menu: { tag: 'nav', show: true, label: 'Users', val: access.setting, class: 'fas fa-user-friends fa-fw'},url: "/users", templateUrl: tempUrl, data: { pageTitle: 'Users' }, controller:function($scope,users,post,dtoptions,uiModal,$state){ var user = users.data(); var rowSel = false; var bfunction = []; users.destroy(); bfunction.reload = function ( e, dt, node, config ) { dt.ajax.reload(); }; bfunction.new = function ( e, dt, node, config ) { dialog(0); }; bfunction.edit = function ( e, dt, node, config ) { if(rowSel){ dialog(rowSel.uid); } }; bfunction.del = function ( e, dt, node, config ) { if(rowSel){ var xid = rowSel.uid; var i = confirm('Are you sure to delete?'); var param = { rt: 'setting.users.delete', id: xid } if(!i) return; post(param).success(function(e){ if(e == 1){ $('#table').DataTable().ajax.reload(); } else { alert(e); console.log(e); } }); } }; bfunction.reset = function( e, dt, node, config ) { if(rowSel){ var xid = rowSel.uid; var i = confirm('Are you sure to reset?'); var param = { rt: 'setting.users.reset_password', id: xid, uid:user.uid} if(!i) return; post(param).success(function(e){ if(e == 1){ alert('Success reset password!\nDefault password: 123456'); } else { alert(e); console.log(e); } }); } }; post({rt:'setting.users.table'}).success(function(e){ $scope.element = e.obj; var dt = e.dataTable; var dtcol = dt.columns; var btn = dt.buttons; $scope.dtColumns = dtcol; $scope.dtOptions = dtoptions({ datapost: { rt: 'setting.users.data', user: user}, dom: '<"html5buttons pull-left"B><"pull-right"f><"pull-right"l>Tgt<"pull-left"i>p', bfunction: bfunction, button: btn, rowCallback: function(nRow, aData, iDisplayIndex, iDisplayIndexFull){ $('td', nRow).unbind('click'); $('td', nRow).bind('click', function() { $scope.$apply(function() { if($(nRow).hasClass('table-info')){ rowSel = false; $('tr.table-info').removeClass('table-info'); } else { rowSel = aData; $('tr.table-info').removeClass('table-info'); $(nRow).toggleClass('table-info'); } }); }); $('td', nRow).bind('dblclick', function() { $scope.$apply(function() { var data = aData; if(data !== undefined){ var id = data.uid; dialog(id); } }); }); } }); }); function dialog(xuid){ rowSel = false; uiModal({ param: {rt:'setting.users.modal',id:xuid}, size: 'lg', close: function(e){ e.data.uaccess = setbit(e.access,'ua'); e.data.grpval = setbit(e.groups,'gval'); var data = e.data; var param = {rt:'setting.users.save',id:xuid,data:data,user:user}; post(param).success(function(e){ $('#userstable').DataTable().ajax.reload(); }); }, dismiss: function(){ $('tr.table-info').removeClass('table-info'); rowSel = false; } }); } }}) /* function authenticate($q, user, $state, $timeout) { var status = user.isLogin(); if(status){ return $q.when(); } else { $timeout(function(){ $state.go('login'); }); return $q.reject(); } } */ }