"use strict";(globalThis["webpackChunkfirefly_iii"]=globalThis["webpackChunkfirefly_iii"]||[]).push([[4355],{4355:(e,t,s)=>{s.r(t),s.d(t,{default:()=>N});var r=s(9835),i=s(6970);const o={class:"row q-mx-md"},l={class:"col-12"},a={class:"row q-mx-md q-mt-md"},n={class:"col-xl-4 col-lg-6 col-md-12 col-xs-12 q-px-xs"},d=(0,r._)("div",{class:"text-h6"},"Basic options for recurring transaction",-1),u={class:"row"},c={class:"col-12 q-mb-xs"},m={class:"row"},p={class:"col-12 q-mb-xs"},b={class:"col-xl-4 col-lg-6 col-md-12 col-xs-12 q-px-xs"},_=(0,r._)("div",{class:"text-h6"},"Repeat info",-1),h={class:"row"},g={class:"col-12 q-mb-xs"},f={class:"row"},y={class:"col-12 q-mb-xs"},x={class:"row"},w={class:"col-12 q-mb-xs"},v={class:"row q-mx-md q-mt-md"},E={class:"col-xl-4 col-lg-6 col-md-12 col-xs-12 q-px-xs"},k=(0,r._)("div",{class:"text-h6"},"Single transaction",-1),V={class:"col-xl-4 col-lg-6 col-md-12 col-xs-12 q-px-xs"},q=(0,r._)("div",{class:"text-h6"},"Single repetition",-1),W={class:"row q-mx-md"},S={class:"col-12 q-pa-xs"},I={class:"row"},R={class:"col-12 text-right"},Z={class:"row"},M={class:"col-12 text-right"},D=(0,r._)("br",null,null,-1);function U(e,t,s,U,C,$){const Q=(0,r.up)("q-btn"),T=(0,r.up)("q-banner"),P=(0,r.up)("q-card-section"),F=(0,r.up)("q-input"),H=(0,r.up)("q-select"),B=(0,r.up)("q-card"),j=(0,r.up)("q-checkbox"),O=(0,r.up)("q-page");return(0,r.wg)(),(0,r.j4)(O,null,{default:(0,r.w5)((()=>[(0,r._)("div",o,[(0,r._)("div",l,[""!==C.errorMessage?((0,r.wg)(),(0,r.j4)(T,{key:0,class:"bg-orange text-white","inline-actions":"",rounded:""},{action:(0,r.w5)((()=>[(0,r.Wm)(Q,{flat:"",label:"Dismiss",onClick:$.dismissBanner},null,8,["onClick"])])),default:(0,r.w5)((()=>[(0,r.Uk)((0,i.zw)(C.errorMessage)+" ",1)])),_:1})):(0,r.kq)("",!0)])]),(0,r._)("div",a,[(0,r._)("div",n,[(0,r.Wm)(B,{bordered:""},{default:(0,r.w5)((()=>[(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[d])),_:1}),(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[(0,r._)("div",u,[(0,r._)("div",c,[(0,r.Wm)(F,{modelValue:C.title,"onUpdate:modelValue":t[0]||(t[0]=e=>C.title=e),disable:$.disabledInput,error:C.hasSubmissionErrors.title,"error-message":C.submissionErrors.title,label:e.$t("form.title"),"bottom-slots":"",clearable:"",outlined:"",type:"text"},null,8,["modelValue","disable","error","error-message","label"])])]),(0,r._)("div",m,[(0,r._)("div",p,[(0,r.Wm)(H,{modelValue:C.type,"onUpdate:modelValue":t[1]||(t[1]=e=>C.type=e),disable:$.disabledInput,error:C.hasSubmissionErrors.type,"error-message":C.submissionErrors.type,options:C.types,"bottom-slots":"",class:"q-pr-xs","emit-value":"",label:"Transaction type","map-options":"",outlined:""},null,8,["modelValue","disable","error","error-message","options"])])])])),_:1})])),_:1})]),(0,r._)("div",b,[(0,r.Wm)(B,{bordered:""},{default:(0,r.w5)((()=>[(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[_])),_:1}),(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[(0,r._)("div",h,[(0,r._)("div",g,[(0,r.Wm)(F,{modelValue:C.first_date,"onUpdate:modelValue":t[2]||(t[2]=e=>C.first_date=e),disable:$.disabledInput,error:C.hasSubmissionErrors.first_date,"error-message":C.submissionErrors.first_date,label:e.$t("form.first_date"),"bottom-slots":"",clearable:"",hint:"The first date you want the recurrence",outlined:"",type:"date"},null,8,["modelValue","disable","error","error-message","label"])])]),(0,r._)("div",f,[(0,r._)("div",y,[(0,r.Wm)(F,{modelValue:C.nr_of_repetitions,"onUpdate:modelValue":t[3]||(t[3]=e=>C.nr_of_repetitions=e),disable:$.disabledInput,error:C.hasSubmissionErrors.nr_of_repetitions,"error-message":C.submissionErrors.nr_of_repetitions,label:e.$t("form.repetitions"),"bottom-slots":"",clearable:"",hint:"nr_of_repetitions",outlined:"",step:"1",type:"number"},null,8,["modelValue","disable","error","error-message","label"])])]),(0,r._)("div",x,[(0,r._)("div",w,[(0,r.Wm)(F,{modelValue:C.repeat_until,"onUpdate:modelValue":t[4]||(t[4]=e=>C.repeat_until=e),disable:$.disabledInput,error:C.hasSubmissionErrors.repeat_until,"error-message":C.submissionErrors.repeat_until,"bottom-slots":"",clearable:"",hint:"repeat_until",outlined:"",type:"date"},null,8,["modelValue","disable","error","error-message"])])])])),_:1})])),_:1})])]),(0,r._)("div",v,[(0,r._)("div",E,[(0,r.Wm)(B,{bordered:""},{default:(0,r.w5)((()=>[(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[k])),_:1}),(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[(0,r.Wm)(F,{modelValue:C.transactions[C.index].description,"onUpdate:modelValue":t[5]||(t[5]=e=>C.transactions[C.index].description=e),disable:$.disabledInput,error:C.hasSubmissionErrors.transactions[C.index].description,"error-message":C.submissionErrors.transactions[C.index].description,label:e.$t("form.description"),"bottom-slots":"",clearable:"",outlined:"",type:"text"},null,8,["modelValue","disable","error","error-message","label"]),(0,r.Wm)(F,{modelValue:C.transactions[C.index].amount,"onUpdate:modelValue":t[6]||(t[6]=e=>C.transactions[C.index].amount=e),disable:$.disabledInput,error:C.hasSubmissionErrors.transactions[C.index].amount,"error-message":C.submissionErrors.transactions[C.index].amount,label:e.$t("firefly.amount"),mask:C.balance_input_mask,"bottom-slots":"",clearable:"","fill-mask":"0",hint:"Expects #.##",outlined:"","reverse-fill-mask":""},null,8,["modelValue","disable","error","error-message","label","mask"]),(0,r.Wm)(H,{modelValue:C.transactions[C.index].source_id,"onUpdate:modelValue":t[7]||(t[7]=e=>C.transactions[C.index].source_id=e),disable:C.loading,error:C.hasSubmissionErrors.transactions[C.index].source_id,"error-message":C.submissionErrors.transactions[C.index].source_id,options:C.accounts,"bottom-slots":"",class:"q-pr-xs","emit-value":"",label:"Source account","map-options":"",outlined:""},null,8,["modelValue","disable","error","error-message","options"]),(0,r.Wm)(H,{modelValue:C.transactions[C.index].destination_id,"onUpdate:modelValue":t[8]||(t[8]=e=>C.transactions[C.index].destination_id=e),disable:$.disabledInput,error:C.hasSubmissionErrors.transactions[C.index].destination_id,"error-message":C.submissionErrors.transactions[C.index].destination_id,options:C.accounts,"bottom-slots":"",class:"q-pr-xs","emit-value":"",label:"Destination account","map-options":"",outlined:""},null,8,["modelValue","disable","error","error-message","options"])])),_:1})])),_:1})]),(0,r._)("div",V,[(0,r.Wm)(B,{bordered:""},{default:(0,r.w5)((()=>[(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[q])),_:1}),(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[(0,r.Wm)(H,{modelValue:C.repetitions[C.index].type,"onUpdate:modelValue":t[9]||(t[9]=e=>C.repetitions[C.index].type=e),error:C.hasSubmissionErrors.repetitions[C.index].type,"error-message":C.submissionErrors.repetitions[C.index].type,options:C.repetition_types,"bottom-slots":"","emit-value":"",label:"Type of repetition","map-options":"",outlined:""},null,8,["modelValue","error","error-message","options"]),(0,r.Wm)(F,{modelValue:C.repetitions[C.index].skip,"onUpdate:modelValue":t[10]||(t[10]=e=>C.repetitions[C.index].skip=e),disable:$.disabledInput,error:C.hasSubmissionErrors.repetitions[C.index].skip,"error-message":C.submissionErrors.repetitions[C.index].skip,label:e.$t("firefly.skip"),"bottom-slots":"",clearable:"",max:"31",min:"0",outlined:"",type:"number"},null,8,["modelValue","disable","error","error-message","label"]),(0,r.Wm)(H,{modelValue:C.repetitions[C.index].weekend,"onUpdate:modelValue":t[11]||(t[11]=e=>C.repetitions[C.index].weekend=e),disable:$.disabledInput,error:C.hasSubmissionErrors.repetitions[C.index].weekend,"error-message":C.submissionErrors.repetitions[C.index].weekend,options:C.weekends,"bottom-slots":"",class:"q-pr-xs","emit-value":"",label:"Weekend?","map-options":"",outlined:""},null,8,["modelValue","disable","error","error-message","options"])])),_:1})])),_:1})])]),(0,r._)("div",W,[(0,r._)("div",S,[(0,r.Wm)(B,{class:"q-mt-xs"},{default:(0,r.w5)((()=>[(0,r.Wm)(P,null,{default:(0,r.w5)((()=>[(0,r._)("div",I,[(0,r._)("div",R,[(0,r.Wm)(Q,{disable:$.disabledInput,color:"primary",label:"Submit",onClick:$.submitRecurrence},null,8,["disable","onClick"])])]),(0,r._)("div",Z,[(0,r._)("div",M,[(0,r.Wm)(j,{modelValue:C.doReturnHere,"onUpdate:modelValue":t[12]||(t[12]=e=>C.doReturnHere=e),disable:$.disabledInput,label:"Return here to create another one","left-label":""},null,8,["modelValue","disable"]),D,(0,r.Wm)(j,{modelValue:C.doResetForm,"onUpdate:modelValue":t[13]||(t[13]=e=>C.doResetForm=e),disable:!C.doReturnHere||$.disabledInput,label:"Reset form after submission","left-label":""},null,8,["modelValue","disable"])])])])),_:1})])),_:1})])])])),_:1})}var C=s(1569);class ${post(e){let t="/api/v1/recurrences";return C.api.post(t,e)}}var Q=s(8898),T=s(3836),P=s(8480);const F={name:"Create",data(){return{index:0,loading:!0,submissionErrors:{},hasSubmissionErrors:{},submitting:!1,doReturnHere:!1,doResetForm:!1,errorMessage:"",balance_input_mask:"#.##",types:[{value:"withdrawal",label:"Withdrawal"},{value:"deposit",label:"Deposit"},{value:"transfer",label:"Transfer"}],weekends:[{value:1,label:"dont care"},{value:2,label:"skip creation"},{value:3,label:"jump to previous friday"},{value:4,label:"jump to next monday"}],repetition_types:[],accounts:[],title:"",type:"withdrawal",first_date:"",nr_of_repetitions:null,repeat_until:null,repetitions:{},transactions:{}}},watch:{first_date:function(){this.recalculateRepetitions()}},computed:{disabledInput:function(){return this.submitting}},created(){this.resetForm(),this.getAccounts(),this.recalculateRepetitions()},methods:{recalculateRepetitions:function(){console.log("recalculateRepetitions");let e=(0,P.Z)(this.first_date+"T00:00:00"),t=this.getXth(e);this.repetition_types=[{value:"daily",label:"Every day"},{value:"monthly",label:"Every month on the "+(0,Q.Z)(e,"do")+" day"},{value:"ndom",label:"Every month on the "+t+"-th "+(0,Q.Z)(e,"EEEE")},{value:"yearly",label:"Every year on "+(0,Q.Z)(e,"d MMMM")}]},getXth:function(e){let t=(0,Q.Z)(e,"EEEE"),s=new Date(e),r=0;s.setDate(1);const i=new Date(s.getFullYear(),s.getMonth()+1,0).getDate();let o=1;while(s.getDate()<=i&&e.getMonth()===s.getMonth()||o<=32){if(o++,t===(0,Q.Z)(s,"EEEE")&&r++,s.getDate()===e.getDate())return r;s.setDate(s.getDate()+1)}return r},resetForm:function(){this.title="",this.type="withdrawal",this.nr_of_repetitions=null,this.repeat_until=null;let e=new Date;e.setDate(e.getDate()+1),this.first_date=(0,Q.Z)(e,"y-MM-dd"),this.repetitions=[{type:"daily",moment:"",skip:null,weekend:1}],this.transactions=[{description:null,amount:null,foreign_amount:null,currency_id:null,currency_code:null,foreign_currency_id:null,foreign_currency_code:null,budget_id:null,category_id:null,source_id:null,destination_id:null,tags:null,piggy_bank_id:null}],this.resetErrors()},resetErrors:function(){this.submissionErrors={title:"",type:"",first_date:"",nr_of_repetitions:"",repeat_until:"",transactions:[{description:"",amount:"",foreign_amount:"",currency_id:"",currency_code:"",foreign_currency_id:"",foreign_currency_code:"",budget_id:"",category_id:"",source_id:"",destination_id:"",tags:"",piggy_bank_id:""}],repetitions:[{type:"",moment:"",skip:"",weekend:""}]},this.hasSubmissionErrors={title:!1,type:!1,first_date:!1,nr_of_repetitions:!1,repeat_until:!1,transactions:[{description:!1,amount:!1,foreign_amount:!1,currency_id:!1,currency_code:!1,foreign_currency_id:!1,foreign_currency_code:!1,budget_id:!1,category_id:!1,source_id:!1,destination_id:!1,tags:!1,piggy_bank_id:!1}],repetitions:[{type:!1,moment:!1,skip:!1,weekend:!1}]}},submitRecurrence:function(){this.submitting=!0,this.errorMessage="",this.resetErrors();const e=this.buildRecurrence();(new $).post(e).catch(this.processErrors).then(this.processSuccess)},buildRecurrence:function(){let e={title:this.title,type:this.type,first_date:this.first_date,nr_of_repetitions:this.nr_of_repetitions,repeat_until:this.repeat_until,transactions:this.transactions,repetitions:[]};for(let t in this.repetitions)if(this.repetitions.hasOwnProperty(t)){let s="",r=(0,P.Z)(this.first_date+"T00:00:00");if("monthly"===this.repetitions[t].type&&(s=r.getDate().toString()),"ndom"===this.repetitions[t].type){let e=this.getXth(r);s=e+","+(0,Q.Z)(r,"i")}"yearly"===this.repetitions[t].type&&(s=(0,Q.Z)(r,"yyyy-MM-dd")),e.repetitions.push({type:this.repetitions[t].type,moment:s,skip:this.repetitions[t].skip,weekend:this.repetitions[t].weekend})}return e},dismissBanner:function(){this.errorMessage=""},processSuccess:function(e){if(!e)return;this.submitting=!1;let t={level:"success",text:"I am new recurrence",show:!0,action:{show:!0,text:"Go to recurrence",link:{name:"recurring.show",params:{id:parseInt(e.data.data.id)}}}};this.$q.localStorage.set("flash",t),this.doReturnHere&&window.dispatchEvent(new CustomEvent("flash",{detail:{flash:this.$q.localStorage.getItem("flash")}})),this.doReturnHere||this.$router.go(-1)},processErrors:function(e){if(e.response){let t=e.response.data;this.errorMessage=t.message;for(let e in t.errors)if(t.errors.hasOwnProperty(e)){let s=e;if(s.includes(".")){let r=s.split("."),i=r[0],o=parseInt(r[1]),l=r[2];this.submissionErrors[i][o][l]=t.errors[e][0],this.hasSubmissionErrors[i][o][l]=!0}s.includes(".")||(this.submissionErrors[e]=t.errors[e][0],this.hasSubmissionErrors[e]=!0)}}this.submitting=!1},getAccounts:function(){this.getPage(1)},getPage:function(e){(new T.Z).list("all",e,this.getCacheKey).then((t=>{let s=parseInt(t.data.meta.pagination.total_pages);for(let e in t.data.data)if(t.data.data.hasOwnProperty(e)){let s=t.data.data[e];this.accounts.push({value:parseInt(s.id),label:s.attributes.type+": "+s.attributes.name,decimal_places:parseInt(s.attributes.currency_decimal_places)})}ee.label>t.label?1:t.label>e.label?-1:0)))}))}}};var H=s(1639),B=s(9885),j=s(7128),O=s(8879),X=s(4458),A=s(3190),z=s(6611),G=s(7887),K=s(1221),Y=s(9984),J=s.n(Y);const L=(0,H.Z)(F,[["render",U]]),N=L;J()(F,"components",{QPage:B.Z,QBanner:j.Z,QBtn:O.Z,QCard:X.Z,QCardSection:A.Z,QInput:z.Z,QSelect:G.Z,QCheckbox:K.Z})}}]);