OzzIa!XptEsefrr#p>`0+f8utX?R>t)6@63$OX
zmp{Et`UTL@4>Urky5dK9+oh}@=
z)j#EeZ2KPDMSM78DDI$nw)FdLFERFwiNjv<&t35s(xy)YFGJ{<;hcy$7g#nU5sjZz
zF|m1c>m1I=OmOgz+1Iv$+jbwfoWFI&^VmMacB?0L9@9N|FNB8tUVUW$EemG?698i7
zi0mF0G2rV)hxHE^-z+evsh5G7;r!%)!;yq{=+gn44H|QCmiwT(`q
zCa&(}XBpy=)0?v7PKr~phG`p&YfaT8sVGTG@KwjRH=pv@VQe7G*Z7iNrw9S2W0Gn@
zmjt|e>3UqA6tUq?IWw96!h92~f_(*D-BF7TQ=Y
zuq6`vIg?MK{VvEdA>;2S<~zkA`iIQy5DocpJCxlF3CTm0vbxL1ie2pc4vj>T83fsr
zhpUEOXt@Uk!N$^0MSPf`&M-j4CoCkt>;s$w!Jed|?d_qKR@l3Hr*8s2yv;l-
z=UQy$0tS|5ciCvdOn%s5C#n=bWfAW`#29Om>LqqL=`g+686TLdNu7xD$=Z%<6ohl2
zb|*W?5()+3oFfig2&fBe|Bdsd)A12DA5RG9=Y}_;IgmPYMt@^|c|fK!Kl3|KzH$#1
zkcOjv3e92GrM;FZGV-Oha!>w3S6YqVfCQ4q>9cRjGw6m+}@dcXPi98$~So{wYW~v!mADU`x>mOz{P+7%K_3#ZcKC!(y~A
zBj{UTq~VZ1r6}lD0%zH2F;DuXss+f;5B>0GrPdQxd;Y*RJUOvZJ9P{aU6ns&t5_!t
zGSG?xlio-2Swy~(YD3?Y{g9brekJhTdAC{%&pr$uk@(}{rPt#RsdQ{D{Ox$1PpFU`
z?~e|<*OyK71H24GA-r8a26S<3JaQO$E-7&WOY}ym4~Xt93GMb&Sbp}eKQ{xsJ~bjm
zk|ZRw*HhKwieiF?sj!_lMg~WG6!s7#r{{?E=}<2r?ah;3{=Sf|LEg#Nr?RK8xV;@I
zw&{Z59nz_~)zlrQC0UR8e)Ol3bhGz*alXuM$XE_b;Vg0B$gr!;BqlVATz&1o+_RGo
zGJpO1RL;bwcr?sV>-FdwVKhDvTIN>TijVLlcnTj1alf`cd-FatYxn}^IC6Y?ZLxGio#XIKRn@UsNHlUh
zot&PsZ!#^wHC@NF{J_!*c?k)5NIvm_v_V3KGi%LJ<4`>ypL9n;>J=SeAoo~16d{}r
z@XtE_{bafV=DT0+pyR(^qO*RB#x8H4QF-fR!FTF+ZS!M;p3%fmn+ISb
z@tKZT%u;;*Epd8t*yzwlq}kW>d1C(fm>1T^26U28l*C#=ET!uK-@`IS&A13lW^@_j
zz&>@QkDJ=Kd5!Fo!AUi1V6hlCNyD_6sEtR?(GwG3R>Zb1%vHlE+#!!Y;x=!kiGZBW
z_mRF6oQI^nuZv4FHmJ*LAvdV{S2B=o_E9(!bq#p`iJ{ik^F+Es6#y3|1j;ak*lAO?l#2xRUlI4!Hg>hCZpZ*m4
z%}ln>Nq}G3sk|ke$JtLoZ}@rG)qRZUfyP0~GrumxL4t76Lm$h!ZgE}PPn3&*hafU!
zd-;TQqg=2;mri&A5ftJooLXk6xsQ3I`|D%vK!*Lu06Fgavm8A}$!o7mXZPdlje5TK
zo~EwPVsd_tHsQO5_=P|4DKEBX6L#B_wn^v;U{JSi@cZ6~wNBa{(9>oVU-@zGzGHCE
zkuLW#q=&BZ4C%XFz&m;_rOCg@a$f!5Y_X;9JLTWWueN=_sDJ|k4RV7}4y+7-p^@I2
z7)ijgX*|j^jLozgCrt>=r3n7Y$LIG~G2FvdeS`Uxs@8yYE-jVQiU5$^q+WrRKbyfr
z;hVK>%o;#U`9631_Xg^$-hGFGOV5JE3#u%y`;R%+
zp*M9EZefZu{Fz_d3D*WX6pqMg?dtKsK0~j^gL(|$thwS0%+
zk~edV?cF5Ee76(L_IBK)J5`;6kE--pFYGQciL1;Pky92bzkS!v>&)OJE%3GX%
zq~X*3*dc8yS}EYq`-AH
z{@8es#EC!w@f}PN{XommvEiRA8pXb*nO6@HulG(MAZcu(y9wtFxSt@0+hxk^uZG-^
z`5|@vmKY+~$YZy$^}7q0QR6i}V$c4umEAmqa%x)H|M`3sjmZaM#9Mr$IXoVSDoam3HDG0c8zM
zt-AvROD9g`BuSCb+YSFybW=+GVGKG&LH9vBb5vwJ!_}Ef*NO-*fBc|~CUY!`J|GD)
zDOMeu`O0{fqt>|~+83UYR5ziQ(ZZ70RCSY2#_Z%rf1rPy>h7rLd<`a#ZpE;qnCbh}GVUFsV8OQUr`
z&iyDiU^aC7MD7|mBAmVmy)86>U6(Z3AhN|x$3;tyNMo%
zRs58DCr2`s!~O7%ixITw2l!A%=?y?@!V(URlNse)$EvPG?G$?S!6wbtSI{hd=)i=hR
z1q=U75s(igOM^o}UxpOit$cXjobW-R`tE%q@9>8M%S;N+jeegSZMR9cz;wcJj`mb7
z@AWK`(A9=pdQ)s}D9VFg+t4sd%Z@0xhwwYow~flm2g;kc_e~}25IFf-x>tbxWkWV+
zD}U|IY*)xoYC|y2fdW}F54(2FX(8iIQ1wqmKo;a7EE!0b9l2eI@M6!D!fVR9Dc}Hq
zE{C4n1%bb*dlVKs&1|N>yzBAupumZ0M!@KlEGAoDDVoaoRG6q?w}c3(uM`!tBi;vg
zZY3smnjJp}K~p2Qc{}PLQ*V&t!;42biF!WPoE>G79c9~4s*C4fG}NUkl7rZz`y5~%
zZ)c$Dik>GnuLa{3-`(Vk_K^F^g!BByk5ak1EvH@GMCJ@LJl>*ZXw3mz8a%Do+Q-Z1
z=<%b6P9qO-&?>LX
zE2}$WS;eQt@UF{derFR_EQj?q4X|Z0i*C|l#+8%DM>8#eVFjcq`^LSbVf+@a{M?iK
zd%KPYGrIJ$nx+RPAwPY@GBmSA@A2ymY~s@~ow_quITYaRHJqhvI$G`tB-xV~zKkTr4#NN{MxU$&(~l;!
zvtVisf}IS~xA`lga@&iahi|yx9d`+mmF||o^A5quf~??d8{$;Roxixgs%!{8)>NS0
zi*1C;W@9oAqKY=ZJh{)fc7iR=XEpS4uY>^1MM@JjkmS|yAf$mkh)o9P-BYe;#tJAi
zbw&8PffH6u920uwuXQEAelrm|~`O;@4I8jV$9$t{QdXY4A62FDZ{V9;{S0nnkaj
z;E6LN4$MgW6A2|0|0<$)svEBdEcp91N`{_Z(
zrR=xDSFBf}pBr6!s-WWmn
z=s3a#V>8oNW5D%JCplXma~>bh;IlNYk*sBw1CLd_gL1uwXDYo`bB-P)TkmSL?nPb(
zTx6t?c2@l^s2Y@j(qk#*^j<2Rn;I_onyDzSeQ2=p5&yt@yiUEc;mLEZ5=M(#t;D|Y
zmSgFC2KCh=QNI+jYlm5*tA?V(MK0Kpq#E!Nc|X{`Vg75#nS1@>(&w>r)RZAV9!i)r
z!7`!gC)bzLY3}0kz;n%Wx($1skkZrsRQvjMYbEudpI;aUmj-|QPCMGCZ8%Sm62)B|
zfqNox;3g)M_@viefLvhn%?2_3`UiWIc5_%s={e`(u=kg7ISYcGPg5*E?
zL_y>q&7-IQ`HLGy0g3{Qe|G+%7w;fC@f}-Cdr7Rf~fwrxSN^oM2Z6C%u2)k-&2Rwv{=0EK1bil
X{X6-0Fx{y}MwEu~BTUynYta7#Gj;WJ
delta 15549
zcmZ|01y~hb)HX~v0*4Tg=FlC|CDJY3sf2VlLw7e)(j|y=w;)o2(%s$N-w~hpeSF^k
z`p?B-V6MGp@4eQ&?se}yGcytqanR^WvaoPCP*6}vP(kTtU(iFLVIjxrRA`Jpf0V+I
zKm(97ntnRIATMYrC~80JnaZ6uv#e;XhYV=*FL*my
z(fmFcOL3o78bim|nJE;Sgx+Bq6y!*m}<=J6XUv)VSHXd
z`y*XR2Pp1Yedrs~c!L@6xf4DniHAH4(7BhkRtZg=qQIT*RH4$|Xh@Eiiy;0%QSW`g
zN$%XyD2GV!p_i})b))w6h=W?P0holqJL+6M1MTay{ru_Uhlx(K>n#f)d|I*0mW|KS
z_muKH;3b`sdBc?t=T>3{w;I<>j=OxaVw0+aerYCjNV?Uh7j}U%ZCE=bMybZjShQV5rpc`qi{vYW
zNl{+-{wuzfg{s##<5uLyh+!$GJthdpZ+cy^SW@my+L86(vdw5|&Y(!1@tD(`{k(bZ
z5qWEe7@0zDknny|w2SX?;0zf%hwH#`W)0!K5FY5b$#q}ES6|s~x$tPzPP~pxw_8s1
znzg%s{+}>v*6zzKI3#4klK`Cx-K>~mhhE}q3^MyQNHU2C$e1+rYZ6Y(J!oLIec`_t(eKpH_*ZCU~9W4+l{TNe0PV
zPv0YP$#cA?W+U7f*&4XB$I_5bIw%E+d>0MZv
zi1Tgs!u8HIf9mtJi3l}d)Y4+Gu_T~)aFBwLPgH#@{+*hxS=)5-+UDF-Q5RjrGH>!I-!)dvqnkIPUn_6u
zk5RmtUY_lNsi`;4EHC%!xhnR{Nq5$8Qw;tSiE3`dZTM%u^G9%FS&9uC3d+GMff=0;
zDA3hWB$7_{Su`*@7L!$5jr?}|X{gw>K&?Hp2BZ0ddu`LSg{<|Q<<{uIi{4%(U6e}b
z06&DmaeP+zRQ|8oVcQ>U_PC!FJ$haY1hl)hZ+YLe
zY}zAU2aFznY~JkK6c*gSo?VT8eE9rG3wRP^c-&^4-JPwaYzofD@ISOS*RLw-J)RWT
z*B?UPzE?b4jn2Nk@ws2^4rvvBn7iMTJ|xY0oSE+yy3XEY$r9W)X>Yrl?Orf2a1y>Q
zx!gQBXftaU$PZo?@VZ#DQ0xm>^vHTRw4Hx^xU0`<>m#n)cXATk@t!#^{>+d{1Vl$0
z^qmgGkX$$mdVC`_CEWwiLKOY`kIkDW9<(@Xh-~)Y57j$U2yJD93**P_kEVNG@iv*VBTZFaz-S4
zoX94G(jeexl;QEmC2!^8yYfySDnMU{-p$~J)R#8J^y77@(eDQVs+J#6U4^K#7dXTo
zs%Gpj|BG^UotXY-bgsnW91
z5L^S0kFwrA&}K}(H86kdsEvv@!nclTJbL_cIY}eTp4pM#Tz~s@v6;VV3&?)#`dE1R
zF@f+G{R^9Evi|RHTLg*F^jNuW4m#U~q#kP@ab<5bnnLfsSV)ncwpQw5Tdl0nPC`XR
z(S}qbc23NU@ZJ0G(!;TEQTa?@d%IaFnKsM*
zy528>+YiZdE8ptl_t^@3%NGEH%11ixuVp6dYv=kkU$0QCaw!GL$MGIIK34n$Prh=D
z+WyuUEJLay+xfEa)kipZgWgn5aCP43T@o$Nx?KsLk0APG`;Go|U8+K2DxKtObHX*1
z#rN@w--DA%zZn9IAFhk37n6TV%kf^H46UrqKEwRrRtnP9pUc`$3OFwZ-kL`apx@qm
zP)w0p^?8gr7Z=|%6iwJDTc(6XsbaOs(Km-uzH>{EA!vJ5z6;wXv=H_=IsV4&+Vk6~
z?D*EWE<1aX{fFdvW78e-ca!Qex%+;7qeGmlKisUTNimIPUJfomxIb+9tMN
zw*Azq&1-+(CNOaJ5!M-}4alP9+Xdd
z5o?jqoi|&S=G!-Rl@4gD2K3G;4sJ1+pV!N0
z@jGQOQZ1C>%~Y^^I6KF6E8Eja_|ZU|c!wWuI<-yYlY@I=lPeuj(nGEV=S0Iao7|ml!aPt+
zt~GH#oOFUoJfV8tG}$n7_83{G1wk8?>oGQ4S%juHYXXXuBT^Pr(PQ}yT$r-G=*tIE
zKW{%rpL_+ZS?bmbLhcF!hH%28ab1kIoNbu~m(e9nQyGx8b(PK%gJ6t7;=6^P&srDKPj3sCQX+35jQ1~@
zKO~qOmx2MfFSViX#cD3&ZRt^GMB;DtVG1vn%4F;^)I087YfdoNq9^PW;zf-X+6ugV
zpW)`Z3LiodV@K8ekZQ(9R%Snud$}mA2y(Pi=;`iOvhHs2qdd2AxEQ{`bnZp7$c^*o
zuwA3H<{W!PsmD2nEs89j%li68GvD@Ooc|mfcGwA^OZVo3lp+ZBnGH=}3f*FdvZ-0i
zcs3&`n;*u4Lpdyws}A?7?JW!kfvNpR%Qq!AG_*0R>-5@9ba*y}__f1%Uwn$(?g_@mi+-IX=1>&jxMgQC3%e&5wbSQ5
zGxQDsQpsAH1z&{i?8@!rZpW0w;uOkGX?^olatL3@Vgj3o74V@(Tcz2&1bvdyqc>Cy
zP?giLYs70!r`>1@_ImG-X>CGlO-9T)CQd1MKcCP{w0&?*)~ljH`5>3Fao0mL4s-7Pb+{!q0-u0tf}!>WspJ
zJON#+p2=RWX9x?OQOfiB#5AF-84kL$G2QPeCyn{xi=T
zKD*0V%#?Td(Kbo@V#RyTpu@;bair@A>;RG6HdDC)$37no^z>vm=NgLx6Y133Woq3d
z&=@z@u)9yCKr&Kc=JW;<5lUaU9Nc2b_l?14lnz!XJY8FRA1*6R8>@oRLZ0(?ZXfnr
znw!>qTEP$q$AS^up*W8z%J;<&6h$eNNQ=7n;ndK0*mG&+kY#5e2YyMIu+LaA~TO<6JWOz#i8&X^AoNALv;MCGp
z{LsF+Q4Z0tTEGn*HoJ7i$izDTByOuzzN2EIJ8YfRMhqFJJqCebF|
zNi!F{&-ipysD!5wts%gLIUM!s7AR*B4Bkg=#!L9i
zd|MoKUO;?p(p@>`85sRqJo)Q0Y6t>S6k7-06);A4{QCGzkkX)0lQVA>xC{GZMeK+qKkZU
z)tYun8TPWSw(6aFp4kjeU;=%v?{7}SBeckiQ(yz}_15uKPq-Bsm*sgR6@eAiyH;PP
z(%RPwkhHnc2VMu~T4j^VbB>8p?i=TWU%e}J^uXIA*Ix|d+J&gcDGa5pLzih_Y#`8G
zeAZKtSPHj`Lj9f1OmbXT#syGSpSj=6z~yUx=6LMI+Y;Sj#&brB@Od_`eNG_pqYe67
zA<6+}0y4SQ*3?z+-H4FUGY1}+4?NycC!PUJ=zUmIARRdeHSU+!6$F(s8Q#Xwh5*T#{
z(wjWc5(yw*&~T20w7JEp#yyXJbe~GmDi3rVFZLj4^`n{lKyq>fI0y`LEW8s{43m<8djxW?Yw#LJl=I)(Og7w#T@hNAy=?Ry;nXa(mNF(r*`Wtype6io9Cn
zHyFD-P`UdVY*VE-%Ex5^mCkLt?C9Dlp-L)lG6#6{K(w_g`M`VRWs4{lla}le>V~Vq
zsU%lAw8g~kfanC)XHZD8eUTzHjIH|l4dAcM>`zCBRlz|RU
zBNo|Zy*dc(U3bH7K;LMOzAAtCPQdh4(bxJbuK@8LJA+LCFMCbqY7OgjK4DcBbHnlr
zZ2Oia>MC-m->j^nkZY93PBk}D21lR##x1HnUOVNWjEaIHR`x=FNMD>gRG@eQ6A{`A0
zk5qq`5o>iuQ1@U+M6^bH9%a8T$9h
zm2Ot^u~rk39KvPOFZc4cyEu4qfDE?5Z~EzF#I6hg|XDRR$P0`+=p#vi;0aZt!_w7)F(slS0i_
z#CDN~3r(R}JX^7PfBvA((
zmN{i-R#ybE?HM>;KUJ0Rf{2!9J|kj1+0$ySdH8gTRy^w^Tmjm(Jrq+ns6nJgDlYwh_PsB729-NS4sn(0CE9{DUsEMXLrgq|={SbvXq&3QG
z4~5Gtgt@jvVwyvw>|kY{BNx)wE8^IUehep*l1S?%ncP%R3A?<?%)ZdNRgPVQFk9GL;gj`fhLylo~cX3M39W*c`$f_5zyWxY)t&JU81*~9y>;A^T}u;^qhH0XXPC@;k$onI9{XoD@%|Z|niXmi3F)aIrCOVY
z9rl|%#s!~`JrpYF*xIio%qq{AfduUgc!3Kjsf_M&V$FRCL|D8*f?}GaA@dlXISC-H
z+%tA?VGBC(g+*-~8ZoEd+j*i1%|o!bQ~2s-+*{pI0ku3vu(tB<8zTu5!gY(X@nJA0
zrn`0=2XrcAO16Ph6(kpMugSdK})FdJ(^o0}|s5K%+6%GlMmut6N_<+;`c@
zS1I^N$6FYCW}Z};+Mw{eg5z^?p)}d8yGhn5xFzcto6cK9Pn0^9+oJVzWtLlPE;M6i
zC!Ql;5(zCoy5uZg^Nh}DAtn<3w&yJ>Ab>7oZV!5mf5O5_%51J1II-}coc8{x+ptjk!@u=L+oG3mxKA88m7m=1T*>5$M
zRm^Ix*s4pAdYRfh*BL5}LtWbmigwHz`lT<7{Ehw+6r@IIK22LWR~&h8tYLmdD?Apl
z^Fr8CS53A>Hf57+X0hRp`~U2h>mKYge}VwzJV6f!ACOgi@e0lN@E$j>F-4DF#5xgO
zImaUIMue(hv;R{{ZE8yI0^HU4xmOFmR+`O@`h3V|z7EodJpK0{?*T
z-m=!~R-eHb+hf((S3wwN`}Ax2HP^GzrETtUe6e*!RCtECMt9xId-J(?AeIT^Q|IziXCLyGwnSvn0NGnW2
zF8}!{H1XU)oho&~Vedc-h600GsPOr>AFelIzZ!xb(cEQ7X`IA)treZCubQu&)w_^g
z3e+jb4qNl!aNQ#+3xH#BwO)1`!*>&zcw?q34ProFEDL(~CQ*@Uqhl7_if`Ig;m49r
z5?Bu}dPnr$IJh79^#;bhMfg(^8(EUQ$=C;m
ztEk{K-u4IoW5i|`=Yr1$rpBeJ%~;|;>0Kf;9`ANd?ax~E$~OmQC;R$Yiuxq?_t#I}
z``oUd+uyt2#Vj9>dT=zieqc(j-``zrpFKYoUc8$uBOMse-u-M1H1p1&+%>hO>)CWR
zt2NtbEY7aZ2h{IQ_8D-eHybD_Or#jhrcd9btm}C;i&vzSrB9pQZte{9dw34+?dWft
z+K=%H?q|;pZq#F-v{x8&CQnYD4qVi)uh*wvxKuyas*QjcWK0-ry6#HWwpZkyRj5~!
z&Tc;PWCf5v)JXzaXYs$b=LcCd2F_1BP6yUcHjK<4w4xOxHryYav1xuiI8Vp_baEs(
zZLu*e6KWp}gK^jfcwzW0dJ(~BNxOMel-{GceHGA)Zy`3s1SXO_dVQti*e?TBb-~+RJ+HSn$
zEEUVC-idij{$tfDX?aS^pl5&Hb$m)Ai+hd13Hzfn$^E2z+9O}g!)}XRo9Blk{f+kF
zyhnhK<jJ9&T%LY;Co7purGK>EV45T
zm>3dZkKk)d91u_rxJeGH0FH4_4hNC>u^4G6n@nbaPfj?dORk8ATELSLYeA-A0&=Ja@#rL}-r>M|M1d
zUq{LmF)$Fft7zn?Dzy#K`yxwj=2X2O-!5flVxhFSj|hBCgUn6ms)a=k5PueeVv7tv
z2#h{2qzGC48uoN0-QQPoI}jJX+fji3cWUym2Zes^5lqESS2kn_pGT13_m}8~
zpS=c*5S5`#qw53xUGP!(@9vItiS*Hei2riuGfJC~IALVg2vbOaS0a^uJj+_a>!CD4
z1g@YIx^zULlOVoisr+_)1a@%tIzC-33hC?CDFugg-)Rt&JhPqg0Pl6OnZ)S*koh^L
zBFq@+gpbHU++~kv#Ala03}o{Rg5{uS(0if#3{okWS*T!+e7+@#V3D)FgfR?Y7yZZ%
zW0z|Q+e8}|Fu{~#l^NL2tVctX@;Sk9wlQeS=?7Do11eSrF5>EvStOl5gC_Nl*Y!w#
z6rzUj;WBi5n3V{iHsg@l@wP5`EcP#ekE8P49jBc?I@pcr{F{^6GRX)uGSn9KguH&1#le`*(rNK+mt|{k8sb-aRDElSBSi*Bb|KJ11?obOw5H*UUEH{XU
zZ@PuJMK@PStJVx40RCT)UxeOHNq3)ifJMnPV8nAzwBUV|mL%aPP^@4+o=cJy$a@L!
z5PlR!G7Eh;B09tvIpzore?KiUhZwa9E;>jkEJ70v-ZsS~R}w>#!%k|Xrgu^^EbpL(
z($0qSpX@;l?k~A5HUeL2tx7M@$$fJUD~3v@&)>q8*vZj&1`M2yGEk%r;%few@pcL;
z)>96GZdz9&7q2hYdQzeUZo)jPDWy4Yn}jU6HZ74xQqSuF$y)QEa@s
zq^`ayJkY*UXIB>*95k;$+911I~~|>Te80S=JrH;$2OpU(ywo
z=1ECqzp`M@0bPlINxT9?s5<0Gqu?r3Q(@}v)FhyX*J(F!z87rA|$02+_6RvutS)fx1{Wh21}Qkrc^tVqM`L1i=a^96>v4j%!2JJ2%Y6|
zZ?d;3=CS9;C-1
z#;Sx|;(uM304F*ht;mYKS3QW|pAM#&pdv!s7~v0r&c6klbbmd6M#Y=*&5&DyA_XKa
zN!5(Ph^t9gscwi3RW1+HZ_~G#id@%dnz*JefHlp$eAOuSuGtAZg`^r)Xc
z8I@RTW;
zoX|I^gz$3`xOqy>Vsg5!s#7nZ$}M4xY(u~iSMmxH(o^LkQVTETzLi_tE@QJ5qFjwr
zkS~9~?ozccG*UZCrz}wFp_StYC?=TsDZZ5d3El*w->3T5qVju5!?ei!G|2twK|#GX
z;cv89h*9c9-+(Se)7YScak|vlb!Cz+WkB?
zR*6qnp|lFms_T+{TD5|z=}D)o(+z)KP-s>8!}y1(+auJty%U{_Su>4h=&r70=T5
zDKc&UuwOdd%2dV39p4m5_M7;0If@lc`Za27+&*P^?le}&39&S34Y;&M7ywm!wo&XC
za|z5suu4=;AquRMyckhB!pc-4Tz-XpdVHmQdTfRzQXk8Em88C^9K+p99hoj!QWXS_
z#3$k``EK&W7)vzpKI(s%7l4PPL|+K;o-f2-EFX~iZzGU-0b+^h2BJa~w^1=^Hx46t_FgjGuu^j%OFA_8|O;PuNEd9%KRSpo3DyPw$5EJO&)mjb0}IW%JK@W8Ud?X
zM=chm5yOLcDf`ktz5D-vdmmd(ob!Bs$@w-hu#8^xR5D5cl-R!rFD1}sK=zW_q=2L7+iZnv?QRcMh5eu47MBBc0c$#1jZyT0&n$1A4JB_>4LC`
z0qp2qZz=IozCy~*XYvwVO8Z@j_S9iY-;zY*!ZBS-|26#p#w02NoAjt(M8;K8-9^T>
zNK09kTIR{9*~x|YdlFa>T;760-ZgE3aETZyLrVnJYGtVm{?vng3~@OB6%uK&D^a-pJyf`(pVK(~hqQJVq)!AlG`kI2*
zonINKmRH6TI~C{wKBX4)NM%}MoWh-wWI@~o`acCs2L{V3=55r~4MYI=6wy-nL&%~i
zTosW;&8}S?0)%8Aqwh<}aZex=#O?e~){0dM#=l%?V$TD&kWqsVLDYfIds@3cVFq}V
zE^XjQI5^6b{uyv?5e1<6m)LTa-ntx?n%Fv+R*<$~4huDeln>dp!z?yP(#m8lfVAxl2D{%l*UG}^CL*EL(B}aL)jDlf5!>DGzPpSq#GX7
zVq0WWF>T)MhrM-##6&L-Joh+YAA|V{#D&&A(=Neq1PLyq8XjOD4|D8BozDS_39WU!u!@?Qh!~F*YFmiG%TmZ
z-X&E+T*SkM;x5vebtzIheR-@mIS-o|KNmA2k^doZ6_~hS^>%Ex9FXuI<)$(^vj)B|
zIsEWFa6X2hs-h0R)#PKBIV{`TLJuL=TT}o=ypj6YP;nL%&?vL
zVc_xDYKux;O4cA1{r6C7rOAf&Zl@}C5Bz>dk{oP{UASh7jccY1f5|@`x#mNs!y5
z8}5M8nOa84zgac|#x%R|wwe5@a2gqJXYh>DJv}z{hxO)8(Rb>6G?$F_0`ML6P-16(
zDNB5(t{=R2_`z$*U(6;rrEN&wmZiS4jW9*iGt{xR7v8ax&X%pO|cw;Cx6RQcD<=h9@$d$+WocMt3prER{5N-fZ2t$mQY
zy+7(F{h4F#}XoA{#X)D&>=h8NkG_B=HRuIbDAHC;S3W^eGQQ;<*L)cmIrg1Cr2)T$ArgWNqGw*cf6{>(~pAXGPR_
zN9`SlyMe-J{9aLQU%6l7f0smE(==f@&3e34Mv##$P|G0)9JNV3>r;geu#@Q`n@hAO
z<$bEHH}oridVK28iXBNT0~SQk1iVO60S!|}u33pD*>MpNNrX(jlESs)f=G9HgxpML
zP##1`7=OHx`>RT%!-1xur7`D;ztbU`VN0BF8OiXZ3&c%*52RnRf(ZQdRQ85d_TS)#
z6gPRefAw@a9Q%_Y(|5Z5A!@cXM)GUma0@Z_-a)RZy@x`hI#!r
z`XP`?AdcO`dNIZ!(^Uxxsk}hH9y*39c%ZbQ!db#WqZ<~t|B3POi>1{64JRZh@x-x5
zWAlw!@kj4d;~-fM(*JEIiwpTT9yoH){3n?Bp>r;O@jV2IozJAkwr0lZkagq;`e(tW
z>5ogS^gY%OPK-A2FRF)tkD#e1Vu4NS_=^C!kinI(pqEYQlN|BQ?t%~myTx15;}^pv
zKZ9>)Dtz6Uq5nTU7Q+Gm9jYI3tOzzYBcyUKZn8pFY}@lr=>`b&eg!7>*}VCYme*|W
z=Ej~h+EYsf}>oCMdj7n{p7?==77m)6_En;t!`$xHV
zASC9X7~?*z6epPd$Xoy^7|D9%;P|72khm7TR1me5BKZCDLSGI3#6aY9dXBK)P%sj?
zJ9_gk-CKi@j6;O%It=M0a4`&XsJ9y>fCTB|#LM0F;!7nBIZ#+YZZ#vkVn_VEQseRc99Utg`
z_@ky&$Sl86djOqz@tRzCm)Q6E8H>4C7n>ZmnH3gTEtIs0}s326w#6M8`Lx61oo
z#krb%c#+0*$Uu|!|3J5t^{<&ik~5O{W{dS}IU51xa&jq$Cs2cjmlqn99nWT{DpAlT?Oa!i3
zzfL+D4$JF4!}Q!Qff;5_46GiIdfV}*qElkU{=HsLhZCKS!yr|eV@hHJ=`&?vfxaNC
zbWN{^iCK5y*ttMBO;3)%Ea6G{A~!l}`+?2P^}F|!)Y#XUA91WZO*)#|unV}NRVMo!ciQ35m(0wPk{C>EIu`A6fB)tKd-UfR5(3@>Xpgu0u?@p=xvv?J)&YKZ=l
zWLFV3_N_p|=#B1xR868e)u?u^JQDmOT<*M}?}zYBm=uT5ZqXIw8P#`p*a?)5Ou~=F;519a
z5E8TN>mnNO9?qi$ROP(Tu~cpJc8c&H#h-!=uu9~31N~zFn35Bcj$@;vZmrZiR=iWJ
zTY09vQ!i6{(l5t`cioz9(*ShPoquTLgmv>Ig?Qq(U*T?);^wOAus>f%cu4EI}*
zxh}w7#T(N1Xe~&wjdGY!xqWqg7+jH{Shdew&j>QGc|~;yX4h>Y8LXAUqGGS5NEMZ|
zP*v{+YD&lezTXafb4Jop9pwtO%-8~tWWq+n#?(@B%Mrn--lq$DxHGI7*4$rF9_X3H
zxKl*ooIPKBqoUQGh)e&E52-O_pIj(OU~)}BOP#i%{g5YDvk={gu&|l=Wsb#Ee@e#9
zHkLL@_dO2YdA8xsL^G%ytSwuEoHGG%OVg$(cpc1i7oJ8|&nbVX47EiXIPCH^9aUuJ
zBXOl0p>LEh(dlO@*f!Ur&gTrLjVc+pWB7<4_5FQAffI$}4it(I%KEP`3}MfP=VYsl
zt`>?~f}50}`kR6??1no4BVJ;
z%xQ$E_m^+^R~awok>0tFVBv9%W(!w;+p!;fIj2FHxL&acA~sjSy3C;wM`89aCspq$
zZz>5!h56-v`}Pg~y4fFRG_c|X(}2}`g)Skp`5y5l6g4e5`?@F7qffWHyagY1wuQxt
zs@^ze^eLN!J%N5!-JB#b%P=l-94~B?Zfwvm<5`bht%k3uRiU=2cy%+7bSi?ae_KT1
z)+agKb=x`P_JVPcICspRS(*l#>JFLspIx%ymeSn1r;M00Cjn
zcD;HA$vI(}(C5HnZQ0kmixIP>QoWjVJlu;I!l3huoPnX+_4VxiB;tLKMh~B^YTNX6
zx3;O8vZ9cKjm4Do5y<^urqc0x)X%Ob8{_lueVVWB>iM&G^H_f0roG{N{Ln#lyV
zhjwNkK2E39rIxo@W$%pUwk}W?2y#w&b688QB3&Gf=jnxnKGKHYZ{H^PlLK^KH$j1%jr8}Krx!gT53XQA-pa*-JmK``Lk2mRCuEV6Jy~~>zko(gm?x(o`|o>*
zP*A_$`~CAFgB;G$5=bfjY4m>{ocgzsCRu_J#fzsa{qI9FFi=n!e_B9(lR>^-6bTs=
z#7~X>dLRP||38h?zzI5dgp5kE&@iwF|N92A=8&v1g&U+{6y!_!AA?=71X9YE2>If_
G&;CDTlPGxr
diff --git a/wms/account-receivable-excel.php b/wms/account-receivable-excel.php
index 64fab766..17ea668d 100644
--- a/wms/account-receivable-excel.php
+++ b/wms/account-receivable-excel.php
@@ -5,6 +5,10 @@ require_once dirname(__DIR__) . '/common/composer/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
+use PhpOffice\PhpSpreadsheet\Style\Alignment;
+use PhpOffice\PhpSpreadsheet\Style\Border;
+use PhpOffice\PhpSpreadsheet\Style\Fill;
+use PhpOffice\PhpSpreadsheet\Style\Font;
header('Content-Type: application/json');
$type = $_GET['type'];
@@ -14,8 +18,16 @@ $spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
if ($type == 'newContract') {
+ $sheet->mergeCells('A1:X1');
+ $sheet->setTitle('新梯催收統整');
+ $sheet->setCellValue('A1', '新梯催收統整');
+ $sheet->getStyle('A1')->getFont()->setBold(true);
+ $sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
+ $sheet->getStyle('A1')->getAlignment()->setVertical(Alignment::VERTICAL_CENTER);
+ $sheet->getStyle('A1')->getFont()->setSize(14);
+ $sheet->getRowDimension('1')->setRowHeight(38);
$colomnHeader = [
- '合約號', '客戶名稱', '營業員', '合約金額', '台數', '作番狀態', '催收金額', '催收次數', '訂金催收金額', '訂金催收次數', '二次款催收金額', '二次款催收次數',
+ '合約號', '客戶名稱','部門','營業員', '合約金額', '台數', '作番狀態', '催收金額', '訂金催收金額', '訂金催收次數', '二次款催收金額', '二次款催收次數',
'貨抵工地款催收金額', '貨抵工地款催收次數',
'安裝款催收金額', '安裝款催收次數',
'試車款催收金額', '試車款催收次數',
@@ -25,8 +37,8 @@ if ($type == 'newContract') {
];
file_put_contents('account-receivable.txt', json_encode($Bill, JSON_UNESCAPED_UNICODE));
- $sheet->fromArray($colomnHeader, NULL, 'A1');
- $rowIndex = 2;
+ $sheet->fromArray($colomnHeader, NULL, 'A2');
+ $rowIndex = 3;
foreach ($Bill as $key => $value) {
$sheet->fromArray($value, NULL, 'A' . $rowIndex);
@@ -34,9 +46,9 @@ if ($type == 'newContract') {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y'
];
foreach ($column as $col) {
- if ($col == 'F') {
- $sheet->getColumnDimension('F')->setWidth(35);
- $sheet->getStyle('F')->getAlignment()->setWrapText(true);
+ if ($col == 'G') {
+ $sheet->getColumnDimension('G')->setWidth(35);
+ $sheet->getStyle('G')->getAlignment()->setWrapText(true);
} else {
// $sheet->getColumnDimension($col)->setAutoSize(true);
$sheet->getColumnDimension($col)->setWidth(10);
diff --git a/wms/account-receivable-maintainance-index.php b/wms/account-receivable-maintainance-index.php
index f9e6430a..e1c0d427 100644
--- a/wms/account-receivable-maintainance-index.php
+++ b/wms/account-receivable-maintainance-index.php
@@ -190,12 +190,12 @@ for ($i = 0; $i < count($rows); $i++) {
$table .= $table1 . $table2 . "); \n";
}
-$file_path = 'account_receivable_maintainance_sql.sql';
-if (file_put_contents($file_path, $table) !== false) {
- echo "SQL文件已成功生成:{$file_path}";
-}else{
- "fail";
-}
+// $file_path = 'account_receivable_maintainance_sql.sql';
+// if (file_put_contents($file_path, $table) !== false) {
+// echo "SQL文件已成功生成:{$file_path}";
+// }else{
+// "fail";
+// }
// foreach ($data as $key => $row) {
// echo $key . " ";
diff --git a/wms/account-receivable-new-index.php b/wms/account-receivable-new-index.php
index 10cd6a82..712c8647 100644
--- a/wms/account-receivable-new-index.php
+++ b/wms/account-receivable-new-index.php
@@ -864,7 +864,20 @@ $excel_contract_boga_array = array();
$excel_contract_noboga_array = array();
$excel_facility_array = array();
-
+$total_collect_budget = 0;
+$total_collect_facility = 0;
+$boga_collect_budget = 0;
+$boga_collect_facility = 0;
+$noboga_collect_budget = 0;
+$noboga_collect_facility = 0;
+$total_sign_collect_budget = $boga_sign_collect_budget = $noboga_sign_collect_budget = 0;
+$total_second_collect_budget = $boga_second_collect_budget = $noboga_second_collect_budget = 0;
+$total_arrival_collect_budget = $boga_arrival_collect_budget = $noboga_arrival_collect_budget = 0;
+$total_install_collect_budget = $boga_install_collect_budget = $noboga_install_collect_budget = 0;
+$total_tryrun_collect_budget = $boga_tryrun_collect_budget = $noboga_tryrun_collect_budget = 0;
+$total_check_collect_budget = $boga_check_collect_budget = $noboga_check_collect_budget = 0;
+$total_delivery_collect_budget = $boga_delivery_collect_budget = $noboga_delivery_collect_budget = 0;
+$total_final_collect_budget = $boga_final_collect_budget = $noboga_final_collect_budget = 0;
foreach ($arrayData as $key => &$value) {
$excel_contract_array[$key] = array_fill(0, 76, '');
@@ -879,30 +892,30 @@ foreach ($arrayData as $key => &$value) {
$excel_contract_array[$key][8] = (isset($value['PersonName']) && !is_null($value['PersonName'])) ? $value['PersonName'] : '';
$excel_contract_array[$key][9] = (isset($value['ManagerId']) && !is_null($value['ManagerId'])) ? $value['ManagerId'] : '';
$excel_contract_array[$key][10] = (isset($value['ManagerName']) && !is_null($value['ManagerName'])) ? $value['ManagerName'] : '';
- $excel_contract_array[$key][11] = (isset($value['OAmountWithTax']) && !is_null($value['OAmountWithTax'])) ? number_format(round($value['OAmountWithTax'])) : '0';
- $excel_contract_array[$key][12] = (isset($value['A40001']) && !is_null($value['A40001'])) ? number_format(round($value['A40001'])) : '0';
- $excel_contract_array[$key][13] = (isset($value['A40008']) && !is_null($value['A40008'])) ? number_format(round($value['A40008'])) : '0';
- $excel_contract_array[$key][14] = (isset($value['receivable_budget']) && !is_null($value['receivable_budget'])) ? $value['receivable_budget'] : 0;
- $excel_contract_array[$key][15] = (isset($value['invoice_budget']) && !is_null($value['invoice_budget'])) ? number_format(round($value['invoice_budget'])) : '0';
- $excel_contract_array[$key][16] = (isset($value['received_budget']) && !is_null($value['received_budget'])) ? $value['received_budget'] : 0;
- $value['collect_budget'] = (($excel_contract_array[$key][14] - $excel_contract_array[$key][16]) > 0) ? $excel_contract_array[$key][14] - $excel_contract_array[$key][16] : 0;
- $excel_contract_array[$key][17] = number_format(round($excel_contract_array[$key][14] - $excel_contract_array[$key][16]));
- $excel_contract_array[$key][18] = (isset($value['collect_month']) && !is_null($value['collect_month'])) ? number_format(round($value['collect_month'])) : '0';
- $excel_contract_array[$key][19] = (isset($value['facility_num']) && !is_null($value['facility_num'])) ? number_format(round($value['facility_num'])) : '0';
+ $excel_contract_array[$key][11] = (isset($value['OAmountWithTax']) && !is_null($value['OAmountWithTax'])) ? round($value['OAmountWithTax']) : 0;
+ $excel_contract_array[$key][12] = (isset($value['A40001']) && !is_null($value['A40001'])) ? round($value['A40001']) : 0;
+ $excel_contract_array[$key][13] = (isset($value['A40008']) && !is_null($value['A40008'])) ? round($value['A40008']) : 0;
+ $excel_contract_array[$key][14] = (isset($value['receivable_budget']) && !is_null($value['receivable_budget'])) ? round($value['receivable_budget']) : 0;
+ $excel_contract_array[$key][15] = (isset($value['invoice_budget']) && !is_null($value['invoice_budget'])) ? round($value['invoice_budget']) : 0;
+ $excel_contract_array[$key][16] = (isset($value['received_budget']) && !is_null($value['received_budget'])) ? round($value['received_budget']) : 0;
+ $value['collect_budget'] = (abs($excel_contract_array[$key][14] - $excel_contract_array[$key][16]) > 10) ? round($excel_contract_array[$key][14] - $excel_contract_array[$key][16]) : 0;
+ $excel_contract_array[$key][17] = $value['collect_budget'];
+ $excel_contract_array[$key][18] = (isset($value['collect_month']) && !is_null($value['collect_month'])) ? round($value['collect_month']) : 0;
+ $excel_contract_array[$key][19] = (isset($value['facility_num']) && !is_null($value['facility_num'])) ? round($value['facility_num']) : 0;
$excel_contract_array[$key][20] = (isset($value['facility_status']) && !is_null($value['facility_status'])) ? $value['facility_status'] : '--';
- $excel_contract_array[$key][14] = number_format(round($excel_contract_array[$key][14]));
- $excel_contract_array[$key][16] = number_format(round($excel_contract_array[$key][16]));
if (isset($value['PayStage']) && is_iterable($value['PayStage'])) {
- if ($excel_contract_array[$key][18] !== '0') {
+ if ($excel_contract_array[$key][18] >0 && abs($value['collect_budget']) > 10) {
$excel_contract_all_array[$key] = array_fill(0, 24, 0);
$excel_contract_all_array[$key][0] = $excel_contract_array[$key][0];
$excel_contract_all_array[$key][1] = $excel_contract_array[$key][3];
- $excel_contract_all_array[$key][2] = $excel_contract_array[$key][8];
- $excel_contract_all_array[$key][3] = $excel_contract_array[$key][11];
- $excel_contract_all_array[$key][4] = $excel_contract_array[$key][19];
- $excel_contract_all_array[$key][5] = $excel_contract_array[$key][20];
- $excel_contract_all_array[$key][6] = $excel_contract_array[$key][17];
- $excel_contract_all_array[$key][7] = $excel_contract_array[$key][18];
+ $excel_contract_all_array[$key][2] = $excel_contract_array[$key][6];
+ $excel_contract_all_array[$key][3] = $excel_contract_array[$key][8];
+ $excel_contract_all_array[$key][4] = $excel_contract_array[$key][11];
+ $excel_contract_all_array[$key][5] = $excel_contract_array[$key][19];
+ $excel_contract_all_array[$key][6] = $excel_contract_array[$key][20];
+ $excel_contract_all_array[$key][7] = $excel_contract_array[$key][17];
+ $total_collect_budget += $excel_contract_all_array[$key][6];
+ $total_collect_facility += $excel_contract_all_array[$key][4];
$isBoga = 0;
if (stristr($value['PayStage'][1]['PayStage'], '寶佳')) {
$isBoga = 1;
@@ -915,6 +928,8 @@ foreach ($arrayData as $key => &$value) {
$excel_contract_boga_array[$key][5] = $excel_contract_array[$key][20];
$excel_contract_boga_array[$key][6] = $excel_contract_array[$key][17];
$excel_contract_boga_array[$key][7] = $excel_contract_array[$key][18];
+ $boga_collect_budget += $excel_contract_boga_array[$key][6];
+ $boga_collect_facility += $excel_contract_boga_array[$key][4];
} else {
$excel_contract_noboga_array[$key] = array_fill(0, 24, '');
$excel_contract_noboga_array[$key][0] = $excel_contract_array[$key][0];
@@ -925,6 +940,8 @@ foreach ($arrayData as $key => &$value) {
$excel_contract_noboga_array[$key][5] = $excel_contract_array[$key][20];
$excel_contract_noboga_array[$key][6] = $excel_contract_array[$key][17];
$excel_contract_noboga_array[$key][7] = $excel_contract_array[$key][18];
+ $noboga_collect_budget += $excel_contract_noboga_array[$key][6];
+ $noboga_collect_facility += $excel_contract_noboga_array[$key][4];
}
}
@@ -932,175 +949,174 @@ foreach ($arrayData as $key => &$value) {
switch ($payvalue['stage']) {
case "訂金":
$excel_contract_array[$key][21] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][22] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][23] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][24] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][25] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][26] = number_format(round($excel_contract_array[$key][23] - $excel_contract_array[$key][25]));
- $excel_contract_array[$key][27] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][22] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][23] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][24] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][25] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][26] = (abs($excel_contract_array[$key][23] - $excel_contract_array[$key][25]) >10)?round($excel_contract_array[$key][23] - $excel_contract_array[$key][25]):0;
+ $excel_contract_array[$key][27] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][26]) > 10) ? round($payvalue['collect_month']) : 0;
+ $total_sign_collect_budget += $excel_contract_array[$key][26];
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][8] = number_format(round($excel_contract_array[$key][23] - $excel_contract_array[$key][25]));
- $excel_contract_all_array[$key][9] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][8] = $excel_contract_array[$key][26];
+ $excel_contract_all_array[$key][9] = $excel_contract_array[$key][27];
+ $total_sign_collect_budget += $excel_contract_all_array[$key][8];
if ($isBoga == 1) {
$excel_contract_boga_array[$key][8] = $excel_contract_all_array[$key][8];
$excel_contract_boga_array[$key][9] = $excel_contract_all_array[$key][9];
+ $boga_sign_collect_budget += $excel_contract_boga_array[$key][8];
} else {
$excel_contract_noboga_array[$key][8] = $excel_contract_all_array[$key][8];
$excel_contract_noboga_array[$key][9] = $excel_contract_all_array[$key][9];
+ $noboga_sign_collect_budget += $excel_contract_noboga_array[$key][8];
}
}
- $excel_contract_array[$key][23] = number_format(round($excel_contract_array[$key][23]));
- $excel_contract_array[$key][25] = number_format(round($excel_contract_array[$key][25]));
-
-
break;
case "二次款":
$excel_contract_array[$key][28] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][29] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][30] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][31] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][32] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][33] = number_format(round($excel_contract_array[$key][30] - $excel_contract_array[$key][32]));
- $excel_contract_array[$key][34] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][29] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][30] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][31] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][32] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][33] = (abs($excel_contract_array[$key][30] - $excel_contract_array[$key][32]) >10)?round($excel_contract_array[$key][30] - $excel_contract_array[$key][32]):0;
+ $excel_contract_array[$key][34] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][33]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][10] = number_format(round($excel_contract_array[$key][30] - $excel_contract_array[$key][32]));
- $excel_contract_all_array[$key][11] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][10] = $excel_contract_array[$key][33];
+ $excel_contract_all_array[$key][11] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_second_collect_budget += $excel_contract_all_array[$key][10];
if ($isBoga == 1) {
$excel_contract_boga_array[$key][10] = $excel_contract_all_array[$key][10];
$excel_contract_boga_array[$key][11] = $excel_contract_all_array[$key][11];
+ $boga_second_collect_budget += $excel_contract_boga_array[$key][10];
} else {
$excel_contract_noboga_array[$key][10] = $excel_contract_all_array[$key][10];
$excel_contract_noboga_array[$key][11] = $excel_contract_all_array[$key][11];
+ $noboga_second_collect_budget += $excel_contract_noboga_array[$key][10];
}
}
- $excel_contract_array[$key][30] = number_format(round($excel_contract_array[$key][30]));
- $excel_contract_array[$key][32] = number_format(round($excel_contract_array[$key][32]));
-
break;
case "貨抵工地款":
$excel_contract_array[$key][35] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][36] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][37] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][38] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][39] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][40] = number_format(round($excel_contract_array[$key][37] - $excel_contract_array[$key][39]));
- $excel_contract_array[$key][41] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][36] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][37] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][38] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][39] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][40] = (abs($excel_contract_array[$key][37] - $excel_contract_array[$key][39])>10)?round($excel_contract_array[$key][37] - $excel_contract_array[$key][39]):0;
+ $excel_contract_array[$key][41] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][40]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][12] = number_format(round($excel_contract_array[$key][37] - $excel_contract_array[$key][39]));
- $excel_contract_all_array[$key][13] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][12] = $excel_contract_array[$key][40];
+ $excel_contract_all_array[$key][13] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_arrival_collect_budget += $excel_contract_all_array[$key][12];
if ($isBoga == 1) {
$excel_contract_boga_array[$key][12] = $excel_contract_all_array[$key][12];
$excel_contract_boga_array[$key][13] = $excel_contract_all_array[$key][13];
+ $boga_arrival_collect_budget += $excel_contract_boga_array[$key][12];
} else {
$excel_contract_noboga_array[$key][12] = $excel_contract_all_array[$key][12];
$excel_contract_noboga_array[$key][13] = $excel_contract_all_array[$key][13];
+ $noboga_arrival_collect_budget += $excel_contract_noboga_array[$key][12];
}
}
- $excel_contract_array[$key][37] = number_format(round($excel_contract_array[$key][37]));
- $excel_contract_array[$key][39] = number_format(round($excel_contract_array[$key][39]));
break;
case "安裝款":
$excel_contract_array[$key][42] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][43] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][44] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][45] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][46] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][47] = number_format(round($excel_contract_array[$key][44] - $excel_contract_array[$key][46]));
- $excel_contract_array[$key][48] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][43] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][44] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][45] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][46] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][47] = (abs($excel_contract_array[$key][44] - $excel_contract_array[$key][46])>10)?round($excel_contract_array[$key][44] - $excel_contract_array[$key][46]):0;
+ $excel_contract_array[$key][48] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][47]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][14] = number_format(round($excel_contract_array[$key][44] - $excel_contract_array[$key][46]));
- $excel_contract_all_array[$key][15] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][14] = $excel_contract_array[$key][47];
+ $excel_contract_all_array[$key][15] = $excel_contract_array[$key][48];
$excel_contract_noboga_array[$key][14] = $excel_contract_all_array[$key][14];
$excel_contract_noboga_array[$key][15] = $excel_contract_all_array[$key][15];
+ $total_install_collect_budget += $excel_contract_all_array[$key][14];
+ $noboga_install_collect_budget += $excel_contract_noboga_array[$key][14];
}
- $excel_contract_array[$key][44] = number_format(round($excel_contract_array[$key][44]));
- $excel_contract_array[$key][46] = number_format(round($excel_contract_array[$key][46]));
break;
case "試車款":
$excel_contract_array[$key][49] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][50] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][51] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][52] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][53] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][54] = number_format(round($excel_contract_array[$key][51] - $excel_contract_array[$key][53]));
- $excel_contract_array[$key][55] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][50] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][51] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][52] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][53] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][54] = (abs($excel_contract_array[$key][51] - $excel_contract_array[$key][53])>10)?round($excel_contract_array[$key][51] - $excel_contract_array[$key][53]):0;
+ $excel_contract_array[$key][55] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][54]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][16] = number_format(round($excel_contract_array[$key][51] - $excel_contract_array[$key][53]));
- $excel_contract_all_array[$key][17] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][16] = $excel_contract_array[$key][54];
+ $excel_contract_all_array[$key][17] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_tryrun_collect_budget += $excel_contract_all_array[$key][16];
if ($isBoga == 1) {
$excel_contract_boga_array[$key][16] = $excel_contract_all_array[$key][16];
$excel_contract_boga_array[$key][17] = $excel_contract_all_array[$key][17];
+ $boga_tryrun_collect_budget += $excel_contract_boga_array[$key][16];
} else {
$excel_contract_noboga_array[$key][16] = $excel_contract_all_array[$key][16];
$excel_contract_noboga_array[$key][17] = $excel_contract_all_array[$key][17];
+ $noboga_tryrun_collect_budget += $excel_contract_noboga_array[$key][16];
}
}
- $excel_contract_array[$key][51] = number_format(round($excel_contract_array[$key][51]));
- $excel_contract_array[$key][53] = number_format(round($excel_contract_array[$key][53]));
-
break;
case "官檢驗收款":
$excel_contract_array[$key][56] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][57] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][58] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][59] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][60] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][61] = number_format(round($excel_contract_array[$key][58] - $excel_contract_array[$key][60]));
- $excel_contract_array[$key][62] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][57] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][58] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][59] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][60] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][61] = (abs($excel_contract_array[$key][58] - $excel_contract_array[$key][60])>10)?round($excel_contract_array[$key][58] - $excel_contract_array[$key][60]):0;
+ $excel_contract_array[$key][62] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][61]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][18] = number_format(round($excel_contract_array[$key][58] - $excel_contract_array[$key][60]));
- $excel_contract_all_array[$key][19] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][18] = $excel_contract_array[$key][61];
+ $excel_contract_all_array[$key][19] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_check_collect_budget += $excel_contract_all_array[$key][18];
$excel_contract_noboga_array[$key][18] = $excel_contract_all_array[$key][18];
$excel_contract_noboga_array[$key][19] = $excel_contract_all_array[$key][19];
+ $noboga_check_collect_budget += $excel_contract_noboga_array[$key][18];
}
- $excel_contract_array[$key][58] = number_format(round($excel_contract_array[$key][58]));
- $excel_contract_array[$key][60] = number_format(round($excel_contract_array[$key][60]));
-
break;
case "交車款":
$excel_contract_array[$key][63] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][64] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][65] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][66] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][67] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][68] = number_format(round($excel_contract_array[$key][65] - $excel_contract_array[$key][67]));
- $excel_contract_array[$key][69] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][64] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][65] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][66] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][67] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][68] = (abs($excel_contract_array[$key][65] - $excel_contract_array[$key][67])>10)?round($excel_contract_array[$key][65] - $excel_contract_array[$key][67]):0;
+ $excel_contract_array[$key][69] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][68]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][20] = number_format(round($excel_contract_array[$key][65] - $excel_contract_array[$key][67]));
- $excel_contract_all_array[$key][21] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][20] = $excel_contract_array[$key][68];
+ $excel_contract_all_array[$key][21] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_delivery_collect_budget += $excel_contract_all_array[$key][20];
$excel_contract_noboga_array[$key][20] = $excel_contract_all_array[$key][20];
$excel_contract_noboga_array[$key][21] = $excel_contract_all_array[$key][21];
+ $noboga_delivery_collect_budget += $excel_contract_noboga_array[$key][20];
}
- $excel_contract_array[$key][65] = number_format(round($excel_contract_array[$key][65]));
- $excel_contract_array[$key][67] = number_format(round($excel_contract_array[$key][67]));
-
break;
case "尾款":
$excel_contract_array[$key][70] = (isset($payvalue['PayStage']) && !is_null($payvalue['PayStage'])) ? $payvalue['PayStage'] : '--';
- $excel_contract_array[$key][71] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? number_format(round($payvalue['PlanPayAmt'])) : '0';
- $excel_contract_array[$key][72] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? $payvalue['receivable_budget'] : 0;
- $excel_contract_array[$key][73] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? number_format(round($payvalue['invoice_budget'])) : '0';
- $excel_contract_array[$key][74] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? $payvalue['received_budget'] : 0;
- $excel_contract_array[$key][75] = number_format(round($excel_contract_array[$key][72] - $excel_contract_array[$key][74]));
- $excel_contract_array[$key][76] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_array[$key][71] = (isset($payvalue['PlanPayAmt']) && !is_null($payvalue['PlanPayAmt'])) ? round($payvalue['PlanPayAmt']) : 0;
+ $excel_contract_array[$key][72] = (isset($payvalue['receivable_budget']) && !is_null($payvalue['receivable_budget'])) ? round($payvalue['receivable_budget']) : 0;
+ $excel_contract_array[$key][73] = (isset($payvalue['invoice_budget']) && !is_null($payvalue['invoice_budget'])) ? round($payvalue['invoice_budget']) : 0;
+ $excel_contract_array[$key][74] = (isset($payvalue['received_budget']) && !is_null($payvalue['received_budget'])) ? round($payvalue['received_budget']) : 0;
+ $excel_contract_array[$key][75] = (abs($excel_contract_array[$key][72] - $excel_contract_array[$key][74])>10)?round($excel_contract_array[$key][72] - $excel_contract_array[$key][74]):0;
+ $excel_contract_array[$key][76] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month']) && abs($excel_contract_array[$key][75]) > 10) ? round($payvalue['collect_month']) : 0;
if (isset($excel_contract_all_array[$key])) {
- $excel_contract_all_array[$key][22] = number_format(round($excel_contract_array[$key][72] - $excel_contract_array[$key][74]));
- $excel_contract_all_array[$key][23] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? number_format(round($payvalue['collect_month'])) : '0';
+ $excel_contract_all_array[$key][22] = $excel_contract_array[$key][75];
+ $excel_contract_all_array[$key][23] = (isset($payvalue['collect_month']) && !is_null($payvalue['collect_month'])) ? round($payvalue['collect_month']) : 0;
+ $total_final_collect_budget += $excel_contract_all_array[$key][22];
if ($isBoga == 1) {
$excel_contract_boga_array[$key][22] = $excel_contract_all_array[$key][22];
$excel_contract_boga_array[$key][23] = $excel_contract_all_array[$key][23];
+ $boga_final_collect_budget += $excel_contract_boga_array[$key][22];
} else {
$excel_contract_noboga_array[$key][22] = $excel_contract_all_array[$key][22];
$excel_contract_noboga_array[$key][23] = $excel_contract_all_array[$key][23];
+ $noboga_final_collect_budget += $excel_contract_noboga_array[$key][22];
}
}
- $excel_contract_array[$key][72] = number_format(round($excel_contract_array[$key][72]));
- $excel_contract_array[$key][74] = number_format(round($excel_contract_array[$key][74]));
-
break;
}
}
@@ -1121,6 +1137,29 @@ foreach ($arrayData as $key => &$value) {
}
}
}
+// $excel_contract_all_array['last']= $excel_contract_boga_array['last'] = $excel_contract_noboga_array['last'] = array_fill(0, 23, '');
+$excel_contract_all_array['last']= ['合計', '', '', '', $total_collect_facility, '', $total_collect_budget, '', $total_sign_collect_budget, '', $total_second_collect_budget, '', $total_arrival_collect_budget, '', $total_install_collect_budget, '', $total_tryrun_collect_budget, '', $total_check_collect_budget, '', $total_delivery_collect_budget, '', $total_final_collect_budget, ''];
+$excel_contract_boga_array['last']= ['合計', '', '', '', $boga_collect_facility, '', $boga_collect_budget, '', $boga_sign_collect_budget, '', $boga_second_collect_budget, '', $boga_arrival_collect_budget, '', $boga_install_collect_budget, '', $boga_tryrun_collect_budget, '', $boga_check_collect_budget, '', $boga_delivery_collect_budget, '', $boga_final_collect_budget, ''];
+$excel_contract_noboga_array['last']= ['合計', '', '', '', $noboga_collect_facility, '', $noboga_collect_budget, '', $noboga_sign_collect_budget, '', $noboga_second_collect_budget, '', $noboga_arrival_collect_budget, '', $noboga_install_collect_budget, '', $noboga_tryrun_collect_budget, '', $noboga_check_collect_budget, '', $noboga_delivery_collect_budget, '', $noboga_final_collect_budget, ''];
+
+// print_r($excel_contract_array['M230064']);
+// echo " --------------------------------------------------------- ";
+// foreach($arrayData['M230064'] as $key => $value){
+// if($key == 'PayStage'){
+// echo "是PayStage!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ";
+// foreach($value as $k => $v){
+
+// echo $k.' => ';
+// print_r($v);
+// echo ' ';
+// }
+// echo "----------------------- ";
+// }else{
+// echo $key.' => ';
+// print_r($value);
+// echo ' ';
+// }
+// }
// print_r($arrayData['M220003']);
// exit();
$total_data = json_encode($excel_contract_all_array);
diff --git a/wms/account-receivable.txt b/wms/account-receivable.txt
index 8e19026c..d5ddbaf2 100644
--- a/wms/account-receivable.txt
+++ b/wms/account-receivable.txt
@@ -1 +1 @@
-{"Bill":{"M220366":["M220366","欣佳德營造工程有限公司","陳敦德","750,000","1","2MW00038 (2024-07-01預計出貨) ; ","450,000","14","150,000","14","300,000","11","0","0",0,0,"0","0",0,0,"0","0",0,0],"M220473":["M220473","國合營造-新北市雙溪案","陳敦德","3,822,000","3","3MW00050 (2024-02-23預計出貨) ; 3MW00051 (2024-02-23預計出貨) ; 3MW00052 (2024-02-16預計出貨) ; ","1,974,000","10","658,000","10","1,316,000","8","0","0",0,0,"0","0",0,0,"0","0",0,0],"M230022":["M230022","旺旺工程行-鄭秋月","陳敦德","600,000","1","3MH00076 (2024-06-01預計出貨) ; ","360,000","11","120,000","11","240,000","8","0","0",0,0,"0","0",0,0,"0","0",0,0],"M230166":["M230166","富德開發有限公司-東海段98-54地號","陳敦德","650,000","1","3MH00294 (2024-01-04安裝完畢) ; ","520,000","8","130,000","8","260,000","6","130,000","2",0,0,"0","0",0,0,"0","0",0,0],"M230563":["M230563","葉建中-大里新建住宅","陳敦德","820,000","1","3MX00295 (2024-05-15預計出貨) ; ","492,000","8","164,000","8","328,000","5","0","0",0,0,"0","0",0,0,"0","0",0,0],"M230579":["M230579","洪輝龍-A2","李烘銘","520,000","1","3MH00245 (2024-06-28預計出貨) ; ","156,000","9","156,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230580":["M230580","翔富裕股份有限公司(林紡鍥-A8)","李烘銘","520,000","1","3MH00246 (2024-06-28預計出貨) ; ","156,000","9","156,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230438":["M230438","佳意工程有限公司","李烘銘","600,000","1","3MH00196 (2023-09-28試車完畢) ; ","420,000","10","180,000","10",0,0,"180,000","6",0,0,"60,000","5",0,0,"0","0",0,0],"M230483":["M230483","蔡育薰-博思特幼兒學校","李烘銘","550,000","1","3MH00450 (2024-01-02官檢完畢) ; ","495,000","7","165,000","7",0,0,"165,000","3",0,0,"165,000","2",0,0,"0","0",0,0],"M230484":["M230484","協順營造有限公司","李烘銘","630,000","1","3MH00360 (2024-01-16官檢完畢) ; ","567,000","8","189,000","8",0,0,"189,000","3",0,0,"189,000","2",0,0,"0","0",0,0],"M230485":["M230485","順宇土地建築(大雅秀山段)","李烘銘","2,100,000","4","3MH00356 (2023-12-22貨抵工地) ; 3MH00357 (2023-12-22貨抵工地) ; 3MH00358 (2023-12-29貨抵工地) ; 3MH00359 (2023-12-29貨抵工地) ; ","1,260,000","9","630,000","9",0,0,"630,000","2",0,0,"0","0",0,0,"0","0",0,0],"M230512":["M230512","陳宜羣","李烘銘","550,000","1","3MH00197 (2024-07-10預計出貨) ; ","165,000","10","165,000","10",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230620":["M230620","洪輝龍-A1","李烘銘","520,000","1","3MH00247 (2024-06-28預計出貨) ; ","156,000","9","156,000","9",0,0,"0","0","0","0",0,0,0,0,"0","0",0,0],"M230621":["M230621","金寶城糖業-虎尾科虎路","李烘銘","550,000","1","3MH00266 (2023-12-21貨抵工地) ; ","330,000","9","165,000","9",0,0,"165,000","2",0,0,"0","0",0,0,"0","0",0,0],"M230631":["M230631","劉建利","李烘銘","740,000","1","3MW00248 (2023-10-05試車完畢) ; ","385,560","6","0","0",0,0,"163,560","6",0,0,"222,000","4",0,0,"0","0",0,0],"M230635":["M230635","村玉建設-長春路案(A棟)","李烘銘","850,000","1","3MW00267 (2024-04-16預計出貨) ; ","255,000","5","255,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230636":["M230636","村玉建設-科邨一路案","李烘銘","5,940,000","6","3MW00279 (2024-06-25預計出貨) ; 3MW00278 (2024-06-25預計出貨) ; 3MW00277 (2024-06-25預計出貨) ; 3MW00276 (2024-06-25預計出貨) ; 3MW00275 (2024-06-25預計出貨) ; 3MW00274 (2024-06-25預計出貨) ; ","1,782,000","9","1,782,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230637":["M230637","村玉建設-高南","李烘銘","1,320,000","2","3MH00281 (2024-05-10預計出貨) ; 3MH00280 (2024-05-10預計出貨) ; ","396,000","9","396,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M220471":["M220471","東禹營造-台中果菜市場","李烘銘","3,280,000","2","3MW00118 (2023-09-12官檢完畢) ; 3MW00119 (2023-09-12官檢完畢) ; ","2,987,280","12","538,912","12",0,0,0,0,"1,886,192","6","292,720","5","269,456","5","0","0",0,0],"M230238":["M230238","王色鳳","李烘銘","630,000","1","3MH00130 (2023-11-08已移交) ; ","189,000","5","0","0",0,0,"0","0",0,0,"126,000","5",0,0,"63,000","3",0,0],"M230239":["M230239","弘宬營造股份有限公司","李烘銘","600,000","1","3MH00173 (2024-05-15預計出貨) ; ","180,000","10","180,000","10",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230240":["M230240","弘宬營造股份有限公司","李烘銘","1,260,000","2","3MH00174 (2024-03-12預計出貨) ; 3MH00175 (2024-03-12預計出貨) ; ","378,000","10","378,000","10",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230284":["M230284","劉玉閔-施洽成撚線厰","李烘銘","600,000","1","3MH00195 (2024-04-03預計出貨) ; ","180,000","10","180,000","10",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230391":["M230391","台翰營造","李烘銘","740,000","1","3MW00209 (2024-01-31官檢完畢) ; ","666,000","9","222,000","9",0,0,"222,000","5",0,0,"222,000","2",0,0,"0","0",0,0],"M230412":["M230412","勝德營造(順宇)","李烘銘","1,050,000","2","3MH00312 (2024-01-03貨抵工地) ; 3MH00313 (2024-01-03貨抵工地) ; ","630,000","9","315,000","9",0,0,"315,000","1",0,0,"0","0",0,0,"0","0",0,0],"M230662":["M230662","劉建忠","李烘銘","740,000","1","3MW00249 (2023-10-02試車完畢) ; ","388,320","6","0","0",0,0,"166,320","6",0,0,"222,000","5",0,0,"0","0",0,0],"M230679":["M230679","劉繕綸","李烘銘","810,000","1","3MW00311 (2024-02-22預計出貨) ; ","225,000","9","225,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230687":["M230687","永豪營造有限公司","李烘銘","525,000","1","3MH00355 (2023-12-08試車完畢) ; ","472,500","8","157,500","8",0,0,"157,500","4",0,0,"157,500","2",0,0,"0","0",0,0],"M230734":["M230734","盛立交通-貨運集貨站新建工程","李烘銘","750,000","1","3MW00509 (2024-02-21預計出貨) ; ","225,000","6","225,000","6",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230737":["M230737","萬大建設有限公司-台中沙鹿區","李烘銘","540,000","1","3MH00297 (2023-09-08試車完畢) ; ","162,000","5","0","0",0,0,"0","0",0,0,"162,000","5",0,0,"0","0",0,0],"M230738":["M230738","江春池","李烘銘","560,000","1","3MH00298 (2023-11-02試車完畢) ; ","168,000","4","0","0",0,0,"0","0",0,0,"168,000","4",0,0,"0","0",0,0],"M230759":["M230759","通權建設-王江海","李烘銘","520,000","1","3MH00496 (2024-10-15預計出貨) ; ","156,000","7","156,000","7",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230760":["M230760","通權建設-南投市","李烘銘","680,000","1","3MH00497 (2024-10-15預計出貨) ; ","204,000","7","204,000","7",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230545":["M230545","耀鼎建設-北屯","李烘銘","1,100,000","2","3MH00207 (2024-08-01預計出貨) ; 3MH00208 (2024-08-01預計出貨) ; ","330,000","7","330,000","7",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230548":["M230548","益豪建築-竹山大同街","李烘銘","1,500,000","2","3MW00260 (2024-01-16貨抵工地) ; 3MW00261 (2024-01-31安裝完畢) ; ","900,000","9","450,000","9",0,0,"450,000","1",0,0,"0","0",0,0,"0","0",0,0],"M230549":["M230549","益豪建造-竹山大明路","李烘銘","2,400,000","4","3MH00262 (2024-04-19預計出貨) ; 3MH00263 (2024-04-19預計出貨) ; 3MH00264 (2024-04-19預計出貨) ; 3MH00265 (2024-04-19預計出貨) ; ","720,000","9","720,000","9",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230838":["M230838","福興建設有限公司","李烘銘","5,615,000","10","3MH00582 (2024-02-16預計出貨) ; 3MH00583 (2024-02-16預計出貨) ; 3MH00584 (2024-03-06預計出貨) ; 3MH00585 (2024-03-06預計出貨) ; 3MH00586 (2024-03-06預計出貨) ; 3MH00587 (2024-03-06預計出貨) ; 3MH00588 (2024-03-18預計出貨) ; 3MH00589 (2024-03-18預計出貨) ; 3MH00590 (2024-03-18預計出貨) ; 3MH00591 (2024-01-08貨抵工地) ; ","212,000","1","0","0",0,0,"212,000","1",0,0,"0","0",0,0,"0","0",0,0],"M230839":["M230839","全鴻建設開發有限公司(觀音安和街)","李烘銘","530,000","1","3MH00592 (2024-02-03已移交) ; ","424,000","1","0","0",0,0,"212,000","1",0,0,"159,000","0",0,0,"53,000","0",0,0],"M23090095":["M23090095","格誠建設有限公司","李烘銘","1,100,000","1","3MW00845 (2024-05-15預計出貨) ; ","220,000","4","220,000","4",0,0,"0","0",0,0,"0","0","0","0","0","0",0,0],"M23090096":["M23090096","格睿建設有限公司","李烘銘","2,430,000","2","3MW00846 (2024-05-15預計出貨) ; 3MW00847 (2024-05-15預計出貨) ; ","486,000","4","486,000","4",0,0,"0","0",0,0,"0","0","0","0","0","0",0,0],"M23090097":["M23090097","格睿建設有限公司","李烘銘","830,000","1","3MH00848 (2024-05-15預計出貨) ; ","166,000","4","166,000","4",0,0,"0","0",0,0,"0","0","0","0","0","0",0,0],"M23090132":["M23090132","上群地產開發股份有限公司","李烘銘","2,300,000","2","3MX00859 (2024-06-14預計出貨) ; 3MX00860 (2024-06-14預計出貨) ; ","230,000","4","230,000","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23090140":["M23090140","廣瓏建設有限公司","李烘銘","4,000,000","4","3MW00855 (2024-06-14預計出貨) ; 3MW00856 (2024-06-14預計出貨) ; 3MW00857 (2024-06-14預計出貨) ; 3MW00858 (2024-06-14預計出貨) ; ","400,000","4","400,000","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230994":["M230994","村玉建設-長春路案(B棟)","李烘銘","3,300,000","6","3MH00273 (2024-05-10預計出貨) ; 3MH00272 (2024-05-10預計出貨) ; 3MH00271 (2024-05-10預計出貨) ; 3MH00270 (2024-05-10預計出貨) ; 3MH00268 (2024-05-10預計出貨) ; 3MH00269 (2024-05-10預計出貨) ; ","990,000","5","990,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230881":["M230881","胡方翔(溫玉嬌)","李烘銘","910,000","1","3MW00415 (2024-03-19預計出貨) ; ","258,000","8","258,000","8",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100138":["M23100138","王凱莉","李烘銘","670,000","1","3MH01034 (2024-05-21預計出貨) ; ","201,000","2","201,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100140":["M23100140","薆綉室內裝修工程有限公司","李烘銘","520,000","1","3MH01048 (2024-03-11預計出貨) ; ","159,000","2","159,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231045":["M231045","寶祥營造廠有限公司(林梅清)","李烘銘","560,000","1","3MH00503 (2023-12-22安裝完畢) ; ","168,000","3","0","0",0,0,"168,000","3",0,0,"0","0",0,0,"0","0",0,0],"M23110060":["M23110060","張弘起","李烘銘","535,000","1","3MH01054 (2024-04-10預計出貨) ; ","160,500","2","160,500","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110069":["M23110069","弘泰-彰化和美鎮","李烘銘","2,120,000","4","3MH01071 (2024-05-15預計出貨) ; 3MH01072 (2024-05-15預計出貨) ; 3MH01073 (2024-05-15預計出貨) ; 3MH01074 (2024-05-15預計出貨) ; ","636,000","2","636,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231126":["M231126","薆綉室內裝修工程有限公司-南投草屯鎮","李烘銘","540,000","1","3MH00535 (2024-01-12貨抵工地) ; ","324,000","7","162,000","7",0,0,"162,000","1",0,0,"0","0",0,0,"0","0",0,0],"M231133":["M231133","弘宬營造股份有限公司(西屯區)","李烘銘","700,000","1","3MH00646 (2024-11-29預計出貨) ; ","210,000","6","210,000","6",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231134":["M231134","弘宬營造股份有限公司(北區)","李烘銘","1,170,000","2","3MH00644 (2024-06-05預計出貨) ; 3MH00645 (2024-06-05預計出貨) ; ","3,000","6","3,000","6",0,0,"0","0","0","0",0,0,0,0,"0","0",0,0],"M23100133":["M23100133","總富建設-彰化溪州鄉","李烘銘","610,000","1","3MH00962 (2024-02-27預計出貨) ; ","183,000","3","183,000","3",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110123":["M23110123","瑋瓏營造有限公司","李烘銘","1,080,000","2","3MH01051 (2024-05-10預計出貨) ; 3MH01052 (2024-04-23預計出貨) ; ","324,000","2","324,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110129":["M23110129","蕭崇家-彰化縣員林市","李烘銘","1,300,000","2","4MH00159 (2024-12-26預計出貨) ; 4MH00160 (2024-12-16預計出貨) ; ","390,000","1","390,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231153":["M231153","馨盛-明德北路","李烘銘","510,000","1","3MH00779 (2024-05-14預計出貨) ; ","153,000","5","153,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231154":["M231154","上互營造股份有限公司","李烘銘","1,020,000","2","3MH00777 (2024-08-10預計出貨) ; 3MH00778 (2024-08-10預計出貨) ; ","255,000","5","255,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231169":["M231169","鄭茂昌","李烘銘","2,080,000","2","3MH00596 (2024-03-15預計出貨) ; ","210,000","6","210,000","6",0,0,0,0,0,0,0,0,0,0,0,0,0,0],"M231172":["M231172","乾唐建設有限公司","李烘銘","820,000","1","3MX00619 (2024-01-08安裝完畢) ; ","246,000","2","0","0",0,0,"246,000","2",0,0,"0","0",0,0,"0","0",0,0],"M231173":["M231173","厚德建設有限公司","葉博澄","1,670,000","3","3MH00641 (2024-01-19安裝完畢) ; 3MH00642 (2024-01-20安裝完畢) ; 3MH00643 (2023-12-27貨抵工地) ; ","501,000","2","0","0",0,0,"501,000","2",0,0,"0","0",0,0,"0","0",0,0],"M231207":["M231207","三冠企業社","葉博澄","840,000","1","3MW01082 (2024-09-02預計出貨) ; ","252,000","2","252,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231184":["M231184","裕民工務企業有限公司","葉博澄","530,000","1","3MH00640 (2024-01-24已移交) ; ","371,000","3","0","0",0,0,"159,000","3",0,0,"159,000","2",0,0,"53,000","1",0,0],"M23120001":["M23120001","東松建設-台中西屯區廣昌段","葉博澄","15,080,000","29","4MH00188 (2024-05-06預計出貨) ; 4MH00189 (2024-05-06預計出貨) ; 4MH00190 (2024-05-06預計出貨) ; 4MH00191 (2024-05-06預計出貨) ; 4MH00192 (2024-05-06預計出貨) ; 4MH00193 (2024-05-06預計出貨) ; 4MH00194 (2024-05-06預計出貨) ; 4MH00195 (2024-05-06預計出貨) ; 4MH00196 (2024-05-06預計出貨) ; 4MH00197 (2024-05-06預計出貨) ; 4MH00198 (2024-05-06預計出貨) ; 4MH00199 (2024-05-06預計出貨) ; 4MH00200 (2024-05-06預計出貨) ; 4MH00201 (2024-05-06預計出貨) ; 4MH00202 (2024-05-06預計出貨) ; 4MH00203 (2024-05-06預計出貨) ; 4MH00204 (2024-05-06預計出貨) ; 4MH00205 (2024-05-06預計出貨) ; 4MH00206 (2024-05-06預計出貨) ; 4MH00207 (2024-05-06預計出貨) ; 4MH00208 (2024-05-06預計出貨) ; 4MH00209 (2024-05-06預計出貨) ; 4MH00210 (2024-05-06預計出貨) ; 4MH00211 (2024-05-06預計出貨) ; 4MH00212 (2024-05-06預計出貨) ; 4MH00213 (2024-05-06預計出貨) ; 4MH00214 (2024-05-06預計出貨) ; 4MH00215 (2024-05-06預計出貨) ; 4MH00216 (2024-05-06預計出貨) ; ","4,524,000","1","4,524,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23120100":["M23120100","林佳民-台中豐原區","葉博澄","650,000","1","4MH00089 (2024-04-22預計出貨) ; ","195,000","1","195,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231168":["M231168","山本耀(鄭榆錚)","葉博澄","800,000","1","3MH00950 (2024-03-11預計出貨) ; ","240,000","3","240,000","3",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231118":["M231118","立傑營造-台中太平","葉博澄","2,000,000","2","3MW00613 (2024-03-07預計出貨) ; 3MW00612 (2023-12-08貨抵工地) ; ","285,000","2","0","0",0,0,"285,000","2",0,0,"0","0",0,0,"0","0",0,0],"M23100134":["M23100134","興安-北屯區陳平段","葉博澄","5,120,000","5","4MW00132 (2024-05-20預計出貨) ; 4MW00133 (2024-05-20預計出貨) ; 4MW00134 (2024-05-20預計出貨) ; 4MW00135 (2024-05-20預計出貨) ; 4MW00136 (2024-05-20預計出貨) ; ","1,536,000","1","1,536,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100136":["M23100136","興安-美和綠洲","葉博澄","3,780,000","4","4MW00122 (2024-04-08預計出貨) ; 4MW00123 (2024-04-08預計出貨) ; 4MW00124 (2024-04-08預計出貨) ; 4MW00125 (2024-04-08預計出貨) ; ","1,134,000","1","1,134,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231141":["M231141","太禾發建設開發企業有限公司","葉博澄","565,000","1","3MH00885 (2024-03-01預計出貨) ; ","169,500","4","169,500","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231151":["M231151","太裕營造股份有限公司","葉博澄","1,300,000","1","3MW00788 (2024-03-01預計出貨) ; ","390,000","5","390,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110080":["M23110080","金進億","葉博澄","650,000","1","3MH01050 (2024-03-04預計出貨) ; ","195,000","2","195,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110103":["M23110103","亘玉露生技","葉博澄","930,000","1","4MW00066 (2024-04-01預計出貨) ; ","279,000","1","279,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110005":["M23110005","興安-南投司馬按段","葉博澄","3,300,000","6","4MH00126 (2024-04-08預計出貨) ; 4MH00127 (2024-04-08預計出貨) ; 4MH00128 (2024-04-08預計出貨) ; 4MH00129 (2024-04-08預計出貨) ; 4MH00130 (2024-04-08預計出貨) ; 4MH00131 (2024-04-08預計出貨) ; ","990,000","1","990,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110007":["M23110007","經緯營造","葉博澄","820,000","1","4MW00065 (2024-04-15預計出貨) ; ","246,000","1","246,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23110011":["M23110011","孫室空間","葉博澄","700,000","1","3MP01032 (2024-02-29預計出貨) ; ","210,000","2","210,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231026":["M231026","伍灃營造開發有限公司","葉博澄","520,000","1","3MH00881 (2024-05-03預計出貨) ; ","156,000","5","156,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M231030":["M231030","陳慶宏","葉博澄","530,000","1","3MH00796 (2023-12-29安裝完畢) ; ","159,000","2","0","0",0,0,"159,000","2",0,0,"0","0",0,0,"0","0",0,0],"M231039":["M231039","玉明玻璃股份有限公司(劉澄藝)","葉博澄","530,000","1","3MH00534 (2023-12-16安裝完畢) ; ","318,000","7","159,000","7",0,0,"159,000","3",0,0,"0","0",0,0,"0","0",0,0],"M231043":["M231043","磐檍建設(邑鼎)-北屯段","葉博澄","570,000","1","4MH00158 (2024-05-30預計出貨) ; ","171,000","1","171,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100074":["M23100074","政馭實業","葉博澄","620,000","1","4MH00062 (2024-04-15預計出貨) ; ","186,000","2","186,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100082":["M23100082","靖捷企業社","葉博澄","580,000","1","3MH00978 (2024-03-25預計出貨) ; ","174,000","3","174,000","3",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100129":["M23100129","金順億大坑巷二期","葉博澄","650,000","1","3MH00957 (2024-02-22預計出貨) ; ","195,000","3","195,000","3",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100045":["M23100045","深坑區土庫段廠房-永陞建設","葉博澄","10,300,000","4","4MW00181 (2024-11-01預計出貨) ; 4MW00182 (2024-11-01預計出貨) ; 4MX00183 (2024-11-01預計出貨) ; 4MX00184 (2024-11-01預計出貨) ; ","1,854,000","2","1,854,000","2",0,0,"0","0",0,0,"0","0","0","0",0,0,0,0],"M23100051":["M23100051","山王營造有限公司","葉博澄","530,000","1","3MH00926 (2024-02-19預計出貨) ; ","159,000","4","159,000","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100057":["M23100057","吉成食品","葉博澄","910,000","1","3MW01083 (2024-05-02預計出貨) ; ","273,000","2","273,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100058":["M23100058","岩城營造(億豪建設)-新營區周武段","葉博澄","990,000","1","4MW00217 (2024-04-15預計出貨) ; ","297,000","1","297,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230896":["M230896","勝邦開發建設股份有限公司","葉博澄","1,620,000","3","3MH00352 (2023-10-27試車完畢) ; 3MH00353 (2023-11-01試車完畢) ; 3MH00354 (2023-11-29試車完畢) ; ","1,458,000","8","486,000","8",0,0,"486,000","6",0,0,"486,000","4",0,0,"0","0",0,0],"M23100002":["M23100002","悅綠樹-彰化田中","葉博澄","1,740,000","2","4MW00090 (2024-05-15預計出貨) ; 4MW00091 (2024-05-15預計出貨) ; ","522,000","1","522,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100003":["M23100003","悅綠樹-彰化員林","葉博澄","1,330,000","2","4MW00092 (2024-05-15預計出貨) ; 4MH00093 (2024-05-15預計出貨) ; ","399,000","1","399,000","1",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23090101":["M23090101","佑翔營造工程有限公司","葉博澄","1,160,000","2","3MH00883 (2024-02-27預計出貨) ; 3MH00884 (2024-02-27預計出貨) ; ","348,000","4","348,000","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230848":["M230848","山王營造","葉博澄","530,000","1","3MH00351 (2023-10-27試車完畢) ; ","477,000","8","212,000","8",0,0,"106,000","6",0,0,"159,000","4",0,0,"0","0",0,0],"M230790":["M230790","班米羅幼兒園","葉博澄","750,000","1","3MW00410 (2024-03-05預計出貨) ; ","225,000","8","225,000","8",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230791":["M230791","吳明鴻","葉博澄","960,000","1","3MW00350 (2023-11-10試車完畢) ; ","864,000","8","288,000","8",0,0,"288,000","5",0,0,"288,000","3",0,0,"0","0",0,0],"M23080163":["M23080163","吉旺營造股份有限公司","葉博澄","653,000","1","3MH00879 (2024-03-20預計出貨) ; ","192,000","4","192,000","4",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230743":["M230743","拾益營造-清水幼兒園","葉博澄","790,000","1","3MH00296 (2024-01-31官檢完畢) ; ","711,000","9","316,000","9",0,0,"158,000","5",0,0,"237,000","3",0,0,"0","0",0,0],"M230745":["M230745","陳加樺","葉博澄","550,000","1","3MH00508 (2023-12-19貨抵工地) ; ","330,000","7","165,000","7",0,0,"165,000","2",0,0,"0","0",0,0,"0","0",0,0],"M230415":["M230415","岩城營造(名富建設)","葉博澄","1,800,000","3","3MH00156 (2024-01-08試車完畢) ; 3MH00157 (2024-03-22預計出貨) ; 3MH00158 (2024-01-08試車完畢) ; ","1,260,000","10","540,000","10",0,0,"360,000","4",0,0,"360,000","1",0,0,"0","0",0,0],"M230416":["M230416","雲啟建設(周素鳳)","葉博澄","2,550,000","5","3MH00491 (2024-03-15預計出貨) ; 3MH00492 (2024-03-15預計出貨) ; 3MH00493 (2024-03-15預計出貨) ; 3MH00494 (2024-03-15預計出貨) ; 3MH00495 (2024-03-15預計出貨) ; ","765,000","7","765,000","7",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230432":["M230432","彰員營造股份有限公司","葉博澄","11,860,000","13","3MW00171 (2023-10-20試車完畢) ; 3MW00160 (2024-06-01預計出貨) ; 3MW00161 (2024-06-01預計出貨) ; 3MW00162 (2024-06-01預計出貨) ; 3MW00163 (2024-06-01預計出貨) ; 3MW00164 (2024-06-01預計出貨) ; 3MW00165 (2024-06-01預計出貨) ; 3MW00166 (2024-06-01預計出貨) ; 3MW00167 (2024-06-01預計出貨) ; 3MW00168 (2024-06-01預計出貨) ; 3MW00169 (2024-06-01預計出貨) ; 3MW00170 (2024-06-01預計出貨) ; 3MW00159 (2024-06-01預計出貨) ; ","3,978,000","10","3,558,000","10",0,0,"210,000","6",0,0,"210,000","4",0,0,"0","0",0,0],"M230205":["M230205","金順億建設有限公司","葉博澄","2,520,000","4","3MH00121 (2023-08-18官檢完畢) ; 3MH00122 (2023-08-18官檢完畢) ; 3MH00123 (2023-08-18官檢完畢) ; 3MH00124 (2023-08-18官檢完畢) ; ","2,268,000","10","756,000","10",0,0,"756,000","9",0,0,"756,000","7",0,0,"0","0",0,0],"M230639":["M230639","洪婉楹(林俊輝)","葉博澄","620,000","1","3MH00411 (2024-04-01預計出貨) ; ","186,000","8","186,000","8",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230641":["M230641","秉禾營造(詹朝揚)","葉博澄","640,000","1","3MH00244 (2024-01-16官檢完畢) ; ","576,000","9","256,000","9",0,0,"128,000","4",0,0,"192,000","2",0,0,"0","0",0,0],"M230646":["M230646","立傑營造","葉博澄","1,140,000","1","3MW00243 (2023-10-25試車完畢) ; ","1,026,000","9","342,000","9",0,0,"342,000","6",0,0,"342,000","4",0,0,"0","0",0,0],"M230530":["M230530","保成營造","葉博澄","700,000","1","3MW00210 (2023-11-30官檢完畢) ; ","630,000","10","210,000","10",0,0,"210,000","6",0,0,"210,000","3",0,0,"0","0",0,0],"M230531":["M230531","保成營造","葉博澄","680,000","1","3MW00211 (2024-02-05官檢完畢) ; ","612,000","10","204,000","10",0,0,"204,000","5",0,0,"204,000","2",0,0,"0","0",0,0],"M230593":["M230593","耐福營造股份有限公司","葉博澄","5,160,000","8","3MH00573 (2023-11-17貨抵工地) ; 3MH00574 (2023-11-17貨抵工地) ; 3MH00575 (2024-03-06預計出貨) ; 3MH00576 (2024-01-03貨抵工地) ; 3MH00577 (2024-03-06預計出貨) ; 3MH00578 (2024-01-03貨抵工地) ; 3MW00579 (2024-03-06預計出貨) ; 3MW00580 (2024-03-06預計出貨) ; ","666,000","3","0","0",0,0,"666,000","3",0,0,"0","0",0,0,"0","0",0,0],"M230600":["M230600","玄盟營造","葉博澄","3,600,000","6","3MH00835 (2024-03-19預計出貨) ; 3MH00836 (2024-03-19預計出貨) ; 3MH00837 (2024-03-19預計出貨) ; 3MH00838 (2024-03-20預計出貨) ; 3MH00839 (2024-03-20預計出貨) ; 3MH00840 (2024-03-20預計出貨) ; ","1,080,000","5","1,080,000","5",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M230607":["M230607","豐田流通供應鏈物流有限公司","葉博澄","580,000","1","3MH00259 (2023-10-18試車完畢) ; ","522,000","9","174,000","9",0,0,"174,000","6",0,0,"174,000","4",0,0,"0","0",0,0],"M220316":["M220316","白鴿建設-自由路都更案","黃孟澤","700,000","1","3MH00814 (2024-02-20預計出貨) ; ","280,000","1","0","0","280,000","1","0","0",0,0,"0","0",0,0,"0","0",0,0],"M220381":["M220381","睿邑生物科技廠房","黃孟澤","2,200,000","2","3MW00128 (2023-12-22試車完畢) ; 3MW00129 (2024-01-11安裝完畢) ; ","1,061,650","10","336,800","10",0,0,"673,600","5",0,0,"51,250","2","0","0","0","0",0,0],"M23100027":["M23100027","總財建設實業股份有限公司","黃孟澤","1,456,000","2","3MX00968 (2024-08-15預計出貨) ; 3MX00969 (2024-08-15預計出貨) ; ","436,800","3","436,800","3",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0],"M23100029":["M23100029","高臺營造","黃孟澤","10,080,000","16","3MH01055 (2024-10-15預計出貨) ; 3MH01056 (2024-10-15預計出貨) ; 3MH01057 (2024-10-15預計出貨) ; 3MH01058 (2024-10-15預計出貨) ; 3MH01059 (2024-10-15預計出貨) ; 3MH01060 (2024-10-15預計出貨) ; 3MH01061 (2024-10-15預計出貨) ; 3MH01062 (2024-10-15預計出貨) ; 3MH01063 (2024-10-15預計出貨) ; 3MH01064 (2024-10-15預計出貨) ; 3MH01065 (2024-10-15預計出貨) ; 3MH01066 (2024-10-15預計出貨) ; 3MH01067 (2024-10-15預計出貨) ; 3MH01068 (2024-10-15預計出貨) ; 3MH01069 (2024-10-15預計出貨) ; 3MH01070 (2024-10-15預計出貨) ; ","3,024,000","2","3,024,000","2",0,0,"0","0",0,0,"0","0",0,0,"0","0",0,0]}}
\ No newline at end of file
+{"Bill":{"M220005":["M220005","【和峻】新長壽段C區","何政揚",3603162,4,"3MX00011 (2023-11-29貨抵工地) ; 3MX00012 (2024-01-29安裝完畢) ; 3MX00013 (2023-11-29貨抵工地) ; 3MX00014 (2024-01-29安裝完畢) ; ",1387217,4,0,4,0,2,1387217,0,"","",0,0,"","","","",0,0],"M220011":["M220011","【和境】善捷段","何政揚",5964849,6,"2MX00016 (2023-12-07貨抵工地) ; 2MX00017 (2024-01-05貨抵工地) ; 2MX00018 (2023-12-07貨抵工地) ; 2MX00019 (2024-01-05貨抵工地) ; 2MX00020 (2024-01-05貨抵工地) ; 2MX00021 (2023-12-07貨抵工地) ; ",1129768,3,0,3,569,2,1129199,0,"","",0,0,"","","","",0,0],"M220012":["M220012","【鴻廣】樂捷段","何政揚",7807005,7,"2MX00006 (2024-02-05已移交) ; 2MX00007 (2023-10-27貨抵工地) ; 2MX00008 (2023-12-12已移交) ; 2MX00009 (2024-01-19已移交) ; 2MX00010 (2023-10-27貨抵工地) ; 2MX00011 (2023-10-27貨抵工地) ; 2MX00012 (2023-12-19已移交) ; ",3708328,6,1,6,0,5,3005697,2,"","",702630,0,"","","","",0,0],"M220013":["M220013","【鴻承 】豐田段一期","何政揚",6786188,4,"3MX00015 (2024-03-20預計出貨) ; 3MX00016 (2024-02-29預計出貨) ; 3MX00017 (2024-03-20預計出貨) ; 3MX00018 (2024-02-29預計出貨) ; ",712550,1,712550,1,0,0,0,0,"","",0,0,"","","","",0,0],"M220114":["M220114","【鴻豐】大金山下段","何政揚",4136280,4,"3MX00019 (2023-09-28貨抵工地) ; 3MX00020 (2023-12-25已移交) ; 3MX00021 (2023-12-25已移交) ; 3MX00022 (2023-09-28貨抵工地) ; ",2026778,7,0,7,0,4,1592468,4,"","",434310,0,"","","","",0,0],"M220115":["M220115","【鴻築】青山段","何政揚",4073580,4,"2MX00022 (2023-12-29貨抵工地) ; 2MX00023 (2023-11-30貨抵工地) ; 2MX00024 (2024-02-06安裝完畢) ; 2MX00025 (2023-12-29貨抵工地) ; ",1359143,3,0,3,0,2,1568328,0,"","",-209185,0,"","","","",0,0],"M220179":["M220179","【鴻築】大湖段A區","何政揚",3056365,3,"2MX00013 (2023-12-25已移交) ; 2MX00014 (2023-12-25已移交) ; 2MX00015 (2023-12-25已移交) ; ",641836,5,-1,0,0,5,0,3,"","",641837,1,"","","","",0,0],"D23090047":["D23090047","【秉和】榮華段","何政揚",10821075,10,"3MX00740 (2024-01-31安裝完畢) ; 3MX00741 (2024-01-15貨抵工地) ; 3MX00742 (2024-02-01已移交) ; 3MX00743 (2024-01-15貨抵工地) ; 3MX00744 (2023-12-15貨抵工地) ; 3MX00745 (2024-01-15貨抵工地) ; 3MX00746 (2023-12-15貨抵工地) ; 3MX00747 (2024-01-15貨抵工地) ; 3MX00748 (2024-01-15貨抵工地) ; 3MX00749 (2023-12-15貨抵工地) ; ",2083058,3,1,3,1,2,2083056,0,"","",0,0,"","","","",0,0],"M220245":["M220245","【勝麗】興隆B3-2區(協侑)","何政揚",463200,1,"3MH00482 (2024-01-18貨抵工地) ; ",145908,2,48636,2,97272,1,0,0,"","",0,0,"","","","",0,0],"M230780":["M230780","【勝麗】興隆B3-4區","何政揚",2609862,3,"3MX00628 (2023-12-01貨抵工地) ; 3MX00629 (2024-02-02試車完畢) ; 3MX00630 (2023-12-01貨抵工地) ; ",1552869,3,2,3,548071,2,1004796,0,"","",0,0,"","","","",0,0],"M23080111":["M23080111","【協勝】育賢段","何政揚",4452002,4,"3MX00729 (2023-12-20貨抵工地) ; 3MX00730 (2023-12-20貨抵工地) ; 3MX00731 (2023-12-20貨抵工地) ; 3MX00732 (2023-12-20貨抵工地) ; ",1714022,3,0,3,0,2,1714022,0,"","",0,0,"","","","",0,0],"M230878":["M230878","【協和】市鎮北段二期","何政揚",9205241,8,"3MX00631 (2023-12-08貨抵工地) ; 3MX00632 (2023-12-12貨抵工地) ; 3MX00633 (2023-12-08貨抵工地) ; 3MX00634 (2023-12-12貨抵工地) ; 3MX00635 (2023-12-12貨抵工地) ; 3MX00636 (2023-12-08貨抵工地) ; 3MX00637 (2023-12-08貨抵工地) ; 3MX00638 (2023-12-12貨抵工地) ; ",3544013,2,-2,0,-2,2,3544017,0,"","",0,0,"","","","",0,0],"M23090105":["M23090105","【益翔】市鎮南段二期","何政揚",4214001,4,"3MX00809 (2024-01-09貨抵工地) ; 3MX00810 (2024-01-09貨抵工地) ; 3MX00811 (2024-01-09貨抵工地) ; 3MX00812 (2024-01-09貨抵工地) ; ",884941,2,110618,2,774323,1,0,0,"","",0,0,"","","","",0,0],"M231009":["M231009","【泓瑞】育賢段","何政揚",9997399,8,"3MX00672 (2023-12-07貨抵工地) ; 3MX00673 (2023-12-07貨抵工地) ; 3MX00674 (2023-12-07貨抵工地) ; 3MX00675 (2023-12-26貨抵工地) ; 3MX00676 (2023-12-26貨抵工地) ; 3MX00677 (2023-12-07貨抵工地) ; 3MX00678 (2023-12-26貨抵工地) ; 3MX00679 (2023-12-07貨抵工地) ; ",5948451,2,-1,0,2099454,2,3848998,0,"","",0,0,"","","","",0,0],"M231011":["M231011","【佳友】北城段","何政揚",1975764,2,"3MX00614 (2024-01-24貨抵工地) ; 3MX00615 (2024-01-24貨抵工地) ; ",622365,2,207455,2,414910,0,0,0,"","",0,0,"","","","",0,0],"M220001":["M220001","【恆鵬】善新段","謝文憲",2911500,3,"3MX00191 (2024-02-20預計出貨) ; 3MX00192 (2024-02-20預計出貨) ; 3MX00193 (2024-02-20預計出貨) ; ",305708,1,305708,1,0,0,0,0,"","",0,0,"","","","",0,0],"last":["合計","","","",75,"",27766955,"",1384967,"",3934598,"",20877798,"",0,"",1569592,"",0,"",0,"",0,""]}}
\ No newline at end of file
From 4839ea89cc2bac1f99a6996c0ff703ea8a6fc0e0 Mon Sep 17 00:00:00 2001
From: 10994015
Date: Fri, 8 Mar 2024 18:09:19 +0800
Subject: [PATCH 7/9] =?UTF-8?q?=E4=BF=9D=E9=A4=8A=E5=83=B9=E5=AF=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
wms/cont/api/getUsername.php | 15 +
wms/cont/api/postElevatorPricereview.php | 411 +++++++++++++++++++++
wms/cont/js/pricereviewAlpine.js | 10 +-
wms/cont/pricereviewCreate.php | 10 +-
wms/cont/window-modal/otherOptionModal.php | 4 +-
wms/contract/js/alpine.js | 2 +-
wms/mkt/assets/js/pricereviewAlpine.js | 21 +-
wms/mkt/pricereviewCheck.php | 14 +-
wms/sign/list.php | 3 +-
9 files changed, 462 insertions(+), 28 deletions(-)
create mode 100644 wms/cont/api/getUsername.php
diff --git a/wms/cont/api/getUsername.php b/wms/cont/api/getUsername.php
new file mode 100644
index 00000000..396682d1
--- /dev/null
+++ b/wms/cont/api/getUsername.php
@@ -0,0 +1,15 @@
+prepare($sql_str);
+$stmt->bindParam(':accountid', $accountid);
+$stmt->execute();
+$user = $stmt->fetch(PDO::FETCH_ASSOC);
+echo $user['name'];
\ No newline at end of file
diff --git a/wms/cont/api/postElevatorPricereview.php b/wms/cont/api/postElevatorPricereview.php
index e69de29b..a55e27f8 100644
--- a/wms/cont/api/postElevatorPricereview.php
+++ b/wms/cont/api/postElevatorPricereview.php
@@ -0,0 +1,411 @@
+prepare($sql_str);
+$stmt->bindParam(':vol_no', $vol_no);
+$stmt->bindParam(':apply_key', $apply_key);
+$stmt->execute();
+$contract = $stmt->fetch(PDO::FETCH_ASSOC);
+
+if(!$contract){
+ $sql_str = "INSERT INTO con_maintance_examine_apply (apply_key, vol_no, customer, address, case_name ,brand, num, salesman, maintain_kind, contract_begin_date, contract_end_date, contract_kind, payment_kind, progress_remark, service_fee, total_price, total_sale_price, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, creater, create_at)
+ VALUES (:apply_key, :vol_no, :customer, :address, :case_name ,:brand, :num, :salesman, :maintain_kind, :contract_begin_date, :contract_end_date, :contract_kind, :payment_kind, :progress_remark, :service_fee, :total_price, :total_sale_price, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :creater, :create_at)";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':vol_no', $vol_no);
+ $stmt->bindParam(':customer', $customer);
+ $stmt->bindParam(':address', $address);
+ $stmt->bindParam(':case_name', $case_name);
+ $stmt->bindParam(':brand', $brand);
+ $stmt->bindParam(':num', $num);
+ $stmt->bindParam(':salesman', $salesman);
+ $stmt->bindParam(':maintain_kind', $maintain_kind);
+ $stmt->bindParam(':contract_begin_date', $contract_begin_date);
+ $stmt->bindParam(':contract_end_date', $contract_end_date);
+ $stmt->bindParam(':contract_kind', $contract_kind);
+ $stmt->bindParam(':payment_kind', $payment_kind);
+ $stmt->bindParam(':progress_remark', $progress_remark);
+ $stmt->bindParam(':service_fee', $serviceFee);
+ $stmt->bindParam(':total_price', $total_price);
+ $stmt->bindParam(':total_sale_price', $total_sale_price);
+ $stmt->bindParam(':penalty', $penalty);
+ $stmt->bindParam(':deposit_rate', $deposit_rate);
+ $stmt->bindParam(':keep_rate', $keep_rate);
+ $stmt->bindParam(':warranty_rate', $warranty_rate);
+ $stmt->bindParam(':memo', $remark);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':create_at', $current_date);
+ $stmt->execute();
+
+ $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
+ VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
+
+ foreach($elevators as $elevator){
+ if(empty($elevator['permitNumber'])) $register_code = "A";
+
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $elevator['id']);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain__months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $elevator['cycle']);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':created_at', $created_at);
+ $stmt->execute();
+ }
+
+ $sql_str = "INSERT INTO pricereview_maintain_item (mid, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
+ VALUES (:mid, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
+
+ foreach($otherOptions as $option){
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = $option['toElevator'][0]['id'];
+ $item_group = "E";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':item_no', $option['pr_no']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
+}else{
+ $sql_str = "UPDATE con_maintance_examine_apply SET
+ case_name=:case_name,
+ num=:num,
+ maintain_kind=:maintain_kind,
+ contract_kind=:contract_kind,
+ payment_kind=:payment_kind,
+ contract_begin_date=:contract_begin_date,
+ contract_end_date=:contract_end_date,
+ service_fee=:service_fee,
+ total_price=:total_price,
+ total_sale_price=:total_sale_price,
+ penalty=:penalty,
+ deposit_rate=:deposit_rate,
+ keep_rate=:keep_rate,
+ warranty_rate=:warranty_rate,
+ remark=:remark,
+ status=:status,
+ updated_at=:updated_at
+ progress_remark=:progress_remark
+ WHERE apply_key=:apply_key AND vol_no=:vol_no";
+
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':vol_no', $vol_no);
+ $stmt->bindParam(':case_name', $case_name);
+ $stmt->bindParam(':num', $num);
+ $stmt->bindParam(':maintain_kind', $maintain_kind);
+ $stmt->bindParam(':contract_begin_date', $contract_begin_date);
+ $stmt->bindParam(':contract_end_date', $contract_end_date);
+ $stmt->bindParam(':contract_kind', $contract_kind);
+ $stmt->bindParam(':payment_kind', $payment_kind);
+ $stmt->bindParam(':progress_remark', $progress_remark);
+ $stmt->bindParam(':service_fee', $serviceFee);
+ $stmt->bindParam(':total_price', $total_price);
+ $stmt->bindParam(':total_sale_price', $total_sale_price);
+ $stmt->bindParam(':penalty', $penalty);
+ $stmt->bindParam(':deposit_rate', $deposit_rate);
+ $stmt->bindParam(':keep_rate', $keep_rate);
+ $stmt->bindParam(':warranty_rate', $warranty_rate);
+ $stmt->bindParam(':memo', $remark);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':updated_at', $current_date);
+ $stmt->execute();
+
+ //整機單價
+ $sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key=:apply_key AND vol_no=:vol_no";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':vol_no', $vol_no);
+ $stmt->execute();
+ $items = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+ $oldItemsNo = (array)array_column($oldElevators, 'item_no');
+ $newItemsNo = (array)array_column($elevators, 'id');
+ $onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete)
+ $onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert)
+ $inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update)
+
+ foreach($onlyInOldIds as $oldIdx){
+ $sql_str = "DELETE FROM con_maintance_examine_clear WHERE apply_key = :apply_key AND item_no = :item_no AND vol_no=:vol_no";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $oldidx);
+ $stmt->bindParam(':vol_no', $vol_no);
+ $stmt->execute();
+ }
+ foreach($onlyInNewIds as $newidx){
+ $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
+ VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
+ $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $newidx))[0];
+ $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $elevator['id']);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain__months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $elevator['cycle']);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':created_at', $created_at);
+ $stmt->execute();
+ }
+
+ foreach($inBothIds as $bothidx){
+ $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, creater, created_at)
+ VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :creater, :created_at) ";
+ $sql_str = "UPDATE con_maintance_examine_clear SET
+ register_code=:register_code,
+ elevator_brand=:elevator_brand,
+ elevator_kind=:elevator_kind,
+ spec=:spec,
+ weight=:weight,
+ speed=:speed,
+ stop=:stop,
+ floors=:floors,
+ persons=:persons,
+ elevator_num=:elevator_num,
+ useful_years=:useful_years,
+ last_check_date=:last_check_date,
+ speed_governors_check_expense=:speed_governors_check_expense,
+ maintain_times=:maintain_times,
+ is_m1_bundle=:is_m1_bundle,
+ maintain__months=:maintain__months,
+ maintain_period=:maintain_period,
+ maintain_method=:maintain_method,
+ stand_price=:stand_price,
+ contract_price=:contract_price,
+ sold_price=:sold_price,
+ commission_expense=:commission_expense,
+ management_expense=:management_expense,
+ annual_survey_expense=:annual_survey_expense,
+ service_expense=:service_expense,
+ cmstatus=:cmstatus,
+ updated_at=:updated_at
+ WHERE apply_key=:apply_key AND item_no=:item_no";
+
+ $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $bothidx))[0];
+ $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain__months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $elevator['cycle']);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+
+ $stmt->bindParam(':item_no', $bothidx);
+ $stmt->execute();
+ }
+
+ //除外項目
+ $sql_str = "SELECT * FROM pricereview_maintain_item WHERE mid = :apply_key AND item_group = 'E'";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->execute();
+ $item_other_options = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ $oldOtherOptionsNo = (array)array_column($item_other_options, 'item_no');
+ $newOtherOptioinNo = (array)array_column($otherOptions, 'id');
+
+ $nlyInOtherOptionOldIds = array_values(array_diff($oldOtherOptionsNo, $newOtherOptioinNo));
+ $onlyInOtherOptionNewIds = array_values(array_diff($newOtherOptioinNo, $oldOtherOptionsNo));
+ $inBothOtherOptionIds = array_values(array_intersect($oldOtherOptionsNo, $newOtherOptioinNo));
+
+ foreach($onlyInOtherOptionOldIds as $oldotheroptionidx){
+ $sql_str = "DELETE FROM pricereview_maintain_item WHERE mid = :apply_key AND item_no = :item_no AND item_group = 'E'";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':item_no', $oldotheroptionidx);
+ $stmt->execute();
+ }
+
+ foreach($onlyInOtherOptionNewIds as $newotheroptionidx){
+ $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $newotheroptionidx))[0];
+
+ $sql_str = "INSERT INTO pricereview_maintain_item (mid, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
+ VALUES (:mid, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
+
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = $option['toElevator'][0]['id'];
+ $item_group = "E";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':item_no', $option['pr_no']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
+ foreach($inBothOtherOptionIds as $bothotheroptionidx){
+ $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0];
+
+ $sql_str = "UPDATE pricereview_maintain_item SET item_spec=:item_spec, option_relate_spec=:option_relate_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, memo = :memo
+ WHERE mid = :apply_key AND item_no = :item_no AND item_group = 'E'";
+
+ $item_group = "E";
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = $option['toElevator'][0]['id'];
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':item_no', $option['pr_no']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
+}
+
+if($status == "YS"){
+
+}
+
+
+echo "success";
\ No newline at end of file
diff --git a/wms/cont/js/pricereviewAlpine.js b/wms/cont/js/pricereviewAlpine.js
index 1fabad15..6c6ec7bf 100644
--- a/wms/cont/js/pricereviewAlpine.js
+++ b/wms/cont/js/pricereviewAlpine.js
@@ -49,6 +49,7 @@ const pricereviewCreate = ()=>{
name:"",
price: 0,
num:"",
+ memo:"",
},
otherOptionKey:0,
currentOtherOptionKey:'',
@@ -179,6 +180,7 @@ const pricereviewCreate = ()=>{
name: this.modalOtherOptionInfo.name,
price: this.modalOtherOptionInfo.price,
num: this.modalOtherOptionInfo.num,
+ memo: this.modalOtherOptionInfo.memo,
toElevator:[],
})
this.modalOtherOptionInfo = {
@@ -186,6 +188,7 @@ const pricereviewCreate = ()=>{
name: '',
price: 0,
num: '',
+ memo: '',
}
this.hideCreateOtherOptionModal();
},
@@ -327,12 +330,17 @@ const pricereviewCreate = ()=>{
console.log(res.data);
if(res.data == 'success'){
alert("保存成功!");
- window.location.reload();
+ // window.location.reload();
}
})
},
submit(){
},
+ async getUsername(user_id){
+ if(user_id == '') return '---'
+ const res = await axios.get('./api/getUsername.php', {params: {user_id: user_id}})
+ return res.data ;
+ },
}
}
\ No newline at end of file
diff --git a/wms/cont/pricereviewCreate.php b/wms/cont/pricereviewCreate.php
index 27174458..954f15b0 100644
--- a/wms/cont/pricereviewCreate.php
+++ b/wms/cont/pricereviewCreate.php
@@ -82,7 +82,7 @@ function getApplyKey($p_yyyymm, $seq_name){
電梯數量
營業員
-
+
當前契約期限結束
@@ -350,6 +350,7 @@ function getApplyKey($p_yyyymm, $seq_name){
單價
數量
複價
+ 備註
所屬電梯
功能
@@ -364,10 +365,11 @@ function getApplyKey($p_yyyymm, $seq_name){
-
+
請輸入正整數
+
@@ -385,7 +387,7 @@ function getApplyKey($p_yyyymm, $seq_name){
小計
-
+
@@ -481,5 +483,5 @@ function getApplyKey($p_yyyymm, $seq_name){
const progress_status = '';
const user_id = '';
const user_name = '';
-
+ const progress_remark = ``;
\ No newline at end of file
diff --git a/wms/cont/window-modal/otherOptionModal.php b/wms/cont/window-modal/otherOptionModal.php
index 565ccbf5..588bf0b7 100644
--- a/wms/cont/window-modal/otherOptionModal.php
+++ b/wms/cont/window-modal/otherOptionModal.php
@@ -13,13 +13,15 @@
單價
數量
複價
+ 備註
-
+
+
diff --git a/wms/contract/js/alpine.js b/wms/contract/js/alpine.js
index e9d84276..815514c9 100644
--- a/wms/contract/js/alpine.js
+++ b/wms/contract/js/alpine.js
@@ -246,7 +246,7 @@ const contractDownload = () => {
{
editshow: false,
origin: true,
- text: '交貨期限及甲方配合事項: 乙方應於接獲甲方圖色確認第180日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材 運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。',
+ text: '交貨期限及甲方配合事項: 乙方應於接獲甲方圖色確認第180日(應於合約簽訂日起兩年內),將本工程所需之全部設備、器材運抵工地,甲方應提供適當的場所供乙方貯放設備、器材。於指定出貨日期,且乙方備妥材料後,如甲方向後延展出貨日期,如延展日期逾三個月,乙方得酌收額外增生之倉儲保管費用。',
type: 'title',
deleted: false,
id: 5,
diff --git a/wms/mkt/assets/js/pricereviewAlpine.js b/wms/mkt/assets/js/pricereviewAlpine.js
index 255c8251..8208b859 100644
--- a/wms/mkt/assets/js/pricereviewAlpine.js
+++ b/wms/mkt/assets/js/pricereviewAlpine.js
@@ -988,8 +988,6 @@ const pricereviewCheck = ()=>{
this.demolishOptions = items.filter(item=> item.item_group =='C');
this.maintainOptions = items.filter(item=> item.item_group =='D');
this.otherOptions = items.filter(item=> item.item_group =='E');
- console.log("optionnnn=>", this.options);
- console.log(this.elevators);
this.elevators.forEach((elevator, idx)=>{
this.options.forEach(option=>{
if(option.option_relate_spec == elevator.item_no){
@@ -1071,10 +1069,7 @@ const pricereviewCheck = ()=>{
}
}
}
-
-
this.getElevatorMi(idx, spec, person, stop, open, speed, elevator.item_weight)
-
});
this.sign1 = this.getUsername(sign1)
this.sign2 = this.getUsername(sign2)
@@ -1170,38 +1165,38 @@ const pricereviewCheck = ()=>{
mid: mid,
user_id: user_id,
reviewcomment:'',
- optionsTotalPrice(){
+ get optionsTotalPrice(){
return this.options.reduce((total, option) => {
return total + (option.item_qty * option.item_unit_price);
}, 0);
},
- otherOptionsTotalPrice(){
+ get otherOptionsTotalPrice(){
return this.otherOptions.reduce((total, option) => {
return total + (option.item_qty * option.item_unit_price);
}, 0);
},
- maintainOptionsTotalPrice(){
+ get maintainOptionsTotalPrice(){
return this.maintainOptions.reduce((total, option) => {
return total + (option.item_qty * option.item_unit_price);
}, 0);
},
- demolishOptionsTotalPrice(){
+ get demolishOptionsTotalPrice(){
return this.demolishOptions.reduce((total, option) => {
return total + (option.item_qty * option.item_unit_price);
}, 0);
},
- totalScale(){
+ get totalScale(){
return this.pays.reduce((total, option) => {
return total + Number(option.pay_scale );
}, 0);
},
- totalElevatorsPrice(){
+ get totalElevatorsPrice(){
return this.elevators.reduce((total, elevator) => {
return total + (elevator.item_qty * elevator.price);
}, 0);
},
- totalStandardPrice(){
- return this.totalElevatorsPrice() + this.otherOptionsTotalPrice() + this.optionsTotalPrice() + this.maintainOptionsTotalPrice() + this.demolishOptionsTotalPrice();
+ get totalStandardPrice(){
+ return this.totalElevatorsPrice + this.otherOptionsTotalPrice + this.optionsTotalPrice + this.maintainOptionsTotalPrice + this.demolishOptionsTotalPrice;
},
check(sign, status, user_id = this.user_id ){
console.log(sign);
diff --git a/wms/mkt/pricereviewCheck.php b/wms/mkt/pricereviewCheck.php
index 5eec5566..ca66f475 100644
--- a/wms/mkt/pricereviewCheck.php
+++ b/wms/mkt/pricereviewCheck.php
@@ -409,7 +409,7 @@ function getSignerName($signer){
小計
-
+
@@ -449,7 +449,7 @@ function getSignerName($signer){
小計
-
+
@@ -489,7 +489,7 @@ function getSignerName($signer){
小計
-
+
@@ -529,7 +529,7 @@ function getSignerName($signer){
小計
-
+
@@ -671,7 +671,7 @@ function getSignerName($signer){
合計
-
+
@@ -707,12 +707,12 @@ function getSignerName($signer){
價率%(B/A)
-
+
-
+
預定成交日
diff --git a/wms/sign/list.php b/wms/sign/list.php
index f2d65bf5..f40bc8b5 100644
--- a/wms/sign/list.php
+++ b/wms/sign/list.php
@@ -113,7 +113,8 @@ JOIN
FROM
subflow
GROUP BY
- form_key) AS sf ON d.form_key = sf.form_key
+ form_key
+ ) AS sf ON d.form_key = sf.form_key
JOIN
subflow c ON c.form_key = sf.form_key AND c.seq = sf.max_seq
WHERE
From 9dbdd9353f5fc7b00e075e04d3fa62287531126d Mon Sep 17 00:00:00 2001
From: 10994015
Date: Fri, 8 Mar 2024 18:11:05 +0800
Subject: [PATCH 8/9] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E5=BE=85=E7=B0=BD?=
=?UTF-8?q?=E6=9F=A5=E8=A9=A2=E9=A0=86=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
wms/cont/api/postElevatorPricereview.php | 2 +-
wms/sign/list.php | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/wms/cont/api/postElevatorPricereview.php b/wms/cont/api/postElevatorPricereview.php
index a55e27f8..b4d540db 100644
--- a/wms/cont/api/postElevatorPricereview.php
+++ b/wms/cont/api/postElevatorPricereview.php
@@ -404,7 +404,7 @@ if(!$contract){
}
if($status == "YS"){
-
+ $sql_str = "INSERT INTO pricereview_maintain_sign ()"
}
diff --git a/wms/sign/list.php b/wms/sign/list.php
index f40bc8b5..bde03b37 100644
--- a/wms/sign/list.php
+++ b/wms/sign/list.php
@@ -114,7 +114,8 @@ JOIN
subflow
GROUP BY
form_key
- ) AS sf ON d.form_key = sf.form_key
+
+ ORDER BY update_date DESC) AS sf ON d.form_key = sf.form_key
JOIN
subflow c ON c.form_key = sf.form_key AND c.seq = sf.max_seq
WHERE
From d2605b46098cc8245dc57465ba2a9b3e76ba4ba3 Mon Sep 17 00:00:00 2001
From: 10994015
Date: Mon, 11 Mar 2024 20:52:17 +0800
Subject: [PATCH 9/9] =?UTF-8?q?=E4=BF=9D=E9=A4=8A=E5=83=B9=E6=B2=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
wms/cont/api/getElevatorPrice.php | 38 +-
wms/cont/api/postElevatorPricereview.php | 765 ++++++++++--------
wms/cont/api/postFlow.php | 58 ++
wms/cont/api/postSystemNotice.php | 20 +
wms/cont/js/pricereviewAlpine.js | 107 ++-
wms/cont/pricereviewCreate.php | 147 +++-
wms/cont/window-modal/modalElevaotr.php | 2 +-
...viewAlpine.js => pricereviewAlpine0311.js} | 0
wms/mkt/pricereviewCheck.php | 9 +-
wms/mkt/pricereviewCreate.php | 2 +-
10 files changed, 739 insertions(+), 409 deletions(-)
create mode 100644 wms/cont/api/postFlow.php
create mode 100644 wms/cont/api/postSystemNotice.php
rename wms/mkt/assets/js/{pricereviewAlpine.js => pricereviewAlpine0311.js} (100%)
diff --git a/wms/cont/api/getElevatorPrice.php b/wms/cont/api/getElevatorPrice.php
index 92f9d4c1..cd3be6b1 100644
--- a/wms/cont/api/getElevatorPrice.php
+++ b/wms/cont/api/getElevatorPrice.php
@@ -2,29 +2,27 @@
require_once "../../mkt/conn.php";
-$spec = $_GET['spec'];
-$person = $_GET['person'];
-$stop = $_GET['stop'];
-$weight = $_GET['weight'];
-$speed = $_GET['speed'];
-$m1 = $_GET['m1'];
-$method = $_GET['method'];
-$cycle = $_GET['cycle'];
-if($spec == "MAE100"){
- $elevator_type = "A";
-}elseif($spec == "MAF100"){
- $elevator_type = "B";
-}elseif($spec == "MAM200"){
- $elevator_type = "D";
-}elseif($spec == "MAH100"){
- $elevator_type = "E";
-}
-
-$sql_str = "SELECT * FROM maintain_standard_option WHERE elevator_type=:elevator_type AND min_speed = :min_speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1 ORDER bY id DESC";
+$spec = $_GET['spec'] ?? '';
+$person = $_GET['person'] ?? '';
+$stop = $_GET['stop'] ?? '';
+$weight = $_GET['weight'] ?? '';
+$speed = $_GET['speed'] ?? '';
+$m1 = $_GET['m1'] ?? '';
+$method = $_GET['method'] ?? '';
+$cycle = $_GET['cycle'] ?? '';
+$elevator_type = match($spec){
+ "MAE100" => "A",
+ "MAF100" => "B",
+ "MAM200" => "D",
+ "MAH100" => "E",
+};
+$sql_str = "SELECT * FROM maintain_standard_option
+WHERE elevator_type=:elevator_type AND min_speed<=:speed AND max_speed>=:speed AND min_persons <= :person AND max_persons >= :person AND is_m1_bundle=:m1
+ORDER bY id DESC";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':elevator_type', $elevator_type);
-$stmt->bindParam(':min_speed', $speed);
$stmt->bindParam(':person', $person);
+$stmt->bindParam(':speed', $speed);
$stmt->bindParam(':m1', $m1);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
diff --git a/wms/cont/api/postElevatorPricereview.php b/wms/cont/api/postElevatorPricereview.php
index b4d540db..03356932 100644
--- a/wms/cont/api/postElevatorPricereview.php
+++ b/wms/cont/api/postElevatorPricereview.php
@@ -25,387 +25,460 @@ $pay_method = $_POST['pay_method'];
$status = $_POST['status'];
$elevators = json_decode($_POST['elevators'], true);
$otherOptions = json_decode($_POST['otherOptions'], true);
-
+$payment_kind = $_POST['pay_method'];
$current_date = date("Y-M-d H:i:s");
-$sql_str = "SELECT status FROM con_maintance_examine_apply WHERE vol_no = :vol_no AND apply_key = :apply_key";
+$total_price = $_POST['total_price'];
+$total_sale_price = $_POST['total_sale_price'];
+
+$sql_str = "SELECT status FROM con_maintance_examine_apply WHERE (vol_no, apply_key) = (:vol_no, :apply_key) ";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':vol_no', $vol_no);
$stmt->bindParam(':apply_key', $apply_key);
$stmt->execute();
$contract = $stmt->fetch(PDO::FETCH_ASSOC);
-if(!$contract){
- $sql_str = "INSERT INTO con_maintance_examine_apply (apply_key, vol_no, customer, address, case_name ,brand, num, salesman, maintain_kind, contract_begin_date, contract_end_date, contract_kind, payment_kind, progress_remark, service_fee, total_price, total_sale_price, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, creater, create_at)
- VALUES (:apply_key, :vol_no, :customer, :address, :case_name ,:brand, :num, :salesman, :maintain_kind, :contract_begin_date, :contract_end_date, :contract_kind, :payment_kind, :progress_remark, :service_fee, :total_price, :total_sale_price, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :creater, :create_at)";
- $stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':vol_no', $vol_no);
- $stmt->bindParam(':customer', $customer);
- $stmt->bindParam(':address', $address);
- $stmt->bindParam(':case_name', $case_name);
- $stmt->bindParam(':brand', $brand);
- $stmt->bindParam(':num', $num);
- $stmt->bindParam(':salesman', $salesman);
- $stmt->bindParam(':maintain_kind', $maintain_kind);
- $stmt->bindParam(':contract_begin_date', $contract_begin_date);
- $stmt->bindParam(':contract_end_date', $contract_end_date);
- $stmt->bindParam(':contract_kind', $contract_kind);
- $stmt->bindParam(':payment_kind', $payment_kind);
- $stmt->bindParam(':progress_remark', $progress_remark);
- $stmt->bindParam(':service_fee', $serviceFee);
- $stmt->bindParam(':total_price', $total_price);
- $stmt->bindParam(':total_sale_price', $total_sale_price);
- $stmt->bindParam(':penalty', $penalty);
- $stmt->bindParam(':deposit_rate', $deposit_rate);
- $stmt->bindParam(':keep_rate', $keep_rate);
- $stmt->bindParam(':warranty_rate', $warranty_rate);
- $stmt->bindParam(':memo', $remark);
- $stmt->bindParam(':status', $status);
- $stmt->bindParam(':creater', $creater);
- $stmt->bindParam(':create_at', $current_date);
- $stmt->execute();
-
- $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
- VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
-
- foreach($elevators as $elevator){
- if(empty($elevator['permitNumber'])) $register_code = "A";
-
- if($elevator['spec'] == "MAE100") $elevator_kind = "A";
- if($elevator['spec'] == "MAF100") $elevator_kind = "B";
- if($elevator['spec'] == "MAM200") $elevator_kind = "D";
- if($elevator['spec'] == "MAH100") $elevator_kind = "E";
- $speed_governors_check_expense = null;
- $maintain_times = 1;
- $commission_expense = null;
- $management_expense = null;
- $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
- $cmstatus = "Y";
-
+$conn->beginTransaction();
+try{
+ if(!$contract){
+ $sql_str = "INSERT INTO con_maintance_examine_apply (apply_key, vol_no, customer, address, case_name ,brand, num, salesman, maintain_kind, contract_begin_date, contract_end_date, contract_kind, payment_kind, progress_remark, service_fee, total_price, total_sale_price, penalty, deposit_rate, keep_rate, warranty_rate, memo, status, creater, create_at)
+ VALUES (:apply_key, :vol_no, :customer, :address, :case_name ,:brand, :num, :salesman, :maintain_kind, :contract_begin_date, :contract_end_date, :contract_kind, :payment_kind, :progress_remark, :service_fee, :total_price, :total_sale_price, :penalty, :deposit_rate, :keep_rate, :warranty_rate, :memo, :status, :creater, :create_at)";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':item_no', $elevator['id']);
- $stmt->bindParam(':register_code', $register_code);
- $stmt->bindParam(':elevator_brand', $elevator['brand']);
- $stmt->bindParam(':elevator_kind', $elevator_kind);
- $stmt->bindParam(':spec', $elevator['spec']);
- $stmt->bindParam(':weight', $elevator['weight']);
- $stmt->bindParam(':speed', $elevator['speed']);
- $stmt->bindParam(':stop', $elevator['stop']);
- $stmt->bindParam(':floors', $elevator['stop']);
- $stmt->bindParam(':persons', $elevator['person']);
- $stmt->bindParam(':elevator_num', $elevator['qty']);
- $stmt->bindParam(':useful_years', $elevator['checkYear']);
- $stmt->bindParam(':last_check_date', $elevator['lastDate']);
- $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
- $stmt->bindParam(':maintain_times', $maintain_times);
- $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
- $stmt->bindParam(':maintain__months', $elevator['months']);
- $stmt->bindParam(':maintain_period', $elevator['cycle']);
- $stmt->bindParam(':maintain_method', $elevator['method']);
- $stmt->bindParam(':stand_price', $elevator['price']);
- $stmt->bindParam(':contract_price', $elevator['sale_price']);
- $stmt->bindParam(':sold_price', $elevator['sale_price']);
- $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
- $stmt->bindParam(':management_expense', $elevator['management_expense']);
- $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
- $stmt->bindParam(':service_expense', $elevator['service_expense']);
- $stmt->bindParam(':cmstatus', $cmstatus);
- $stmt->bindParam(':updated_at', $updated_at);
+ $stmt->bindParam(':vol_no', $vol_no);
+ $stmt->bindParam(':customer', $customer);
+ $stmt->bindParam(':address', $address);
+ $stmt->bindParam(':case_name', $case_name);
+ $stmt->bindParam(':brand', $brand);
+ $stmt->bindParam(':num', $num);
+ $stmt->bindParam(':salesman', $salesman);
+ $stmt->bindParam(':maintain_kind', $maintain_kind);
+ $stmt->bindParam(':contract_begin_date', $contract_begin_date);
+ $stmt->bindParam(':contract_end_date', $contract_end_date);
+ $stmt->bindParam(':contract_kind', $contract_kind);
+ $stmt->bindParam(':payment_kind', $payment_kind);
+ $stmt->bindParam(':progress_remark', $progress_remark);
+ $stmt->bindParam(':service_fee', $serviceFee);
+ $stmt->bindParam(':total_price', $total_price);
+ $stmt->bindParam(':total_sale_price', $total_sale_price);
+ $stmt->bindParam(':penalty', $penalty);
+ $stmt->bindParam(':deposit_rate', $deposit_rate);
+ $stmt->bindParam(':keep_rate', $keep_rate);
+ $stmt->bindParam(':warranty_rate', $warranty_rate);
+ $stmt->bindParam(':memo', $remark);
+ $stmt->bindParam(':status', $status);
$stmt->bindParam(':creater', $creater);
- $stmt->bindParam(':created_at', $created_at);
- $stmt->execute();
- }
-
- $sql_str = "INSERT INTO pricereview_maintain_item (mid, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
- VALUES (:mid, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
-
- foreach($otherOptions as $option){
- $item_price_bp = $option['price']*$option['num'];
- $option_relate_spec = $option['toElevator'][0]['id'];
- $item_group = "E";
- $stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':mid', $apply_key);
- $stmt->bindParam(':item_no', $option['pr_no']);
- $stmt->bindParam(':item_group', $item_group);
- $stmt->bindParam(':item_spec', $option['name']);
- $stmt->bindParam(':option_relate_spec', $option_relate_spec);
- $stmt->bindParam(':item_unit_price', $option['price']);
- $stmt->bindParam(':item_qty', $option['num']);
- $stmt->bindParam(':item_price_bp', $item_price_bp);
- $stmt->bindParam(':memo', $option['memo']);
+ $stmt->bindParam(':create_at', $current_date);
$stmt->execute();
- }
-}else{
- $sql_str = "UPDATE con_maintance_examine_apply SET
- case_name=:case_name,
- num=:num,
- maintain_kind=:maintain_kind,
- contract_kind=:contract_kind,
- payment_kind=:payment_kind,
- contract_begin_date=:contract_begin_date,
- contract_end_date=:contract_end_date,
- service_fee=:service_fee,
- total_price=:total_price,
- total_sale_price=:total_sale_price,
- penalty=:penalty,
- deposit_rate=:deposit_rate,
- keep_rate=:keep_rate,
- warranty_rate=:warranty_rate,
- remark=:remark,
- status=:status,
- updated_at=:updated_at
- progress_remark=:progress_remark
- WHERE apply_key=:apply_key AND vol_no=:vol_no";
-
- $stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':vol_no', $vol_no);
- $stmt->bindParam(':case_name', $case_name);
- $stmt->bindParam(':num', $num);
- $stmt->bindParam(':maintain_kind', $maintain_kind);
- $stmt->bindParam(':contract_begin_date', $contract_begin_date);
- $stmt->bindParam(':contract_end_date', $contract_end_date);
- $stmt->bindParam(':contract_kind', $contract_kind);
- $stmt->bindParam(':payment_kind', $payment_kind);
- $stmt->bindParam(':progress_remark', $progress_remark);
- $stmt->bindParam(':service_fee', $serviceFee);
- $stmt->bindParam(':total_price', $total_price);
- $stmt->bindParam(':total_sale_price', $total_sale_price);
- $stmt->bindParam(':penalty', $penalty);
- $stmt->bindParam(':deposit_rate', $deposit_rate);
- $stmt->bindParam(':keep_rate', $keep_rate);
- $stmt->bindParam(':warranty_rate', $warranty_rate);
- $stmt->bindParam(':memo', $remark);
- $stmt->bindParam(':status', $status);
- $stmt->bindParam(':updated_at', $current_date);
- $stmt->execute();
+
+ $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
+ VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
+
+ foreach($elevators as $elevator){
+ if(empty($elevator['permitNumber'])) $register_code = "A";
- //整機單價
- $sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key=:apply_key AND vol_no=:vol_no";
- $stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':vol_no', $vol_no);
- $stmt->execute();
- $items = $stmt->fetchAll(PDO::FETCH_ASSOC);
-
- $oldItemsNo = (array)array_column($oldElevators, 'item_no');
- $newItemsNo = (array)array_column($elevators, 'id');
- $onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete)
- $onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert)
- $inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update)
-
- foreach($onlyInOldIds as $oldIdx){
- $sql_str = "DELETE FROM con_maintance_examine_clear WHERE apply_key = :apply_key AND item_no = :item_no AND vol_no=:vol_no";
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+ $cycle = (int)$elevator['cycle'];
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $elevator['id']);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain_months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $cycle);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':created_at', $current_date);
+ $stmt->execute();
+ }
+
+ $sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
+ VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
+
+ foreach($otherOptions as $option){
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null;
+ $item_group = "E";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':price_id', $option['pr_no']);
+ $stmt->bindParam(':item_no', $option['id']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
+ }else{
+ $sql_str = "UPDATE con_maintance_examine_apply SET
+ case_name=:case_name,
+ num=:num,
+ maintain_kind=:maintain_kind,
+ contract_kind=:contract_kind,
+ payment_kind=:payment_kind,
+ contract_begin_date=:contract_begin_date,
+ contract_end_date=:contract_end_date,
+ service_fee=:service_fee,
+ total_price=:total_price,
+ total_sale_price=:total_sale_price,
+ penalty=:penalty,
+ deposit_rate=:deposit_rate,
+ keep_rate=:keep_rate,
+ warranty_rate=:warranty_rate,
+ memo=:memo,
+ brand=:brand,
+ status=:status,
+ updated_at=:updated_at,
+ progress_remark=:progress_remark
+ WHERE apply_key=:apply_key AND vol_no=:vol_no";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':item_no', $oldidx);
$stmt->bindParam(':vol_no', $vol_no);
+ $stmt->bindParam(':case_name', $case_name);
+ $stmt->bindParam(':num', $num);
+ $stmt->bindParam(':maintain_kind', $maintain_kind);
+ $stmt->bindParam(':contract_begin_date', $contract_begin_date);
+ $stmt->bindParam(':contract_end_date', $contract_end_date);
+ $stmt->bindParam(':contract_kind', $contract_kind);
+ $stmt->bindParam(':payment_kind', $payment_kind);
+ $stmt->bindParam(':progress_remark', $progress_remark);
+ $stmt->bindParam(':service_fee', $serviceFee);
+ $stmt->bindParam(':total_price', $total_price);
+ $stmt->bindParam(':total_sale_price', $total_sale_price);
+ $stmt->bindParam(':penalty', $penalty);
+ $stmt->bindParam(':deposit_rate', $deposit_rate);
+ $stmt->bindParam(':keep_rate', $keep_rate);
+ $stmt->bindParam(':warranty_rate', $warranty_rate);
+ $stmt->bindParam(':memo', $remark);
+ $stmt->bindParam(':brand', $brand);
+ $stmt->bindParam(':status', $status);
+ $stmt->bindParam(':updated_at', $current_date);
$stmt->execute();
- }
- foreach($onlyInNewIds as $newidx){
- $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
- VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
- $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $newidx))[0];
- $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
- if($elevator['spec'] == "MAE100") $elevator_kind = "A";
- if($elevator['spec'] == "MAF100") $elevator_kind = "B";
- if($elevator['spec'] == "MAM200") $elevator_kind = "D";
- if($elevator['spec'] == "MAH100") $elevator_kind = "E";
-
- $speed_governors_check_expense = null;
- $maintain_times = 1;
- $commission_expense = null;
- $management_expense = null;
- $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
- $cmstatus = "Y";
+ //整機單價
+ $sql_str = "SELECT * FROM con_maintance_examine_clear WHERE (apply_key, cmstatus) = (:apply_key, 'Y')";
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':item_no', $elevator['id']);
- $stmt->bindParam(':register_code', $register_code);
- $stmt->bindParam(':elevator_brand', $elevator['brand']);
- $stmt->bindParam(':elevator_kind', $elevator_kind);
- $stmt->bindParam(':spec', $elevator['spec']);
- $stmt->bindParam(':weight', $elevator['weight']);
- $stmt->bindParam(':speed', $elevator['speed']);
- $stmt->bindParam(':stop', $elevator['stop']);
- $stmt->bindParam(':floors', $elevator['stop']);
- $stmt->bindParam(':persons', $elevator['person']);
- $stmt->bindParam(':elevator_num', $elevator['qty']);
- $stmt->bindParam(':useful_years', $elevator['checkYear']);
- $stmt->bindParam(':last_check_date', $elevator['lastDate']);
- $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
- $stmt->bindParam(':maintain_times', $maintain_times);
- $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
- $stmt->bindParam(':maintain__months', $elevator['months']);
- $stmt->bindParam(':maintain_period', $elevator['cycle']);
- $stmt->bindParam(':maintain_method', $elevator['method']);
- $stmt->bindParam(':stand_price', $elevator['price']);
- $stmt->bindParam(':contract_price', $elevator['sale_price']);
- $stmt->bindParam(':sold_price', $elevator['sale_price']);
- $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
- $stmt->bindParam(':management_expense', $elevator['management_expense']);
- $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
- $stmt->bindParam(':service_expense', $elevator['service_expense']);
- $stmt->bindParam(':cmstatus', $cmstatus);
- $stmt->bindParam(':updated_at', $updated_at);
- $stmt->bindParam(':creater', $creater);
- $stmt->bindParam(':created_at', $created_at);
$stmt->execute();
- }
-
- foreach($inBothIds as $bothidx){
- $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain__months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, creater, created_at)
- VALUES (:apply_key, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain__months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :creater, :created_at) ";
- $sql_str = "UPDATE con_maintance_examine_clear SET
- register_code=:register_code,
- elevator_brand=:elevator_brand,
- elevator_kind=:elevator_kind,
- spec=:spec,
- weight=:weight,
- speed=:speed,
- stop=:stop,
- floors=:floors,
- persons=:persons,
- elevator_num=:elevator_num,
- useful_years=:useful_years,
- last_check_date=:last_check_date,
- speed_governors_check_expense=:speed_governors_check_expense,
- maintain_times=:maintain_times,
- is_m1_bundle=:is_m1_bundle,
- maintain__months=:maintain__months,
- maintain_period=:maintain_period,
- maintain_method=:maintain_method,
- stand_price=:stand_price,
- contract_price=:contract_price,
- sold_price=:sold_price,
- commission_expense=:commission_expense,
- management_expense=:management_expense,
- annual_survey_expense=:annual_survey_expense,
- service_expense=:service_expense,
- cmstatus=:cmstatus,
- updated_at=:updated_at
- WHERE apply_key=:apply_key AND item_no=:item_no";
-
- $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $bothidx))[0];
- $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
- if($elevator['spec'] == "MAE100") $elevator_kind = "A";
- if($elevator['spec'] == "MAF100") $elevator_kind = "B";
- if($elevator['spec'] == "MAM200") $elevator_kind = "D";
- if($elevator['spec'] == "MAH100") $elevator_kind = "E";
-
- $speed_governors_check_expense = null;
- $maintain_times = 1;
- $commission_expense = null;
- $management_expense = null;
- $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
- $cmstatus = "Y";
-
- $stmt = $conn->prepare($sql_str);
+ $oldElevators = $stmt->fetchAll(PDO::FETCH_ASSOC);
+
+ $oldItemsNo = (array)array_column($oldElevators, 'item_no');
+ $newItemsNo = (array)array_column($elevators, 'id');
+ $onlyInOldIds = array_values(array_diff($oldItemsNo, $newItemsNo)); // 只有舊的有,新傳入的沒有,所以刪除(delete)
+ $onlyInNewIds = array_values(array_diff($newItemsNo, $oldItemsNo)); //只有新傳入的有,舊的沒有,所以新增(insert)
+ $inBothIds = array_values(array_intersect($oldItemsNo, $newItemsNo)); //舊的跟新的都有,所以要更新(update)
+
+ foreach($onlyInOldIds as $oldIdx){
+ // $sql_str = "DELETE FROM con_maintance_examine_clear WHERE apply_key=:apply_key AND item_no=:item_no";
+ $sql_str = "UPDATE con_maintance_examine_clear SET cmstatus = 'D' WHERE apply_key=:apply_key AND item_no=:item_no";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $oldIdx);
+ $stmt->execute();
+ }
+ foreach($onlyInNewIds as $newidx){
+ $sql_str = "INSERT INTO con_maintance_examine_clear (apply_key, item_no, register_code, elevator_brand, elevator_kind, spec, weight, speed, stop, floors, persons, elevator_num, useful_years, last_check_date, speed_governors_check_expense, maintain_times, is_m1_bundle, maintain_months, maintain_period, maintain_method, stand_price, contract_price, sold_price, commission_expense, management_expense, annual_survey_expense, service_expense, cmstatus, updated_at, creater, created_at)
+ VALUES (:apply_key, :item_no, :register_code, :elevator_brand, :elevator_kind, :spec, :weight, :speed, :stop, :floors, :persons, :elevator_num, :useful_years, :last_check_date, :speed_governors_check_expense, :maintain_times, :is_m1_bundle, :maintain_months, :maintain_period, :maintain_method, :stand_price, :contract_price, :sold_price, :commission_expense, :management_expense, :annual_survey_expense, :service_expense, :cmstatus, :updated_at, :creater, :created_at) ";
+ $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $newidx))[0];
+ $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+ $cycle = (int)$elevator['cycle'];
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $elevator['id']);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain_months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $cycle);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':created_at', $current_date);
+ $stmt->execute();
+ }
+ foreach($inBothIds as $bothidx){
+ $sql_str = "UPDATE con_maintance_examine_clear SET
+ register_code=:register_code,
+ elevator_brand=:elevator_brand,
+ elevator_kind=:elevator_kind,
+ spec=:spec,
+ weight=:weight,
+ speed=:speed,
+ stop=:stop,
+ floors=:floors,
+ persons=:persons,
+ elevator_num=:elevator_num,
+ useful_years=:useful_years,
+ last_check_date=:last_check_date,
+ speed_governors_check_expense=:speed_governors_check_expense,
+ maintain_times=:maintain_times,
+ is_m1_bundle=:is_m1_bundle,
+ maintain_months=:maintain_months,
+ maintain_period=:maintain_period,
+ maintain_method=:maintain_method,
+ stand_price=:stand_price,
+ contract_price=:contract_price,
+ sold_price=:sold_price,
+ commission_expense=:commission_expense,
+ management_expense=:management_expense,
+ annual_survey_expense=:annual_survey_expense,
+ service_expense=:service_expense,
+ cmstatus=:cmstatus,
+ updated_at=:updated_at
+ WHERE (apply_key, item_no) = (:apply_key, :item_no)";
+
+ $elevator = array_values(array_filter($elevators, fn($el)=> $el['id'] == $bothidx))[0];
+ $register_code = empty($elevator['permitNumber']) ? "A" : $elevator['permitNumber'];
+ if($elevator['spec'] == "MAE100") $elevator_kind = "A";
+ if($elevator['spec'] == "MAF100") $elevator_kind = "B";
+ if($elevator['spec'] == "MAM200") $elevator_kind = "D";
+ if($elevator['spec'] == "MAH100") $elevator_kind = "E";
+
+ $speed_governors_check_expense = null;
+ $maintain_times = 1;
+ $commission_expense = null;
+ $management_expense = null;
+ $service_expense = ($elevator['sale_price'] / $total_sale_price) * $serviceFee;
+ $cmstatus = "Y";
+ $cycle = (int)$elevator['cycle'];
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':register_code', $register_code);
+ $stmt->bindParam(':elevator_brand', $elevator['brand']);
+ $stmt->bindParam(':elevator_kind', $elevator_kind);
+ $stmt->bindParam(':spec', $elevator['spec']);
+ $stmt->bindParam(':weight', $elevator['weight']);
+ $stmt->bindParam(':speed', $elevator['speed']);
+ $stmt->bindParam(':stop', $elevator['stop']);
+ $stmt->bindParam(':floors', $elevator['stop']);
+ $stmt->bindParam(':persons', $elevator['person']);
+ $stmt->bindParam(':elevator_num', $elevator['qty']);
+ $stmt->bindParam(':useful_years', $elevator['checkYear']);
+ $stmt->bindParam(':last_check_date', $elevator['lastDate']);
+ $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
+ $stmt->bindParam(':maintain_times', $maintain_times);
+ $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
+ $stmt->bindParam(':maintain_months', $elevator['months']);
+ $stmt->bindParam(':maintain_period', $cycle);
+ $stmt->bindParam(':maintain_method', $elevator['method']);
+ $stmt->bindParam(':stand_price', $elevator['price']);
+ $stmt->bindParam(':contract_price', $elevator['sale_price']);
+ $stmt->bindParam(':sold_price', $elevator['sale_price']);
+ $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
+ $stmt->bindParam(':management_expense', $elevator['management_expense']);
+ $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
+ $stmt->bindParam(':service_expense', $elevator['service_expense']);
+ $stmt->bindParam(':cmstatus', $cmstatus);
+ $stmt->bindParam(':updated_at', $updated_at);
+
+ $stmt->bindParam(':item_no', $bothidx);
+ $stmt->execute();
+ }
+
+ //除外項目
+ $sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E')";
+ $stmt = $conn->prepare($sql_str);
$stmt->bindParam(':apply_key', $apply_key);
- $stmt->bindParam(':register_code', $register_code);
- $stmt->bindParam(':elevator_brand', $elevator['brand']);
- $stmt->bindParam(':elevator_kind', $elevator_kind);
- $stmt->bindParam(':spec', $elevator['spec']);
- $stmt->bindParam(':weight', $elevator['weight']);
- $stmt->bindParam(':speed', $elevator['speed']);
- $stmt->bindParam(':stop', $elevator['stop']);
- $stmt->bindParam(':floors', $elevator['stop']);
- $stmt->bindParam(':persons', $elevator['person']);
- $stmt->bindParam(':elevator_num', $elevator['qty']);
- $stmt->bindParam(':useful_years', $elevator['checkYear']);
- $stmt->bindParam(':last_check_date', $elevator['lastDate']);
- $stmt->bindParam(':speed_governors_check_expense', $speed_governors_check_expense);
- $stmt->bindParam(':maintain_times', $maintain_times);
- $stmt->bindParam(':is_m1_bundle', $elevator['m1']);
- $stmt->bindParam(':maintain__months', $elevator['months']);
- $stmt->bindParam(':maintain_period', $elevator['cycle']);
- $stmt->bindParam(':maintain_method', $elevator['method']);
- $stmt->bindParam(':stand_price', $elevator['price']);
- $stmt->bindParam(':contract_price', $elevator['sale_price']);
- $stmt->bindParam(':sold_price', $elevator['sale_price']);
- $stmt->bindParam(':commission_expense', $elevator['commission_expense']);
- $stmt->bindParam(':management_expense', $elevator['management_expense']);
- $stmt->bindParam(':annual_survey_expense', $elevator['yearCheckFee']);
- $stmt->bindParam(':service_expense', $elevator['service_expense']);
- $stmt->bindParam(':cmstatus', $cmstatus);
- $stmt->bindParam(':updated_at', $updated_at);
-
- $stmt->bindParam(':item_no', $bothidx);
$stmt->execute();
+ $item_other_options = $stmt->fetchAll(PDO::FETCH_ASSOC);
+ $oldOtherOptionsNo = (array)array_column($item_other_options, 'item_no');
+ $newOtherOptioinNo = (array)array_column($otherOptions, 'id');
+
+ $onlyInOtherOptionOldIds = array_values(array_diff($oldOtherOptionsNo, $newOtherOptioinNo));
+ $onlyInOtherOptionNewIds = array_values(array_diff($newOtherOptioinNo, $oldOtherOptionsNo));
+ $inBothOtherOptionIds = array_values(array_intersect($oldOtherOptionsNo, $newOtherOptioinNo));
+
+ foreach($onlyInOtherOptionOldIds as $oldotheroptionidx){
+ $sql_str = "DELETE FROM pricereview_maintain_item WHERE (mid, item_no, item_group) = (:apply_key, :item_no, 'E')";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $oldotheroptionidx);
+ $stmt->execute();
+ }
+
+ foreach($onlyInOtherOptionNewIds as $newotheroptionidx){
+ $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $newotheroptionidx))[0];
+
+ $sql_str = "INSERT INTO pricereview_maintain_item (mid, price_id, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
+ VALUES (:mid, :price_id, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
+
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null;
+ $item_group = "E";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':mid', $apply_key);
+ $stmt->bindParam(':price_id', $option['pr_no']);
+ $stmt->bindParam(':item_no', $option['id']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
+ foreach($inBothOtherOptionIds as $bothotheroptionidx){
+ $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0];
+
+ $sql_str = "UPDATE pricereview_maintain_item SET item_spec=:item_spec, price_id=:price_id, option_relate_spec=:option_relate_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, memo = :memo
+ WHERE (mid, item_no, item_group) = (:apply_key, :item_no, :item_group)";
+
+ $item_group = "E";
+ $item_price_bp = $option['price']*$option['num'];
+ $option_relate_spec = (count($option['toElevator']) > 0) ? $option['toElevator'][0]['id'] : null;
+
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':apply_key', $apply_key);
+ $stmt->bindParam(':item_no', $option['id']);
+ $stmt->bindParam(':price_id', $option['pr_no']);
+ $stmt->bindParam(':item_group', $item_group);
+ $stmt->bindParam(':item_spec', $option['name']);
+ $stmt->bindParam(':option_relate_spec', $option_relate_spec);
+ $stmt->bindParam(':item_unit_price', $option['price']);
+ $stmt->bindParam(':item_qty', $option['num']);
+ $stmt->bindParam(':item_price_bp', $item_price_bp);
+ $stmt->bindParam(':memo', $option['memo']);
+ $stmt->execute();
+ }
}
-
- //除外項目
- $sql_str = "SELECT * FROM pricereview_maintain_item WHERE mid = :apply_key AND item_group = 'E'";
- $stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':mid', $apply_key);
- $stmt->execute();
- $item_other_options = $stmt->fetchAll(PDO::FETCH_ASSOC);
- $oldOtherOptionsNo = (array)array_column($item_other_options, 'item_no');
- $newOtherOptioinNo = (array)array_column($otherOptions, 'id');
-
- $nlyInOtherOptionOldIds = array_values(array_diff($oldOtherOptionsNo, $newOtherOptioinNo));
- $onlyInOtherOptionNewIds = array_values(array_diff($newOtherOptioinNo, $oldOtherOptionsNo));
- $inBothOtherOptionIds = array_values(array_intersect($oldOtherOptionsNo, $newOtherOptioinNo));
-
- foreach($onlyInOtherOptionOldIds as $oldotheroptionidx){
- $sql_str = "DELETE FROM pricereview_maintain_item WHERE mid = :apply_key AND item_no = :item_no AND item_group = 'E'";
+ if($status == "YS"){
+ $sql_str = "SELECT * FROM account WHERE accountid = :accountid";
$stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':mid', $apply_key);
- $stmt->bindParam(':item_no', $oldotheroptionidx);
+ $stmt->bindParam(':accountid', $creater);
$stmt->execute();
- }
-
- foreach($onlyInOtherOptionNewIds as $newotheroptionidx){
- $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $newotheroptionidx))[0];
-
- $sql_str = "INSERT INTO pricereview_maintain_item (mid, item_no, item_group, item_spec, option_relate_spec, item_unit_price, item_qty, item_price_bp, memo)
- VALUES (:mid, :item_no, :item_group, :item_spec, :option_relate_spec, :item_unit_price, :item_qty, :item_price_bp, :memo)";
-
- $item_price_bp = $option['price']*$option['num'];
- $option_relate_spec = $option['toElevator'][0]['id'];
- $item_group = "E";
+ $account = $stmt->fetch(PDO::FETCH_ASSOC);
+ $manager = $account['manager'];
+ $sign1 = $manager . ",,";
+ $sign2 = "M0012,,";
+ $sign3 = "M0008,,";
+
+ $sign_total = 3;
+ //服務費大於0 或是 價率低於0.8送至總經理(M0006)
+ if(false && ($serviceFee > 0 || ($total_sale_price / $total_price) < 0.8)){
+ $sign4 = "M0006,,";
+ $sign_total = 4;
+ }
+
+ $sql_str = "INSERT INTO pricereview_maintain_sign (mid, sign1, sign1_note, sign2, sign2_note, sign3, sign3_note, sign4, sign4_note, sign_total, created_at, created_by)
+ VALUES (:mid, :sign1, :sign1_note, :sign2, :sign2_note, :sign3, :sign3_note, :sign4, :sign4_note, :sign_total, :created_at, :created_by)";
+
$stmt = $conn->prepare($sql_str);
$stmt->bindParam(':mid', $apply_key);
- $stmt->bindParam(':item_no', $option['pr_no']);
- $stmt->bindParam(':item_group', $item_group);
- $stmt->bindParam(':item_spec', $option['name']);
- $stmt->bindParam(':option_relate_spec', $option_relate_spec);
- $stmt->bindParam(':item_unit_price', $option['price']);
- $stmt->bindParam(':item_qty', $option['num']);
- $stmt->bindParam(':item_price_bp', $item_price_bp);
- $stmt->bindParam(':memo', $option['memo']);
+ $stmt->bindParam(':sign1', $sign1);
+ $stmt->bindParam(':sign1_note', $sign1_note);
+ $stmt->bindParam(':sign2', $sign2);
+ $stmt->bindParam(':sign2_note', $sign2_note);
+ $stmt->bindParam(':sign3', $sign3);
+ $stmt->bindParam(':sign3_note', $sign3_note);
+ $stmt->bindParam(':sign4', $sign4);
+ $stmt->bindParam(':sign4_note', $sign4_note);
+ $stmt->bindParam(':sign_total', $sign_total);
+ $stmt->bindParam(':created_at', $current_date);
+ $stmt->bindParam(':created_by', $creater);
$stmt->execute();
- }
- foreach($inBothOtherOptionIds as $bothotheroptionidx){
- $option = array_values(array_filter($otherOptions, fn($el)=> $el['id'] == $bothotheroptionidx))[0];
-
- $sql_str = "UPDATE pricereview_maintain_item SET item_spec=:item_spec, option_relate_spec=:option_relate_spec, item_unit_price = :item_unit_price, item_qty = :item_qty, item_price_bp = :item_price_bp, memo = :memo
- WHERE mid = :apply_key AND item_no = :item_no AND item_group = 'E'";
- $item_group = "E";
- $item_price_bp = $option['price']*$option['num'];
- $option_relate_spec = $option['toElevator'][0]['id'];
+ include_once "./postFlow.php";
+ $form_key = null;
+ $createFlow = createFlow($apply_key, $manager, "A", "保養", $form_key);
+ include_once "./postSystemNotice.php";
+ $sql_str = "SELECT * FROM con_maintance_examine_apply WHERE apply_key = :apply_key ORDER BY create_at DESC LIMIT 1";
$stmt = $conn->prepare($sql_str);
- $stmt->bindParam(':mid', $apply_key);
- $stmt->bindParam(':item_no', $option['pr_no']);
- $stmt->bindParam(':item_group', $item_group);
- $stmt->bindParam(':item_spec', $option['name']);
- $stmt->bindParam(':option_relate_spec', $option_relate_spec);
- $stmt->bindParam(':item_unit_price', $option['price']);
- $stmt->bindParam(':item_qty', $option['num']);
- $stmt->bindParam(':item_price_bp', $item_price_bp);
- $stmt->bindParam(':memo', $option['memo']);
+ $stmt->bindParam(':apply_key', $apply_key);
$stmt->execute();
- }
+ $contract = $stmt->fetch(PDO::FETCH_ASSOC);
+ $kind = 1;
+ $related_id = $apply_key;
+ $title = "保養價審待簽通知(".$vol_no."," .$customer. ")";
+ $content = "待簽核";
+ $content = "合約號:".$vol_no . " ";
+ $content .= "客戶名稱:" . $customer . " ";
+ $content .= "案件名稱:" . $case_name . " ";
+ $content .= "時間" . $current_date;
+ // $content .= "prepare($sql_str);
+ $stmt->execute();
+ $result = $stmt->fetch(PDO::FETCH_ASSOC);
+ $form_key = $result['form_key'];
+ $seq = 0;
+
+ $sql_str = "INSERT INTO flow (system_id, flow_id, form_id, form_key, flow_code)
+ VALUES (:system_id, :flow_id, :form_id, :form_key, :flow_code)";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':system_id', $system_id);
+ $stmt->bindParam(':flow_id', $flow_id);
+ $stmt->bindParam(':form_id', $form_id);
+ $stmt->bindParam(':form_key', $form_key);
+ $stmt->bindParam(':flow_code', $flow_code);
+ $stmt->execute();
+ }else{
+ $sql_str = "UPDATE flow SET flow_code = :flow_code WHERE form_key = :form_key";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':form_key', $form_key);
+ $stmt->bindParam(':flow_code', $flow_code);
+ $stmt->execute();
+
+ $sql_str = "SELECT MAX(seq) AS max_seq FROM subflow WHERE form_key = :form_key";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':form_key', $form_key);
+ $stmt->execute();
+ $result = $stmt->fetch(PDO::FETCH_ASSOC);
+ $seq = $result['max_seq'];
+ $seq ++;
+ }
+
+ $created_at = date("Y-m-d H:i:s");
+ $sql_str = "INSERT INTO subflow (form_key, seq, current_assigner, update_date,create_date)
+ VALUES (:form_key, :seq, :current_assigner, :update_date,:create_date)";
+ $stmt = $conn->prepare($sql_str);
+ $stmt->bindParam(':form_key', $form_key);
+ $stmt->bindParam(':seq', $seq);
+ $stmt->bindParam(':current_assigner', $current_assigner);
+ $stmt->bindParam(':update_date', $created_at);
+ $stmt->bindParam(':create_date', $created_at);
+ $stmt->execute();
+
+
+ return $form_key;
+}
\ No newline at end of file
diff --git a/wms/cont/api/postSystemNotice.php b/wms/cont/api/postSystemNotice.php
new file mode 100644
index 00000000..acfc49e1
--- /dev/null
+++ b/wms/cont/api/postSystemNotice.php
@@ -0,0 +1,20 @@
+prepare($sql_str);
+ $stmt->bindParam(':kind', $kind);
+ $stmt->bindParam(':related_id', $related_id);
+ $stmt->bindParam(':title', $title);
+ $stmt->bindParam(':content', $content);
+ $stmt->bindParam(':haveread', $haveread);
+ $stmt->bindParam(':permission', $permission);
+ $stmt->bindParam(':url', $url);
+ $stmt->bindParam(':creater', $creater);
+ $stmt->bindParam(':create_at', $create_at);
+ $stmt->execute();
+ }
+}
\ No newline at end of file
diff --git a/wms/cont/js/pricereviewAlpine.js b/wms/cont/js/pricereviewAlpine.js
index 6c6ec7bf..03423d76 100644
--- a/wms/cont/js/pricereviewAlpine.js
+++ b/wms/cont/js/pricereviewAlpine.js
@@ -1,7 +1,6 @@
const pricereviewCreate = ()=>{
return {
init(){
- console.log(123);
},
modalShow:{
elevator: false,
@@ -17,13 +16,14 @@ const pricereviewCreate = ()=>{
pre_order_date:pre_order_date,
address:address,
progress_status:progress_status,
- total_spec:0,
- elevators:[],
- case_name:'', //案件名稱
- contract_status:'', // 契約性質
- pay_method:'', // 付款方式
- startDate:'', //合約開始日期
- endDate:'', // 合約結束日期
+ total_spec:total_spec,
+ elevators: hope_elevators,
+ case_name:case_name, //案件名稱
+ contract_status:contract_kind, // 契約性質
+ pay_method:payment_kind, // 付款方式
+ startDate:contract_begin_date, //合約開始日期
+ endDate:contract_end_date, // 合約結束日期
+ brand:brand,
modalElevatorInfo:{
spec:'',
person:'',
@@ -33,7 +33,7 @@ const pricereviewCreate = ()=>{
permitNumber:'', //許可證號碼
brand:'', //品牌
m1:'N', //贈送M1
- months:'', // 保養月數
+ months:12, // 保養月數
cycle:'', // 保養週期
method:'', //保養方式
checkYear:'', //竣工檢查年度
@@ -43,7 +43,7 @@ const pricereviewCreate = ()=>{
qty:1, //電梯數量
sale_price:'', //契約報價
},
- otherOptions: [],
+ otherOptions: otherOptions,
modalOtherOptionInfo:{
pr_no:"",
name:"",
@@ -51,16 +51,16 @@ const pricereviewCreate = ()=>{
num:"",
memo:"",
},
- otherOptionKey:0,
+ otherOptionKey: otherOptionKey,
currentOtherOptionKey:'',
toElevators:[],
toElevatorNo:'',
- serviceFee:0,
- remark:'',
- penalty:'',
- deposit_rate:'',
- keep_rate:'',
- warranty_rate:'',
+ serviceFee: service_fee,
+ remark:memo,
+ penalty: penalty,
+ deposit_rate: deposit_rate,
+ keep_rate: keep_rate,
+ warranty_rate: warranty_rate,
openCreateElevatorModal(){
this.modalShow.elevator = true;
body.style.overflow = 'hidden';
@@ -77,7 +77,7 @@ const pricereviewCreate = ()=>{
permitNumber:'', //許可證號碼
brand:'', //品牌
m1:'N', //贈送M1
- months:'', // 保養月數
+ months:12, // 保養月數
cycle:'', // 保養週期
method:'', //保養方式
checkYear:'', //竣工檢查年度
@@ -141,7 +141,6 @@ const pricereviewCreate = ()=>{
const price = this.elevators[idx].price;
const qty = this.elevators[idx].qty;
const sale_price = this.elevators[idx].sale_price;
-
this.total_spec ++;
this.elevators.push({
id: this.total_spec,
@@ -167,6 +166,15 @@ const pricereviewCreate = ()=>{
removeElevator(id){
if(!confirm('確定刪除該電梯?')) return;
this.elevators = this.elevators.filter(elevator=> elevator.id != id)
+ const issetElevators = [];
+ this.elevators.forEach(elevator=>{
+ issetElevators.push(elevator.id);
+ })
+ this.otherOptions.forEach(option=>{
+ option.toElevator = option.toElevator.filter(el=>{
+ return issetElevators.includes(el.id)
+ })
+ })
},
openCreateOtherOptionFn(){
this.modalShow.other = true
@@ -298,11 +306,29 @@ const pricereviewCreate = ()=>{
console.error("Error message:", error);
}
},
+ async getElevatorPrice(idx){
+ const spec = this.elevators[idx].spec
+ const person = this.elevators[idx].person
+ const stop = this.elevators[idx].stop
+ const weight = this.elevators[idx].weight
+ const speed = this.elevators[idx].speed
+ const m1 = this.elevators[idx].m1
+ const method = this.elevators[idx].method
+ const cycle = this.elevators[idx].cycle
+ try{
+ const res = await axios.get('./api/getElevatorPrice.php', {params: {spec: spec, person:person, weight: weight, stop: stop, speed: speed, m1: m1, method: method, cycle:cycle}})
+ this.elevators[idx].price = res.data;
+ console.log(res.data);
+ }catch (error) {
+ console.error("Error message:", error);
+ }
+ },
save(){
const form = new FormData();
form.append('vol_no', this.vol_no);
form.append('apply_key', this.apply_key);
form.append('customer', this.customer);
+ form.append('brand', this.brand);
form.append('address', this.address);
form.append('case_name', this.case_name);
form.append('brand', this.brand);
@@ -318,10 +344,12 @@ const pricereviewCreate = ()=>{
form.append('keep_rate', this.keep_rate);
form.append('warranty_rate', this.warranty_rate);
form.append('remark', this.remark);
- form.append('creater', this.user_id);
+ form.append('creater', user_id);
form.append('pay_method', this.pay_method);
form.append('status', 'Y1');
+ form.append('total_price', this.totalPrice);
+ form.append('total_sale_price', this.totalSalePrice);
form.append('elevators', JSON.stringify(this.elevators));
form.append('otherOptions', JSON.stringify(this.otherOptions));
@@ -330,12 +358,49 @@ const pricereviewCreate = ()=>{
console.log(res.data);
if(res.data == 'success'){
alert("保存成功!");
- // window.location.reload();
+ window.location.reload();
}
})
},
submit(){
+ const form = new FormData();
+ form.append('vol_no', this.vol_no);
+ form.append('apply_key', this.apply_key);
+ form.append('customer', this.customer);
+ form.append('brand', this.brand);
+ form.append('address', this.address);
+ form.append('case_name', this.case_name);
+ form.append('brand', this.brand);
+ form.append('num', this.totalElevatorsNum);
+ form.append('salesman', this.salesman);
+ form.append('contract_begin_date', this.startDate);
+ form.append('contract_end_date', this.endDate);
+ form.append('contract_kind', this.contract_status);
+ form.append('progress_status', this.progress_status);
+ form.append('serviceFee', this.serviceFee);
+ form.append('penalty', this.penalty);
+ form.append('deposit_rate', this.deposit_rate);
+ form.append('keep_rate', this.keep_rate);
+ form.append('warranty_rate', this.warranty_rate);
+ form.append('remark', this.remark);
+ form.append('creater', user_id);
+ form.append('pay_method', this.pay_method);
+ form.append('status', 'YS');
+ form.append('total_price', this.totalPrice);
+ form.append('total_sale_price', this.totalSalePrice);
+
+ form.append('elevators', JSON.stringify(this.elevators));
+ form.append('otherOptions', JSON.stringify(this.otherOptions));
+
+ axios.post('./api/postElevatorPricereview.php', form).then(res=>{
+ console.log(res.data);
+ if(res.data == 'success'){
+ alert("送審成功!");
+ // window.location.reload();
+ // window.location.href = './pricereview-index.php?' + token;
+ }
+ })
},
async getUsername(user_id){
if(user_id == '') return '---'
diff --git a/wms/cont/pricereviewCreate.php b/wms/cont/pricereviewCreate.php
index 954f15b0..e8eaf216 100644
--- a/wms/cont/pricereviewCreate.php
+++ b/wms/cont/pricereviewCreate.php
@@ -13,8 +13,90 @@ $stmt->bindParam(':vol_no', $vol_no);
$stmt->execute();
$hope_customer = $stmt->fetch(PDO::FETCH_ASSOC);
-$apply_key = getApplyKey(date('ym'), 'cmea_apply_key');
-echo $apply_key;
+
+$sql_str = "SELECT * FROM con_maintance_examine_apply WHERE vol_no = :vol_no ORDER BY create_at DESC LIMIT 1";
+$stmt = $conn->prepare($sql_str);
+$stmt->bindParam(':vol_no', $vol_no);
+$stmt->execute();
+$apply = $stmt->fetch(PDO::FETCH_ASSOC);
+if($apply['status'] == 'D'){
+ echo "";
+}
+if($apply['status'] == 'YS'){
+ echo "";
+}
+if($apply['status'] == 'YY' || $apply['status'] == 'YN'){
+ echo "";
+}
+
+$apply_key = $apply ? $apply['apply_key'] : getApplyKey(date('ym'), 'cmea_apply_key');
+
+$sql_str = "SELECT * FROM con_maintance_examine_clear WHERE apply_key = :apply_key ORDER BY created_at ASC";
+$stmt = $conn->prepare($sql_str);
+$stmt->bindParam(':apply_key', $apply_key);
+$stmt->execute();
+$elevators = $stmt->fetchAll(PDO::FETCH_ASSOC);
+$hope_elevators = [];
+$total_spec = 0;
+foreach($elevators as $elevator){
+ if($elevator['item_no'] > $total_spec){
+ $total_spec = $elevator['item_no'];
+ }
+ if($elevator['cmstatus'] == 'D') continue;
+ $hope_elevators[] = [
+ 'id'=> $elevator['item_no'],
+ 'spec'=> $elevator['spec'],
+ 'person'=> $elevator['persons'],
+ 'weight'=> $elevator['weight'],
+ 'stop'=> $elevator['stop'],
+ 'speed'=> $elevator['speed'],
+ 'permitNumber'=> $elevator['register_code'],
+ 'brand'=> $elevator['elevator_brand'],
+ 'm1'=> $elevator['is_m1_bundle'],
+ 'months'=> $elevator['maintain_months'],
+ 'cycle'=> $elevator['maintain_period'],
+ 'method'=> $elevator['maintain_method'],
+ 'checkYear'=> $elevator['useful_years'],
+ 'lastDate'=> $elevator['last_check_date'],
+ 'yearCheckFee'=> $elevator['annual_survey_expense'],
+ 'price'=> $elevator['stand_price'],
+ 'qty'=> $elevator['elevator_num'],
+ 'sale_price'=> $elevator['contract_price'],
+ ];
+
+}
+
+$sql_str = "SELECT * FROM pricereview_maintain_item WHERE (mid, item_group) = (:apply_key, 'E') ORDER BY id ASC";
+$stmt = $conn->prepare($sql_str);
+$stmt->bindParam(':apply_key', $apply_key);
+$stmt->execute();
+$items = $stmt->fetchAll(PDO::FETCH_ASSOC);
+$otherOptions = [];
+$otherOptionKey = 0;
+foreach($items as $item){
+ if($item['item_no'] > $otherOptionKey){
+ $otherOptionKey = (int)$item['item_no'];
+ }
+ if($item['option_relate_spec']!= 0 ){
+
+ }
+ $toElevator = $item['option_relate_spec']==0 ? [] : [[
+ 'id'=>$item['option_relate_spec'],
+ 'model'=> array_values(array_filter($hope_elevators, fn($val)=> $val['id'] == $item['option_relate_spec']))[0]['spec'],
+ ]];
+ $otherOptions[] = [
+ 'id'=> $item['item_no'],
+ 'pr_no'=> $item['price_id'],
+ 'name'=> $item['item_spec'],
+ 'price' => $item['item_unit_price'],
+ 'num'=> $item['item_qty'],
+ 'memo'=> $item['memo'],
+ 'toElevator'=>$toElevator,
+ ];
+}
+
+
+
function getApplyKey($p_yyyymm, $seq_name){
if (empty($p_yyyymm) || empty($seq_name)) return null;
global $conn;
@@ -78,7 +160,7 @@ function getApplyKey($p_yyyymm, $seq_name){
電梯品牌
-
+
電梯數量
營業員
@@ -106,6 +188,7 @@ function getApplyKey($p_yyyymm, $seq_name){
免保轉有費
續約
+ 請選擇契約性質
付款方式
@@ -117,13 +200,23 @@ function getApplyKey($p_yyyymm, $seq_name){
半年繳
年繳
+ 請選擇付款方式
案件名稱
-
+
+
+ 請填寫案件名稱
+
合約開始日期
-
+
+
+ 請填寫合約開始日期
+
合約結束日期
-
+
+
+ 請填寫合約結束日期
+
@@ -136,7 +229,7 @@ function getApplyKey($p_yyyymm, $seq_name){
-
+
@@ -179,28 +272,26 @@ function getApplyKey($p_yyyymm, $seq_name){
電梯
-
+
請選擇
MAE100有機房
MAM200無機房
MAH100小電梯
MAF100貨梯(有機房)
- MAQ100強趨梯
- MAP100平台梯
載重(KG)
-
+
停數
-
+
速度(m/min)
-
+
請選擇
9
24
@@ -215,7 +306,7 @@ function getApplyKey($p_yyyymm, $seq_name){
人乘
-
+
請選擇
6
8
@@ -296,7 +387,7 @@ function getApplyKey($p_yyyymm, $seq_name){
保養方式
-
+
請選擇
全包
半包
@@ -305,7 +396,7 @@ function getApplyKey($p_yyyymm, $seq_name){
贈送M1
-
+
否
是
@@ -315,6 +406,7 @@ function getApplyKey($p_yyyymm, $seq_name){
公司發布價(月)
+ 公司無提供此規格牌價
保養月數
@@ -387,7 +479,7 @@ function getApplyKey($p_yyyymm, $seq_name){
小計
-
+
@@ -484,4 +576,25 @@ function getApplyKey($p_yyyymm, $seq_name){
const user_id = '';
const user_name = '';
const progress_remark = ``;
+
+ const memo = ``;
+
+ const contract_kind = '';
+ const payment_kind = '';
+ const case_name = '';
+ const contract_begin_date = '';
+ const contract_end_date = '';
+
+ const total_spec = '';
+ const hope_elevators = [...];
+ const otherOptionKey = '';
+ const otherOptions = [...];
+ const token = '';
+
+ const penalty = '';
+ const deposit_rate = '';
+ const keep_rate = '';
+ const warranty_rate = '';
+ const service_fee = '';
+
\ No newline at end of file
diff --git a/wms/cont/window-modal/modalElevaotr.php b/wms/cont/window-modal/modalElevaotr.php
index 045362b7..602e7c86 100644
--- a/wms/cont/window-modal/modalElevaotr.php
+++ b/wms/cont/window-modal/modalElevaotr.php
@@ -110,7 +110,7 @@
保養方式
-
+
請選擇
diff --git a/wms/mkt/assets/js/pricereviewAlpine.js b/wms/mkt/assets/js/pricereviewAlpine0311.js
similarity index 100%
rename from wms/mkt/assets/js/pricereviewAlpine.js
rename to wms/mkt/assets/js/pricereviewAlpine0311.js
diff --git a/wms/mkt/pricereviewCheck.php b/wms/mkt/pricereviewCheck.php
index ca66f475..48c64625 100644
--- a/wms/mkt/pricereviewCheck.php
+++ b/wms/mkt/pricereviewCheck.php
@@ -264,7 +264,7 @@ function getSignerName($signer){
-
+
@@ -457,7 +457,7 @@ function getSignerName($signer){
-
+
保固延長
@@ -497,7 +497,7 @@ function getSignerName($signer){
-
+
拆梯價格
@@ -935,6 +935,7 @@ function getSignerName($signer){
const is_renovate = '';
+
const user_id = '';
const sign1 = '';
@@ -946,4 +947,6 @@ function getSignerName($signer){
const currentSignId = '';
const token = '';
const form_key = '';
+
+ console.log(is_renovate);
\ No newline at end of file
diff --git a/wms/mkt/pricereviewCreate.php b/wms/mkt/pricereviewCreate.php
index 72d58e0e..2860cc2c 100644
--- a/wms/mkt/pricereviewCreate.php
+++ b/wms/mkt/pricereviewCreate.php
@@ -376,7 +376,7 @@ function convertDateTimeFormat($dateTimeStr) {
-
+