import{a as e,d as t,i as n,l as r,s as i}from"./decimal-D3bp1pbs.js";import{C as a,c as o,n as s,p as c,u as l}from"./sql-C69Jo4HU.js";import{C as u}from"./index-CAPJG_im.js";import{t as d}from"./pricingScaleDetail-CuzzWQVd.js";var f=(t,n)=>{let i=!1,a=e(t,e=>{let t=r(n(e));return t==null?null:(i=!0,t)});return i?a:null},p=(e,t)=>{if(typeof t==`number`&&Number.isFinite(t))return t;let n=(e||[]).find(e=>e?.isGroupRow===!0);return typeof n?.amount==`number`&&Number.isFinite(n.amount)?n.amount:null},m=`__only-cost-scale-total__`,h=()=>{try{return u()}catch{return null}},g=()=>{try{return t()}catch{return null}},_=async e=>{let t=g();return t?t.getItem(e):null},v=async(e,t)=>{let n=g();n&&await n.setItem(e,t)},y=e=>!e||!Array.isArray(e.detailRows)?null:{detailRows:JSON.parse(JSON.stringify(e.detailRows))},b=(e,t)=>Object.prototype.hasOwnProperty.call(e||{},t),x=e=>!!(e&&typeof e==`object`&&e.isGroupRow===!0),S=e=>(e||[]).filter(e=>!x(e)),C=(e,t,n)=>e?r(e[t])??(b(e,t)?null:n):n,w=e=>{let t=new Map;for(let n of e||[])t.set(String(n.id),n);return t},T=e=>{let t=String(e||``).trim(),n=/^\d+::(.+)$/.exec(t);return(n?String(n[1]||``).trim():t)||t},E=e=>(e||[]).some(e=>{let t=String(e?.id||``);if(/^\d+::/.test(t))return!0;let n=Number(e?.projectIndex);return Number.isFinite(n)&&n>1}),D=e=>{let t=c()[String(e)];return r(t?.defCoe)},O=e=>c()[String(e)]?.onlyCostScale===!0,k=new Map(o().map(({id:e,item:t})=>[e,t])),A=l(),j=e=>{let t=k.has(e)?e:A.get(e)||e;return r(k.get(t)?.defCoe)},M=e=>{let t=k.has(e)?e:A.get(e)||e,n=k.get(t);return n?n.hasCost!==!1:!1},N=e=>{let t=k.has(e)?e:A.get(e)||e,n=k.get(t);return n?n.hasArea!==!1:!1},P=e=>{let t=k.has(e)?e:A.get(e)||e,n=k.get(t);if(!n)return!1;let r=n.hasCost!==!1,i=n.hasArea!==!1;return r&&i},F=e=>{let t=String(e||``).trim();if(!t)return null;for(let[e,n]of k.entries())if(String(n?.industryId??``).trim()===t&&!String(n?.code||``).includes(`-`))return{id:e,item:n};return null},I=(e,t)=>e?b(e,`budgetValue`)?r(e.budgetValue):b(e,`standardFactor`)?r(e.standardFactor):t:t,L=e=>{let t=new Map,n=c();for(let[e,i]of Object.entries(n))t.set(String(e),r(i?.defCoe));for(let n of e?.detailRows||[]){if(!n?.id)continue;let e=String(n.id);t.set(e,I(n,t.get(e)??null))}return t},R=e=>{let t=new Map;for(let[e,n]of k.entries())t.set(String(e),r(n?.defCoe));for(let n of e?.detailRows||[]){if(!n?.id)continue;let e=String(n.id),r=t.has(e)?e:A.get(e)||e;t.set(r,I(n,t.get(r)??null))}return t},z=()=>o().filter(({item:e})=>!!(e?.code&&String(e.code).includes(`-`))).map(({id:e})=>e),B=(e,t,n)=>{let r=t?.get(String(e))??D(e);return z().map(e=>({id:e,amount:null,landArea:null,benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:!0,consultCategoryFactor:r,majorFactor:n?.get(e)??j(e),workStageFactor:1,workRatio:100}))},V=(e,t,n,i)=>{let a=S(t),o=w(a);for(let e of a){let t=String(e.id),n=A.get(t);n&&!o.has(n)&&o.set(n,e)}let s=n?.get(String(e))??D(e);return B(e,n,i).map(e=>{let t=o.get(e.id);if(!t)return e;let n=b(t,`consultCategoryFactor`),a=b(t,`majorFactor`),c=b(t,`workStageFactor`),l=b(t,`workRatio`);return{...e,amount:r(t.amount),landArea:r(t.landArea),benchmarkBudgetBasicChecked:typeof t.benchmarkBudgetBasicChecked==`boolean`?!!t.benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:typeof t.benchmarkBudgetOptionalChecked==`boolean`?!!t.benchmarkBudgetOptionalChecked:!0,consultCategoryFactor:r(t.consultCategoryFactor)??(n?null:s),majorFactor:r(t.majorFactor)??(a?null:i?.get(e.id)??j(e.id)),workStageFactor:r(t.workStageFactor)??(c?null:e.workStageFactor),workRatio:r(t.workRatio)??(l?null:e.workRatio)}})},H=e=>d(e,`cost`),U=(e,t,n,i,a,o)=>{let s=F(a),c=t||[],l=S(t),u=n?.get(String(e))??D(e),h=(s?i?.get(s.id)??null:null)??r(s?.item?.defCoe)??1;if(l.some(e=>{if(typeof e?.projectIndex==`number`&&Number.isFinite(e.projectIndex))return!0;let t=String(e?.id||``);return/^\d+::/.test(t)}))return f(l,e=>{let t=r(e?.amount);return t==null?null:d({amount:t,benchmarkBudgetBasicChecked:typeof e?.benchmarkBudgetBasicChecked==`boolean`?e.benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:typeof e?.benchmarkBudgetOptionalChecked==`boolean`?e.benchmarkBudgetOptionalChecked:!0,majorFactor:C(e,`majorFactor`,h),consultCategoryFactor:C(e,`consultCategoryFactor`,u),workStageFactor:C(e,`workStageFactor`,1),workRatio:C(e,`workRatio`,100)},`cost`)});let g=p(c,o);if(g==null)return null;let _=c.find(e=>String(e?.id||``)===m)||l.find(e=>b(e,`consultCategoryFactor`)||b(e,`majorFactor`))||l[0],v=C(_,`consultCategoryFactor`,u),y=C(_,`majorFactor`,h),x=C(_,`workStageFactor`,1),w=C(_,`workRatio`,100);return d({amount:g,benchmarkBudgetBasicChecked:typeof _?.benchmarkBudgetBasicChecked==`boolean`?_.benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:typeof _?.benchmarkBudgetOptionalChecked==`boolean`?_.benchmarkBudgetOptionalChecked:!0,majorFactor:y,consultCategoryFactor:v,workStageFactor:x,workRatio:w},`cost`)},W=(e,t,n,i,a,o)=>{let s=t||[],c=S(t),l=p(s,o),u=F(a),d=u?.id||m,f=s.find(e=>String(e?.id||``)===m)||c.find(e=>String(e?.id||``)===d);return[{id:d,amount:l,landArea:null,consultCategoryFactor:C(f,`consultCategoryFactor`,n?.get(String(e))??D(e)),majorFactor:C(f,`majorFactor`,(u?i?.get(u.id)??null:null)??r(u?.item?.defCoe)??1),workStageFactor:C(f,`workStageFactor`,1),workRatio:C(f,`workRatio`,100),benchmarkBudgetBasicChecked:typeof f?.benchmarkBudgetBasicChecked==`boolean`?f.benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:typeof f?.benchmarkBudgetOptionalChecked==`boolean`?f.benchmarkBudgetOptionalChecked:!0}]},ee=e=>d(e,`area`),G=e=>Object.entries(a).sort((e,t)=>Number(e[0])-Number(t[0])).filter(([,t])=>Number(t.serviceID)===Number(e)),K=(e,t)=>{let n=t?.get(String(e))??D(e);return G(e).map(([e,t],i)=>({id:`task-${e}-${i}`,conversion:r(t.conversion),workload:null,basicFee:null,budgetAdoptedUnitPrice:r(t.defPrice),consultCategoryFactor:n}))},te=(e,t,n)=>{let i=w(t);return K(e,n).map(e=>{let t=i.get(e.id);return t?{...e,workload:r(t.workload),basicFee:r(t.basicFee),budgetAdoptedUnitPrice:r(t.budgetAdoptedUnitPrice),consultCategoryFactor:r(t.consultCategoryFactor)}:e})},q=e=>e.budgetAdoptedUnitPrice==null||e.conversion==null||e.workload==null?null:n(i(e.budgetAdoptedUnitPrice).mul(e.conversion).mul(e.workload),2),ne=e=>{if(e.consultCategoryFactor==null)return null;let t=e.basicFee??q(e);return t==null?null:n(i(t).mul(e.consultCategoryFactor),2)},J=()=>Object.entries(s).sort((e,t)=>Number(e[0])-Number(t[0])),Y=e=>e.defPrice==null||e.manageCoe==null?null:n(i(e.defPrice).mul(e.manageCoe),2),X=()=>J().map(([e,t])=>({id:`expert-${e}`,adoptedBudgetUnitPrice:Y(t),personnelCount:null,workdayCount:null})),re=e=>{let t=w(e);return X().map(e=>{let n=t.get(e.id);return n?{...e,adoptedBudgetUnitPrice:r(n.adoptedBudgetUnitPrice),personnelCount:r(n.personnelCount),workdayCount:r(n.workdayCount)}:e})},ie=e=>e.adoptedBudgetUnitPrice==null||e.personnelCount==null||e.workdayCount==null?null:n(i(e.adoptedBudgetUnitPrice).mul(e.personnelCount).mul(e.workdayCount),2),Z=(e,t,n,r,i)=>t?.detailRows==null?n?.detailRows==null?B(e,r,i):V(e,S(n.detailRows),r,i):V(e,t.detailRows,r,i),Q=(e,t,n,i)=>{let a=S(t);if(a.length===0)return[];let o=n?.get(String(e))??D(e);return a.map(e=>{let t=T(e.id),n=k.has(t)?t:A.get(t)||t,a=b(e,`consultCategoryFactor`),s=b(e,`majorFactor`),c=b(e,`workStageFactor`),l=b(e,`workRatio`);return{id:n,amount:r(e.amount),landArea:r(e.landArea),benchmarkBudgetBasicChecked:typeof e.benchmarkBudgetBasicChecked==`boolean`?e.benchmarkBudgetBasicChecked:!0,benchmarkBudgetOptionalChecked:typeof e.benchmarkBudgetOptionalChecked==`boolean`?e.benchmarkBudgetOptionalChecked:!0,consultCategoryFactor:r(e.consultCategoryFactor)??(a?null:o),majorFactor:r(e.majorFactor)??(s?null:i?.get(n)??j(n)),workStageFactor:r(e.workStageFactor)??(c?null:1),workRatio:r(e.workRatio)??(l?null:100)}})};const $=(e,t)=>{let n=String(t),r=h();return r?{investScale:r.getServicePricingStorageKey(e,n,`investScale`),landScale:r.getServicePricingStorageKey(e,n,`landScale`),workload:r.getServicePricingStorageKey(e,n,`workload`),hourly:r.getServicePricingStorageKey(e,n,`hourly`)}:{investScale:`tzGMF-${e}-${n}`,landScale:`ydGMF-${e}-${n}`,workload:`gzlF-${e}-${n}`,hourly:`hourlyPricing-${e}-${n}`}};var ae=async(e,t)=>{let n=`ht-info-v3-${e}`,r=`ht-consult-category-factor-v1-${e}`,i=`ht-major-factor-v1-${e}`,[a,o,s,c]=await Promise.all([_(n),_(r),_(i),_(`xm-base-info-v1`)]);return{htData:a,consultCategoryFactorMap:L(o),majorFactorMap:R(s),industryId:typeof c?.projectIndustry==`string`?c.projectIndustry.trim():``,excludeInvestmentCostAndAreaRows:t?.excludeInvestmentCostAndAreaRows===!0}},oe=(e,t)=>{let n=O(e),r=Z(e,null,t.htData,t.consultCategoryFactorMap,t.majorFactorMap);return{investScale:n?W(e,t.htData?.detailRows,t.consultCategoryFactorMap,t.majorFactorMap,t.industryId,t.htData?.totalAmount??null):r.filter(e=>!(!M(e.id)||t.excludeInvestmentCostAndAreaRows&&P(e.id))),landScale:r.filter(e=>N(e.id)),workload:K(e,t.consultCategoryFactorMap),hourly:X()}};const se=async e=>{let t=String(e.serviceId),n=`ht-info-v3-${e.contractId}`,r=`ht-consult-category-factor-v1-${e.contractId}`,i=`ht-major-factor-v1-${e.contractId}`,a=$(e.contractId,t),o=h(),[s,c,l,u,d,p,m,g]=await Promise.all([o?.loadServicePricingMethodState(e.contractId,t,`investScale`)||Promise.resolve(null),o?.loadServicePricingMethodState(e.contractId,t,`landScale`)||Promise.resolve(null),o?.loadServicePricingMethodState(e.contractId,t,`workload`)||Promise.resolve(null),o?.loadServicePricingMethodState(e.contractId,t,`hourly`)||Promise.resolve(null),_(n),_(r),_(i),_(`xm-base-info-v1`)]),[v,b,x,C]=await Promise.all([s?Promise.resolve(null):_(a.investScale),c?Promise.resolve(null):_(a.landScale),l?Promise.resolve(null):_(a.workload),u?Promise.resolve(null):_(a.hourly)]),w=y(s)||v,T=y(c)||b,D=y(l)||x,k=y(u)||C,A=L(p),j=R(m),F=O(t),I=typeof g?.projectIndustry==`string`?g.projectIndustry.trim():``,z=e.options?.excludeInvestmentCostAndAreaRows===!0,B=S(w?.detailRows),V=S(T?.detailRows),W=E(B)?Q(t,B,A,j):null,G=E(V)?Q(t,V,A,j):null,q=F?U(t,w?.detailRows||d?.detailRows,A,j,I,d?.totalAmount??null):f(W||Z(t,w,d,A,j),e=>!M(e.id)||z&&P(e.id)?null:H(e)),J=f(G||Z(t,T,d,A,j),e=>N(e.id)?ee(e):null),Y=K(t,A);return{investScale:q,landScale:J,workload:Y.length===0?null:f(D?.detailRows==null?Y:te(t,D.detailRows,A),e=>ne(e)),hourly:f(k?.detailRows==null?X():re(k.detailRows),e=>ie(e))}},ce=async e=>{let t=Array.from(new Set(e.serviceIds.map(e=>String(e))));if(t.length===0)return;let n=await ae(e.contractId,e.options),r=h();await Promise.all(t.map(async t=>{let i=$(e.contractId,t),[a,o,s,c]=await Promise.all([r?.loadServicePricingMethodState(e.contractId,t,`investScale`)||Promise.resolve(null),r?.loadServicePricingMethodState(e.contractId,t,`landScale`)||Promise.resolve(null),r?.loadServicePricingMethodState(e.contractId,t,`workload`)||Promise.resolve(null),r?.loadServicePricingMethodState(e.contractId,t,`hourly`)||Promise.resolve(null)]),[l,u,d,f]=await Promise.all([a?Promise.resolve(null):_(i.investScale),o?Promise.resolve(null):_(i.landScale),s?Promise.resolve(null):_(i.workload),c?Promise.resolve(null):_(i.hourly)]),p=y(a)||l,m=y(o)||u,h=y(s)||d,g=y(c)||f,b=!Array.isArray(p?.detailRows)||p.detailRows.length===0,x=!Array.isArray(m?.detailRows)||m.detailRows.length===0,S=!Array.isArray(h?.detailRows)||h.detailRows.length===0,C=!Array.isArray(g?.detailRows)||g.detailRows.length===0,w=[],T=null,E=()=>(T||=oe(t,n),T);b&&(r&&r.setServicePricingMethodState(e.contractId,t,`investScale`,{detailRows:E().investScale},{force:!0}),w.push(v(i.investScale,{detailRows:E().investScale}))),x&&(r&&r.setServicePricingMethodState(e.contractId,t,`landScale`,{detailRows:E().landScale},{force:!0}),w.push(v(i.landScale,{detailRows:E().landScale}))),S&&(r&&r.setServicePricingMethodState(e.contractId,t,`workload`,{detailRows:E().workload},{force:!0}),w.push(v(i.workload,{detailRows:E().workload}))),C&&(r&&r.setServicePricingMethodState(e.contractId,t,`hourly`,{detailRows:E().hourly},{force:!0}),w.push(v(i.hourly,{detailRows:E().hourly}))),w.length>0&&await Promise.all(w)}))},le=async e=>{let t=new Map;return await Promise.all(e.serviceIds.map(async n=>{let r=await se({contractId:e.contractId,serviceId:n,options:e.options});t.set(String(n),r)})),t};export{le as n,ce as t};