File manager - Edit - /home/autoph/public_html/projects/ahg-hr/assets/index.e2637912.js
Back
import{_ as A,r as a,o as c,c as h,w as m,j as _,d as r,k as L,e as i,b,m as P,F as $,f as C,t as R}from"./index.3a33b88d.js";import{E as k}from"./EmployeeMonthlyScheduleService.21aabb5c.js";import{w as W,L as Q}from"./index.e90b797d.js";import{B as J}from"./index.1e572db2.js";import{C as K}from"./CreateButton.96a43e5c.js";import{D as X}from"./DeleteButton.3d4df072.js";import{E as Z}from"./EditButton.5d564d58.js";/* empty css */import{I as ee}from"./index.a5110576.js";import{A as te}from"./ActionCellRenderer.3c622cae.js";import{L as M}from"./Loading.d8a54a1a.js";import{I as oe}from"./index.d1aceaee.js";import{F as T}from"./index.f8c90c2f.js";import{F as U}from"./index.8531a646.js";/* empty css */import"./vue-cleave.min.88d00a75.js";import{C as I}from"./CloseButton.d312e091.js";import{S as q}from"./SubmitButton.16c237a6.js";import{U as z}from"./UpdateButton.285ca87f.js";import"./jspdf.es.min.763284f3.js";/* empty css */import{c as F,d as D,a as V,V as B}from"./array.0146f311.js";import{M as H}from"./Multiselect.c4704026.js";import{A as G}from"./ApproverService.fd062fd5.js";import{D as j}from"./DepartmentService.1251efbc.js";import{E as N}from"./EmployeeService.bb8f97d2.js";import{S as Y}from"./ScheduleShiftService.88a3bfd1.js";import{l as se}from"./lodash.adf89e63.js";import{P as re}from"./index.1269b959.js";import{h as ie}from"./meeting-office.7e6e2274.js";import{C as ae}from"./index.609bcb7c.js";import{B as ne}from"./index.8925dff3.js";import{A as le}from"./main.esm.786d3a20.js";import{D as de}from"./DenyButton.b6eeb370.js";import{M as O}from"./MonthlyScheduleApprovalService.4559de60.js";import"./logo-black.7c15feb3.js";import"./logo-white.b04c5a89.js";import"./transition.bee8c07d.js";import"./es.string.replace.f897d4b0.js";import"./ViewButton.a3057bdc.js";import"./index.212d4b04.js";const ce={components:{FormModal:U,FormGroup:T,SubmitButton:q,UpdateButton:z,CloseButton:I,Loading:M,Multiselect:H},data(){return{recommending:"",approving:"",departmentOptions:[],employeeOptions:[],scheduleOptions:[],form:{department:[],entries:[{employee:[],schedule_id:"",date_from:"",date_to:""}],recommending_id:"",approver_id:""},errors:{},state:{isEdit:!1,isSaving:!1,isLoading:!1,isEmployeeLoading:!1}}},methods:{loadRecord(t){console.log(t),this.resetForm(),this.state.isEdit=!0,this.form=t,this.form.department=t.department_ids},async fetchApprover(){await G.fetchApproverRecords().then(t=>{(this.$store.userSettings.getActiveUser.employees.classification_id==1||this.$store.userSettings.getActiveUser.employees.classification_id==2)&&t.data.map(e=>{e.classification_id==3&&(this.form.recommending_id=e.employee_id,this.recommending=e.firstname+" "+e.lastname),this.recommending==""&&e.classification_id==4&&(this.form.recommending_id=e.employee_id,this.recommending=e.firstname+" "+e.lastname),e.classification_id==4&&(this.form.approver_id=e.employee_id,this.approving=e.firstname+" "+e.lastname)}),this.$store.userSettings.getActiveUser.employees.classification_id==3&&t.data.map(e=>{e.classification_id==3&&(this.form.recommending_id=e.employee_id,this.recommending=e.firstname+" "+e.lastname),this.recommending==""&&e.classification_id==4&&(this.form.recommending_id=e.employee_id,this.recommending=e.firstname+" "+e.lastname),e.classification_id==4&&(this.form.approver_id=e.employee_id,this.approving=e.firstname+" "+e.lastname)})}).catch(t=>{console.log(t)})},resetForm(){this.state.isEdit=!1,this.form={department:[],entries:[{employee:[],schedule_id:"",date_from:"",date_to:""}],recommending_id:this.form.recommending_id,approver_id:this.form.approver_id}},addEntry(){this.form.entries.push({employee:[],schedule_id:"",date_from:"",date_to:""})},removeEntry(t){this.form.entries.splice(t,1)},async fetchDepartmentRecords(){await j.fetchRecords().then(t=>{t.status===200&&(this.departmentOptions=t.data.data.map(e=>({value:e.id,label:e.name})))}).catch(t=>{console.log(t)})},async fetchEmployeeRecords(){this.state.isEmployeeLoading=!0,await N.fetchEmployeeBaseOnDepartment(this.form.department).then(t=>{t.status===200&&(this.employeeOptions=t.data.map(e=>({value:e.employee_id,label:`${e.employee_id} - ${e.firstname} ${e.lastname}`})),t.data.forEach(e=>{this.form.entries[0].employee.push(e.employee_id)}),this.state.isEmployeeLoading=!1)}).catch(t=>{console.log(t)})},async fetchScheduleShiftRecords(){await Y.fetchRecords().then(t=>{t.status===200&&(this.scheduleOptions=t.data.data.map(e=>({value:e.id,label:e.name})))}).catch(t=>{console.log(t)})},async saveRecord(){this.state.isSaving=!0;const t={department:this.form.department,entries:this.form.entries.map(s=>({employee:s.employee,schedule_id:s.schedule_id,date_from:s.date_from,date_to:s.date_to})),recommending_id:this.form.recommending_id,approver_id:this.form.approver_id};await(this.state.isEdit?k.update(this.form.id,t):k.create(t)).then(s=>{s.status===201&&(this.$swal.fire({title:"Great!",text:`Record successfully ${this.state.isEdit?"updated":"saved"}.`,icon:"success",timer:2e3}),this.closeModal(),this.resetForm(),this.reload())}).catch(s=>{this.$swal.fire({title:"Oops! Something is wrong.",text:s.response.data.message||"Please contact the system administrator.",icon:"error",timer:2e3})}).finally(()=>{this.state.isSaving=!1})},closeModal(){this.state.showModal=!1},reload(){return this.$emit("reload")},async submitForm(){try{await F().shape({entries:D().of(F().shape({employee:D().of(V()).required("Employee field is required"),schedule_id:V().required("Schedule is required"),date_from:V().required("Date From field is required")}))}).validate(this.form,{abortEarly:!1}),this.$swal.fire({title:"Are you sure you want to save this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No"}).then(e=>{e.value&&this.saveRecord()})}catch(t){if(t instanceof B){const e={};t.inner.forEach(s=>{e[s.path]=s.message}),this.errors=e}this.state.isSaving=!1}}},watch:{"form.department":{handler:"fetchEmployeeRecords",immediate:!0}},mounted(){this.fetchDepartmentRecords(),this.fetchScheduleShiftRecords(),this.fetchApprover()}},me={class:"text-slate-600 dark:text-slate-400 text-sm font-normal"},ue={class:"grid grid-cols-2 gap-2"},pe={class:"grid grid-cols-2 gap-2"},fe=["onClick"],he={class:"grid grid-cols-2"},ge={class:"flex justify-center items-center gap-4 mt-4"},_e={class:"font-bold"},ye={class:"flex justify-center items-center gap-4"},ve={class:"font-bold"},be={class:"flex gap-1 justify-end"};function we(t,e,s,g,o,n){const y=a("Loading"),f=a("Multiselect"),u=a("FormGroup"),w=a("flat-pickr"),x=a("SubmitButton"),E=a("UpdateButton"),S=a("CloseButton"),l=a("FormModal");return c(),h(l,{title:o.state.isEdit?"Edit Work Arrangement":"Create Work Arrangement",active:o.state.showModal,onSubmit:t.confirmSubmit,onClose:n.closeModal,themeClass:o.state.isEdit?"bg-primary-600":"bg-gray-800",sizeClass:"lg:w-3/4"},{default:m(()=>[o.state.isEdit&&o.state.isLoading?(c(),h(y,{key:0,text:"Fetching record"})):_("",!0),r("div",me,[r("form",{onSubmit:e[2]||(e[2]=L((...d)=>t.confirmSubmit&&t.confirmSubmit(...d),["prevent"])),class:"space-y-4"},[o.state.isSaving?(c(),h(y,{key:0,text:"Saving record"})):_("",!0),i(u,{label:"Department",isRequired:!0},{default:m(()=>[i(f,{placeholder:"",modelValue:o.form.department,"onUpdate:modelValue":e[0]||(e[0]=d=>o.form.department=d),error:o.errors.department,options:o.departmentOptions,mode:"tags",searchable:!0},null,8,["modelValue","error","options"])]),_:1}),(c(!0),b($,null,P(o.form.entries,(d,p)=>(c(),b("div",{key:p,class:"border p-4 mb-4 rounded"},[r("div",ue,[i(u,{label:"Employee",isRequired:!0},{default:m(()=>[i(f,{placeholder:"",modelValue:d.employee,"onUpdate:modelValue":v=>d.employee=v,error:o.errors[`employee_${p}`],options:o.employeeOptions,mode:"tags",searchable:!0,loading:o.state.isEmployeeLoading},null,8,["modelValue","onUpdate:modelValue","error","options","loading"])]),_:2},1024),i(u,{label:"Employee Schedule",isRequired:!0},{default:m(()=>[i(f,{type:"text",placeholder:"",modelValue:d.schedule_id,"onUpdate:modelValue":v=>d.schedule_id=v,error:o.errors[`schedule_id_${p}`],options:o.scheduleOptions,searchable:!0},null,8,["modelValue","onUpdate:modelValue","error","options"])]),_:2},1024)]),r("div",pe,[i(u,{label:"Date From",isRequired:!0},{default:m(()=>[i(w,{type:"text",placeholder:"",modelValue:d.date_from,"onUpdate:modelValue":v=>d.date_from=v,error:o.errors[`date_from_${p}`],class:"form-control"},null,8,["modelValue","onUpdate:modelValue","error"])]),_:2},1024),i(u,{label:"Date To"},{default:m(()=>[i(w,{type:"text",placeholder:"",modelValue:d.date_to,"onUpdate:modelValue":v=>d.date_to=v,error:o.errors[`date_to_${p}`],class:"form-control",config:{minDate:d.date_from}},null,8,["modelValue","onUpdate:modelValue","error","config"])]),_:2},1024)]),o.form.entries.length>1?(c(),b("button",{key:0,type:"button",class:"text-red-600 hover:text-red-800",onClick:v=>n.removeEntry(p)}," Remove ",8,fe)):_("",!0)]))),128)),r("button",{type:"button",class:"bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600",onClick:e[1]||(e[1]=(...d)=>n.addEntry&&n.addEntry(...d))}," Add Employee Schedule "),r("div",he,[r("div",ge,[e[3]||(e[3]=C(" Recommending: ")),r("p",_e,R(o.recommending),1)]),r("div",ye,[e[4]||(e[4]=C(" Approving: ")),r("p",ve,R(o.approving),1)])]),r("div",be,[o.state.isEdit?(c(),h(E,{key:1,onClick:n.submitForm},null,8,["onClick"])):(c(),h(x,{key:0,onClick:n.submitForm},null,8,["onClick"])),i(S,{onClick:n.closeModal},null,8,["onClick"])])],32)])]),_:1},8,["title","active","onSubmit","onClose","themeClass"])}const xe=A(ce,[["render",we]]),Re={components:{FormModal:U,FormGroup:T,SubmitButton:q,UpdateButton:z,CloseButton:I,DenyButton:de,Loading:M,Multiselect:H},data(){return{currentEmployeeId:this.$store.userSettings.getActiveUser.employees?this.$store.userSettings.getActiveUser.employees.employee_id:"",currentClassificationId:this.$store.userSettings.getActiveUser.employees?this.$store.userSettings.getActiveUser.employees.classification_id:"",recommending:"",approving:"",departmentOptions:[],employeeOptions:[],scheduleOptions:[],currentRecommendingId:"",currentApprovingId:"",recommendingOptions:[],approvingOptions:[],status:[],form:{department:[],entries:[{employee:[],schedule_id:"",date_from:"",date_to:""}],recommending_id:"",approver_id:""},errors:{},state:{isEdit:!1,isSaving:!1,isLoading:!1,isEmployeeLoading:!1}}},methods:{async loadRecord(t){if(this.resetForm(),this.state.isEdit=!0,this.form=t,this.form.department=t.department_ids,this.currentRecommendingId=t.recommending?t.recommending[0].employee_id:"",this.currentApprovingId=t.approving?t.approving[0].employee_id:"",this.recommending=t.recommending?t.recommending[0].firstname+" "+t.recommending[0].lastname:"",this.approving=t.approving?t.approving[0].firstname+" "+t.approving[0].lastname:"",this.currentApprovingId==this.currentEmployeeId&&this.form.approver_id==this.currentEmployeeId?this.btnTitle="Approve":this.currentRecommendingId==this.currentEmployeeId&&this.form.status<1&&(this.btnTitle="Submit For Approval"),this.currentClassificationId>=3){console.log(this.currentClassificationId),console.log("requested",t);try{const e=await G.fetchEmployeeApprover(t.requested_by);if(e.status===200)this.recommendingOptions=e.data.map(s=>({value:s.employee_id,label:s.firstname+" "+s.lastname})),this.approvingOptions=e.data.filter(s=>s.classification_id>=3).map(s=>({value:s.employee_id,label:s.firstname+" "+s.lastname}));else throw new Error("Failed to fetch employee approvers")}catch(e){e.response?console.error("Error fetching employee approvers:",e.response):console.error("An unexpected error occurred:",e.message)}}},async updateApproverRecord(){this.state.isSaving=!0;const t=this.form.id;this.state.isSaving=!1;let e={recommending_id:this.form.recommending_id,approver_id:this.form.approver_id};console.log(e),await LeaveApproval.updateApprover(t,e).then(s=>{s.status==201?(this.$swal.fire({title:"Great!",text:"Record successfully updated.",icon:"success",timer:2e3}),this.state.showModal=!1):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}),this.reload()}).catch(s=>{s.response.status==422?this.$swal.fire({title:"Ooops! something is wrong.",text:s.response.data.message,icon:"warning"}):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3})})},resetForm(){this.state.isEdit=!1,this.form={department:[],entries:[{employee:[],schedule_id:"",date_from:"",date_to:""}],recommending_id:this.form.recommending_id,approver_id:this.form.approver_id}},addEntry(){this.form.entries.push({employee:[],schedule_id:"",date_from:"",date_to:""})},removeEntry(t){this.form.entries.splice(t,1)},async fetchDepartmentRecords(){await j.fetchRecords().then(t=>{t.status===200&&(this.departmentOptions=t.data.data.map(e=>({value:e.id,label:e.name})))}).catch(t=>{console.log(t)})},async fetchEmployeeRecords(){this.state.isEmployeeLoading=!0,await N.fetchEmployeeBaseOnDepartment(this.form.department).then(t=>{t.status===200&&(this.employeeOptions=t.data.map(e=>({value:e.employee_id,label:`${e.employee_id} - ${e.firstname} ${e.lastname}`}))),this.state.isEmployeeLoading=!1}).catch(t=>{console.log(t)})},async fetchScheduleShiftRecords(){await Y.fetchRecords().then(t=>{t.status===200&&(this.scheduleOptions=t.data.data.map(e=>({value:e.id,label:e.name})))}).catch(t=>{console.log(t)})},async saveRecord(){this.state.isSaving=!0,await O.update(this.form.id,this.status).then(e=>{e.status===201&&(this.$swal.fire({title:"Great!",text:`Record successfully ${this.state.isEdit?"updated":"saved"}.`,icon:"success",timer:2e3}),this.closeModal(),this.resetForm(),this.reload())}).catch(e=>{this.$swal.fire({title:"Oops! Something is wrong.",text:e.response.data.message||"Please contact the system administrator.",icon:"error",timer:2e3})}).finally(()=>{this.state.isSaving=!1})},closeModal(){this.state.showModal=!1},reload(){return this.state.isSaving=!1,this.state.showModal=!1,this.$emit("reload")},async submitForm(){this.form.approver_id==this.currentEmployeeId?this.status={status:2}:this.form.recommending_id==this.currentEmployeeId&&(this.status={status:1});try{this.$swal.fire({title:"Are you sure you want to save submit this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No"}).then(t=>{t.value&&this.saveRecord()})}catch(t){if(t instanceof B){const e={};t.inner.forEach(s=>{e[s.path]=s.message}),this.errors=e}}},async updateApproverForm(){try{this.$swal.fire({title:"Are you sure you want to update the approver of this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No"}).then(t=>{t.value&&this.updateApproverRecord()})}catch(t){if(t instanceof B){const e={};t.inner.forEach(s=>{e[s.path]=s.message}),this.errors=e}}},async denyForm(){try{this.$swal.fire({title:"Are you sure you want to deny this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No",html:` <textarea id="swal-input" style="width: 100%; height: 80px; padding: 8px; border: 1px solid #ced4da; border-radius: 4px;" placeholder="Enter reason"></textarea>`,preConfirm:()=>{const t=document.getElementById("swal-input").value;return t?this.denied_reason=t:(this.$swal.showValidationMessage("The reason field is required"),!1)}}).then(t=>{this.status={status:99,denied_reason:this.denied_reason},t.value&&this.saveRecord()})}catch(t){if(t instanceof B){const e={};t.inner.forEach(s=>{e[s.path]=s.message}),this.errors=e}}},async ReceiveByHr(t){try{if(t==99){const e=await this.$swal.fire({title:"State the Reason for Denying this Request",input:"textarea",inputPlaceholder:"Enter your reason here...",inputAttributes:{"aria-label":"Reason for denial"},showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Submit",cancelButtonText:"Cancel",preConfirm:s=>s||(this.$swal.showValidationMessage("Reason is required!"),!1)});e.isConfirmed&&e.value&&(console.log("Reason for denial:",e.value),this.updateRecordByHR(t,e.value))}else this.$swal.fire({title:"Are you sure you want to receive/validate this record?",text:"",icon:"question",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes",cancelButtonText:"No"}).then(e=>{e.value&&(console.log("recieved by HR"),this.updateRecordByHR(t))})}catch(e){if(e instanceof B){const s={};e.inner.forEach(g=>{s[g.path]=g.message}),this.errors=s}}},async updateRecordByHR(t,e=null){this.state.isSaving=!0;const s=this.form.id;let o={status:t,reason:e,meal:this.form.meal,meal_amount:this.form.meal_amount,transportation:this.form.transportation,transportation_amount:this.form.transportation_amount};await O.hrValidation(s,o).then(n=>{n.status==201?(console.log("response"),console.log(n),this.$swal.fire({title:"Great!",text:"Record successfully updated.",icon:"success",timer:2e3})):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}),this.reload()}).catch(n=>{n.response.status==422?this.$swal.fire({title:"Ooops! something is wrong.",text:n.response.data.message,icon:"warning"}):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}),this.state.isSaving=!1})}},watch:{"form.department":{handler:"fetchEmployeeRecords",immediate:!0}},mounted(){this.fetchDepartmentRecords(),this.fetchScheduleShiftRecords()}},Ce={class:"text-slate-600 dark:text-slate-400 text-sm font-normal"},Ee={key:0,class:"bg-red-50 dark:bg-red-900 dark:bg-opacity-30 border-l-4 border-red-500 p-4 rounded-md shadow-sm"},Se={class:"text-red-600 dark:text-red-400 text-sm"},Be={class:"grid grid-cols-2 gap-2"},ke={class:"grid grid-cols-2 gap-2"},Ve={key:1},Ae={class:"grid grid-cols-12 justify-center items-center"},Me={class:"col-span-8 flex justify-between items-center gap-4"},Fe={class:"col-span-6 flex justify-center items-center gap-4"},De={class:"font-bold"},Oe={class:"col-span-6 flex justify-center items-center gap-4"},Le={class:"font-bold"},Pe={key:2},$e={class:"grid grid-cols-12 gap-4"},Te={class:"col-span-6"},Ue={class:"relative"},Ie={class:"col-span-6"},qe={class:"relative"},ze={class:"flex gap-1 justify-end pt-8"};function He(t,e,s,g,o,n){const y=a("Loading"),f=a("Multiselect"),u=a("FormGroup"),w=a("flat-pickr"),x=a("UpdateButton"),E=a("CloseButton"),S=a("FormModal");return c(),h(S,{title:"View Work Arrangement",active:o.state.showModal,sideTitle:this.form.status==0?"for recommendation":this.form.status==1?"for approval":this.form.status==2&&this.form.validated==1?"validated":this.form.status==2&&this.form.validated==99?"Denied":this.form.status==2?"for validation":this.form.status==99?"denied":"",badgeColor:this.form.status==0?"warning":this.form.status==1?"info":this.form.status==2&&this.form.validated==1?"success":this.form.status==2&&this.form.validated==99?"danger":this.form.status==2?"purple":this.form.status==99?"danger":"",onSubmit:t.confirmSubmit,onClose:n.closeModal,themeClass:"bg-gray-800",sizeClass:"lg:w-3/4"},{default:m(()=>[o.state.isEdit&&o.state.isLoading?(c(),h(y,{key:0,text:"Fetching record"})):_("",!0),r("div",Ce,[this.form.status==2&&this.form.validated==99?(c(),b("div",Ee,[e[6]||(e[6]=r("h3",{class:"text-red-700 dark:text-red-300 font-semibold mb-1 text-sm"}," Denied Reason : ",-1)),r("p",Se,R(this.form.deferred_reason),1)])):_("",!0),r("form",{onSubmit:e[5]||(e[5]=L((...l)=>t.confirmSubmit&&t.confirmSubmit(...l),["prevent"])),class:"space-y-4"},[o.state.isSaving?(c(),h(y,{key:0,text:"Saving record"})):_("",!0),i(u,{label:"Department",isRequired:!0},{default:m(()=>[i(f,{placeholder:"",modelValue:o.form.department,"onUpdate:modelValue":e[0]||(e[0]=l=>o.form.department=l),error:o.errors.department,options:o.departmentOptions,mode:"tags",searchable:!0},null,8,["modelValue","error","options"])]),_:1}),(c(!0),b($,null,P(o.form.entries,(l,d)=>(c(),b("div",{key:d,class:"border p-4 mb-4 rounded"},[r("div",Be,[i(u,{label:"Employee",isRequired:!0},{default:m(()=>[i(f,{placeholder:"",modelValue:l.employee,"onUpdate:modelValue":p=>l.employee=p,error:o.errors[`employee_${d}`],options:o.employeeOptions,mode:"tags",searchable:!0,loading:o.state.isEmployeeLoading},null,8,["modelValue","onUpdate:modelValue","error","options","loading"])]),_:2},1024),i(u,{label:"Employee Schedule",isRequired:!0},{default:m(()=>[i(f,{type:"text",placeholder:"",modelValue:l.schedule_id,"onUpdate:modelValue":p=>l.schedule_id=p,error:o.errors[`schedule_id_${d}`],options:o.scheduleOptions,searchable:!0},null,8,["modelValue","onUpdate:modelValue","error","options"])]),_:2},1024)]),r("div",ke,[i(u,{label:"Date From",isRequired:!0},{default:m(()=>[i(w,{type:"text",placeholder:"",modelValue:l.date_from,"onUpdate:modelValue":p=>l.date_from=p,error:o.errors[`date_from_${d}`],class:"form-control"},null,8,["modelValue","onUpdate:modelValue","error"])]),_:2},1024),i(u,{label:"Date To"},{default:m(()=>[i(w,{type:"text",placeholder:"",modelValue:l.date_to,"onUpdate:modelValue":p=>l.date_to=p,error:o.errors[`date_to_${d}`],class:"form-control"},null,8,["modelValue","onUpdate:modelValue","error"])]),_:2},1024)])]))),128)),o.currentClassificationId<=2?(c(),b("div",Ve,[r("div",Ae,[r("div",Me,[r("div",Fe,[e[7]||(e[7]=C(" Recommending: ")),r("p",De,R(o.recommending),1)]),r("div",Oe,[e[8]||(e[8]=C(" Approving: ")),r("p",Le,R(o.approving),1)])])])])):(c(),b("div",Pe,[r("div",$e,[r("div",Te,[i(u,{label:"Recommending"},{default:m(()=>[r("div",Ue,[i(f,{modelValue:o.form.recommending_id,"onUpdate:modelValue":e[1]||(e[1]=l=>o.form.recommending_id=l),"close-on-select":!0,searchable:!0,id:"recommending_id",options:o.recommendingOptions},null,8,["modelValue","options"])])]),_:1})]),r("div",Ie,[i(u,{label:"Approver"},{default:m(()=>[r("div",qe,[i(f,{modelValue:o.form.approver_id,"onUpdate:modelValue":e[2]||(e[2]=l=>o.form.approver_id=l),"close-on-select":!0,searchable:!0,id:"approver_id",options:o.approvingOptions},null,8,["modelValue","options"])])]),_:1})])])])),r("div",ze,[this.form.status===2&&this.form.validated==0?(c(),h(x,{key:0,btnClass:"text-green-600 bg-transpanent hover:ring ring-green-600 ring-offset-1 border border-green-600 transition duration-150 ease-out hover:ease-in py-2 px-3",onClick:e[3]||(e[3]=l=>n.ReceiveByHr(1)),text:"Receive"})):_("",!0),this.form.status===2&&this.form.validated==0?(c(),h(x,{key:1,btnClass:"text-red-600 bg-transparent hover:ring ring-red-600 ring-offset-1 border border-red-600 transition duration-150 ease-out hover:ease-in py-2 px-3",icon:"material-symbols:unpublished",onClick:e[4]||(e[4]=l=>n.ReceiveByHr(99)),text:"Deny"})):_("",!0),i(E,{onClick:n.closeModal},null,8,["onClick"])])],32)])]),_:1},8,["active","sideTitle","badgeColor","onSubmit","onClose"])}const Ge=A(Re,[["render",He]]);const je={mixins:[W],setup(){},components:{ActionCellRenderer:te,AgGridVue:le,Badge:ne,Layout:Q,CreateButton:K,Loading:M,InputGroup:oe,EditButton:Z,DeleteButton:X,Button:J,Form:xe,Pagination:re,Card:ae,Icon:ee,View:Ge},data(){return{paginationPageSize:10,paginationPageSizeSelector:[10,25,50],colDefs:[{field:"#",flex:1},{field:"department name",filter:!0,floatingFilter:!0,flex:2},{field:"date coverage",headerName:"Date Coverage",filter:!0,floatingFilter:!0},{field:"date created",filter:!0,floatingFilter:!0},{headerName:"Status",field:"status",filter:!0,floatingFilter:!0,valueGetter:t=>{if(t.data.status==2&&t.data.validated==1)return"Validated";if(t.data.status==2&&t.data.validated==99)return"Denied by HR";switch(t.data.status){case 0:return"For Recommendation";case 1:return"For Approval";case 2:return"For Validation";case 99:return"Denied";default:return""}},cellRenderer:t=>{const e=t.value,s=document.createElement("div");switch(e){case"For Recommendation":s.innerHTML='<span class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 text-yellow-600 bg-gray-100 px-4">For Recommendation</span>';break;case"For Approval":s.innerHTML='<span class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 text-blue-600 bg-gray-100 px-4">For Approval</span>';break;case"For Validation":s.innerHTML='<div class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 bg-gray-100 text-fuchsia-600 px-4">For Validation</div>';break;case"Validated":s.innerHTML='<div class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 bg-gray-100 text-green-600 px-4">Validated</div>';break;case"Denied by HR":s.innerHTML=` <div class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 bg-gray-100 text-red-600 px-4"> Denied <button class="ml-2 inline-flex items-center px-2 py-1 text-white text-sm font-medium rounded hover:bg-white-700 focus:ring-2 focus:ring-yellow-500 focus:outline-none view-button" title="View details of why it was denied"> <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 mr-1 text-yellow-500" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"> <path stroke-linecap="round" stroke-linejoin="round" d="M10 4H4a2 2 0 00-2 2v12a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2h-6l-2-2H10a2 2 0 00-2 2v0z" /> </svg> </button> </div>`,s.querySelector(".view-button").addEventListener("click",()=>{this.view(t.data)});break;case"Approved":s.innerHTML='<div class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 bg-gray-100 text-green-600 px-4">Approved</div>';break;case"Denied":s.innerHTML='<span class="inline-block rounded-full text-xs capitalize whitespace-nowrap text-center py-1 text-red-600 bg-gray-100 px-4">Denied</span>';break;default:s.innerHTML=""}return s}},{headerName:"Actions",cellRenderer:"ActionCellRenderer",flex:1,cellRendererParams:{context:{componentParent:this}}}],scheduleData:[],headerImage:ie,breadcrumbs:[{text:"Home",href:"/"},{text:"Employee Management",href:"/employee-management/employee-schedule"},{text:"Employee Schedule",active:!0}],perPageOptions:[{value:"10",label:"10"},{value:"50",label:"50"},{value:"100",label:"100"}],state:{isLoading:!1,isMounted:!1,showModal:!1,isDeleting:!1},items:[],totalItems:0,error:[],searchQuery:"",serverOptions:{page:1,rowsPerPage:10,sortBy:"created_at",sortType:"asc"}}},watch:{serverOptions:{handler(){console.log(`perPage: ${this.serverOptions.rowsPerPage}`),this.fetchRecords()},deep:!0},searchQuery:se.debounce(function(){this.fetchRecords()},800)},computed:{perPage:function(){return this.serverOptions.rowsPerPage}},methods:{formatTime(t){let[e,s]=t.split(":");e=parseInt(e);const g=e>=12;return e=e%12||12,`${e}:${s} ${g?"PM":"AM"}`},async fetchRecords(){this.state.isLoading=!0,this.state.isMounted=!1,await k.fetchRecords({keyword:this.searchQuery,page:this.serverOptions.page,per_page:this.serverOptions.rowsPerPage,sortBy:this.serverOptions.sortBy,sortType:this.serverOptions.sortType}).then(t=>{this.scheduleData=t.data.map((e,s)=>{const{department_ids:g,entries:o}=e;return console.log("ent",e),{...e,"#":s+1,"department name":e.department_name,"date coverage":o[0].date_from!=o[0].date_to?`${this.$formatDate(o[0].date_from)} - ${this.$formatDate(o[0].date_to)}`:`${this.$formatDate(o[0].date_from)}`,"date created":this.$formatDate(e.created_at),status:e.status}})}).finally(()=>{this.state.isLoading=!1,this.state.isMounted=!0})},handlePageChange(t){console.log(t),console.log(this.serverOptions.page),this.serverOptions.page!=t&&(this.serverOptions.page=t)},handlePerPageChange(t){this.serverOptions.page=1,this.serverOptions.rowsPerPage=t},onSortChange(t){console.log(t),t[0].type!="none"&&(this.serverOptions.sortBy=t[0].field,this.serverOptions.sortType=t[0].type)},async deleteRecord(t){this.$swal.fire({title:"Are you sure?",text:"You want to delete this record?",icon:"warning",showCancelButton:!0,confirmButtonColor:"#34c38f",cancelButtonColor:"#f46a6a",confirmButtonText:"Yes, delete it!",background:this.$store.themeSettingsStore.isDark?"#1e293b":"#fff"}).then(e=>{e.value&&(this.state.isDeleting=!0,k.remove(t).then(s=>{console.log(s),s.status==201&&(this.$swal.fire({title:"Yaaay!",text:"Record has been deleted successfully.",type:"success",icon:"success",timer:2e3}),this.fetchRecords())}))}).catch(e=>{e.response&&e.response.status==401&&this.$swal.fire({title:"Ooops! something is wrong.",text:"Error deleting record. Please contact system administrator",type:"error",icon:"error",timer:2e3})}).finally(()=>{this.state.isDeleting=!1})},createRecord(){this.$refs.form.resetForm(),this.$refs.form.state.showModal=!0},editRecord(t){this.$refs.form.resetForm(),this.$refs.form.loadRecord(t),this.$refs.form.state.showModal=!0},view(t){console.log("DATA",t),this.viewRecord(t)},viewRecord(t){console.log(t),this.$refs.view.resetForm(),this.$refs.view.loadRecord(t),this.$refs.view.state.showModal=!0},closeModal(){this.state.showModal=!1,this.resetData(),this.fetchRecords()},resetData(){this.state={isLoading:!1,isMounted:!1,isResetError:!1,isSubmitted:!1,showModal:!1},this.categoryData={category_code:"",category_desc:""},this.error=[]}},mounted(){this.fetchRecords()}},Ne={class:"space-y-4 mt-4"},Ye={class:"flex-1 md:mb-0 mb-3"},We={class:"ag-grid-toolbar flex items-center justify-between px-4 py-2 bg-gray-100 border-b rounded-t-xl border-gray-200"},Qe={class:"flex items-center gap-4"},Je={class:"relative z-10 flex items-center transition-colors duration-300 group-hover:text-white"},Ke={class:"relative z-10 flex items-center transition-colors duration-300 group-hover:text-white"};function Xe(t,e,s,g,o,n){const y=a("Icon"),f=a("Button"),u=a("View"),w=a("ag-grid-vue"),x=a("Card"),E=a("Loading"),S=a("Form"),l=a("Layout");return c(),h(l,{breadcrumbs:o.breadcrumbs},{default:m(()=>[r("div",Ne,[i(x,{title:"Employee Work Arrangement"},{default:m(()=>[r("h6",Ye,R(t.title),1),r("div",We,[e[5]||(e[5]=r("div",{class:"flex items-center justify-center gap-4 text-gray-900"}," Employee schedule lists ",-1)),r("div",Qe,[i(f,{icon:"mdi:microsoft-excel",text:"Export to CSV",btnClass:"relative overflow-hidden font-normal px-4 py-2 rounded-lg shadow-md bg-white text-gray-900 border group transition-colors duration-300 group-hover:border-green-500",iconClass:"text-2xl",onClick:t.exportToCsv},{default:m(()=>[e[2]||(e[2]=r("span",{class:"absolute inset-0 bg-green-500 transition-transform duration-300 transform -translate-x-full group-hover:translate-x-0"},null,-1)),r("span",Je,[i(y,{icon:"mdi:microsoft-excel",class:"text-2xl mr-2"}),e[1]||(e[1]=C(" Export to CSV "))])]),_:1},8,["onClick"]),i(f,{icon:"heroicons-outline:plus-sm",text:"Add Record",btnClass:"relative overflow-hidden font-normal px-4 py-2 rounded-lg shadow-md bg-white text-gray-900 border group transition-colors duration-300 group-hover:border-gray-500 group-hover:border",iconClass:"text-lg",onClick:n.createRecord},{default:m(()=>[e[4]||(e[4]=r("span",{class:"absolute inset-0 bg-gray-900 transition-transform duration-300 transform -translate-x-full group-hover:translate-x-0"},null,-1)),r("span",Ke,[i(y,{icon:"heroicons-outline:plus-sm",class:"text-2xl mr-2"}),e[3]||(e[3]=C(" Add Record "))])]),_:1},8,["onClick"])])]),i(u,{ref:"view",onReload:n.fetchRecords},null,8,["onReload"]),i(w,{ref:"agGrid",rowData:o.scheduleData,columnDefs:o.colDefs,style:{height:"500px"},class:"ag-theme-quartz",pagination:!0,paginationPageSize:o.paginationPageSize,paginationPageSizeSelector:o.paginationPageSizeSelector,onGridReady:t.onGridReady},null,8,["rowData","columnDefs","paginationPageSize","paginationPageSizeSelector","onGridReady"])]),_:1}),o.state.isLoading?(c(),h(E,{key:0,text:"Fetching records"})):_("",!0),i(S,{onCloseModal:e[0]||(e[0]=d=>o.state.showModal=!1),ref:"form",onReload:n.fetchRecords},null,8,["onReload"])])]),_:1},8,["breadcrumbs"])}const It=A(je,[["render",Xe],["__scopeId","data-v-23b501e7"]]);export{It as default};
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0 |
proxy
|
phpinfo
|
Settings