import"./index.1e572db2.js";import{I as W}from"./index.a5110576.js";import{x as X,y as Z,_ as q,at as $,r as p,o as m,c as v,w as _,j as y,d as g,b as D,h as I,k as ee,e as b,t as N,F as te,m as oe}from"./index.3a33b88d.js";import{C as se}from"./CreateButton.96a43e5c.js";import{D as ae}from"./DeleteButton.3d4df072.js";import{E as re}from"./EditButton.5d564d58.js";/* empty css */import{S as ne}from"./SettingsButton.132daec8.js";import"./jspdf.es.min.763284f3.js";/* empty css */import{I as le}from"./index.d1aceaee.js";import{L as U}from"./Loading.d8a54a1a.js";import{P as ie}from"./Pagination.892d6849.js";import{T as ce}from"./index.bf9a9709.js";import{L as de}from"./index.e90b797d.js";import{l as me}from"./lodash.adf89e63.js";import{C as ue}from"./CloseButton.d312e091.js";import{S as he}from"./SubmitButton.16c237a6.js";import{U as fe}from"./UpdateButton.285ca87f.js";import{F as ge}from"./index.f8c90c2f.js";import{F as pe}from"./index.8531a646.js";/* empty css */import{T as be}from"./index.0333a319.js";import{T as ye}from"./index.a785f83f.js";import{C as ve}from"./CompanyService.e719905a.js";import{D as Ce}from"./DealershipService.99d37351.js";import{P as S}from"./PayrollDateService.3e6c019e.js";import{M as _e}from"./Multiselect.c4704026.js";/* empty css */import{c as we,a as B,d as j,V as ke}from"./array.0146f311.js";import{B as Pe}from"./index.8925dff3.js";import"./vue-cleave.min.88d00a75.js";import"./logo-black.7c15feb3.js";import"./logo-white.b04c5a89.js";import"./transition.bee8c07d.js";import"./es.string.replace.f897d4b0.js";import"./index.212d4b04.js";var G={exports:{}};(function(o,t){(function(u,h){o.exports=h()})(X,function(){/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var u=function(){return u=Object.assign||function(l){for(var e,d=1,F=arguments.length;de.config.maxDate&&(a=e.config.maxDate),e.currentYear=a.getFullYear()),e.currentYearElement.value=String(e.currentYear),e.rContainer){var r=e.rContainer.querySelectorAll(".flatpickr-monthSelect-month");r.forEach(function(i){i.dateObj.setFullYear(e.currentYear),e.config.minDate&&i.dateObje.config.maxDate?i.classList.add("flatpickr-disabled"):i.classList.remove("flatpickr-disabled")})}k()}function L(a){a.preventDefault(),a.stopPropagation();var r=c(a);if(r instanceof Element&&!r.classList.contains("flatpickr-disabled")&&!r.classList.contains("notAllowed")&&(Y(r.dateObj),e.config.closeOnSelect)){var i=e.config.mode==="single",C=e.config.mode==="range"&&e.selectedDates.length===2;(i||C)&&e.close()}}function Y(a){var r=new Date(e.currentYear,a.getMonth(),a.getDate()),i=[];switch(e.config.mode){case"single":i=[r];break;case"multiple":i.push(r);break;case"range":e.selectedDates.length===2?i=[r]:(i=e.selectedDates.concat([r]),i.sort(function(C,O){return C.getTime()-O.getTime()}));break}e.setDate(i,!0),k()}var T={37:-1,39:1,40:3,38:-3};function Q(a,r,i,C){var O=T[C.keyCode]!==void 0;if(!(!O&&C.keyCode!==13)&&!(!e.rContainer||!d.monthsContainer)){var J=e.rContainer.querySelector(".flatpickr-monthSelect-month.selected"),E=Array.prototype.indexOf.call(d.monthsContainer.children,document.activeElement);if(E===-1){var A=J||d.monthsContainer.firstElementChild;A.focus(),E=A.$i}O?d.monthsContainer.children[(12+E+T[C.keyCode])%12].focus():C.keyCode===13&&d.monthsContainer.contains(document.activeElement)&&Y(document.activeElement.dateObj)}}function V(){var a;((a=e.config)===null||a===void 0?void 0:a.mode)==="range"&&e.selectedDates.length===1&&e.clear(!1),e.selectedDates.length||P()}function z(){l._stubbedCurrentMonth=e._initialDate.getMonth(),e._initialDate.setMonth(l._stubbedCurrentMonth),e.currentMonth=l._stubbedCurrentMonth}function H(){l._stubbedCurrentMonth&&(e._initialDate.setMonth(l._stubbedCurrentMonth),e.currentMonth=l._stubbedCurrentMonth,delete l._stubbedCurrentMonth)}function K(){if(d.monthsContainer!==null)for(var a=d.monthsContainer.querySelectorAll(".flatpickr-monthSelect-month"),r=0;rt.company_id==this.form.company_id).map(t=>({label:t.name,value:t.id})),o},dayOptions(){const o=[];for(let t=1;t<=30;t++){let u;const h=t;h%10===1&&h%100!==11?u=`${h}st`:h%10===2&&h%100!==12?u=`${h}nd`:h%10===3&&h%100!==13?u=`${h}rd`:u=`${h}th`,o.push({label:u,value:h})}return o}},methods:{loadRecord(o){this.resetForm(),this.state.isEdit=!0;let t=Object.assign({},o);this.form=t},closeModal(){this.state.showModal=!1},resetForm(){this.state.isEdit=!1,this.state.batchCreate=!1,this.form={id:null,company_id:null,dealership_id:null,payroll_date:null,start_month:null,end_month:null,days:[]}},reload(){this.$emit("reload")},async fetchCompanies(){await ve.fetchRecords().then(o=>{o.status==200&&(this.companyOptions=o.data.data.map(t=>({value:t.id,label:t.code+" - "+t.name})))}).catch(o=>{console.log(o)})},async fetchDealerships(){await Ce.fetchRecords().then(o=>{o.status==200&&(this.dealers=o.data.data)}).catch(o=>{console.log(o)})},async saveRecord(){if(this.state.isSaving=!0,this.state.batchCreate)this.state.isSaving=!1,await S.createBatch(this.form).then(o=>{o.status==201&&(this.$swal.fire({title:"Great!",text:"Record successfully saved.",icon:"success",timer:2e3}),this.state.showModal=!1,this.reload())}).catch(o=>{this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3})}).finally(()=>this.state.isSaving=!1);else if(!this.state.isEdit)await S.create(this.form).then(o=>{o.status==201&&(this.$swal.fire({title:"Great!",text:"Record successfully saved.",icon:"success",timer:2e3}),this.state.showModal=!1,this.reload())}).catch(o=>{this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}).finally(()=>this.state.isSaving=!1)});else{const o=this.form.id;await S.update(o,this.form).then(t=>{t.status==201?this.state.showModal=!1:(this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3}),this.state.showModal=!1,this.reload())}).catch(t=>{console.log(t),t.response.status==422?this.$swal.fire({title:"Ooops! something is wrong.",text:t.response.data.message,icon:"warning"}):this.$swal.fire({title:"Ooops! something is wrong.",text:"Please contact system administrator",icon:"error",timer:2e3})}).finally(()=>{this.state.isSaving=!1})}},async submitForm(){try{await we().shape({start_month:this.state.batchCreate?B().required("From month is required"):B().nullable(),days:this.state.batchCreate?j().min(1,"Days is required"):j().nullable(),payroll_date:this.state.batchCreate?B().nullable():B().required("Payroll date 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(t=>{t.value&&this.saveRecord()})}catch(o){if(o instanceof ke){const t={};o.inner.forEach(u=>{t[u.path]=u.message}),this.errors=t,console.log("errors"),console.log(this.errors)}this.state.isSaving=!1}},toggleCreateBatch(){this.state.batchCreate=!this.state.batchCreate}},Validating(o){console.log(o)},mounted(){}},xe={class:"lg:p-2"},Se={key:0,class:"w-full mb-4 flex gap-3"},Oe={class:"flex gap-2"},Be={class:"flex gap-2"},Ee={class:"grid lg:grid-cols-2 gap-4"},Re={class:"relative"},Le={class:"relative"},Ye={key:0,class:"grid lg:grid-cols-3 gap-4"},Te={class:"relative"},Ve={class:"relative"},Ae={class:"relative"},Ie={key:1,class:"w-full grid"},Ne={class:"relative"},je={class:"flex gap-1 justify-end"};function qe(o,t,u,h,s,c){const M=p("Loading"),x=p("Icon"),f=p("Multiselect"),l=p("FormGroup"),e=p("FlatPickr"),d=p("SubmitButton"),F=p("UpdateButton"),w=p("CloseButton"),P=p("FormModal");return m(),v(P,{title:s.state.isEdit?"Edit Payroll Date":"Create New Payroll Date",active:s.state.showModal,onSubmit:c.submitForm,onClose:c.closeModal,themeClass:s.state.isEdit?"bg-primary-600":"bg-primary-800",sizeClass:"w-3/4"},{default:_(()=>[s.state.isEdit&&s.state.isLoading?(m(),v(M,{key:0,text:"Fetching record"})):y("",!0),s.state.isSaving?(m(),v(M,{key:1,text:"Saving record"})):y("",!0),g("div",xe,[s.state.isEdit?y("",!0):(m(),D("div",Se,[t[11]||(t[11]=g("div",null,"Create batch payroll dates ?",-1)),g("button",{class:I(["py-1 px-4 rounded bg-slate-50 border border-slate-500",s.state.batchCreate?"bg-blue-100 text-blue-600 border-blue-500":""]),onClick:t[0]||(t[0]=n=>s.state.batchCreate=!0)},[g("div",Oe,[s.state.batchCreate?(m(),v(x,{key:0,icon:"mdi:check-bold",class:"pt-1 text-blue-500"})):y("",!0),t[9]||(t[9]=g("span",null,"Yes",-1))])],2),g("button",{class:I(["py-1 px-4 rounded bg-slate-50 border border-slate-500",s.state.batchCreate?"":"bg-red-100 text-red-600 border-red-500"]),onClick:t[1]||(t[1]=n=>s.state.batchCreate=!1)},[g("div",Be,[s.state.batchCreate?y("",!0):(m(),v(x,{key:0,icon:"mdi:remove-bold",class:"pt-1 text-red-500"})),t[10]||(t[10]=g("span",null,"No",-1))])],2)])),g("form",{onSubmit:t[8]||(t[8]=ee((...n)=>c.submitForm&&c.submitForm(...n),["prevent"])),class:"space-y-4"},[g("div",Ee,[b(l,{label:"Company",class:"w-full"},{default:_(()=>[g("div",Re,[b(f,{modelValue:s.form.company_id,"onUpdate:modelValue":t[2]||(t[2]=n=>s.form.company_id=n),"close-on-select":!0,searchable:!0,id:"company_id",options:s.companyOptions},null,8,["modelValue","options"])])]),_:1}),b(l,{label:"Dealership",class:"w-full"},{default:_(()=>[g("div",Le,[b(f,{modelValue:s.form.dealership_id,"onUpdate:modelValue":t[3]||(t[3]=n=>s.form.dealership_id=n),"close-on-select":!0,searchable:!0,id:"dealership_id",options:c.dealerOptions},null,8,["modelValue","options"])])]),_:1})]),s.state.batchCreate?(m(),D("div",Ye,[b(l,{label:"From Month",class:"w-full",isRequired:!0},{default:_(()=>[g("div",Te,[b(e,{class:"form-control",modelValue:s.form.start_month,"onUpdate:modelValue":t[4]||(t[4]=n=>s.form.start_month=n),config:s.flatpickrConfig,placeholder:"Select month and year"},null,8,["modelValue","config"])])]),_:1}),b(l,{label:"To Month",class:"w-full",isRequired:!0},{default:_(()=>[g("div",Ve,[b(e,{class:"form-control",modelValue:s.form.end_month,"onUpdate:modelValue":t[5]||(t[5]=n=>s.form.end_month=n),config:s.flatpickrConfig,placeholder:"Select month and year"},null,8,["modelValue","config"])])]),_:1}),b(l,{label:"Days of month",class:"w-full"},{default:_(()=>[g("div",Ae,[b(f,{modelValue:s.form.days,"onUpdate:modelValue":t[6]||(t[6]=n=>s.form.days=n),mode:"tags","close-on-select":!1,searchable:!0,id:"days",options:c.dayOptions},null,8,["modelValue","options"])])]),_:1})])):(m(),D("div",Ie,[b(l,{label:"Payroll date",class:"w-full",isRequired:!0},{default:_(()=>[g("div",Ne,[b(e,{class:"form-control",modelValue:s.form.payroll_date,"onUpdate:modelValue":t[7]||(t[7]=n=>s.form.payroll_date=n),config:{ddateFormat:"Y-m-d",altFormat:"F d, y"},placeholder:"Select payroll date"},null,8,["modelValue"])])]),_:1})])),g("div",je,[s.state.isEdit?(m(),v(F,{key:1,onClick:c.submitForm},null,8,["onClick"])):(m(),v(d,{key:0,onClick:c.submitForm},null,8,["onClick"])),b(w,{onClick:c.closeModal},null,8,["onClick"])])],32)])]),_:1},8,["title","active","onSubmit","onClose","themeClass"])}const Ue=q(Me,[["render",qe],["__scopeId","data-v-a73ebc25"]]),Ge={components:{Layout:de,CreateButton:se,InputGroup:le,Loading:U,EditButton:re,DeleteButton:ae,SettingsButton:ne,Pagination:ie,Form:Ue,Badge:Pe,Table:ce},setup(){},data(){return{title:"Payroll Dates",breadcrumbs:[{text:"Home",href:"/"},{text:"Payroll",href:"/payroll"},{text:"Payroll Dates",active:!0}],columns:[{label:"#",field:"#"},{label:"Company",field:"company_name"},{label:"Dealer",field:"dealer_name"},{label:"Payroll Date",field:"payroll_date"},{label:"Action",field:"action_buttons"}],perPageOptions:[{value:"10",label:"10"},{value:"50",label:"50"},{value:"100",label:"100"}],items:[],totalItems:0,totalPages:0,searchQuery:null,serverOptions:{page:1,rowsPerPage:10,sortBy:null,sortType:"asc"},state:{isLoading:!1,isEdit:!1,isDeleting:!1}}},watch:{serverOptions:{handler(){console.log(`perPage: ${this.serverOptions.rowsPerPage}`),this.fetchRecords()},deep:!0},searchQuery:me.debounce(function(){this.fetchRecords()},800)},methods:{async fetchRecords(){this.state.isLoading=!0,await S.fetchRecords({keyword:this.searchQuery,page:this.serverOptions.page,per_page:this.serverOptions.rowsPerPage,sortBy:this.serverOptions.sortBy,sortType:this.serverOptions.sortType}).then(o=>{console.log("response");let t=o.data.data;console.log(t),this.items=t,this.items=t.map((u,h)=>({...u,"#":(this.serverOptions.page-1)*this.serverOptions.rowsPerPage+(h+1)})),this.totalItems=o.data.total,this.totalPages=o.data.last_page}).finally(()=>{this.state.isLoading=!1})},async deleteRecord(o){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(t=>{t.value&&(this.state.isDeleting=!0,S.remove(o).then(u=>{u.status==200&&(this.$swal.fire({title:"Yaaay!",text:"Record has been deleted successfully.",type:"success",icon:"success",timer:2e3}),this.fetchRecords())}))}).catch(t=>{t.response&&t.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.fetchCompanies(),this.$refs.form.state.showModal=!0,this.$refs.form.resetForm()},editRecord(o){this.$refs.form.fetchCompanies(),this.$refs.form.resetForm(),this.$refs.form.loadRecord(o),this.$refs.form.state.showModal=!0},closeFormModal(){this.$refs.form.state.showModal=!1},editAccess(o){this.$refs.formAccess.resetForm(),this.$refs.formAccess.fetchRoleGroups(),this.$refs.formAccess.loadRecord(o),this.$refs.formAccess.state.showModal=!0},closeAccessModal(){this.$refs.formAccess.state.showModal=!1},handleSort({field:o,sortOrder:t}){this.serverOptions.sortBy=o,this.serverOptions.sortType=t},handleSearch(o){this.searchQuery=o},changePage(o){this.serverOptions.page=o},updateItemsPerPage(o){this.serverOptions.rowsPerPage=o,this.serverOptions.page=1},handleRowClick(o){console.log(o)}},mounted(){this.fetchRecords()}},Qe={key:0},ze={key:1},He={key:2,class:"badge-group"},Ke={key:3,class:"flex gap-1"};function Je(o,t,u,h,s,c){const M=p("Loading"),x=p("CreateButton"),f=p("Badge"),l=p("EditButton"),e=p("DeleteButton"),d=p("Pagination"),F=p("Table"),w=p("Form"),P=p("Layout");return m(),v(P,{breadcrumbs:s.breadcrumbs},{default:_(()=>[g("div",null,[s.state.isLoading?(m(),v(M,{key:0,text:"Fetching records"})):y("",!0),b(F,{headerTitle:s.title,columns:s.columns,rows:s.items,"default-sort-field":s.serverOptions.sortBy,"default-sort-order":s.serverOptions.sortType,onSort:c.handleSort,onSearch:c.handleSearch,"max-height":"600px",headerClass:"rounded-t bg-[url('@/assets/images/background/calendar.jpg')] bg-cover bg-[bottom] mih-h-24",headerBgOverlayClass:"bg-sky-300",headerTitleClass:"ml-4 rounded-lg text-slate-600 text-4xl",thClass:"py-6 bg-blue-50 font-semibold",tdClass:"py-4 px-4",hoverableRow:"",onRowClick:c.handleRowClick},{action:_(()=>[o.$ability.can("add","payrollDate")?(m(),v(x,{key:0,onClick:c.createRecord},null,8,["onClick"])):y("",!0)]),"table-row":_(n=>[n.column.field=="company_name"?(m(),D("div",Qe,N(n.row.company?n.row.company.name:"All"),1)):y("",!0),n.column.field=="dealer_name"?(m(),D("div",ze,N(n.row.dealership?n.row.dealership.name:"All"),1)):y("",!0),n.column.field=="action_access"?(m(),D("div",He,[(m(!0),D(te,null,oe(n.row.action_access,k=>(m(),v(f,{key:k,label:k,badgeClass:"bg-primary-700 text-primary-700 bg-opacity-[0.12] m-1"},null,8,["label"]))),128))])):y("",!0),n.column.field=="action_buttons"?(m(),D("div",Ke,[o.$ability.can("edit","cutoffSetting")?(m(),v(l,{key:0,onClick:k=>c.editRecord(n.row)},null,8,["onClick"])):y("",!0),o.$ability.can("delete","cutoffSetting")?(m(),v(e,{key:1,onClick:k=>c.deleteRecord(n.row.id)},null,8,["onClick"])):y("",!0)])):y("",!0)]),"pagination-bottom":_(()=>[b(d,{currentPage:s.serverOptions.page,totalItems:s.totalItems,totalPages:s.totalPages,itemsPerPage:s.serverOptions.rowsPerPage,onChangePage:c.changePage,onChangeItemsPerPage:c.updateItemsPerPage,pageOptions:[5,10,20,50,100],pageNumberClass:""},null,8,["currentPage","totalItems","totalPages","itemsPerPage","onChangePage","onChangeItemsPerPage"])]),_:1},8,["headerTitle","columns","rows","default-sort-field","default-sort-order","onSort","onSearch","onRowClick"]),b(w,{onCloseModal:c.closeFormModal,ref:"form",onReload:c.fetchRecords},null,8,["onCloseModal","onReload"])])]),_:1},8,["breadcrumbs"])}const Rt=q(Ge,[["render",Je]]);export{Rt as default};