2 lines
12 KiB
JavaScript
2 lines
12 KiB
JavaScript
import{Q as q}from"./QBtn-Bl8V3g1s.js";import{Q as se}from"./QSeparator-D1JYPgu2.js";import{Q as re,a as L,d as ae,b as C,c as ie,A as oe}from"./AddressModal-33esE-yw.js";import{Q as ne,a as le,_ as ue}from"./IndexPage-CTPnu3LT.js";import{u as pe}from"./taxstore-B0e8PHMB.js";import{I as de,G as ce,r as P,a as f,o as me,e as w,J as O,M as V,K as h,N as u,O as d,Q as S,U as v,R as ye,W as H,S as fe,P as ve}from"./index-BFHpqQMc.js";import{u as ke}from"./vue-i18n.runtime-CGMLV8bE.js";import"./use-router-link-niyq3CDa.js";import"./QList-CPm2VhlR.js";import"./LocalStorage-Bg7wwOV9.js";const be={steps:[{id:"welcome",order:0,title:"WEL",description:"",type:"intro",fields:[],attachments:[],pricing:[],next:"taxpayer"},{id:"taxpayer",order:1,title:"TAX",prev:"welcome",description:"",fields:[{key:"prevPreparedByUs",type:"boolean",required:!0},{key:"prevDeclaration",type:"file",requiredIf:{prevPreparedByUs:!1}},{key:"taxpayer.firstName",type:"string",required:!0},{key:"taxpayer.lastName",type:"string",required:!0},{key:"taxpayer.birthDate",type:"date",required:!0},{key:"taxpayer.address",type:"string",required:!0},{key:"taxpayer.zip",type:"string",required:!0},{key:"taxpayer.city",type:"string",required:!0}],attachments:["prevDeclaration"],pricing:[],next:"marital"},{id:"marital",order:2,title:"MAR",prev:"taxpayer",description:"",fields:[{key:"maritalStatus",type:"enum",values:["SINGLE","MARRIED","SEPARATED","PARTNERED"],required:!0},{key:"spouse.firstName",type:"string",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}},{key:"spouse.lastName",type:"string",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}},{key:"spouse.birthDate",type:"date",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}},{key:"spouse.address",type:"string",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}},{key:"spouse.zip",type:"string",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}},{key:"spouse.city",type:"string",requiredIf:{maritalStatus:["MARRIED","PARTNERED"]}}],attachments:[],pricing:[{amountCHF:10,condition:{maritalStatus:["MARRIED","PARTNERED"]}}],next:"children"},{id:"children",order:3,title:"CHD",prev:"marital",description:"",fields:[{key:"hasChildren",type:"boolean",required:!0},{key:"children",type:"array",maxItems:5,item:{firstName:"string",lastName:"string",birthDate:"date",sameHousehold:"boolean",addressIfDifferent:"string",school:"string",careCosts:"file"}},{key:"moreThanFiveChildrenNote",type:"string",required:!1}],attachments:["children[*].careCosts"],pricing:[{amountCHF:5,perItem:"children"}],next:"income"},{id:"income",order:4,title:"INC",prev:"children",description:"",fields:[{key:"incomeTypes",type:"enum",values:["EMPLOYED","SELF_EMPLOYED","PENSIONER","UNEMPLOYED"]},{key:"employment.percent",type:"number",requiredIf:{incomeTypes:"EMPLOYED"}},{key:"employment.detailsUnder70",type:"string",requiredIf:{"employment.percent":"<70"}}],attachments:["salaryCertificate","accountingDocuments","avsCertificate","lppCertificate","unemploymentCertificate"],pricing:[],next:"professionalExpenses"},{id:"professionalExpenses",order:5,title:"PRO",prev:"income",description:"",fields:[{key:"expensesChanged",type:"boolean",required:!0},{key:"workplaceDescription",type:"string",requiredIf:{expensesChanged:!0}},{key:"commuteMethod",type:"enum",values:["CAR","BUS","BIKE","WALK"]},{key:"commuteKm",type:"number"},{key:"lunchAtHome",type:"boolean"},{key:"eatsOut",type:"boolean"},{key:"hasCanteenOrVouchers",type:"boolean",requiredIf:{eatsOut:!0}}],attachments:["transportSubscription"],pricing:[],next:"sideIncome"},{id:"sideIncome",order:6,title:"SID",prev:"professionalExpenses",description:"",fields:[{key:"hasSideIncome",type:"boolean",required:!0}],attachments:["sideIncomeDocuments"],pricing:[{amountCHF:5,condition:{hasSideIncome:!0}}],next:"annuities"},{id:"annuities",order:7,title:"ANN",prev:"sideIncome",description:"",fields:[{key:"hasAnnuities",type:"boolean",required:!0}],attachments:["annuityDocuments"],pricing:[{amountCHF:5,condition:{hasAnnuities:!0}}],next:"insurance"},{id:"insurance",order:8,title:"INS",prev:"annuities",description:"",fields:[],attachments:["healthInsuranceCertificate","medicalExpenses"],pricing:[{amountCHF:5,condition:{medicalExpenses:!0}}],next:"pillar3"},{id:"pillar3",order:9,title:"P3",prev:"insurance",description:"",fields:[{key:"hasPillar3",type:"boolean",required:!0}],attachments:["pillar3Documents"],pricing:[{amountCHF:5,condition:{hasPillar3:!0}}],next:"bankAccounts"},{id:"bankAccounts",order:10,title:"BNK",prev:"pillar3",description:"",fields:[{key:"hasBankAccounts",type:"boolean",required:!0}],attachments:["bankStatements"],pricing:[{amountCHF:2,perExtraAttachmentAfter:2}],next:"otherAssets"},{id:"otherAssets",order:11,title:"AST",prev:"bankAccounts",description:"",fields:[{key:"hasOtherAssets",type:"boolean",required:!0},{key:"otherAssetsList",type:"array",item:{description:"string",amount:"number"}}],attachments:["otherAssetsDocuments"],pricing:[{amountCHF:5,perItem:"otherAssetsList"}],next:"debts"},{id:"debts",order:12,title:"DEB",prev:"otherAssets",description:"",fields:[{key:"hasDebts",type:"boolean",required:!0}],attachments:["debtCertificates"],pricing:[{amountCHF:5,perAttachment:!0}],next:"properties"},{id:"properties",order:13,title:"PROP",prev:"debts",description:"",fields:[{key:"hasProperties",type:"boolean",required:!0},{key:"propertiesList",type:"array",item:{country:"enum",address:"string",purchaseYear:"number",buildingYear:"number",isRented:"boolean"}}],attachments:["propertyDocuments","deed","maintenanceInvoices"],pricing:[{amountCHF:5,condition:{country:"SWISS"}},{amountCHF:7,condition:{country:"ITALY"}},{amountCHF:7,condition:{country:"FOREIGN"}}],next:"foreign"},{id:"foreign",order:14,title:"FOR",prev:"properties",description:"",fields:[{key:"hasForeignAssets",type:"boolean",required:!0},{key:"foreignDescription",type:"string",requiredIf:{hasForeignAssets:!0}}],attachments:["foreignDocuments"],pricing:[{amountCHF:5,perAttachment:!0}],next:null}]},he={class:"row items-center"},ge={class:"col"},Ae={class:"text-h6"},De={class:"col-auto"},Se={class:"row items-center q-gutter-md q-mb-sm"},Ee={class:"col-auto q-ml-none"},Re={class:"col"},xe={class:"row items-center q-gutter-sm q-mb-sm"},Ne={class:"col-auto"},Ie={class:"col"},qe={class:"text-caption"},Ce={class:"q-pa-sm bg-grey-2 q-mb-sm"},Pe=de({__name:"MaritalStep",props:{step:{}},emits:["next","prev"],setup(E,{expose:U,emit:B}){const F=B,c=t=>t.split(".").map((e,r)=>r===0?e:e.charAt(0).toUpperCase()+e.slice(1)).join(""),g=be.steps.find(t=>t.id===(E.step?.id||"marital")),{t:n}=ke(),s=ce({}),R=pe(),o=t=>c(t),x=P(null),k=P(!1),M=P(null),Q=f(()=>[l("spouse.address")||"",l("spouse.zip")||"",l("spouse.city")||""].join(" "));function z(){M.value={street:l("spouse.address")||"",zip:l("spouse.zip")||"",city:l("spouse.city")||"",country:null,foreign:!0},k.value=!0}function K(){k.value=!1}function Y(t){m("spouse.address",t.street||""),m("spouse.zip",t.zip||""),m("spouse.city",t.city||""),k.value=!1}const $=(t="Required")=>{const e=n("validation.required");return e&&e!=="validation.required"?e:t},A=t=>e=>{const r=$();return e==null?r:typeof e=="string"?e.trim()!==""||r:!0},G=f(()=>l("maritalStatus")),W=[A()],N=f(()=>G.value!=="SINGLE"),j=f(()=>N.value?[A()]:[]),Z=f(()=>N.value?[A()]:[]),J=f(()=>N.value?[A()]:[]),l=t=>{const e=s[o(t)];if(e!==void 0){if(e===null)return null;if(typeof e=="string")return e}},m=(t,e)=>{typeof e=="number"?s[o(t)]=String(e):s[o(t)]=e},X=t=>{const e=t;return(e&&e.values||[]).map(i=>({label:n(`enum.maritalStatus.${i}`)||i,value:i}))},_=t=>t.replace(/([A-Z])/g," $1").replace(/^./,e=>e.toUpperCase()),y=t=>{const e=g?.fields?.find(i=>i.key===t);if(!e)return;const r={...e};if(r.key.startsWith("spouse.")){const i=l("maritalStatus"),a=n(i==="MARRIED"?"marital.spouse.prefixSpouse":i==="PARTNERED"?"marital.spouse.prefixPartner":"marital.spouse.prefixSpouse"),p=r.key.replace(/^spouse\./,""),D=n(`marital.spouse.${p}`)||_(c(p));r.label=`${a} ${D}`}return r},b=t=>{if(!t||!t.key)return"";if(t.label)return t.label;const e=n(`fields.${t.key}`);return e&&e!==`fields.${t.key}`?e:_(c(t.key))};me(async()=>{const t=R.getMarital();if(t)for(const[a,p]of Object.entries(t))s[a]=p;const e=c("maritalStatus");(s[e]===void 0||s[e]==="")&&(m("maritalStatus","MARRIED"),await w()),(g?.fields||[]).forEach(a=>{const p=c(a.key);s[p]===void 0&&(a.type==="boolean"?s[p]=!1:a.type==="file"?s[p]=null:s[p]="")});const r=o("spouse.previousDivorces");s[r]===void 0&&(s[r]=!1);const i=o("spouse.alimentiVersati");s[i]===void 0&&(s[i]=!1),await w(),x.value?.resetValidation?.()});function I(){const t=s[c("maritalStatus")];typeof t=="string"&&t==="SINGLE"&&((g?.fields||[]).forEach(r=>{r.key.startsWith("spouse.")&&(s[c(r.key)]="")}),s[o("spouse.previousDivorces")]=!1,s[o("spouse.alimentiVersati")]=!1);const e={};return(g?.fields||[]).forEach(r=>{const i=c(r.key);if(r.key==="spouse.firstName"||r.key==="spouse.lastName"){const a=s[c("spouse.firstName")],p=s[c("spouse.lastName")],D=typeof a=="string"?a:"",T=typeof p=="string"?p:"";e.spouseFirstName=D,e.spouseLastName=T,e.spouseName=(D+" "+T).trim();return}switch(r.key){case"maritalStatus":{const a=s[i];e.maritalStatus=typeof a=="string"?a:"";break}case"spouse.birthDate":{const a=s[i];e.spouseBirthDate=typeof a=="string"?a:"";break}case"spouse.address":{const a=s[i];e.spouseAddress=typeof a=="string"?a:"";break}case"spouse.zip":{const a=s[i];e.spouseZip=typeof a=="string"?a:"";break}case"spouse.city":{const a=s[i];e.spouseCity=typeof a=="string"?a:"";break}case"spouse.previousDivorces":{const a=s[i];e.spousePreviousDivorces=typeof a=="boolean"?a:!!a;break}case"spouse.alimentiVersati":{const a=s[i];e.spouseAlimentiVersati=typeof a=="boolean"?a:!!a;break}default:e[i]=s[i]}}),e.spousePreviousDivorces=!!s[o("spouse.previousDivorces")],e.spouseAlimentiVersati=!!s[o("spouse.alimentiVersati")],e}async function ee(){if(await x.value?.validate?.()===!1)return;const e=I();R.setMarital(e),F("next",E.step?.next)}function te(){const t=I();R.setMarital(t),F("prev",E.step?.prev)}return U({buildPayload:I}),(t,e)=>(V(),O(le,{flat:"",class:"full-width q-pa-none"},{default:h(()=>[u(ne,{class:"full-width"},{default:h(()=>[d("div",he,[d("div",ge,[d("div",Ae,S(v(n)("MAR")),1)]),d("div",De,[u(q,{flat:"",label:v(n)("button.prev"),onClick:te,class:"q-mr-sm"},null,8,["label"]),u(q,{color:"primary",label:v(n)("button.next"),onClick:ee},null,8,["label"])])]),u(se,{class:"q-my-sm"}),u(re,{ref_key:"formRef",ref:x,class:"form q-gutter-md q-mt-md"},{default:h(()=>[d("div",Se,[d("div",Ee,[u(L,{modelValue:s[o("spouse.previousDivorces")],"onUpdate:modelValue":e[0]||(e[0]=r=>s[o("spouse.previousDivorces")]=r),label:v(n)("marital.previousDivorces")},null,8,["modelValue","label"])]),d("div",Re,[s[o("spouse.previousDivorces")]?(V(),O(L,{key:0,modelValue:s[o("spouse.alimentiVersati")],"onUpdate:modelValue":e[1]||(e[1]=r=>s[o("spouse.alimentiVersati")]=r),label:v(n)("children.alimentiVersati")},null,8,["modelValue","label"])):H("",!0)])]),u(ae,{"model-value":l("maritalStatus"),"onUpdate:modelValue":e[2]||(e[2]=r=>m("maritalStatus",r)),label:b(y("maritalStatus")||{key:"maritalStatus"}),options:X(y("maritalStatus")||{key:"maritalStatus",type:"enum",values:[]}),rules:W,"emit-value":"","map-options":""},null,8,["model-value","label","options"]),l("maritalStatus")!=="SINGLE"?(V(),ye(fe,{key:0},[u(C,{"model-value":l("spouse.firstName"),"onUpdate:modelValue":e[3]||(e[3]=r=>m("spouse.firstName",r)),label:b(y("spouse.firstName")||{key:"spouse.firstName"}),rules:j.value},null,8,["model-value","label","rules"]),u(C,{"model-value":l("spouse.lastName"),"onUpdate:modelValue":e[4]||(e[4]=r=>m("spouse.lastName",r)),label:b(y("spouse.lastName")||{key:"spouse.lastName"}),rules:Z.value},null,8,["model-value","label","rules"]),u(C,{"model-value":l("spouse.birthDate"),"onUpdate:modelValue":e[5]||(e[5]=r=>m("spouse.birthDate",r)),label:b(y("spouse.birthDate")||{key:"spouse.birthDate"}),type:"date",rules:J.value},null,8,["model-value","label","rules"]),d("div",xe,[d("div",Ne,[u(q,{dense:"",flat:"",round:"",icon:"edit",onClick:z},{default:h(()=>[u(ie,{class:"bg-primary text-white"},{default:h(()=>[ve(S(v(n)("children.editAddress")),1)]),_:1})]),_:1})]),d("div",Ie,[d("div",qe,S(b(y("spouse.address")||{key:"spouse.address"})),1)])]),d("div",Ce,S(Q.value),1),u(oe,{modelValue:k.value,"onUpdate:modelValue":e[6]||(e[6]=r=>k.value=r),modelAddress:M.value,allowForeign:!1,onSave:Y,onCancel:K},null,8,["modelValue","modelAddress"])],64)):H("",!0)]),_:1},512)]),_:1})]),_:1}))}}),Be=ue(Pe,[["__scopeId","data-v-337a0a7c"]]);export{Be as default};
|