",b.push("m_"+r+i),h.push(a.join("#")+"#"+i)}}else i+1>0||(t.push(e.real_name),a.push(i)),o+=c(n,t,a)}),o}var u=e.getFilter();e.export_btn_is_disable=!0;var f=void 0!==e.totalPager?e.totalPager:$("tr").find("td").last().data("model").collection.state.totalRecords;if(f&&f>2e3)throw d.warning("Não é possível exportar mais que 2000 registros."),e.export_btn_is_disable=!1,"Não é possível exportar mais que 2000 registros.";var p=e.resource,m=o(e.headers),g='
',b=[],h=[];for(var v in m){var y=Object.keys(m[v])[0],w=Object.values(m[v])[0];"string"==typeof w?(g+="
",g+='',g+='",g+="
",b.push("m_"+y),h.push(y)):g+=c(m[v],[],[])}g+="
",s.swal({title:"Selecione as Colunas Desejadas",html:g,preConfirm:function(){var e=b.map(function(e){return document.getElementById(""+e).checked});return e},showCancelButton:!0}).then(function(t){if(t.value&&e.totalPager&&void 0!=e.totalPager){s.swal({html:"Por favor aguarde, estamos buscando os dados.",allowOutsideClick:!1,allowEscapeKey:!1,onOpen:function(){s.showLoading()}});var a=h.filter(function(e,a){return t.value[a]}),o=r(u);o=Object.assign({},o,{per_page:f}),p.customGET("pager",o).then(function(t){function o(){var o=t.data.map(function(e){var t={};return a.forEach(function(a){var n=a.split("#");if(1==n.length)t[a]=e[a];else if(n.length>1){n.reduce(function(t,a,o){return o===n.length-1?(t?t[a]=i(e,n):"",t):t?t[a]=t[a]?t[a]:{}:""},t)}}),t}),r=[];n(m,r,""),o.map(function(e){var t=r;t.forEach(function(t){var a=l(e,t.antes);"object"==typeof a&&(a=a.join(", ")),e[t.depois]=a}),t.forEach(function(t){t.antes[0]!=t.depois&&delete e[t.antes[0]]})}),s.close();var d=XLSX.utils.json_to_sheet(o),c=XLSX.utils.book_new();XLSX.utils.book_append_sheet(c,d,"dadosexportados");var u=moment().unix();XLSX.writeFile(c,"Exportacao_"+u+".xlsx"),e.export_btn_is_disable=!1}e.$emit("before export",t,o),e.$$listeners["before export"]||o()})}else void 0==e.totalPager||t.dismiss||s.swal({type:"info",title:"Ocorreu um erro",text:"Não é possível criar exportar os dados, pois não há registros."}),e.export_btn_is_disable=!1})}}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDFormModalController",["$controller","$scope","$modalInstance","ngToast","headers","Restangular","$stateParams","$timeout","$state","$rootScope","$q","$http","Upload","$modal","data","fwStringService","auth","fwObjectService","fwErrorService",function(t,a,i,n,o,l,r,s,d,c,u,f,p,m,g,b,h,v,y){t("CRUDEditController",{$scope:a,Restangular:l,$stateParams:r,$timeout:s,$modal:m,module:e,$state:d,
-$rootScope:c,$q:u,ngToast:n,$http:f,Upload:p}),a.data=g||{},a.headers=o,a.resource=l.all(o.route);for(var w in a.headers.fields){var $=a.headers.fields[w];"boolean"==$.type&&void 0==a.data[$.name]&&($.customOptions["default"]?a.data[$.name]=!0:a.data[$.name]=!1)}o.modal_id&&c.$emit("open:"+o.modal_id,a),a.cancel=function(){i.dismiss("cancel")},a.submit=function(){this.crudForm.$valid?i.close(a.data):y.emitFormErrors(this.crudForm)},c.$on("cancel-modal",function(e,t){i.dismiss("cancel")}),s(function(){a.$broadcast("setProgressFile")})}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDEditController",["$scope","Restangular","$stateParams","$timeout","$modal","module","$state","$rootScope","$q","ngToast","$http","Upload","fwModalService","$window",function(e,t,a,i,n,o,l,r,s,d,c,u,f,p){e.data={},e.dataLoaded=!1,e.module=o,e.$http=c,e.$emit("refresh-headers"),e.datepickers={},e.loading_http_request=!1,e.datepickerToggle=function(t){void 0==e.datepickers[t]&&(e.datepickers[t]=!1),e.datepickers[t]=!e.datepickers[t]},e.fetchData=function(){if(a.id)e.$parent.resource.customGET("crudGET/"+a.id).then(function(t){for(var a in e.headers.fields){var n=e.headers.fields[a];if("date"==n.type&&void 0!=t[n.name]&&null!=t[n.name]){var o=new Date(t[n.name]);o.setHours(o.getHours()+o.getTimezoneOffset()/60),t[n.name]=o}n.customOptions&&void 0!=n.customOptions.list&&n.customOptions.list.forEach(function(e){e.id==t[n.name]&&(t[n.name+".label"]=e.label)}),"password"==n.type&&(n.notnull=!1),n.customOptions&&void 0!=n.customOptions.file&&(e.fileName=t[n.name])}e.data=t,e.dataLoaded=!0,i(function(){e.$broadcast("setProgressFile")}),e.$emit("data-loaded")});else{i(function(){e.$emit("data-new")},50);for(var t in e.headers.fields){var n=e.headers.fields[t];"boolean"==n.type&&(e.data[n.name]=n.customOptions["default"]?n.customOptions["default"]:!1)}e.dataLoaded=!0,e.$emit("data-loaded")}},e.headersReady&&e.fetchData(),e.$on("headers-set",function(){e.fetchData()}),e._upload=function(e,t){var a=r.appSettings.API_URL;return void 0!=e.customOptions.file.url&&void 0==e.customOptions.file.container?a+=e.customOptions.file.url:void 0==e.customOptions.file.url&&void 0!=e.customOptions.file.container?a+="upload/"+e.customOptions.file.container+"/upload":void 0!=e.customOptions.file.url&&void 0!=e.customOptions.file.container&&(a+="upload/"+e.customOptions.file.container+"/"+e.customOptions.file.url),u.upload({url:a,data:{file:t}})},e.download=function(t,a){if(void 0!=t.customOptions.file.container)var i=r.appSettings.API_URL+"upload/"+t.customOptions.file.container+"/download/"+e.data[t.name];else var i=r.appSettings.API_URL+e.module+"/download/"+t.name+"/"+a;e._download(i,t,e.data)},e.downloadDetail=function(t,a,i,n){if(void 0!=a.customOptions.file.container)var o=r.appSettings.API_URL+"upload/"+a.customOptions.file.container+"/download/"+n[a.name];else var o=r.appSettings.API_URL+e.module+"/details/"+t+"/download/"+a.name+"/"+i;e._download(o,a,n)},e._download=function(t,a,i){this.$http({method:"GET",url:t,responseType:"arraybuffer"}).success(function(t,n,o){if(o=o(),void 0!=a.customOptions.file.container)var l=i[a.name];else var l=o["content-disposition"].split(";")[1].split("=")[1].split('"')[1];var r=o["content-type"],s=new Blob([t],{type:r});e.downloadFile(s,l)})},e.downloadFile=function(e,t){var a=document.createElement("a");try{var i=window.URL.createObjectURL(e);a.setAttribute("href",i),a.setAttribute("download",t);var n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(n)}catch(o){}},e.getFilter=function(){return decodeURIComponent(p.location.search).replace("?filter=","")},e.submit=function(){function t(t){if(t)i.loading_http_request=!1,t.message?d.warning(t.message):d.warning("Confira seu formulário");else{i.headers.tabs&&Object.keys(i.headers.tabs).forEach(function(e){i.data[e]&&delete i.data[e]});var n;if(a.id){n=e.data.put();var o="edit"}else{n=e.$parent.resource.post(e.data);var o="new"}n.then(function(t){function a(){i.loading_http_request=!1,l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})}e.$emit("after save",a,t,o),e.$$listeners["after save"]||a()},function(t){function a(e){for(var t in i.headers.fields){var a=i.headers.fields[t];if(a.name==e)return a.label}}var n=[];if(i.loading_http_request=!1,422==t.status)if("CANT_SAVE_MODEL"==t.data.error.code)n.push(t.data.error.message);else if(t.data.error.details){var o=t.data.error.details.codes,l={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro","custom.email":"Este email não é válido"};_.each(o,function(e,t){var i=a(t);"string"==typeof e&&(e=[e]),_.each(e,function(e,t){var a=l[e].replace("%s",i);n.push(a)})})}else n.push(t.data.error.message);d.warning(n.join(" ")),e.$emit("error save",t)})}}var i=this,n={},o=i.data;if(_.each(i.headers.fields,function(e,t){o[e.name]||0==o[e.name]||e.notnull||"number"!==e.type||(o[e.name]=null),"password"==e.type&&0!=e.name.indexOf("confirm")&&o["confirm_"+e.name]!=o[e.name]&&(n.password='Os campos "'+e.label+'" e "Confirmar '+e.label+'" não são iguais')}),_.each(i.data,function(e,t){-1!==t.indexOf(".label")&&void 0===o.id&&"object"!=typeof e&&""!==e&&(n[t]="Adicione o(a) "+t.split(".")[0]+" no sistema antes de escolher nesse formulário!"),"data_nascimento"===t&&(moment(e).isAfter(moment())||moment(e).isSame(moment(),"day"))&&(n[t]="Insira uma data de nascimento válida, anterior ao dia de hoje!")}),Object.keys(n).length>0){var r=new Array;_.each(n,function(e,t){r.push(e)}),d.warning(r.join(" "))}else if(this.crudForm.$valid)i.loading_http_request=!0,e.$emit("before save",t),e.$$listeners["before save"]||t();else{var s=[],c=Object.keys(this.crudForm.$error),u=/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;for(var f in c){var p=this.crudForm.$error[c[f]];for(var m in p){var g=p[m].$options.fieldInfo.label;"required"==c[f]?s.push("O campo "+g+" é obrigatório"):"date"==c[f]&&0==u.test(p[m].$viewValue)&&s.push("O campo "+g+" está com uma data inválida")}}if(s.length>0)d.warning(s.join(" "));else{if(a.id)var b=e.data.put(),h="edit";else var b=e.$parent.resource.post(e.data),h="new";b.then(function(){void 0!=e.doAfterSave&&"function"==typeof e.doAfterSave?e.doAfterSave(resp,h):l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})},function(e){function t(e){for(var t in i.headers.fields){var a=i.headers.fields[t];if(a.name==e)return a.label}}var a=[];if(422==e.status)if("CANT_SAVE_MODEL"==e.data.error.code)a.push(e.data.error.message);else if(e.data.error.details){var n=e.data.error.details.codes,o={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro"};_.each(n,function(e,i){var n=t(i),l=o[e].replace("%s",n);a.push(l)})}else a.push(e.data.error.message);d.warning(a.join(" "))})}}},e.cancel=function(){l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})},e.autocompleteModels={},e.autocompleteAdd=function(e){},e._autocomplete=function(t,a,i){var n=[],o=s.defer();if(t.autocomplete_dependencies.length>0){var l=t.autocomplete_dependencies;for(var r in l){var d=l[r];if(void 0==e.data[d.field]||null==e.data[d.field]){var c="Selecione antes o(a) "+d.label,u=[];return u.push({id:null,label:c}),o.resolve(u),o.promise}n[d.field]=e.data[d.field]}}if(a=a.trim(),(0==a.length||1==t.customOptions.select)&&(a="[blank]"),void 0!==t.customOptions.general)e.resource.customGET("general/autocomplete/"+t.customOptions.general+"/"+a,n).then(function(e){t.quickAdd===!0&&"[blank]"!=a&&e.push({id:-1,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()});else if(void 0==t.customOptions.list){if(i)var f="details/"+i+"/autocomplete/"+t.name+"/"+a;else var f="autocomplete/"+t.name+"/"+a;1==t.customOptions.select?n.limit=0:n.limit=20,e.resource.customGET(f,n).then(function(e){1==t.customOptions.select&&e.unshift({id:null,label:"--- Selecione ---"}),t.quickAdd===!0&&"[blank]"!=a&&e.push({id:-1,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()})}else{var p=angular.copy(t.customOptions.list)||[];1==t.customOptions.select&&p.unshift({id:null,label:"--- Selecione ---"}),o.resolve(p)}return o.promise},e.autocomplete=function(e,t){return this._autocomplete(e,t,null)},e.autocompleteDetail=function(e,t,a){return this._autocomplete(t,a,e)},e.doafterAutoCompleteSelect={},e._autocompleteSelect=function(t,a,n,o){var l=o?this.detail_data:this.data;if(void 0==l&&(l={}),null!=t.id&&"integer"!=typeof t.id||"integer"==typeof t.id&&t.id>0)l[this.field.name]=t.id;else{if(null!=t.id)return l[this.field.name+".label"]=null,!1;l[this.field.name]=l[this.field.name+".label"]=null}"function"==typeof e.doafterAutoCompleteSelect[this.field.name]&&e.doafterAutoCompleteSelect[this.field.name].call(this,l,t,a,n),o?this.detail_data=l:this.data=l;var r=this.field;i(function(){jQuery("#"+r.name).trigger("keyup")})},e.autocompleteSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,null)},e.autocompleteDetailSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,e)},e.openPopup=function(e){e.preventDefault(),e.stopPropagation(),this.popupOpen=!0},e.buttonClick=function(t){e[t]()},e.newDetail=function(t,a,i,n){t.fixedRoute||(t.fixedRoute=t.route);e.headers.parent_route?e.headers.parent_route:e.headers.route.toLowerCase();t.route=i?n:e.headers.route+t.fixedRoute,t.id=i?i:null,f.createCRUDModal(t,null,"CRUDEditDetailController")},e.deleteDetail=function(e,a){var i=t.all(e);i.customDELETE(a.id).then(function(){r.$broadcast("refreshGRID"),r.$broadcast("data-grid-updated",{type:e.split("/").pop()})},function(e){d.warning(e.data.error.message)})},e.newDetailData=function(t,a,i){if(e.data[a]=e.data[a]||[],i){var n=e.headers[t][a];n.route_detail?n.route=n.route_detail:n.route=e.headers.route+"/details/"+a,f.createCRUDModal(n).then(function(t){t["new"]=!0,e.data[a].push(t)})}else{var o={},l=e.headers[t][a].fields;for(var r in l)"boolean"!=l[r].type?o[l[r].name]=null:o[l[r].name]=!1;o["new"]=!0,e.data[a].push(o),e.$apply()}},e.editDetailData=function(t,a,i){var n=e.headers[t][a];n.route_detail?n.route=n.route_detail:n.route=e.headers.route+"/details/"+a,f.createCRUDModal(n,i).then(function(t){e.data[a][e.data[a].indexOf(i)]=t})},e.deleteDetailData=function(e,t){window.confirm("Deseja realmente excluir esse item?")&&this.data[t].splice(this.data[t].indexOf(e),1)}}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDEditDetailController",["$scope","Restangular","$http","$stateParams","$timeout","headers","$rootScope","$modalInstance","$q","ngToast","Upload",function(e,t,a,i,n,o,l,r,s,d,c){e.data={},e.headers=o,e.resource=t.all(o.route),e.autocompleteModels={},e.doafterAutoCompleteSelect={},e.$http=a,o.modal_id&&l.$emit("open:"+o.modal_id,e),e.datepickers={},e.datepickerToggle=function(t){void 0==e.datepickers[t]&&(e.datepickers[t]=!1),e.datepickers[t]=!e.datepickers[t]};for(var u in e.headers.fields){var f=e.headers.fields[u];"boolean"==f.type&&(e.data[f.name]=!1)}if(o.id)e.resource.customGET(o.id).then(function(t){for(var a in e.headers.fields){var i=e.headers.fields[a];if("date"==i.type&&void 0!=t[i.name]&&null!=t[i.name]){var o=new Date(t[i.name]);o.setHours(o.getHours()+o.getTimezoneOffset()/60),t[i.name]=o}i.customOptions&&void 0!=i.customOptions.list&&i.customOptions.list.forEach(function(e){e.id==t[i.name]&&(t[i.name+".label"]=e.label)}),"password"==i.type&&(i.notnull=!1)}e.data=t,n(function(){e.$broadcast("setProgressFile")}),e.$emit("data-loaded-detail")});else{n(function(){e.$emit("data-new-detail")},50);for(var u in e.headers.fields){var f=e.headers.fields[u];"boolean"==f.type&&(e.data[f.name]=f.customOptions["default"]?f.customOptions["default"]:!1)}}n(function(){e.submit=function(){function t(){if(e.data.id)var t=e.resource.customPUT(e.data,e.data.id),n="edit";else var t=e.resource.customPOST(e.data,i.id),n="new";t.then(function(t){function a(){l.$broadcast("refreshGRID"),r.dismiss("success")}e.$emit("after save",a,t,n),e.$$listeners["after save"]||a()},function(t){function i(e){for(var t in a.headers.fields){var i=a.headers.fields[t];if(i.name==e)return i.label}}var n=[];if(422==t.status)if("CANT_SAVE_MODEL"==t.data.error.code)n.push(t.data.error.message);else if(t.data.error.details){var o=t.data.error.details.codes,l={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro","custom.email":"Este email não é válido"};_.each(o,function(e,t){var a=i(t);"string"==typeof e&&(e=[e]),_.each(e,function(e,t){var i=l[e].replace("%s",a);n.push(i)})})}else n.push(t.data.error.message);d.warning(n.join(" ")),e.$emit("error save",t)})}var a=this,n={},o=a.data;if(_.each(a.headers.fields,function(e,t){"password"==e.type&&0!=e.name.indexOf("confirm")&&o["confirm_"+e.name]!=o[e.name]&&(n.password='Os campos "'+e.label+'" e "Confirmar '+e.label+'" não são iguais')}),Object.keys(n).length>0){var s=new Array;_.each(n,function(e,t){s.push(e)}),d.warning(s.join(" "))}else this.crudForm.$valid&&(e.$emit("before save",t),e.$$listeners["before save"]||t())},e.cancel=function(){r.dismiss("success")},e._upload=function(e,t){var a=l.appSettings.API_URL;return void 0!=e.customOptions.file.url&&void 0==e.customOptions.file.container?a+=e.customOptions.file.url:void 0==e.customOptions.file.url&&void 0!=e.customOptions.file.container?a+="upload/"+e.customOptions.file.container+"/upload":void 0!=e.customOptions.file.url&&void 0!=e.customOptions.file.container&&(a+="upload/"+e.customOptions.file.container+"/"+e.customOptions.file.url),c.upload({url:a,data:{file:t}})},e.download=function(t,a){if(void 0!=t.customOptions.file.container)var i=l.appSettings.API_URL+"upload/"+t.customOptions.file.container+"/download/"+e.data[t.name];else var i=l.appSettings.API_URL+e.module+"/download/"+t.name+"/"+a;e._download(i,t,e.data)},e.downloadDetail=function(t,a,i,n){if(void 0!=a.customOptions.file.container)var o=l.appSettings.API_URL+"upload/"+a.customOptions.file.container+"/download/"+n[a.name];else var o=l.appSettings.API_URL+e.module+"/details/"+t+"/download/"+a.name+"/"+i;e._download(o,a,n)},e._download=function(t,a,i){this.$http({method:"GET",url:t,responseType:"arraybuffer"}).success(function(t,n,o){if(o=o(),void 0!=a.customOptions.file.container)var l=i[a.name];else var l=o["content-disposition"].split(";")[1].split("=")[1].split('"')[1];var r=o["content-type"],s=new Blob([t],{type:r});e.downloadFile(s,l)})},e.downloadFile=function(e,t){var a=document.createElement("a");try{var i=window.URL.createObjectURL(e);a.setAttribute("href",i),a.setAttribute("download",t);var n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(n)}catch(o){}},e._autocomplete=function(t,a,i){var n=[],o=s.defer();if(t.autocomplete_dependencies.length>0){var l=t.autocomplete_dependencies;for(var r in l){var d=l[r];if(void 0==e.data[d.field]||null==e.data[d.field]){var c="Selecione o "+d.label,u=[];return u.push({id:null,label:c}),o.resolve(u),o.promise}e.data[d.field].id?n[d.field]=e.data[d.field].id:n[d.field]=e.data[d.field]}}if(a=a.trim(),(0==a.length||1==t.customOptions.select)&&(a="[blank]"),void 0==t.customOptions.list){var f="autocomplete/"+t.name+"/"+a;1==t.customOptions.select?n.limit=0:n.limit=20,e.resource.customGET(f,n).then(function(e){1==t.customOptions.select&&e.unshift({id:null,label:"--- Selecione ---"}),t.quickAdd===!0&&"[blank]"!=a&&e.push({id:null,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()})}else{var p=angular.copy(t.customOptions.list)||[];1==t.customOptions.select&&p.unshift({id:null,label:"--- Selecione ---"}),o.resolve(p)}return o.promise},e._autocompleteSelect=function(t,a,i,o){if(null!=t.id&&"integer"!=typeof t.id||"integer"==typeof t.id&&t.id>0)this.data[this.field.name]=t.id;else{if(null!=t.id)return this.data[this.field.name+".label"]=null,!1;this.data[this.field.name]=this.data[this.field.name+".label"]=null}"function"==typeof e.doafterAutoCompleteSelect[this.field.name]&&e.doafterAutoCompleteSelect[this.field.name].call(this,this.data,t,a,i);var l=this.field;n(function(){jQuery("#"+l.name).trigger("keyup")})},e.autocomplete=function(e,t){return this._autocomplete(e,t,null)},e.autocompleteDetail=function(e,t,a){return this._autocomplete(t,a,e)},e.autocompleteSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,null)},e.autocompleteDetailSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,e)}},500)}])}(),angular.module("letsAngular").run(["$templateCache",function(e){e.put("lets/views/crud/crud-detail-list.html",'
",b.push("m_"+r+i),h.push(a.join("#")+"#"+i)}}else i+1>0||(t.push(e.real_name),a.push(i)),o+=c(n,t,a)}),o}var u=e.getFilter();e.export_btn_is_disable=!0;var f=void 0!==e.totalPager?e.totalPager:$("tr").find("td").last().data("model").collection.state.totalRecords;if(f&&f>2e3)throw d.warning("Não é possível exportar mais que 2000 registros."),e.export_btn_is_disable=!1,"Não é possível exportar mais que 2000 registros.";var p=e.resource,m=o(e.headers),g='
',b=[],h=[];for(var v in m){var y=Object.keys(m[v])[0],w=Object.values(m[v])[0];"string"==typeof w?(g+="
",g+='',g+='",g+="
",b.push("m_"+y),h.push(y)):g+=c(m[v],[],[])}g+="
",s.swal({title:"Selecione as Colunas Desejadas",html:g,preConfirm:function(){var e=b.map(function(e){return document.getElementById(""+e).checked});return e},showCancelButton:!0}).then(function(t){if(t.value&&e.totalPager&&void 0!=e.totalPager){s.swal({html:"Por favor aguarde, estamos buscando os dados.",allowOutsideClick:!1,allowEscapeKey:!1,onOpen:function(){s.showLoading()}});var a=h.filter(function(e,a){return t.value[a]}),o=r(u);o=Object.assign({},o,{per_page:f}),p.customGET("pager",o).then(function(t){function o(){var o=t.data.map(function(e){var t={};return a.forEach(function(a){var n=a.split("#");if(1==n.length)t[a]=e[a];else if(n.length>1){n.reduce(function(t,a,o){return o===n.length-1?(t?t[a]=i(e,n):"",t):t?t[a]=t[a]?t[a]:{}:""},t)}}),t}),r=[];n(m,r,""),o.map(function(e){var t=r;t.forEach(function(t){var a=l(e,t.antes);"object"==typeof a&&(a=a.join(", ")),e[t.depois]=a}),t.forEach(function(t){t.antes[0]!=t.depois&&delete e[t.antes[0]]})}),console.log(o),s.close();var d=XLSX.utils.json_to_sheet(o),c=XLSX.utils.book_new();XLSX.utils.book_append_sheet(c,d,"dadosexportados");var u=moment().unix();XLSX.writeFile(c,"Exportacao_"+u+".xlsx"),e.export_btn_is_disable=!1}e.$emit("before export",t,o),e.$$listeners["before export"]||o()})}else void 0==e.totalPager||t.dismiss||s.swal({type:"info",title:"Ocorreu um erro",text:"Não é possível criar exportar os dados, pois não há registros."}),e.export_btn_is_disable=!1})}}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDFormModalController",["$controller","$scope","$modalInstance","ngToast","headers","Restangular","$stateParams","$timeout","$state","$rootScope","$q","$http","Upload","$modal","data","fwStringService","auth","fwObjectService","fwErrorService",function(t,a,i,n,o,l,r,s,d,c,u,f,p,m,g,b,h,v,y){
+t("CRUDEditController",{$scope:a,Restangular:l,$stateParams:r,$timeout:s,$modal:m,module:e,$state:d,$rootScope:c,$q:u,ngToast:n,$http:f,Upload:p}),a.data=g||{},a.headers=o,a.resource=l.all(o.route);for(var w in a.headers.fields){var $=a.headers.fields[w];"boolean"==$.type&&void 0==a.data[$.name]&&($.customOptions["default"]?a.data[$.name]=!0:a.data[$.name]=!1)}o.modal_id&&c.$emit("open:"+o.modal_id,a),a.cancel=function(){i.dismiss("cancel")},a.submit=function(){this.crudForm.$valid?i.close(a.data):y.emitFormErrors(this.crudForm)},c.$on("cancel-modal",function(e,t){i.dismiss("cancel")}),s(function(){a.$broadcast("setProgressFile")})}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDEditController",["$scope","Restangular","$stateParams","$timeout","$modal","module","$state","$rootScope","$q","ngToast","$http","Upload","fwModalService","$window",function(e,t,a,i,n,o,l,r,s,d,c,u,f,p){e.data={},e.dataLoaded=!1,e.module=o,e.$http=c,e.$emit("refresh-headers"),e.datepickers={},e.loading_http_request=!1,e.datepickerToggle=function(t){void 0==e.datepickers[t]&&(e.datepickers[t]=!1),e.datepickers[t]=!e.datepickers[t]},e.fetchData=function(){if(a.id)e.$parent.resource.customGET("crudGET/"+a.id).then(function(t){for(var a in e.headers.fields){var n=e.headers.fields[a];if("date"==n.type&&void 0!=t[n.name]&&null!=t[n.name]){var o=new Date(t[n.name]);o.setHours(o.getHours()+o.getTimezoneOffset()/60),t[n.name]=o}n.customOptions&&void 0!=n.customOptions.list&&n.customOptions.list.forEach(function(e){e.id==t[n.name]&&(t[n.name+".label"]=e.label)}),"password"==n.type&&(n.notnull=!1),n.customOptions&&void 0!=n.customOptions.file&&(e.fileName=t[n.name])}e.data=t,e.dataLoaded=!0,i(function(){e.$broadcast("setProgressFile")}),e.$emit("data-loaded")});else{i(function(){e.$emit("data-new")},50);for(var t in e.headers.fields){var n=e.headers.fields[t];"boolean"==n.type&&(e.data[n.name]=n.customOptions["default"]?n.customOptions["default"]:!1)}e.dataLoaded=!0,e.$emit("data-loaded")}},e.headersReady&&e.fetchData(),e.$on("headers-set",function(){e.fetchData()}),e._upload=function(e,t){var a=r.appSettings.API_URL;return void 0!=e.customOptions.file.url&&void 0==e.customOptions.file.container?a+=e.customOptions.file.url:void 0==e.customOptions.file.url&&void 0!=e.customOptions.file.container?a+="upload/"+e.customOptions.file.container+"/upload":void 0!=e.customOptions.file.url&&void 0!=e.customOptions.file.container&&(a+="upload/"+e.customOptions.file.container+"/"+e.customOptions.file.url),u.upload({url:a,data:{file:t}})},e.download=function(t,a){if(void 0!=t.customOptions.file.container)var i=r.appSettings.API_URL+"upload/"+t.customOptions.file.container+"/download/"+e.data[t.name];else var i=r.appSettings.API_URL+e.module+"/download/"+t.name+"/"+a;e._download(i,t,e.data)},e.downloadDetail=function(t,a,i,n){if(void 0!=a.customOptions.file.container)var o=r.appSettings.API_URL+"upload/"+a.customOptions.file.container+"/download/"+n[a.name];else var o=r.appSettings.API_URL+e.module+"/details/"+t+"/download/"+a.name+"/"+i;e._download(o,a,n)},e._download=function(t,a,i){this.$http({method:"GET",url:t,responseType:"arraybuffer"}).success(function(t,n,o){if(o=o(),void 0!=a.customOptions.file.container)var l=i[a.name];else var l=o["content-disposition"].split(";")[1].split("=")[1].split('"')[1];var r=o["content-type"],s=new Blob([t],{type:r});e.downloadFile(s,l)})},e.downloadFile=function(e,t){var a=document.createElement("a");try{var i=window.URL.createObjectURL(e);a.setAttribute("href",i),a.setAttribute("download",t);var n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(n)}catch(o){}},e.getFilter=function(){return decodeURIComponent(p.location.search).replace("?filter=","")},e.submit=function(){function t(t){if(t)i.loading_http_request=!1,t.message?d.warning(t.message):d.warning("Confira seu formulário");else{i.headers.tabs&&Object.keys(i.headers.tabs).forEach(function(e){i.data[e]&&delete i.data[e]});var n;if(a.id){n=e.data.put();var o="edit"}else{n=e.$parent.resource.post(e.data);var o="new"}n.then(function(t){function a(){i.loading_http_request=!1,l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})}e.$emit("after save",a,t,o),e.$$listeners["after save"]||a()},function(t){function a(e){for(var t in i.headers.fields){var a=i.headers.fields[t];if(a.name==e)return a.label}}var n=[];if(i.loading_http_request=!1,422==t.status)if("CANT_SAVE_MODEL"==t.data.error.code)n.push(t.data.error.message);else if(t.data.error.details){var o=t.data.error.details.codes,l={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro","custom.email":"Este email não é válido"};_.each(o,function(e,t){var i=a(t);"string"==typeof e&&(e=[e]),_.each(e,function(e,t){var a=l[e].replace("%s",i);n.push(a)})})}else n.push(t.data.error.message);d.warning(n.join(" ")),e.$emit("error save",t)})}}var i=this,n={},o=i.data;if(_.each(i.headers.fields,function(e,t){o[e.name]||0==o[e.name]||e.notnull||"number"!==e.type||(o[e.name]=null),"password"==e.type&&0!=e.name.indexOf("confirm")&&o["confirm_"+e.name]!=o[e.name]&&(n.password='Os campos "'+e.label+'" e "Confirmar '+e.label+'" não são iguais')}),_.each(i.data,function(e,t){-1!==t.indexOf(".label")&&void 0===o.id&&"object"!=typeof e&&""!==e&&(n[t]="Adicione o(a) "+t.split(".")[0]+" no sistema antes de escolher nesse formulário!"),"data_nascimento"===t&&(moment(e).isAfter(moment())||moment(e).isSame(moment(),"day"))&&(n[t]="Insira uma data de nascimento válida, anterior ao dia de hoje!")}),Object.keys(n).length>0){var r=new Array;_.each(n,function(e,t){r.push(e)}),d.warning(r.join(" "))}else if(this.crudForm.$valid)i.loading_http_request=!0,e.$emit("before save",t),e.$$listeners["before save"]||t();else{var s=[],c=Object.keys(this.crudForm.$error),u=/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/;for(var f in c){var p=this.crudForm.$error[c[f]];for(var m in p){var g=p[m].$options.fieldInfo.label;"required"==c[f]?s.push("O campo "+g+" é obrigatório"):"date"==c[f]&&0==u.test(p[m].$viewValue)&&s.push("O campo "+g+" está com uma data inválida")}}if(s.length>0)d.warning(s.join(" "));else{if(a.id)var b=e.data.put(),h="edit";else var b=e.$parent.resource.post(e.data),h="new";b.then(function(){void 0!=e.doAfterSave&&"function"==typeof e.doAfterSave?e.doAfterSave(resp,h):l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})},function(e){function t(e){for(var t in i.headers.fields){var a=i.headers.fields[t];if(a.name==e)return a.label}}var a=[];if(422==e.status)if("CANT_SAVE_MODEL"==e.data.error.code)a.push(e.data.error.message);else if(e.data.error.details){var n=e.data.error.details.codes,o={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro"};_.each(n,function(e,i){var n=t(i),l=o[e].replace("%s",n);a.push(l)})}else a.push(e.data.error.message);d.warning(a.join(" "))})}}},e.cancel=function(){l.go(l.current.name.replace(".edit",".list").replace(".new",".list"),{filter:e.getFilter()})},e.autocompleteModels={},e.autocompleteAdd=function(e){},e._autocomplete=function(t,a,i){var n=[],o=s.defer();if(t.autocomplete_dependencies.length>0){var l=t.autocomplete_dependencies;for(var r in l){var d=l[r];if(void 0==e.data[d.field]||null==e.data[d.field]){var c="Selecione antes o(a) "+d.label,u=[];return u.push({id:null,label:c}),o.resolve(u),o.promise}n[d.field]=e.data[d.field]}}if(a=a.trim(),(0==a.length||1==t.customOptions.select)&&(a="[blank]"),void 0!==t.customOptions.general)e.resource.customGET("general/autocomplete/"+t.customOptions.general+"/"+a,n).then(function(e){t.quickAdd===!0&&"[blank]"!=a&&e.push({id:-1,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()});else if(void 0==t.customOptions.list){if(i)var f="details/"+i+"/autocomplete/"+t.name+"/"+a;else var f="autocomplete/"+t.name+"/"+a;1==t.customOptions.select?n.limit=0:n.limit=20,e.resource.customGET(f,n).then(function(e){1==t.customOptions.select&&e.unshift({id:null,label:"--- Selecione ---"}),t.quickAdd===!0&&"[blank]"!=a&&e.push({id:-1,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()})}else{var p=angular.copy(t.customOptions.list)||[];1==t.customOptions.select&&p.unshift({id:null,label:"--- Selecione ---"}),o.resolve(p)}return o.promise},e.autocomplete=function(e,t){return this._autocomplete(e,t,null)},e.autocompleteDetail=function(e,t,a){return this._autocomplete(t,a,e)},e.doafterAutoCompleteSelect={},e._autocompleteSelect=function(t,a,n,o){var l=o?this.detail_data:this.data;if(void 0==l&&(l={}),null!=t.id&&"integer"!=typeof t.id||"integer"==typeof t.id&&t.id>0)l[this.field.name]=t.id;else{if(null!=t.id)return l[this.field.name+".label"]=null,!1;l[this.field.name]=l[this.field.name+".label"]=null}"function"==typeof e.doafterAutoCompleteSelect[this.field.name]&&e.doafterAutoCompleteSelect[this.field.name].call(this,l,t,a,n),o?this.detail_data=l:this.data=l;var r=this.field;i(function(){jQuery("#"+r.name).trigger("keyup")})},e.autocompleteSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,null)},e.autocompleteDetailSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,e)},e.openPopup=function(e){e.preventDefault(),e.stopPropagation(),this.popupOpen=!0},e.buttonClick=function(t){e[t]()},e.newDetail=function(t,a,i,n){t.fixedRoute||(t.fixedRoute=t.route);e.headers.parent_route?e.headers.parent_route:e.headers.route.toLowerCase();t.route=i?n:e.headers.route+t.fixedRoute,t.id=i?i:null,f.createCRUDModal(t,null,"CRUDEditDetailController")},e.deleteDetail=function(e,a){var i=t.all(e);i.customDELETE(a.id).then(function(){r.$broadcast("refreshGRID"),r.$broadcast("data-grid-updated",{type:e.split("/").pop()})},function(e){d.warning(e.data.error.message)})},e.newDetailData=function(t,a,i){if(e.data[a]=e.data[a]||[],i){var n=e.headers[t][a];n.route_detail?n.route=n.route_detail:n.route=e.headers.route+"/details/"+a,f.createCRUDModal(n).then(function(t){t["new"]=!0,e.data[a].push(t)})}else{var o={},l=e.headers[t][a].fields;for(var r in l)"boolean"!=l[r].type?o[l[r].name]=null:o[l[r].name]=!1;o["new"]=!0,e.data[a].push(o),e.$apply()}},e.editDetailData=function(t,a,i){var n=e.headers[t][a];n.route_detail?n.route=n.route_detail:n.route=e.headers.route+"/details/"+a,f.createCRUDModal(n,i).then(function(t){e.data[a][e.data[a].indexOf(i)]=t})},e.deleteDetailData=function(e,t){window.confirm("Deseja realmente excluir esse item?")&&this.data[t].splice(this.data[t].indexOf(e),1)}}])}(),function(){"use strict";var e=angular.module("letsAngular");e.controller("CRUDEditDetailController",["$scope","Restangular","$http","$stateParams","$timeout","headers","$rootScope","$modalInstance","$q","ngToast","Upload",function(e,t,a,i,n,o,l,r,s,d,c){e.data={},e.headers=o,e.resource=t.all(o.route),e.autocompleteModels={},e.doafterAutoCompleteSelect={},e.$http=a,o.modal_id&&l.$emit("open:"+o.modal_id,e),e.datepickers={},e.datepickerToggle=function(t){void 0==e.datepickers[t]&&(e.datepickers[t]=!1),e.datepickers[t]=!e.datepickers[t]};for(var u in e.headers.fields){var f=e.headers.fields[u];"boolean"==f.type&&(e.data[f.name]=!1)}if(o.id)e.resource.customGET(o.id).then(function(t){for(var a in e.headers.fields){var i=e.headers.fields[a];if("date"==i.type&&void 0!=t[i.name]&&null!=t[i.name]){var o=new Date(t[i.name]);o.setHours(o.getHours()+o.getTimezoneOffset()/60),t[i.name]=o}i.customOptions&&void 0!=i.customOptions.list&&i.customOptions.list.forEach(function(e){e.id==t[i.name]&&(t[i.name+".label"]=e.label)}),"password"==i.type&&(i.notnull=!1)}e.data=t,n(function(){e.$broadcast("setProgressFile")}),e.$emit("data-loaded-detail")});else{n(function(){e.$emit("data-new-detail")},50);for(var u in e.headers.fields){var f=e.headers.fields[u];"boolean"==f.type&&(e.data[f.name]=f.customOptions["default"]?f.customOptions["default"]:!1)}}n(function(){e.submit=function(){function t(){if(e.data.id)var t=e.resource.customPUT(e.data,e.data.id),n="edit";else var t=e.resource.customPOST(e.data,i.id),n="new";t.then(function(t){function a(){l.$broadcast("refreshGRID"),r.dismiss("success")}e.$emit("after save",a,t,n),e.$$listeners["after save"]||a()},function(t){function i(e){for(var t in a.headers.fields){var i=a.headers.fields[t];if(i.name==e)return i.label}}var n=[];if(422==t.status)if("CANT_SAVE_MODEL"==t.data.error.code)n.push(t.data.error.message);else if(t.data.error.details){var o=t.data.error.details.codes,l={presence:"O campo %s é obrigatório",absence:"O campo %s deve ser nulo","unknown-property":"O campo %s não foi definido",length:{min:"O campo %s é muito curto",max:"O campo %s é muito longo",is:"O campo %s está com tamanho inválido"},common:{blank:"O campo %s está em branco","null":"O campo %s está nulo"},numericality:{"int":"O campo %s não é um número inteiro",number:"O campo %s não é um número"},inclusion:"O campo %s não foi incluído na lista",exclusion:"O campo %s não pode ser excluído",uniqueness:"O campo %s está repetido com o de outro registro","custom.email":"Este email não é válido"};_.each(o,function(e,t){var a=i(t);"string"==typeof e&&(e=[e]),_.each(e,function(e,t){var i=l[e].replace("%s",a);n.push(i)})})}else n.push(t.data.error.message);d.warning(n.join(" ")),e.$emit("error save",t)})}var a=this,n={},o=a.data;if(_.each(a.headers.fields,function(e,t){"password"==e.type&&0!=e.name.indexOf("confirm")&&o["confirm_"+e.name]!=o[e.name]&&(n.password='Os campos "'+e.label+'" e "Confirmar '+e.label+'" não são iguais')}),Object.keys(n).length>0){var s=new Array;_.each(n,function(e,t){s.push(e)}),d.warning(s.join(" "))}else this.crudForm.$valid&&(e.$emit("before save",t),e.$$listeners["before save"]||t())},e.cancel=function(){r.dismiss("success")},e._upload=function(e,t){var a=l.appSettings.API_URL;return void 0!=e.customOptions.file.url&&void 0==e.customOptions.file.container?a+=e.customOptions.file.url:void 0==e.customOptions.file.url&&void 0!=e.customOptions.file.container?a+="upload/"+e.customOptions.file.container+"/upload":void 0!=e.customOptions.file.url&&void 0!=e.customOptions.file.container&&(a+="upload/"+e.customOptions.file.container+"/"+e.customOptions.file.url),c.upload({url:a,data:{file:t}})},e.download=function(t,a){if(void 0!=t.customOptions.file.container)var i=l.appSettings.API_URL+"upload/"+t.customOptions.file.container+"/download/"+e.data[t.name];else var i=l.appSettings.API_URL+e.module+"/download/"+t.name+"/"+a;e._download(i,t,e.data)},e.downloadDetail=function(t,a,i,n){if(void 0!=a.customOptions.file.container)var o=l.appSettings.API_URL+"upload/"+a.customOptions.file.container+"/download/"+n[a.name];else var o=l.appSettings.API_URL+e.module+"/details/"+t+"/download/"+a.name+"/"+i;e._download(o,a,n)},e._download=function(t,a,i){this.$http({method:"GET",url:t,responseType:"arraybuffer"}).success(function(t,n,o){if(o=o(),void 0!=a.customOptions.file.container)var l=i[a.name];else var l=o["content-disposition"].split(";")[1].split("=")[1].split('"')[1];var r=o["content-type"],s=new Blob([t],{type:r});e.downloadFile(s,l)})},e.downloadFile=function(e,t){var a=document.createElement("a");try{var i=window.URL.createObjectURL(e);a.setAttribute("href",i),a.setAttribute("download",t);var n=new MouseEvent("click",{view:window,bubbles:!0,cancelable:!1});a.dispatchEvent(n)}catch(o){}},e._autocomplete=function(t,a,i){var n=[],o=s.defer();if(t.autocomplete_dependencies.length>0){var l=t.autocomplete_dependencies;for(var r in l){var d=l[r];if(void 0==e.data[d.field]||null==e.data[d.field]){var c="Selecione o "+d.label,u=[];return u.push({id:null,label:c}),o.resolve(u),o.promise}e.data[d.field].id?n[d.field]=e.data[d.field].id:n[d.field]=e.data[d.field]}}if(a=a.trim(),(0==a.length||1==t.customOptions.select)&&(a="[blank]"),void 0==t.customOptions.list){var f="autocomplete/"+t.name+"/"+a;1==t.customOptions.select?n.limit=0:n.limit=20,e.resource.customGET(f,n).then(function(e){1==t.customOptions.select&&e.unshift({id:null,label:"--- Selecione ---"}),t.quickAdd===!0&&"[blank]"!=a&&e.push({id:null,label:"Adicionar novo: "+a}),o.resolve(e)},function(){return o.reject()})}else{var p=angular.copy(t.customOptions.list)||[];1==t.customOptions.select&&p.unshift({id:null,label:"--- Selecione ---"}),o.resolve(p)}return o.promise},e._autocompleteSelect=function(t,a,i,o){if(null!=t.id&&"integer"!=typeof t.id||"integer"==typeof t.id&&t.id>0)this.data[this.field.name]=t.id;else{if(null!=t.id)return this.data[this.field.name+".label"]=null,!1;this.data[this.field.name]=this.data[this.field.name+".label"]=null}"function"==typeof e.doafterAutoCompleteSelect[this.field.name]&&e.doafterAutoCompleteSelect[this.field.name].call(this,this.data,t,a,i);var l=this.field;n(function(){jQuery("#"+l.name).trigger("keyup")})},e.autocomplete=function(e,t){return this._autocomplete(e,t,null)},e.autocompleteDetail=function(e,t,a){return this._autocomplete(t,a,e)},e.autocompleteSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,null)},e.autocompleteDetailSelect=function(e,t,a,i){this._autocompleteSelect(t,a,i,e)}},500)}])}(),angular.module("letsAngular").run(["$templateCache",function(e){e.put("lets/views/crud/crud-detail-list.html",'