From eca89b67d631a0e2c5e883f7b7fd89c8bfa17af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EB=A5=98=ED=98=B8=EC=84=B1?= Date: Tue, 23 Jun 2026 17:45:48 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../01/260130_에이스플랜트 투입액 산출방식.xlsx | Bin 0 -> 167038 bytes .../05/20260518_한라지킴이 변경사항 리스트.hwp | Bin 0 -> 55808 bytes .../06/20260622_실행예산승인실패시 오류수정.sql | 37 + ..._기성지불전표와 실전표정보 차이 조정하기.sql | 65 + 쿼리/README.md | 19 +- 쿼리/Template/POR 소요예산 변경하기.sql | 1 + 쿼리/Template/매일확인하기.sql | 1013 +++++++++ 쿼리/Template/본예산승인오류검토하기.sql | 150 ++ .../Template/실행예산투입실적금액수정하기.sql | 1 + 쿼리/Template/원가계산.sql | 1827 +++++++++++++++++ 쿼리/Template/원가계산검증.sql | 1131 ++++++++++ 쿼리/Template/인건비반영제거하기.sql | 1 + 쿼리/Template/자금일보조회.sql | 1 + .../전표금액과 예산투입금액 차이 조회.sql | 14 + 쿼리/Template/프로젝트별기간투입상세조회.sql | 1 + 쿼리/Template/회계장부_판관_원가_증빙조회.sql | 1 + 쿼리/Template/회계장부조회.sql | 1 + 17 files changed, 4254 insertions(+), 9 deletions(-) create mode 100644 문서/2026/01/260130_에이스플랜트 투입액 산출방식.xlsx create mode 100644 문서/2026/05/20260518_한라지킴이 변경사항 리스트.hwp create mode 100644 쿼리/2026/06/20260622_실행예산승인실패시 오류수정.sql create mode 100644 쿼리/2026/06/20260623_기성지불전표와 실전표정보 차이 조정하기.sql create mode 100644 쿼리/Template/매일확인하기.sql create mode 100644 쿼리/Template/본예산승인오류검토하기.sql create mode 100644 쿼리/Template/원가계산.sql create mode 100644 쿼리/Template/원가계산검증.sql create mode 100644 쿼리/Template/전표금액과 예산투입금액 차이 조회.sql diff --git a/문서/2026/01/260130_에이스플랜트 투입액 산출방식.xlsx b/문서/2026/01/260130_에이스플랜트 투입액 산출방식.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..0c5307f62b8adaddf8e5d9346352e17e61d0e76a GIT binary patch literal 167038 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 Uz;pyE^8^@dfeAvp1DNj^02<^$U;qFB literal 0 HcmV?d00001 diff --git a/문서/2026/05/20260518_한라지킴이 변경사항 리스트.hwp b/문서/2026/05/20260518_한라지킴이 변경사항 리스트.hwp new file mode 100644 index 0000000000000000000000000000000000000000..529417dd31bc9849533a0f4e339a3f93850671fd GIT binary patch literal 55808 zcmeFZ1z45Mx<9-W6%}Dg2qLm*LAp^`fOIHb($XE$i#Cu_Qo5uYq&uX$8v#MOyW>Ag zU-x;>K6{_zyRZFS-}k@1GhDy*tToR(GxN;cbI)BvPdDbb_`G}5kiSbj5ERJy#SO@{ zKjmKn-!K3AeH-%Q9y0Iz;^G3CjRF9^{%`ufXavqcUy<|ozv=&zX6U;Iwl-zoFwnfsmc|L!vXH@E-qoPXqA@ZTlNR65mw z`LCByL7^wOKT8Tjj3A~EJ%}iP7DN|(TK#ub{Fi&Ukjs~@fZShu&wnZK4>CBAd4F_P z5KzAkL=4crKKS<6(`~RL{?+-X1kE%cI}FlQ@aFaqONboA7Gehew0^9>U;VNAkz)hK z$O826A0>M5{(rT7B2dxXAMgL`S>zZZ_kye7ssn&rqu0Up2Ea`KU4UBv=l~c1PyiqT zKrjKY0I&gY0PX-Frxp+3E&x8jJpclL`v8OhFaTs9hyh3dNCC(I$N?w-9snT6hzj5# z05t#&04)F=06hQ$03!es05bp!04o3+06PG3jvoO$2H*tX0)PW>1MmRw0z3iW1KKEU_q_0MIb0lnLSQASd}0qDbDO;~@>KPq?-IX1uZJQ^s3 zmHV^g&-VY-w@0pl%a<;Ls*r2tciTs{oQCW$NI&_H6yN~AR=M@h8^8I93&#H!O(5Uv zAEjS>_t*8$W#qtWw*pj#Z2zyd{IizZe`+7eEB;aX)$XtBpUa4YmGd7xQ2fFFt^XT- z_vdGk-(g_*6NZC*7;=f8hbw!q4eV$g5!W zx2#|HL>sTPAoJ7)olA%zwXKCcHqCSpWbXT{uXVTk=^(_Q{FmCS+OIvtknoPIvg<8W z9mEjE%GG{Q9<-KKYc@y>c4cD7r_WzoiNXHO2*3{Zc1EzDBR@I7Jvy*Y|GLNaBbNny zGJ!v2>;F>^vYKrMEnBi`i6PKRWG~)U5d)cl7_!>`rS@y~ofcxq{~Nvfmi4$ap!sK? z9Gc9s9l-a~Y_%VGknF57^`DGYa&s$~yS=QvtmlJw>yUHwwT}GD&smht zCIP*gt@~PcWyomgAI}(ac8DR)&CbopdH?wYa-8LXEF}T*Yk$n@Koc=2^t_3hbt5UC z2}rAd-|wIKjK5ho`#-3g35+ov0CMI0=kZ3)03*o%y)ohVOLZgPi$>w334U;e%(L$$?uLglJoq2 z-9P7n3C!isT@JY)Bk|ADIna2nUA_!?QJfH`b$bA_unF=atTyKTCGf!C=OOjwB5(t# zzawQn2LNwrNfGp$_mB;si-`&XRrc}#QWCt5EFj6KoCGd6EJc;AAqNV65W3LzORe%( zO(39uVuF0~4$-SI+@bj$`z0J3$I#?O_r~kGR|>r`)A8SihvP>^Jn@Q15A~w|p za(db3HRtC~E+w1wFSs7tUtNH6tY@5Ek}%7-S*(b271?1(N8`nb8B!F5Y?eIPMrOGy z^ZoDjf5+iB=-{a4NWnOgy#{HGfjpDNX}qQ4N^wIeXxfLzVM&X_|Vp85!R-c)Bx4V1H3R2698U%%$ORT1O zsUIJ6>LXl;p=w&S21NR~m<5RmLaSK4bv>R@w@6xbK>N$`h8Z+mZ94W_ws6U0&W@=v z!NTj?{QSB!1h*iEQ->Ry*~K-jqUa= z->-+W1q)-BAm=Ut&X7%i>r>NtLLPte4$NnID0<7&O;e)88XlAyMyp$LB@dJ|bO|?S zn~Q@X5ZC+2H~oHnv>v-mU`9DkM5T0V6%7x5gYImn)be`*)%Hm8_j$SD6xo30)n`R= zb31Z)iooG;fg{QTIrL|$TCKzGK8Cx}y*|Yq%_fXlZl^z^Bce7#%qSl(y!-m7Mu;7g ziK~3>o^2boB27pV8oe_ zmu>LKr-5deYdh+UfaRKK7Z0A>UHYb(dh}_r zzk&f_xD+SCLO*O|Mak{jTQ{1~Ne;SUSY?uEH0D^Pp-FGAk}a8A`KUfG^m6SK1UZeI z9W{;XGb<~Z=U>BXM_8{xhocy*zB{5^+mZV6x|$ue(FJctKhUwgdCkt3bgG1_of9SQ z;hIZv;j#G=wh_+u9mu)R=he%#Ztm*~O!wsHx}1xcDqG5t{oZ{Za@f^%6N z^G}tXF=rk2uDZKj>j2acr#JIdO)rB)GHlaHTySb+XG@rThgyet2l7qxGO}ZrbWa#k zY8vz`-drW*tzs6K7Av^LlDY(O=e-`P4mo7ltSc8DrM}o4iYpfu6h!0jk~$}l^WUg^ zgaSE)Cf>Q3S!bb`e)jsuI)2YG4*8&mG$unjZi032@3^*Y4A}Lut|{#zx43V^M=`S~ zMe44E@*`ls5jyWew=PbV+a8|Nn=tqGE7~{>r3tN+_K~0Y6W#4`sXox5_0* z(=>dGmf=}YPeJ7n(OoI{Q<}U=-DN4L`^7c*Ru(U_7x7Vmwg}?0!)fqQ$w-J-2uIg^ zQ_E^H)0>x&(@dLuN9_)ch=)tXHOxzI*qRZg)pt`9sC*Jy?3-Mb?-=-S;wC$PbgatniU3{@& zmLOre^sUDIu;hgZ;@iD)wSc3Ngb%wihjA#a&5Y)7MEMano04Nlsc~eAMfH3!mb=>x zbt9{Qqg3_c94xmpQ`5D$Vl?-%UUcJF%RLFsiEm%rNC-r>nK}kKP@&muk9X5mNz5|w zXP#{3VL+s}ih7;gUchUT^wrK}A_nu^+*0t}aXYcitwW%-0=c6n4I8YiPq!If&FWm| zT7G6b;k;jZw$)HDWUw%MA_I$xk~*_6#k~B@#WMD7>>fhx3WB@nxfF@<@xoSS+xcGS z%S4mNlqE-#n(GiZ)cM?J30CD~-HW`8Td!slMXXPPWv0%9>SOIvqq@DkMrB~MeO$11 zh;)3ctXeKZA!iXTtJ6cbu@~8pa7K zm{)k$uIG-ut`Rl4cfK<+=5e@@%YQy)L4YJncY45;dMyaHbcl}}Smxcd2$&%SS|S`# zUfb)v6ODaEQltqU1XHA0#;BT>)>nP*Iq%gj z3ZKn{xDMLwo0*#ov(e1Tafk7G&RzJGO|7ST=Y66A^aSDzB`13F7SK3YKcz?Su`vtILLzQn4!RXjNyf+S%ILJ> z#cU@((2%o2i!URUaz7#io^a3cn3>SQaP5P-29D56=KP|t7So)<<{W}q1xPt}N%SU` z_Wlslhh)OFXU8wh?CBVuMPAC7ki!1{F3N(Y;q%j(5dFdnRb2G>xXb-n5+CCjU@AlP zvpLVWwDS3>-G1c-VKkv!quaePDOJJHx@@M?c8k-Q4Sb1rDp zv$g`81~XF9`M79PH^Km|^R8^knA6n{wrX=Kfpkl1rLo&DdM~Qpc@B9PCaT6NsZ$=$ zKg|&tJoR;+M--AM`K1Yx8A9v>ywqtHK-a?!0o$^18xJ!g!5}yFAH?&CL`~do|Ae%t62U^NWW~N$H{6uHTnJTPjE7Q3vjQa!S;rL8j*Ab^G66)>@QZq&Ly{wUR*-SOhfN6(>S{&7{_9Y&(|8>UN1 zCsu+BVx>}qt-+2fB&9Ih)wJlrKpRaXUfl{#I<0d$J5~#Eoi} zstW!zu(11bGV>ALYc;(!IxzF%yteI$X7;ZdC$FJRI|j|EchnT+P;*hAX`N@&b=3fN?UUVvyvuGrp23ze zk7qhAE8E}m1nq@=e1D^iS=(U2W(S{x_Dn9-!CBkWS`y(}6hU(qCTal7I zywdK$bARdMMWQON&+2~t$~W}N62~d!8Uuf^_XeSq4u)0i-kag}VwJYVTtfRJJvt&B zGM`Qc&h^JCY#y+(<=!w_I}kOi;U;8tu!1dA!B_e>H+yE;I%?*&kCM9fY)ZfK-jd5d zkpH^!RRi<;v?FgBGnv5Z_7QrL!xXOjFi`7Nc2SqQUJSr4o0q8K9PKxs+**9r;9r9h zFX`6F$KK*&k*nAVL$RjJJA?(lbY+=4RC~8un6TGh;n}$3S}~De$QEmf6(W}U4Li7W zWOPnVU20<3(EC_9{j-p+q2Bz7&Bst0`p%kNj@7zr-~55rR~TS+>(C$mZAsXmboFG< z;bfa+mu2$8^ZTiQO+jBmi`%)`aF^**qDo7&S`)CM)otFqZRT2=;~-aHJef+lJ?VBI zfvR0jbR#`TGhyGmTg)4qOiK08`emrlAn#hfZBg;d`2GXbPK(ZgXR*0UXx~M0+T&te zFGE;Q`6FJebq_o^*Sz-Ut+(Tc7g!%KXXIA*uUykG(V~DDM;WVkW9raUse+1^sWrH# zKsZzFBi7o6%ythJS74hnURQ8W@b0KHYm7Bdb_sp!P|%DPqHwNMUiJ~^Ju+oa1-{aB zEYhIjn0#_x>9@0cpIK8iz7)E8ZWBWbLxrRsCPCceu7DjRFL6Yj^&$o}Cmw8qC6cNc z=_Z&J>p5A^snf4C3AEn~cC>r}B+mX~K{>hAc@`exom*8ImVyo8XM9E?DW`^xXGF)Z zn)V({#@Zoda2i`5>gT;0`0f+GZb`l{LX7^qQi;Sw& zQ0Uad7NWtUuY(o70nU`PK(Y1bq|=FW+_0yDZcAG$@5=MvgdA!;SblH@sY$@G35fOh zax;JJwFX7r%C$1-``MJisOvLK=XdfBbE{K?0_=5l8|XiXHmoOD80l#5$gP(1Y21?` zBgTbYJ(1Wp7b>D0Q*0IXge!HUdSv^k& zpBO3glGP`xx!Subb`gt~AJdDw=U{?@9exRhPlsD?y{91ZrP8mi`R#{fu&hnWwp5M^$pZ1JVuEx^KTClk29T0#D;17GOabannVg87~w+ zhTYyN!3cTy4Lc`K; zqUL0Q`sb{s4cTQ>mJ?$cH*`zgys=9I$NYP7>$J-~b$xrf4-9Sq`iC5{Fo=z(`!|*6cbFkuu z>Kj4aFU-iJq}{?bWo~l5kGWc;bV=KOddNa(_KWs*2*!~rk#;-WwVCVsSw!ekiA2+s zol!F7jNjL*GG(fEYWZoJS}=~JDXog`ydKfu4kQKRPzbP<}Mc+ybyzkLyI%UTD!`#zoB5+EVV%Zh;Li?ehmfd zzj<&)bwp#C8$tvp-lv%@6=O@{u zr(UHTv?iI0KG6aAdwCdIOm!6EcJFuY7|a!*q@2RSj}8;Rfw%;BQn!V7-Vr}EsZ)+$ zChMb`DPWnp7nyQa4B{v@E!+v_o%pu5?2pKvhJ)V{=L50+2pp|{ZkBZCu?`gyx}o?a zSL0f#Lv0Pvv55OVzAai-F^o4rd{6!=|A*FdV+v*#B9wb;v8`oKs(qkw#hB}ay`*R* z^3Ha8Y$u{0qI^#5b9O9ExBLg)x=nx~9w=I$S>G z*R;^DD)Qz9pUQ@<+i!5tSDa-7|T?4j(dh1V=hk{(9*zna#<-e=aF5! z4?TR~Llj;`k#C+VN3aHU#+M`itskV**zt!-WVE{Ya;xQ9)};*nP8UVl1_|ecaROCD z`dwJgK@&ZL57?SCwq!WETa-hu&P0Ii?c@awY~9}|)SpWRM`*P?G5PD7p~ynJH19`; zK@>)*2e9YOFV3^`DPY%)#+OBjycOvv=JBdv5pGubXM4?Y)->Hdr1_q00Ru)9G$_+ce8tABrO*%Z8qINK?(lwK21SU%h{U3ZSc z1P0?6gyOyHw)Jq$V5>3;pe(r*ttic8cT27&#YHM)_uYDbrPV|6`+<$CROjFeM{N;> z$tD|tN2lV^h*Dk*sQa3;Rel`|s3dFAJE`UfEz+frNOj4r_%PR0Svd7#? zbY827v0mV*F$y%>H;;v*Jb*_smd`a+aVXMZr69O@Ubtj^{J~iibB9X*L!SgvcK>D_ z7H_KkG38~M@}#$>=G1{vw=f_`qwY_&sx(=#peS$xzq3JA-gca@43lD#b9}DMddTxF zumB8ASHGWB8;?Eer5|4bhJlq12b``ur=&CSMX7(&s_u{IlJU)~p?{a1dywAY-=h*N z5LZq?_(hM-AxNz+l-roxvjE$ddibTBqrC_D=MP99D-C<%|liA^$yMK2_>Xq0UHzSY)0K;|W zYD3|49a@)){Q^&fDsBXdR&EFB*nLDT#6PXLJw1JF8l8~}4bos*=75MjC~BM?=k)G zB*9Y*upHue+GOy4^C!7bH??+B!QW?Fgq zL9v2YxcD~u)dk+RDg0vn9h}x?A|Y4Y$cgAW*RI}KvhJNn7%-IJ`*ZQ?ukhHT+hp!N z8t3NF+5P^6^2lo<^ht2WY3;lI(m}n^a$c2LJ~L^v*Ut4u!^zb-PpmG-<&{-z*?NgY z%1Lrb7+6%jba~DPgX8HMvBvVlcQ!f(k7aJ3!^Vu#jZ>)Xj<%DxHRm>NsTLr7^zevl zSJPrsYtXw0eS;@f_KvOMq0RRUy(c6zyZqbP8Jox6E01EV(oLCo;7mZ zDIMl6i`Pe#iIeO3!G2URrczV)+hZ>6!3H-hSl1~(){l!u5P2J65cssww30&)f-AUV zeT5%)h2bq539aA>ggC62D%k6+4&OAl6`)@AUed3$+f|Fr$=ao)zq4uoL_xLZ^-;;A zg7s{j=tTof%W%{Q#?;gNM7Su_j6`x3wK9&O3%I(@TQ-n}%9Fujh1sKJ$Ew@eJd62L z_iJ$HId&9CT? zP&iJm=ELZPn()F2I&~a(z&;s?!gl5!M&sd0`btH|J3XAZdXJzR7z06Ln_4LLBg#!gV|4kb<{k@e~Z6 zH&`91lL5mt+p*D{Y=T?@cVUBM67!VD4*4#*3%du^qlJFQm19D>^z!>6?Jv`lENxhY z^D#1)N#v%oLkriO(N0jSozEPfN6O{CP^l3>1fZ(4C#2%YLTaUe#yc?5o0yVKIQPnA zQLte(yFV0*+ObS8f?l8DgSiE~Fza)AV56y9%cz4qe0(8LC;#tQm!c*>ZH*PN2hbx{KA17RZ>+fJB?#{` zCazzK8>xAI(AW>XEeol)Wm_d?&m_7?C~U1SWlWJ_<Bvyk_oe;I$3Ki9?bJ*-lvJ{{=c4Hp5Og;Kq`cSR z47><*M@(>0S*%!xA-$qKWo{^GaG8FgD#pimFV5+pk%&+a0z8E~-Wh7mJy%{4-XWWN zVDs`kSw$+3$A2(Df%gR^9&_k>FHIIXEuJT7Q+2r!azm)CjVa|aL$qPy+fK%=(p0L_ zn1Oa_E%M{D{8AlGBd&!>Zx$pz+FfWo-=^)v7!rIOdSlqZDsAsF_;ntWF&ZWXIUF>BZQIMt|kZ(j>T94k;P3?+mHwW%k+UC=Y} zS&<9<0Wqnz9gdJ{xuia^V6KP9R6m1C4Dc1jm?qsmllDY_2$)oHNXp<$Xzv`R50g2DJpU+%w{ItMB0d;lXOSK| zx=IRm`qByWKns>3>dw~sz0t=Ll1&=J-TL36_l##vMjw!E(Pz%zsOHWo_G~F8$4pMo z+cOhxSWOPr2-;WdVSbcISj^>?PX}$bhKhN1Z>l^8KG(LVUPr2)Z8)1ZhTE`Xa_LQ8 zzS&&?CoJZ#wW2!o+^bARVcM~fnCVSPcZhwv((zc~18~uHz~SZji7MmSv5O8O=o|Y{ zIBQ?19_v;B7Y|*GM}@Dm+X9UDj)v2>c>5`z0;cjnjYxfjuteEGEcppzr+=|jUF^hz zwl{=!4#jje`rkul^$52cb}CWm5=C8eqPjG1p)J(C6^~8MEfemTzQkuRnW_L}YFo=lD#}v#Z=QwbA zkB-N47bo;>ZpxH3)Nk)e7Tff>gjE&&!p)VH!TN7T|Mhm<>6(qs0FN$+6(p|iL{>rMN`-7u}nx_ zh2=^K>GlhzBXQ5uY-pYytmZr6+w*7byWz z#KLpKBr}DnLWK9myJXJe(s%Ff*m9XpUXL@S{Sd1ydg=BdSN)J_tZ{Pw3k4L=QU=TShu1nEC~O{YlLnk%|Qzw0=NhCk$}Mc=6+ zK02&84LpQ_`OeIaRlpMe0 zG~?V_Sfpx8Mjn2C+o;Qsv?h8sGR4XDY6$Nu$x2oRnUi`1b<&%7!~3~VUZ)gl9R+%M zKbw10?z1Rftb2ZBhE%%ku08 zx}2LmV+0kIR6aAhx+V;PqiRO}>LpnyPCLpa3!&H={NTZqyu!p7F{11?c5efO!o)$f zhs1jV^Xlx|^(0eGB61`dh!<_EOX$9lVN}s_P6S>dCKAfsR^<^daus;_V`LkD_#tFs zd(Sv$GcqWh9vF#cPqQkpsm*v(`M@pFtEMt0Y!R=d4wJXTC^%uG+u`lydqKxFSpnie zA=E6&u@ftles&`byxc%bY>QJj;|yJ)+Y~GbHulE2G)O++&PIZh4o$9HbG>bd$Sl_w z4Nt*5{^O@W6Ji2maPUPD{*|bomdHNgnanL0!9>EfMQ8kFPpsT~-3~L{yiz^d#;kV| zGc5X!-K&q5k3vutCKW1^%cpL8m!wi-tA#{-!b%CBoQo*Sq`zHkW4QUAdx}Mjf2^!a z6N(32X?+J@Ny^O5XFSy|Ty}E2U;0JbTkTJtuIdb3qH?X++&TCaD1(tT+1fD>(F(A+mQwW< zy64yU%1O$4j4QnuYEtKo8M*Tkjo~`wB==pFq8kGf*my|@BaD6P_vRgVP7kq7ti)o> zLT-$yQdXrIKBF(p_gHeC5M5dE((Go9yzW=OQ8iQ*@u530X@X{2`@Acw@Lr~|gKN7O z(M3D;MPZw+_H@(Hh#v9XlQc6rv?r=nN|M@JJ&w)PxQEzCrL9xE{Bs6hAywQaX$1=x z>11$*(_%{u<<`(BeRoU&4|xMHQezzGC0SWGU!E7KFwF%%_-vN%1MrX=t|2BYg%wA| zZtXx{3Lz_AJ!09~fA5Ngt0f>-CRoQq77A3w|9 zPEl`idJAgEjzqvADirQ zw>AUTmhn;Nr)E0Jt@BkUST5{>i}YM)eJ?oIDvNSlLazy-8(NW9*YJUG!Y9OFqJ$$3b0Ks!#El+&HfQVS(2fxiSu1fNv~NKS#a4 zaL>`DtjANw&wfQD&_SRuaazHkwZX|Gw3O-P$P;{cp@vg>pXtz5ETsMy$Zcm|lo&-- zdm7bue0=iRWh&)W2_ccMah*0_x9~hKuRALN1(}m`Th-%=xMt%J?J5l-dfo6DX6b^` zR13f4k27T~ly+`u>Q}Q$k_)LwD{d}v)v*aLJ=^0S2$CuUEKc< z3Av+YZ~fs#puydV#g6XXGsnsohqsUMH)@C$hV037J9f$w3Fi>^ubAI%06}?PhFY#2 z@rOmhjZLN}O9AK2=cVT&IZrl`&NraJWh|6uwr<2Zxkxfg(O1r-RyRpINW^BsL zB)q*6=Nb8kVaa2(FNk5y(Atqm3`lpv9U-O?@in}UuQ48>K_H)6rpmOs<{#=Kk9|QH zX+WgmU%Wn%nBmUg{=>_rX>P3KMa3I{WMINI>+<4-H7Nt~n`zbg2+WL5m0Qg|dLG6mT_k9BXAG7uZH6GxyxMy*-eS5w}dCu#8ioSJao0KO}hdrYog^sv?HoQ_uWpFR<~(%arWm;u7@s6 zYQSz{`T6!N$+d*A`}qomvOQ49Aqfz;aXWVw6Js56os}L(xG0;Ql^>SM&qwx}KbA%V zrVF^CtOruV8@)~<6QCv1DC%-UJ=!gONG_{eM?s_zb`Xq)|5UgkHzJ+!0b1gt8vU-J z2c&IC{m$=|tQfG7LT~D!QIqyz+=(!bQd{&!K*#+q$y<_B1Pu1 z09T41TpCCxYpZvOjD_A<7~Wy38g42w4Gwld9Sg0es_|`SU9G?Wk(@M`9+g@N<9)nd zm^X$l?t|Ye+&{5ul6o!X4*x4q{J{#~gi&FPbC(0Ws!zh|_@;%qnr(wsbV7ibR*> zg28%uvm6EvTcLj20DZ(>|B|GDUA#0 zss?%W4U8z#p#D{VoDl^>5DlG7)E)P!)bJQ2KZL);&B(^YX5J%}z(hqm$Q#U~(k{6_ zvT|`@bWHOETJ^H3GjIQ)o%dIVKK3tF!mVTvv{zzh1q@1*hm8@QiP`dFc55=k{_4ZF z-&^f+-%)gXREy~F&Z`_4gwXqxRRAjULRvYhd0l%;w36IOKeB6Qgb+qEM`+jS zQfvl;$80se;zHar{-RVLglcOZjOr_c=0wPj>O<;Jd2g7zC6Q9!1M+^y{v91T(KiEp zE;Q=yU?I#3|BpJx*VAVyNP$C5Q5J5bWN&BT=zi}h4=2mR8OHK7tlS%|36i-FQk6If zi%;&OeJEV>?_zi1pdIX8DlD4P%8K5>5Xn{KZP&ejcyRO&bu{Q!vUHdCUT7n-;NTWHwxEm^k$DKb;k%zBIhZ%qsEyv64sTl z^8@?zshPQRuN6|prYPSW)NeGe#;+xb@Ov07wIW{0j8$af!ZB{ZKb#dnqx?wQf$-&E zn(dh*2~Q_}uHP2BLc_;DWa2tZ z)7+w!HTlKcdgG}#8v|+hh02R-Mcu)fIM%^~x?~BB{D-=S0d`yU`&H(d8{W{XsV<~r zcg!8dRoFC=_`2R0MGSRIsE2+^wb_?BT0d zHEf%_4L>dKEJUADP8@RDVO?v$|FxT$c1xDcg!;W0j~+eG*7}F+(>LjGwT&MEjMa%} za(BK3*UvjtW3b+K8RpRRC#r7qPnP7iErB`jyyqbw@^AmBFk_M0uSle7@=a_}y(PYi z-X(y+=^=1+&Ba__kYacCeT|GK#=Joa%i)OXE(#l1$hlL_gAnfO(@&14VX1<0w$-08 zbv6}p#7e6B8TIoM*`_2{ZJW#rzHdn7>VI%lm(zzFPd&ibBhS|=#W8VEzlk}NPTfBc z;21T2-toN_{ay87SFVBe0`T#N6Rvf9(M`x58zVrhN84((;GSxqOJ==1K5TK?Bj?;3 zwAZ(YIj#w=$P4m@wqF+r%vmX?C-OnMla9CZK9B;labARL@l`!E+}wI(?BM-e1i1G~ zQV26@X~AF&r-*PxmZM{*=oT-OAze9Da{`U_Z*hmi&mQzeVikn#cx!Hy$ooJF&-z68 zAKfQn;@i-W`k>Agw!D-Hx5RrB28Ue8fGG1zFdwwpJsB;CId`55jEF9COJ`O;2H4+~ z{4P-V=RRD}<9axu!LynO=cj;ytt@BPpBy*ZI+lEz!i8ij-(~8-Od^V#sy_8v0l%bo z>PErflA_`^nYNuxyH42KrB_xxneBtk=A-3oroKn5BMx1_F^=J~tVrc_x-jh+mn|9C z?X|iXipt9QRHpvaFl^0MqQB5qAHIB8D0u~%&Anz`y*9P&?x(3IIU;4^Frz%>tq{JC5Kxeferv`zvji-!%7#=g}CFAn&Y<@5SP3wTG-9diZ8l**)G_T@$DO%o`vs30P=kI(ghCpee z)e7UGv! z0G|bM1wz|fB7t!p`W&f@*Zdw3A!3_f-llD`i0pn(C0AKJy?Zq&Vn}Lp$Od*5(V^pOQB?fAFgLzU@nbuk)6t&d(-te}?N>SE}-6 zD4}_IwfK<}NYXfNG}_I7BEa@Uzdye6g{R;tug;PTM18BY4^)~aFR_$}ML)|?(f{7hIdAhGv`2>w0=`yZ|9#%`l zP}~8|e-IRzG57(5$d_a4H!vh0GS(=sdOHtgc@EO=+IxU)o@!fZ{*VX@azUcet*SAn z1cYt@0}?21qV=qmhO?06x3$jwg0i}-cQYNHr4X`bjBvVsGP@NHQO~J`=pcml=v;)z z;lWku2V@aJGS|cF21#iRTHFY98m=^=?cJ#<-@>Ap%xPe5mXbR$$*q@G>v8a|eVojTjttIq#GR~A(_ADckdoJR z9O-;|KeD>pu21jgod_a+ibo7>Hj<&sMM2c+FJfXT;@TZvov)NKYivKoiW9>NcVk{& zk&r{+-F3gXUL#E_a>8=Q@jUDckg0wiFJYHr+CfIR|4T<3jj=XlMCP`pY#X;j7XlCr;tn56$!<-%bewM!}2y@FsKPLd3Vy!&|YKTD6b_5joae$~Q#Eu=x z#EBHJe>&^+my#ucoa*~Gzey?!r*~aHoEibbV9~NAQzZj6VC((6&Z3WMV*Qt@*mLy2 z0Sosyy#&rZ=q8OgAL^2_VYenNjD@Jqxdm9h%ChDXuOMKwxC-A#%s71}%In3c%{!fO zJOt<0K%5iiY;qzR$93E}`ELJ}tB}+7(-z@6@@h5e3{HiIN?Nf6-J#vCJVIS`gU9NY`~g1CYcJS?<(2$8hJlYl|tTe z4)S!Al)D~Y58rm5Xz=sG>3F3YTBpO2Ayp>R3taDU=2b)8uxlahj}#c{R+#FWB(mSL zGW5!OwbTEn2(YtGwhUZj zL`~JW%th0M`I&pL5BrE!ZxASFL5+Ei4aWZ&82|oFHzT~1DznM{hpkfBOW;JYI|5M3 zpJc#_+`q|y2Q$~ZPy6XJoyvNa==yK(IdPH=0gvh-_dhwK@~;QV9;P0JRab%Dd;)T$ z1DZtOGRO>r(u=n7QOCM4E$H0Z)%*3dUD$j# z(A|EKcYUVvRI22h#11c8g-*z}P~l5*b|$>1Vub5#_DjMNnLiQxhq6(s)~K7z+=FWm zik`13$|9uCJ$nS60%}Z~&{~zX7Ni)^CYkb_O0>fjTBZNWx$i6D`{0ShinptLz#>+c zE3BfEFG3f)^~Ogo`9elK-)n;gTb=aK@YLCD`_m8(|B2%8ETFa54iU7I4lZw_}&*FsTWMY#|xxAo{>M+ul=`G@%f4SmgNlT2N4J z#|G|aEjupadD1E`{~UX(sAu9719tM9YX1Im9`4>=hcVG+cTUPR=i}a|Y)a0XPAQx# zrTG34tHi`L7O_A>6fkSgEZ-GcD3G71I-rnk81Fz2LIv(!7r}DWvcQ$-)k_agXrJ0r znuM1n@hKO0k78!$4MvdI_y%4V!#-A&OOFk-Oi1-;>_I^&Bnx{XAuebXd*1lg^jC zZ2gnO@3T(F$nSOdXWU=MJ$nCWLClJq=It>;z3lGgiM0N>YTel6(Jzj)&gdj-o0p_8 z>W@Cc??Hpm(C1*fC%r)!vBN6OayE!3xk1Q|k3~<(?YyZw=f?p5i49OF3gDuHjMZKD zkBD=Ke@J3`vJDRMrP=zv?QT0gWBuzO8i@|Nc&L!8Wuv70QxY5PCo71`D{|$T{hnwm zx2`mml=zx@V9lBW6u-|>6?F`j!}q=?#6dYBKlT!dRQmvkJQ%F zVmyY#8)rkkh!Tnx$e>@1Z&aKmnv(HX32UD3KW7iit|>eW99)~sulnrqsc0z?uCZa{ z{f5}hE=mYS`xgCP5wCcRC_A3K-Ax&%{*a!b!DFT7p?Er|#B~sz_}o)yYowXcDzJTT z{?)1MviUI!&%qt1w)f*WebI!8AbSK#?>ivQoJ{QBVhtDvPAlrw|5^Zp>8 zj_Y8CANq{(hoGYie*F63SZi-Oq|`)ysI6RrYo33H1Nt8EAe%BAni zqIVGvEp~f_m^&7ET=|HUt02<1cmaO$=|hfDT=RU(@S-^Zn`60+z{p~dfxl5kG5JEB z8h@;U|4KfZ?dSS22B(#zFx^ekFp)Q2ng#l?#-He<;N4t3%*N_jKJ*6-IO>XfN{`i6 z>sM*zFK_aIZT+CPJhfHxQN+jTc($T&hUWWIK?Wz)5;GY$!FkfD`zs;-KzQSgFL_Cp zKed^S8T^BNr@h`agS@PuInn%ZVx- zHG2e}y)G1hsVEi^ex%fK(!ZAYCD%a5rtHCuDjKtKglBm>GZR}_%|dQgSyh6|+3US& zQ@a+wcU9_JEOX@`Q$xnq;7YEhr>P&q z+s4q0yfi_I_v%fQU0l~bRF-BYnDk*8SstNI?);q^nWlUeQy76MCe9I!c?7aJln?5qegPh3iBhh2DGk>#6@_v=e_>01Q-6b1- zZQsRXoB6(70Y4zJgDN1+4DN>`*qhPECj~*xe@~&|!n`^1$R5{eGvM)>F?ShEnh6u}2@^G$zpo zr$OZM;xamv)vc;akFrvI%Q;M$)Nj+3%j4cT>Ke(VP2pG8SwErA#jjUGcKc=e8--D>mcuPLmx(*VeATxh^&CWr)NiW2GMRtyDXDX zRPuSoIDFug&Fxb759W)|U(aYuH(d%SoGE|(44i|cHF?GCrspUBdSUuJ+z;2z;5=JS z{E4Dvj+n{FQzBU0yCa#BB-)*ddenmPOH6p_;V$H0qvMmN7_fE4l_v|8RZ!(BSFn8^ z_+R$AgTS$@1YBj$K3~$ux|xP-ee^e~K6Ch{ zEauBU>z%*k7GerB%IU*(UqBAOyLr;dv6gw7dCBYd=HUw_>RhKm>>-NPZL$n?9lOV? z4U)&{%6l2WeI3bOAXn}Ij$m^aBTuBsX235{HfJM?ZiaGUs7H!)&+=zB>%I|BYuBtl zn=g$E?+8@2HpD`o7g4~l_jMMI-XSlGy~EG#6A-v%l1+mr@QJ|oxIe6;fR*ccP(&6+ zAI4x*`}DLP8@oEcU@;Nh(lgtu!TJzrj8?zKQ3G{ z^V5Pa!Oy&gg*th|)IAPP?}i#eG6l>ovNozj1c?@oYfzsjUz`MoWLAF3?K($)~AqK>tuEnwJ`}k?KfT!}@W{~Wh zj}sBBUGgp%`$9C>ZFmuafP&lA3t8Ho+WZ1B(k$PI2G4Bw5yhdJ&l)pKc6sBdVRtcR za1#nvCRlTp+eCwRj&czRBYrItueS;4U*5q}v-hCGZ&nNkQkgfKU?Cfs&FuXAyxowA zpVvH=Ea`}D_q%oi$3cEgu^`Y+zJE2M$~u*6CkWa4O|`S-x;IxzXP%Q%da+aEWEgl# zI#aQ38Wu%oOmB+(-Vq3*LaB9xH306UD|i>u>V4ktrbfo6(#Z|9-vManps@8N^zC&1 zR*t8shZ@@m3=1KDFS>uEQWK7LeNEgP+dG8576(vLQ^J{gfALNqcPE-D=RJ!AaOh;*}mb9N{n5M?Hk>$ z(g&DoOP*Avw2R_e`4;acOi$Ti9O8$jUw!~GgF9stcnnt3r}7-`;dS4B?8vvyC@mbr z>%5plKuH-is}SThEOGN}@apXcw@L-`hu=&;8*)|T8{V@<`()o1*=r@+)GOjpOv@6{KzhSQ_cEgVeM-4r&i1OviugH+x%|}g;Zxs<>!adwjA*H)FKUN3 zBobwhrWt11EA=Llb&kN^6g*_SnmnaDscb^Lum?Ui$mxzs<9xG;Rb#M#S9vW=E}^Cb z2K!!B2kbL#@O1LTxIc_UKaSV;ThM)TEPk8M^P8)SDhXOJ>8thxh|loOK2{ycN)i50 zoPa);M$Vgx{PY0p@D(p?AuPXedet&`V{)lwpPUObVu~dI4Gn#Si^^?nIY-2Hq$U)E z3byYw=}znvEeaQNp)^~$I2kF{Y)T_(W3Lwa#xu+UO&zU(>2rj9(grf1!mq)Ij?~2R z&`tf-tIULeJtDlq1gkIq@}Fa|=SNGy@9YA)^<#7^?fH$Tht=1=iN)B3b#G6ldfo3t z`yw*K@-&^CZ+uzY}NpMGLx1;RBpp*M?O%LSm- z@QY;zs34{~0aP0)aEwtIP~O|j_E4Cpr3 zK?&n5vIJVA z3NP5)X%=)qi``qEV2ub7Ow2|>}D6N_`ud=rg zq0t82H05wogi$Dfd8RaQX`bxqypnUiY(U55)hFWV4eMe9A@)1e^UW87KOBXZx-(91 zPZW0b#J4pAb0I$QW>ROv&L zw!DWU=J=H_-&q~lPvWm`JN?fP1?#?Qv1Lx6>^Ly|WUy-T6n@nli_a1@GMHx>0w8r7 z0;!RB*t1~&QOzh=_BJ^_rd%BTNQO&{??%B#3qhsziO3<}q=&_#sh*TaS*UETPp}oy zc+9mxbaRp6nG;$Hn z=|5Y?%eF;03n&7b@_5?}We*qeC_&RDP=zNzm)BXSyoXFckf#-9kLsh}hDW#5Eo zlR|SwO_YPV=t5_2Z|}Ev{ns&j>Bw0e!sW;L92ZPc-RMN7M!lG%b@q##uZOFqp26RU z%FvjoxWe7BK^3l|}3(s2L;_~zFOxglmkHlftch2ikZH4FzF$&X)$Rtu7A!j#}pP=E7uMvf|EC*a!!7hb?L_0CS95T0$;F z{DR5$mvsbOUD+f>iS~AO81B32F8>q;6eqObeQVe(4q60VE$YF_nVEtL z1YVp+pe0UfL#WFGKr5?OMpWEcy&_j?t@xtU=k3Y10`JHb$zmv$Y#u~g* z5`Cqf)4KbO*VE3n0TmISZlQHoWm-8L^R*b>w{RXVp3AEVW+F;cwi$6uW%yStiR9QQ zM3)W`ECZJDICRpd$J6Egau;3Ze5{X&8jpDnM6UASszrud0wO)hT_S}KhYAuI!z=qC_Mkb{F* z*1U^GXL4twqSBn;Uvxwp(c+s21sQb;#vmOis=bE#KG?V?{lU_0D?{?(;9u0lgHLmJ z4z)r`kVyUyFc#8JwJF?51fso&ZaGk~)thxa*5ndaWF5{RZ?)7-6TvH;F4mhuzYinIpoqQ6NvL{OPWPc zS|zn8?iqw$M2F~Az4)oouIUGQ=@%ZN*K$F~78|+{gwcBs!N+33&m_ihO!eJ^)%$ic zx`YKCEQ_ms*S8$1&vHR)0+$NRF5s!b78u35!$JnBAfAk<{pm`_`31$rJpbO;0L??CMPFnZ3JU^WN*DqQmywE!=||)K|4V9 zEqduS!end7;HpPVRMq^(MvNMM?9S!|Ab{{#-VMaa%>C9I>!#jy#I_HbdRKMZTXUwPHJ5uURD~3p* zm94#Up^_G}RtkK%w?kA-HTKzRWqi!AYGuVI79#dAM#*sC1la3hMtmmre zR(yrRidVLXSYpNGGZnm>)KtZ?>8XR7v+X3cqCz~)X;IWO&JB}9jDq1+<2hZr_U>pgHgU3YsI3s>o7N#qIWW``T#p)rr6pYYNerq2>b3 zgbU(^Cad|25O174w@bfry5*_>TK~;^T&7NMCYfMPgBuAd1c-X2u{(GdL^T(fa+%f@ z)IbXMxq==?embZ%&ffM+aU#IJJCfCT_}ga4PD=MkvqZcE0vyx2$*8dJKW1&qnfJFt%DbkTyFO%Y&IEjD)h zQDJ^K?q2U$oPM|9mZ(2iC{>t`N}y&E5q71B>-A7X2b%N74sa6{QVfw|4Q9L0X(bm! z=A2LQiLVA3+8O`|-Vp_~26iU_?i*4DoS&AL|i6LYl zEb12^R~YZ+W!lZTP)3U;YomnzzIB}qmw`+h!46~fNsZbB6u(&JMz()@B^`G0fU4`P zbU?$48e+<(#EEAr2R9f>(95z;-`v|K2^z?Vb_RQFYk_sBQME%?X`YJ=FR(n0Lci;; zrS>?*Jq*V6z>2!KW+|cem1t^N(wJyk+5mm73UaOdg32i)e*6^>7;#O z&7?};C>p|U`wvcu%F`&P_9;|US2mrY4p9v|_g0=Ftr8{|{}N~%D$oQ?s`<|^xKYo)@$0yLMjxrSTK{-uO{`p%m>*3D*! zpHvgEzx5wTm<5ZZxeoY=y3gkd&Eg$2kX@GGNq_~j1&Rwa^WyZEKG9LvZ{6^;SV&mm zWFMU4V&hqv?;qM?1<|Mi<~Bv18x70+H48g8%Ph5$(lO~sIZFjUn+CTdJLVgB!Cle3 zTTj2PgHUnz3RTE0#Z~O5;Xpfs3$G3r#~i{&DKT}dpgjd6i@hLL24tsD>nYcUvGsn> z=r!5=Ir&pgt1PB^(~BfOi0y3g+zL=$Bfh>H1J49gCE%HWz%f#uPi-F;EIw4gOxWQV zA8ly+7xDEbG0Zr+YeMUSRl@aoogn)#J;eFkm360XN$+nHH-~yQ63Fnmati%YW?)a% z$-_>qz;MtE3f5?`T_D4 z0(mMm$~mavoDqBHvaq2_su*@-XD7>VK4Vq+j)2r&$h9Ng_PSxyF~yBWsZ%wZmA9}b zekxm1CuK?Ia?0)*p+?{AHz=P`nBT6P_B~5*v?s=&>rsa8%m)0Kz`=HFP`h8XXutDo znF{Xtp&2V0+PY#^r;xgNZo0=;CfdyM>tDFNy_>M1UmjeZzbG)|IUa_GFycg3K+?Ib zI5M0{R9t@XOT8PlwaUVy#KkcMZwHm;-=7JzPthKjovm@ouLBIIm~DG^@c7XHXsoQL zA@`TB&+yW0#&*i-2t9O`6PND7qBb?SA-W{AH@3MVI>bV4(u|iw)n_xl!{B@ctV>4s z$B-8n3)xI^l?Sf{T9W#J^?)*m0T1x?h2PJ$dh<*5_3z{a$F8Esg11B4NB-qX%rjYd zABDoX9Pi5(lCfh?p~EsAR9)uy7E=j~2J@w!_Jgh$DL)ufwjX&GCOxkuZ&gB(JOg`( z;0YSckIlsOHXf|jY9NgKPG=qO_WxU3vAJylb8)`d5LN#%vKO!wgGjla$d%#QJ*cd0 z2$Lv9#gO=fVIIp7I;tijwE04D8QH>^>+Akf_`B3oU@!lZ&lR+UlRJmKe&mg zcYY~0kZDKWwrGq1XIZQZtpL_SPbJ=kxk#h9J|#b)`-sP zpN)&!G(NnKF6nr+9BAE5BIhD1vg*Z^z}L#$ z1(6e=fXHpqsZ15gL0ZH8x98<2-$zCK#Bi_7W- zBi70rX~P4jw^<+oGaRYnVP?wg!THQa;g4+y#+vD-Z7op?`W4U5FFCv6#jfHQ(i58vqIC)zLc^hzu^ z?<5|aeAY+q#6*;(TTrWTkY>Hhz7ecHLEEJKrdcC`By=w=^W# z=f~uXAhZ^1WU5k0iSA!~`pR2j3pQ~GXQkBqc#2A`I=)-kaScQ&V6kgAI54YedeM5y zWO8yc)_t_0UtzlB+p}LPGp9tH6?1YL7g{|-(-jH=7G|)-i^cgE7Fyz|O1U1!1T}Rc zpa+(~C``lHBtf?Zh67EhTjwYvRGx!eIV+OkUNHpz!s0_bn;-ZRUXWG*lMi!1(@X9> znp0Igx7N~I5E0!;2L`d`a=W1>pXlUP>{E)~`$tHhD|5CD8Dp-$ z92_{|wFK=M699&Fa%RxUUwcrvTh0?lnY1paZQa#$Awqo02Kv9{r@-#4(KQWyzb97| z12mlrnl>D$v|dLFXBic}+hzMX!Q81lA!llFW#a_a=pa}_GCqX0?AR1Yu9YfMl~&*` zA-C10>dQhmA{GTZm`#?`nY`S5y(PjfKSySQp!yB{O4&6@u&*EjJ6XEZAiy}+E$R8~ zC^r*WbhwBoalUi*QS)RNKxlV|{NfC#{91{up9&M@Qdtarj(!+#Y!7YP5Q%VXgJqe!j(lp@^W~*(u@ftAeI+ zjW5p=190Qc*oA}JLb2R~VY4B-rqvq|w5j|5fHpM8LulJ33O|Il&u$v|t)!Q7Q3qxs zH|$OPp7<^mNy}Yz*vz_SFnoozbfRB7GX2<29N(73HWFT!8jNu}4dm-tG905OjJ8#j z0v~1UjQA#QK+TdW$N>8lkm=_dv#4U0K_E+ zBzcMXU{bK4H!%FZ8ipwaMP~{*KMbZw=n5$Yb?l9G?>r~a8kNbS1nZdTMM1E?uvf7& zsd!x`3AnjRBSY#PmChd=o>X5zXp?Pjg=U_dztY|dV|HLJG-3)~-Ts4W>tIyQUU>ye zCH+XVeRVrrXbe*=IP9Kd(+gNuOpVm5PlcpJ2Gm{y;wjg0(7oq-{gSP#CSY&ujp#Se zJjgDh9H2E+XWP$W={>;t)o(n=^$pii7Q1m~_}=!`#;`Qw7AWQaz_>O)0rNZmR=Jf6 zdxs&ZLTFIp^JKJWZzinnS;SJ#DCi<1CEc`%co5-`0dBiqyGz3ytt4**jrzU+pGi&c z8?I#09J07mBd1Zh#lY%s{+zNJnAp!)Z;{443ehM}Rt>DHHk}Z+u<-k2OwpowlZrek za+^(UMv>tm>#GE6ECgY7WqV{X8>vMp=(Sn9xn;9CfkCqWD z2S(+&Qp9wl1%WSQsoX3Fcc*YNtwwsuvybL7MWPh9M`bE-o+1LD18)r4|MCJ0Ct3btAuVsz z+hAZqMFbabPk!OZIAg`s>h9|Cs^XT=jx^D?jRNEO-=Z{230=*18g_6&kS0YwLp)u% zgRiD&^sy2(c!;z^SjAryX1-u(2}VnZm{Yu1POs2HKNu7p4K>yO5gk>+B0gk!#kOEW zFHKJT@~U|>hftnTvAA-zdb$G>B>HkYPT9Jn>J^{SqL*RZxd$}gGpVAf^SiXELYXSP zXW6IHLyWg|_kn4ti2 zZV84XHp^Nl;l7^;Qov_|a(97B7)qAJqA2~;%HmXrV@i;M`UY>d()m?c%p{xWIh^5} zZM}(+s#S^N5yd%qt*>t~SMYG=20I%mR8YS$uS{-P=fsoS?y8;HtPTbV zb=SDz$1|N=4&>O%+~jz2$2@O)93l2 zuWKn&$%^u&3LStwGmK0 znClzxRvRqnK$f2?>icqUkf=i3qjvue?DnHU?2Npo7Y=o*1aoxRJquWO$NXHyI=N7c z{Dm%Ull*7mXJ&Bk2paoVx9ZQ5+cFjbXjDOH-mukkj2s%l?GIgDk?0g&2)qe{rWFiH zK;g?)XSF$@TF>&1tu4Y4?GxHCwkr0;JbkpCYf-rQI^-_r8pDmJRe+w1T03H}7>vRHl4z#Oq#vHKppim>5Xi>nLkEdO4}3 z%+Gsi2wJ|mz3r1>!3qUo$EL0UarL$~-e03Q8zx;HbZ;cfwhq9I> zgzx!OZ6fj>4D813gomjeu)X1h=i!6=c^my-yN#@nm#9$H|8O>c&*Q}6dyYI6O-+g1 zeM671uX6at$Xz%+g1B=ts`#$!vI;ld=koJR#C#v4D3Sv9_gH3I%ihVL|G$Js0E;DH zm=+Q@;joxNTc#e~lq%NGOA%}(0E&YUux*jryn>k+x&{30Ex|1Gb2yJ-j;9*)vyVD_B6xrh8G6 zD}#g-3iE5JtfTDEi+zfDr1UlCR{C5E%^oE+;>ab4kANW;Jm_T2SDn|ry6m)$^IVYM zV7>s8Aysj_2*1JMwI?^3Jr}fE^S6MQ$)R-wh;zY<;_@)A8^lwiu0f?`95*Jv)qLwD zpl1-a7|-K+Et;yk)$bZD0G55Aiyf5-PV8MPkD|Lzao|kz^9eMo<0kB-w$C_xm$ENv z5<4>|+a0d6FOj;;BR%gkz1?USDi#RG_(faQFt4<-p-n|x`SmF|1rgSiIWiD~K88Yh z39xpMh}ny&1M_*UE8jEx8$Ap`55RnF+=;u<>0Xzj>D)y})wH{`@&O*;q1Gd8h#t}t zkh*9c9eb|ZBT1&4wIs2%M{kW1Tk?=1Ue$|cAGF0}nY2x}y7&jBb6w}}mCgl=Q4J-z z?kEgtC=(oJ6YQF%*W$V{oTo`fc;yGG3ZCUd4(A+Ji7IhYjo z^e-je6gs#7@;g~Z(|{IE5wVoC&oTDD`4QjIz<*;gRHlf*C>>foObn)6xJ0t`-K6|C z59;f`7fKjeFrF=yMk!}%;1bJ!K^D>AptSy3i;MkIaUp!}+&F6-(Aqbf*5OIgPNxaf z6)^I}5X#T~_wuD}1y6RTM&urRW}8iYgJiwOwYO?g;GQ?>l{W`oKc3hJvrs7v>91M& zYB8MpYLDOLDNb!kQ8>?wQx9foW%ar@MK_zJYLI_JDWFpu`@Kbxq8hoAJ(uzcPz-4L zeDa=(p0IR5k}<`ZS*zPq7Glfu^pXPBdB-THm-uxN^+ep1%49pRQ4U>N1;>+fa$G{X zy>r;)L#kLD=@aJ}=+rZ~cxV3;)HO(aHF~U%b~bwu$v&Vsej}MC4nMG`ilb;ltC!Vu zjW4v6&gOQf%{}wLx}}f4bq7De9j2<;4vk{mwd~ueF1U;{{)gk+U_tp>+)pm2sO*W$ znHTrW1F|`Jfz7$`smv z{5kfW6lc2ozy|Hr)XkbpzvgxNz$Y?8$~fwO0plQS(jBNSDLf&ox*Gndd2p>shGt{vJ1N zy-=B&GClvZcS#YZ#vyjDZ9cLjNI(6Q3JqDB&`Q ziEMIm*`bax-EZF$Ysx;r`!%*>ZWlb1b@hb)W&KM3=Kllz`?#4E6K1G>1_zDkOG~iK zy@UNot7$b=D$kTG)B;tZO7lTytETby_czB!CGB|s=uG~%2UmALk6D6p;>t2OfKYyp zz(GODrh-0PIy}!sf_&Cvg>)@b;hdk1NFmHo@i<`GP2)V0Alsa^+uj4Lx^uUIRhQ@5 zl8{kb4YMn*`t+ILoVnb`J`0(Fk!JINV7P$iy$#j}DrXF95!+ zmV4&~m$u35s%k_>x}91sY$JrOe^HkhlK)YcuoeHME^+=Un9-9LzEA8KrN+D@=ag5G zCK`hX1i~mO8QUY4r);}5VL{49-&CFEsvH(8-lv2cHBU1wt?K&Y)W(RzrSSPozk!C^ zgy_Ut8=bG_%K5)8rtx$auA=+OFitJIqAz1iwsJ^_fRf7ycLYq{I#HVf0=`nVQ4V!4t zEXZ0E7UQr}H>S!Njl1>H+*T>@+2_4+hYuRyBFvwgfVWvN&i+$R!d2Ub*{27>F_ghS z;#dds?>M&C&G=$e5V7A~X?;+o>CmLZ2;Sx=9eGxigl*x=%}D$s+tb)xVm|968g#f9 zr0iF$3*U{kVY-rA&FE6*F!}{Xd8T&vo%)JxU{C3u^oe@uwLUc}k*k12oJo&l_D#?*>8B z{=%eKxG*Q>3tY$Cc^oE(tPSpEtJ|Fl*&P1ErA@h2fm|p<8|wpek7z#z)ALT|WFAPY zc6_Fr*-Q8XKf~H24E@QN`l1pVSQK-)}WpCVG49${kCWKU_KH=Vli; zC1IJ|=AU>B5{w6?bJ<}mrRRjtL-8D+LRD=^pF?g&VY6;r*!$(-V5QDEP{r4sKdC>c z58|T;J*b(aIAASXixl$>bjLjuxBYuAix*vuzfsLUUpT32`9$OO;ts241~pjbb+XJ< z8>>VhIr%g;ZAB4NiAT95_d(t8}&Jyr(Q6!?sqFFAaOO*-V? zN3ohIGZ3puSnu!sXX=AU+_GJym zhj$by=;?gh z%0-qGkeDh8b^FD0M%#+beZ3llr6-Q2=!H*<;#wO zWYe#eKEXfYQ*VR@zZ{ZwxMyfuEE|Z6i2iRhAz}-EZbIA=2kpJ=?i!4?Jmt~r@_`~8 z#9SA-GvxO()Y=Mnv-PS71v8AT!60#i9P#HgQWfWROF+eTGa)Jl$k_=MGjcqnVkET* zPOT2YXU}lx&o+Fwm9)-S7B)xEwONU=7EM>|;9D>9!r#~nHMak#+dw6I%kkqY+b;9- zZ{Yd;!-ZDpgkkG^-j$RJ>ln~9Eo8H?rwYodaP{clZ#0pIWjChPn#m(fP36bX&y8f& zSlum{kx`PH;MA^)xhAz>dZXun$&=K~rsbWiJOjB+l#wX_tic3V@yd)dG6Wje85VQL zA;2>JocW_Y3S}P~%NX(q98m9(FG5loI2-4QmYpb?P32%KeC-&YV zgC#aPIrEG@&CyXJzI^PD{0^#jbBNrfY07?|{x`X|lakMVt@YIQXJ^ZA{ z*kZK%jyAQtESP6V@e2eUir}8NoATVVuh6XL`^HuOu0LX}$R(=y5Wf^anMj8qFB2%Ct) z!zLJpdnh~mC@QH77Rw=^0L4OHk|?hN_KDV>FPtgA3>=HgGeV^~gz7o^TWa9(1DYKw zH(Xr_V$~g~Y~--~cz^e}?05R8?8oK@mHm9+WxwkQqbQQu5hdtCkL%*ZR$U`i4c1>N z0v>s2(J^G9+z0h9(S;L#Zg1S=Gnm$E3N1^^%H1Y|sR_Ai7PF6*g`ffiKt*mK}XbVBt~o zX!Z!9t&*8f1ydWSmp$BjDMs-0<)PSg=)uV&-Q>)rF=##0>$|$|U-A~8KLFF&ctiDG zuZHrPgM&X_v>Blzj~5pTmT&OnHwQ_v>t{>4%Fw{Hg8}O+S|gVbj#=b}DEV6CxF@qP z1H`0t25EB!8*YA~obF2GXyC&&%1`I2*s^c11=T$ptW;OQN7>H!3X|QZe#fPAUzKi) z?)iIbmszY8-uHjC;j|wgpoyQ@a9>}(oG|OkZ$!;;<&J&!NISX@Ji3n4MXkUI7+3M% z6R>c){gcKz)^!}X$kr?vj9Zea}6H`gJia)wpGsDIR!W3%nb69uAIXmP;O%Y zcg`ZlcfOhYi{eDnR=;fO>v?G?LTV}mBBV%^AVSJ>|2CQ=&=_eWRDG5ZbJUSjKUF3v zN`uE1`9+e+h8gE5(zWaY(`o!56y1FkfvIV=Fx+b3(2XYZyjIx>LikSpYi)f8s;#^I zwYL6Ny~}cS{bz}BBG3C_@H+#N#eK{(=dG;2%Cy255>@O8sM86tqFH=JQqFVA<-b*b zAtjaBqggk)T*l>qPNBAhD+`ucTx=SWC=bW;?(ytX@>*ayR7XwNB;7b^uKxyd&YGm# z^we=NMoh)05O(wbv&guIo%}J<<_}pD+bf|T`*gK*=cX@%NF{n!vz4AabcFlYQ^Eg! zhUI(8hj22GvK$3#=yu3lYngc;9n?7E>2(iYA6ER7vMjDHg64Wk)=6`H>#(^l{vVp_ zKG#t1raH13;mxNOwsi)73%60<+?x?Ms~(>T5sO9{eCEP>!`j%mfU^09lg9SGXw86d zollrepRGWl=`_qq3`Y>b1DHI;@4+d8+n9pVS1HEJ>5Vn}Ri;J2+tE=wJe;_HK+NOS zVotN%LQ1-ULilS2GoJa`_@x^p$;k17;f?WN*J5Y=(^D-_VL$8s&lPs^-zw~4+Llg} zTu9F#M9Y7y&ik^-T0wYG=QZj@G)70m`_?0O2iQTmUOOBcsF4+zFe1Fe%ZMR(cvp7t znOrEk{9;ozhLGzyEFEf}R8Lmg^9M>>DGg|jqD>b0Hx)w*>e5Omhu|>*Hp;0}@{;&F zzs?~sfyuo*+Ov(jq3kjjV*u)LC|5^s6-!W^Qux*n+JUjF>J=I&x>{YK!L z-FNwBCQvQ&9HxWeJZ=r1a8U3#kee>Kb`G3e4EOqWc*a9*rhPf!2n0VS=PFvIdA0iY zh8G{Ik#v*mPJs~={ytzP;cyN1LJ6WB2_*YI+;2#G`OSK&9uX+0@U8Q3;@UL($_%fT z-&+`t(MK%|3xIKgnxC7^s;!m9IMKWEZ zACJUHPZ1}#)-AP5R692jO>V%CG`hXNreqUnU4PPg&)Yn^VG{}s{%wBjrgA?v;RG~l zcas!VW8n83!Cyoa&@Y4xF0&*gJXpQ;#IgA^Qx!LFCb9OWpz;c2RN?Xd)_CuzYe%47 z3TSsP?k)_sn5*&0MxJ}M?%?pZb@x4$!Lu04c@C863RYf5)hAWLZfxe49OnLZUk&<- zo>7YXnilfCwMr+WZYZRlhi=a|Gegbya=WWJtDjUfpvfAq&vkJzPo)mq^+>d{fRCnAzl;4Ni1HjVD($UW|lT>ZG18z9?`)Zoc zC+eS!yX2T^OzcyaW=`b{VJNNU7VSpjFqkc!dWi5VLNa95Vg$19PniCjg_qVg2PmQ9 zusx+YJt-4vxo0vBl?shy-GDer7CiVc$3UZMoU?Qbd@>=OvKUjITCU@=Q4uNGPYh5s zY>NhZbDzPdX6y{pXscybJN1U|=W^l1H<@u+Cht1hPaf&&zd3Oa7=~_}<7=F?4^%YY zP&mwD1|c&bp{Rpglv?z=5QYs}I9O_JqNQ9E%tCRKhRiWr`Kl&cl95 zWv;T`D|ywSQ7;wvi)Oix+@SEB;4hkG?{ZEBmz&JBviq6$_sYSPpHzHkL~AB>A#~j2 z$2CZH_&HcW8BeZ@fM??W+kZc}^*s|4T$pr(o}-_+$H*&8XCnuEgJ#RvgpX#++Kjqy z8TVS!Rb})q3wO*ZM<*+(GlkY$Q8$DUuDzBSX5h^*RF~;#bNs1$I1qE#JuKkBssT^i zYL>XitZ@D5Wf{gVGp;>m?u+jwiI)tA>7(ETC zQ@=1nfwVs`!}~SP=@#j^Dwt18;L9&Bd|uIeV5w1iL$$A7j5A&pmp^T5kOzKh$;Pow zpR4&~*3F9gTVh3d^H9q?p@!DwaOPJjVrAhpNn2{6gkKo^n1>YXTPHCN*vEbvlyyos zo+e|xS3~)YN0x#?v?P}?ca#VsiIn2E)F~>*ox##}iheVjYFOOeuYwVE#hR=cJ=Z za?!P!%9&ykosE05C3KWUNC;X!BhFg(zBM)ac*_%|dq80cnmor{!+NTC0+#EbnlN-2 zt!uGSFR}TG(ns;l{WvJl4R%toZTi zS5QtM;D*Wxt4P#w^e&e-qsG;@zHwpGwfpAAg>FfQ_MO;v--~xr6Iybtkv^1I9tU<4BrLmnQpz&{r7m+a(| zc7EN636-DUdsI}gix|F?P@MYY_Qd!Z8QBK;!zHvDNB9yNMi@4oQdIjLPdk=1Zj>g^I)0f8sXneM#4}(px{OSwaLAc7Rnt`5E<5-B8h8-6kQJwA zb=5fLC5UXEpDLbqKdIq6jqC5z*|=lrgYAU-4kjM;%<1GjI*xY;IZ4;Pn0hQGy>?(s zn19ZpS2&$eZ(CsI-kY88KOxa%Lz-OuU`ju*<&_JPK?2RC+{M6jZgfvM8VX!!F(MjTOu@rS9edtUJOC{}1&*X=C`E5G;J#nzF(&eof=1xlB_7|lD zp}WIrzCH8A`6h#A3N?i_+tg~a)n`QwpKl4!50%r7r*aUkpD~_A>25TP}5Be zZp5E3&lVSPbAFSOZ()ju&L5vUoOo(7Y|hLqyGwKPVsu>Aj1`FyPeMO(`=UrR5>y`P zz}>zFO{O!RxuDAUREV@nVF%xWzL|eQiDRfp(n2Jv1!JQ~!r}bD(e16C^??oDn^V;E z8C#rPnpGtQrWXBj`IZCI-@b1pH{m1jfs}*D{7Z5bB~~6n;Peh5EN~pcuWwM^R&?8x?@8w{|ymXV{mG>b2SUrs%PB}KY5H%fd~yfkx-#B?xM^IoRMu<&d0tJcx!oTggY zS~|KCSqgEvkxdDVEUl@+-%!tgXzmwqID1&P38`c|hQ;_)67fx zV3HUOudI?`w9c33lrzg903MW93~HJed=Re!T1oa!=F0pY`w{ych=YLj&qjvOX{e`n zFlWC|RQX}#V4yg$Qz<2u>%lFjiEq`(jBGW;q%v%d;zqf7Hx=zE%?`R0VnAr`lwY4y z$OMq{idRIbSiae>lYh5g2-~YQ+Z(pKE6Zsl9xmxprZ!NLemPfV=W3ZG2ia>6sH}Ic zPOI34Tk)OpRn@Qvwz0g({x+-BE(PwcgU3Ja*_+>JYgUtI52eEo!ctTWfM#dpTP#i{ z(Rv<%Ni@r>CZyIR-|ss-TqBGmb73L6&c(MV;RYX{wPpNqtsz|y7t|Ua1=^j0-?Y*L z9ekUqt;VhBNF>;Eaxeo5I{eR|4!?4Qtl@MzD{1(x+gs3(`>+sF)&?i(*UdnS0+8k` zp>GZyMfPwd1@kik%A?p3_ON=&NV-L+^RUh-XPj{z{82-5uSfGUM|K}8OH=j#rQ4_J zvyWzH(V{Hh2~E$Owf}W`CR7p8qT@6mhuAQ3XUzOdpr@yGGLrU{;l`qB$9ed55Hgyx zpC#b7UuIotKgMBc-@R!71FiqC-Vg@cuB>kk78dF-F?2_@v$)oZm1Nq@fBByT)G79i z$TRf6q&LG0HaO&?uDkBt$P*UUW2-jUdsJVCn3()3@=!dTpPv08o)*pp{Vtw%zkJ|~ zJ*-KnmyvVEltyrmj`naZZ6U{kipVP4=nQl-auF5}C5`Rwhy27Ii<~XE3Xdxc*%Iu> z4F}?FrYQz%RRt!;M6eop81Q`b;ZmXeB^HD>Fwg4Kj%y?&oI7RsedB@NLubbrg_G?x zHfJdEXz=)Dze-)^eyj&&+l;mW0%rUAm%S$^P?&G4B|L9qx5xqV!Cg2EzW|{R&SIS8 zbx-soGC6md2Go=_H0s9nEafzsuNYW^A4xhAchJb~;jEmPT#&JR57DZ*V1z!C%e<8R zH%j$s&*I8VFba1y#h;%W?ae-0=elm+Xl0XAKIR_g08nH~GZC8!jA)Qq;H$0I;s}hc z+M=upukXK2A!a_knqcG=UnHf=e+G@rHX%md*^X=p7jq+rdIH@S&)oi+PEi%}pyk9y zPkr`l_llu}gepRz_1*gdY_5T1ZRv8)-A9~gkP(jyeqc5fh_Dr{n5LjWrhm%!o-_C` zOsKwcug|x7XBs;Z#9GFUdMHs34203!(g2a6N85 zyv3CinED=E{9i>tS{!Kz{!+{dY(_fe*n1Q1aVQpkfNBhNwpOcxRs3*UktSU(H6D~4 zL_~!)2T9}L@y>vEw5zr^n2hwqI49zC-9GCz`AVaJcZSSK??IhnwjwHpoOugZd!Z2* zCH<9DYPRhg7Zyjs?&uGt&e(bE;4Z+_diN0ml8?S@c>w{S6`uIP;;8;*2m&*V_!oG- z-ik}@j%zo>u*4*xu{0_~^6ge#iej4qUw7y(gdLFvw5AyZa|gH9^pA)Cw*vFq5Bh4w zn6k(Mo|%#EJ=y6=ef0#~2>7uXiY*ks91pFnS>hqQ=WROF;{W4j==PtK*B_gqZD4a8 zf$V>5GZdnl(8egV9jXl0NKdvyt(Qs>aKQaxBPUBa!Q&{5c)ksHFRU!`I12M)Ywhlj ztu@`f@}KrY(-+eY_d_$r-5+e46ik*v?xGl{V&Rv^R(!_A)iz@kDikqfNZna<%it2~ zhSTg04W=xc%D|Tde`$9LAA8|FJp|mJ7uO)0#OSm40aeI>)E|rMG9*DvzZKWtK*ja6 z8m;1>#uv%S4~F4O*rf79b0pMpOA1ajN#sUlw?4FK7ca2c%*V4lPqyibq>rV)PO_-l z{jx91$!nM*8eQVkEwEtoTsv2#EQUsv4vD_08Sjx&3;0T2m&~5`TW2(DmPmfAKv$_zP`_9#+}O{u_Mp+8p4EdPBbs+~kyV1bAc32pJnp zHr)M-##;3>Amp3zu>I)yv}^FnJAVc;h6I$6IR;BtkfCe%GQ^>&cK6t9bkay<3@^7>wVVq7W%MRPy?Q1)4=lldIzi2VwmS11aWX}xU_YdE zDeUEL-Zmk}^O~UH?qDMR`+&A0p4OI{mAlic^`nNLn8Nzt@cSd}b)PyM9lm^16L1-y zkr)zRL9!TZ-lC=u=Ary(K{WJ8E@{90M+E&&s%~iXQgoz89h74CZohS|CPTe*ISBP8 zpK&S{8Bi-KvMEK58re4X4saJ4)av(>46y}eiO$TM<0QtrmZ=d%XZyf z5*2@>l>O~!$CNTp{ZfExMjlE8ILpixyfwHjt^SQevK$<;ruK@z?R0&P9ecehFq@%z ze?x64Dr<%TjZ9H_V?VOA1#w`Y!!Nz=l*N#Q!`b(2K*kXIvq0P5en+5TI8{HCP~Edk z$ZanJsYGDBR%PVWLkLn=hyDPmn0s8tDd>CWT#lySS^{%A=x#H?H%c=nS=T=Gx%VsG zAqmpR*h2xWc_J7szS-b(?kT=Y^*={*DlgTRPv?CyVR7-KEHO#PVO?Cc+s(`lQC}s} zj;wn|mehsHiNF9Y&qHaQ{f`Y$feTw<+_V0=3#{nhl_%f=E&mHhpdF9Xl^-Ox?;KQ* zx5yS2`B*KyZqQZ@i|(uha$TNcLC)wm{NX1Z%K=c^aQ;FllDyT6NIH?drv*-{aElW? z9I`ltpf9tJ5!9ov0;hXAi?|AClkS~axpiW5PFM$xG}(imVGd($cIKBiUKicw91yn^ z^A+WWaWdz_X`%q-G*{Qi!u1vf8Ax52X&)D*M!I2z%0TWi=Xooiz@o*zo1{Gtl2;t8 zdecfj$4F`mDNJ2LoDc-M?d8%;y`oQ}5<6c!LfXK_|l|tiEfI)rg(L*nS2V3@qj#} zYqwNk&`DIb6H=&m{v;2)66kdDBt5`SFSB|ShCoQJ#69c zZ3DV$xvF?rvIt0!=>~SkkIR(VRoJnR+G=z-=MA?!mE&ZcQ{zE&E%AKICtR)luu2r~aH+j8JvV8|F5 zYyF$3&n$SV7~kyLeIr#WaBEQxTBZxS?<%gHGb4i;O_;-AessN}aejx`x1>u~Fn^Nb z8z=pl6<0Rhwf#h0X+5Rrqj;z4tT2Bu+}oufYrRCdzX`qBN%;y@GT*G?Cd>W@xAUic@8yP*;naWL_tq>o zM0J{^3{y4i=SBtyD{cC~Q*C>Dn}dKYDq&me<(;o;3clD(c%)haA<4Bx%4!cdy3s=? zltZoScU7dPBAQ1z$R^yC|2g&-l;nX-b}?gpSMlBzwPjp7sH7j_P<};ny+M2oJLhJNIEem$(52M&Ljg zXj0brhs3Kj^jY{<{%50V*sH9mobs%^CWKu`FyAp4Zr2ebLV_k$9nqQVV$1*Cq$&=4 zOs;)wQC7dJLXtR=T7#94(M3Br~`HcSJ&{wmqZrAZ00rS=Df_$(ER@GXlD z+KdoAR+?JAqtn$KX7e3C{M2{$pZXc|r2cHXF+oaPdPG8U>%TKqhcC7E^I#C%yBthC z91YB=+DY5pdGjPKnM5I?YvUW{8Pe#D0UMKR=ro7MCwGdG``oLHYf2Ha8S)01Qx>D; zcf-4z!(s)xi@fg^O2&RUxb`bs#Ty~DuI%C0!fco6En{LNJO1w>J3s<%AP{)M z`&eXv`QjZH0SJ!8KhSa%m_wmFuH{HBPv#HRFD|dd-z)Y1TtA$_gKr?%ry~wR3!8@ultTdtsZQJ#Gd#V49BxSn#9<4Yq*LS~NgCjIUvHxf-rI zG|&OMKoe*!h1lQ9e@R_xu#^r^1?*aW54B*;Y@mS?umHP&25ietUs7KHJ_3a~T<>Y&8fBK18MuXC5n=8u;s}!Ak zN?xnW45;IS1l~)}@6B(I_1&$_yyblCK6N}z*@n{J#iS*TYFzDYY&stplSWUZSp*K~ z2})P<)%c2<#HimMm??BgGNV1RJ2G!0hEgY@I9ac$13oIJ^)DmpvlE`S+wFcHmaF&i z+2D^KwT*Qs9;-NN3ou)6;9o?%8vnl|)ei-4^s2b#(7L*Ae}g5VG{;Y}DQh#sfnjUv zD;3>(F2<4EV7ZT*c|k&kx&G+73oVU|<`r#4!TB?B(c<1)`^Ur_dQF^UuW|b{l{W9? zI&rOSTFKy}Z_#*Eymici>5WhkOg2?Kp*|zW8>?Y=pvrPQtp17R5j-hlmWU^*_KMkB zYzaPVf9{|aUOsUkJ$@|JBKq=fFJ+e%PTyCWttl&e6nG6&V{pMa^?GUi~C(k*8hN3UflOa|cQQj0MtBN_6P2~&AI#LB2+ z>q1CRAJs)muA&8#_NO|Tf49ql;(*yJT)i>F@h2~tpC?>Hcf%&p7w>gO zmj#hCLi^TX>l%mjN@;L`jN{lIdZy9o8U3}Ggw#{Q_Nn4oHJf~=9A{UOq*PThXJRxm z7xXQTFa*cKp3dHs;+^Nex2N4mx;8O;@F+{Us57rk<P(oQtD4(Aml~y*oKz;IO(XZsdpM9SF1q1Ih(sbe zkcf068deDk(zQt_)JXW@6W<}vR129aoRPmOC1qX}hX7NOk8aH^{r&Lge!birypuKB z)W5TKprfI_tdk(31(5p@BUx239b? zl8%OwpZwkObZ=hLt+{O7o0oj)|I*Fg6Abiv?2zpRm)CBMFVL;Iq+4g%x;4K*_owrK zg}S!^J&2WH#S#E`#h*r|O5BB$wsro(uForE0Hsj|OisLFPi>awDA!<`R`+{8TOI)V z>ily;uIz1WdB7RN$;JpTH!LIamn?@}s4?DZr>K!wc<xWpw*ZIGd6e1oh(2~Y~!{y5|brz9Rk#v5_+oS=jL4ou(XbPx$DA za=yE>GrgltJxQD|D|C_{s7Iec(h6`M8xPPp*6UMM-Z0Ge9aE@3w^n!Zeq7JcCXZ8T zQMZZCn=A?@L&VWi#@04MmuKrQmuEMSEShp1wkLhC+L1IYc@t@DK4ma!S2?I0DN!Mt zrJ1aVBV5eF^YYMy1bjBUtW=Izn>;n|sl0aTG|&7@Vr&lb_CQaL@bPPQvXLoo^ELGE zoGohMi)l$Qb>_}12*Eo`c1)PM*j?)-jy^c%9=5^j;!e*??)E%sbpMeDZ9lb4;3IT3 za*)>9wHbCU*ByAN&NaEZ1&-0)W#!onW7*h+ZT>l1)8iZ~+Fuyw*9j@LijDBp6}Deg z6|9fITIRpHw}8RlzBN>WQ9UT-;osjB>WXRKJ>|-^b}(|IWR#g|HP?`>r7NbYUJupi zcSnI#n10wQU09p2r`ek+H;lm>tP!|!bNcnOP*lDm_WgzM`O@TEzef-u9Kcx3IZJh7TQ%_57&#G$2E-IaLQp{A` zpeJzaY^+U#K?YrkP*P}H_LMVQlOx`Ts_o=`wJ`hLbzI_Ft|+(a{4oPJol|SO(k|6F zsO3Cp7De;uJTaU)PjVu6n*_8ZI|aw5Qd{Gw7LOP96R!5GnYt;SH8dkmYk217Ho%+bLw{D_Ev7!-7in~XNMknVYyMZ4TJE6rDeOp;*4%g9IT^=P@ z%;Xy*?2w+&?=u#jTb*9a6kHvNX6{9oNXiQFy9Dfi$^2n(dCGBMQBJb!heP03`o|rCUjRMV3G@H} literal 0 HcmV?d00001 diff --git a/쿼리/2026/06/20260622_실행예산승인실패시 오류수정.sql b/쿼리/2026/06/20260622_실행예산승인실패시 오류수정.sql new file mode 100644 index 0000000..8829350 --- /dev/null +++ b/쿼리/2026/06/20260622_실행예산승인실패시 오류수정.sql @@ -0,0 +1,37 @@ +-- ========================================== +-- 작업일자: 2026-06-22 +-- 작 성 자: 류호성 +-- 작업목적: [실행예산 승인 실패에 대한 원인 조사 및 수정하기] +-- 요청자/티켓번호: [서경아차장 / 요청번호 5948번] +-- 데이타베이스 : MS-SQL +-- ========================================== + +-- [0] 실행예산 승인 실패시 실패사유를 저장하는 테이블에서 실패사유 조회하기 +select pjt_no, failure_reason from HPOIMS.dbo.ys_project where pjt_no = 'V172T403' + +-- [1] 실행예산 승인 프로시저에서 실패 사유에 대한 부분 조사 +-- usp_ys_mbudget_approval_new + +-- [2] 서경아차장과 협의하여 예산코드 AB33001과 AB33002도 추가하여 예외 기준 정하기로 하여 프로시저 수정함. + SELECT + b.pjt_no, b.main, b.sub, b.bud_seq, (ISNULL(b.amt,0)+ISNULL(a.amt,0)) , ISNULL(b.x_amt,0) + FROM + ( + SELECT pjt_no, main, sub, bud_seq, SUM(amt) amt, SUM(x_amt) x_amt FROM HPOIMS.dbo.ys_pbudget WHERE pjt_no = 'V172T403' GROUP BY pjt_no, main, sub, bud_seq + )b + --LEFT OUTER JOIN + JOIN + HPOIMS.dbo.ys_mbudget a + ON + a.pjt_no = b.pjt_no + AND a.main = b.main + AND a.sub = b.sub + AND a.bud_seq = b.bud_seq + AND a.bud_gbn = 'C' + AND a.chasu = 1 + WHERE + b.pjt_no = 'V172T403' + AND (ISNULL(b.amt,0)+ISNULL(a.amt,0)) < ISNULL(b.x_amt,0) + AND b.main+b.sub NOT IN ('AB33001','AB33002') -- 원가안분 인 경우에는 제외(2011.05.04) + +-- [3] 성공적으로 예산편성 승인 처리된 것 확인함. diff --git a/쿼리/2026/06/20260623_기성지불전표와 실전표정보 차이 조정하기.sql b/쿼리/2026/06/20260623_기성지불전표와 실전표정보 차이 조정하기.sql new file mode 100644 index 0000000..99afb0b --- /dev/null +++ b/쿼리/2026/06/20260623_기성지불전표와 실전표정보 차이 조정하기.sql @@ -0,0 +1,65 @@ +-- ========================================== +-- 작업일자: 2026-06-23 +-- 작 성 자: 류호성 +-- 작업목적: [기성지불 전표와 발행된 회계 전표와의 차이를 찾아서 정보를 일치시킨다.] +-- 요청자/티켓번호: [체크시 발견된 사항이며, 선급금 전표 발행시 프로시저 점검하여 보완해야 할 것으로 보입니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +-- [0] 기성지불 전표정보와 실제 전표정보와의 차이 조회하기 +select + a.cont_no, a.year, a.month, a.gs_gbn, a.gs_seq, a.gs_amt, a.sk_amt, a.sj_amt, a.slpdate, a.dtcode, a.slpnum, b.slpnum , b.slpamt +from + HPOIMS.dbo.gs_payment a +left outer join + ACC.dbo.t23b10 b +on + a.slpdate = b.slpdate and a.dtcode = b.dtcode +where + a.year = '2026' and a.slpnum <> b.slpnum and (a.gs_amt = b.slpamt or a.sk_amt = b.slpamt) + +--cont_no year month gs_gbn gs_seq gs_amt sk_amt sj_amt slpdate dtcode slpnum slpnum slpamt +--V26G010 2026 06 M 1 0 40000000 0 20260612 1321 205 203 40000000 + +-- [1] 기성지불정보의 전표정보 조회하기 +select + * +from + HPOIMS.dbo.gs_payment +where + cont_no = 'V26G010' and year = '2026' and month = '06' and gs_gbn = 'M' and gs_seq = 1 + +-- [2] 해당 전표번호로 기성지불내역에 존재여부 재확인하기 +select + * +from + HPOIMS.dbo.gs_payment a +where + a.slpdate = '20260612' and a.dtcode = '1321' and a.slpnum between 201 and 205 + +-- [3] 실행일은 상황에 따라 적절하게 수정하여 해당 전표번호로 전표내역 확인하기 +select + * +from + ACC.dbo.t23b10_tr +where + actdate>'20260401' and slpdate = '20260612' and dtcode = '1321' and slpnum = 203 +order by actdate, acttime + +select + * +from + ACC.dbo.t23b10_tr +where + actdate>'20260401' and slpdate = '20260612' and dtcode = '1321' and slpnum = 205 +order by actdate, acttime + +-- [4] 기성지불에 올바른 전표번호로 수정하기 +/* +update + HPOIMS.dbo.gs_payment +set + slpnum = 203 +where + cont_no = 'V26G010' and year = '2026' and month = '06' and gs_gbn = 'M' and gs_seq = 1 +*/ diff --git a/쿼리/README.md b/쿼리/README.md index 97c00cb..a24a7a6 100644 --- a/쿼리/README.md +++ b/쿼리/README.md @@ -15,23 +15,23 @@ hallasanup/ ├── Template/ │ ├── POR소요예산 변경하기.sql ├── 2026/ - │ ├── 05_May/ - │ └── 06_June/ - │ ├── 20260618_UPDATE_고객_데이터_정정.sql - │ └── 20260620_SELECT_월간_통계_집계.sql + │ ├── 05/ + │ └── 06/ + │ ├── 20260618_고객_데이터_정정.sql + │ └── 20260620_월간_통계_집계.sql └── 2025/ - └── 12_December/ + └── 12/ ``` ## 2. 파일 명명 규칙 (Naming Convention) 파일 이름만 보고도 실행 날짜와 목적을 직관적으로 알 수 있도록 작성합니다. -> **`[YYYYMMDD]_[SQL타입]_[작업_내용].sql`** +> **`[YYYYMMDD]_[작업_내용].sql`** -* **데이터 수정 (UPDATE/DELETE):** `20260618_UPDATE_회원탈퇴처리.sql` -* **데이터 조회 (SELECT):** `20260630_SELECT_매출통계조회.sql` -* **테이블 구조 변경 (ALTER/CREATE):** `20260615_ALTER_상품테이블_인덱스추가.sql` +* **데이터 수정 (UPDATE/DELETE):** `20260618_회원탈퇴처리.sql` +* **데이터 조회 (SELECT):** `20260630_매출통계조회.sql` +* **테이블 구조 변경 (ALTER/CREATE):** `20260615_상품테이블_인덱스추가.sql` --- @@ -45,6 +45,7 @@ hallasanup/ -- 작 성 자: [작성자 이름] -- 작업목적: [쿼리 작성 및 실행 목적 설명] -- 요청자/티켓번호: [요청 부서 또는 이슈 번호] +-- 데이타베이스 : MS-SQL 혹은 MY-SQL -- ========================================== -- [1] 대상 데이터 검증 (조회) diff --git a/쿼리/Template/POR 소요예산 변경하기.sql b/쿼리/Template/POR 소요예산 변경하기.sql index e533931..54480cd 100644 --- a/쿼리/Template/POR 소요예산 변경하기.sql +++ b/쿼리/Template/POR 소요예산 변경하기.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [이미 집행된 발주의뢰서의 금액을 실제 투입금액으로 변경할 경우 사용합니다.] -- 요청자/티켓번호: [요청 부서 / 요청자 또는 이슈 번호를 기록합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @por_no char(8), @por_seq int diff --git a/쿼리/Template/매일확인하기.sql b/쿼리/Template/매일확인하기.sql new file mode 100644 index 0000000..890cb5f --- /dev/null +++ b/쿼리/Template/매일확인하기.sql @@ -0,0 +1,1013 @@ +-- ========================================== +-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] +-- 작 성 자: [실행자 이름을 기록합니다.] +-- 작업목적: [주기적으로 실행하여 아이체크로 이상데이타 확인하며 필요시 실무자와 확인 후 수정을 별도 진행합니다.] +-- 요청자/티켓번호: [별도 요청은 없으며, 이상자료에 대한 분석에 대한 조치는 실무자와 협의 후 수정하거나 수정하지 않고 확인만 진행합니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +-- 실행예산의 소요예산과 구매청구서 금액 + 직접비 금액이 다른 것 조회하기 +select + a.* + , a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) x_amt + , (b.soyo_amt+b.input_amt) + , a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (b.soyo_amt+b.input_amt) +from + HPOIMS.dbo.ys_pbudget a +join +( + select + * + from + ( + select + a.pjt_no, a.main, a.sub, a.bud_seq + , sum(a.bud_amt) bud_amt + , sum(a.bud_x_amt) bud_x_amt + , sum(a.bud_e_amt) bud_e_amt + , sum(a.soyo_amt) soyo_amt + , sum(a.input_amt) input_amt + from + ( + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = ISNULL(a.closing_yn,'N') + , bud_amt = round(ISNULL(a.amt*a.base_rate,0),0) + , bud_x_amt = round(ISNULL(a.x_amt*a.base_rate,0),0) + , bud_e_amt = round(ISNULL(a.e_amt*a.base_rate,0),0) + , soyo_amt = 0 + , input_amt = 0 + FROM + HPOIMS.dbo.ys_pbudget a + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 +-- , soyo_amt = SUM(ISNULL(a.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END) + , soyo_amt = SUM(ISNULL(a.w_amt,0)) + , input_amt = 0 + FROM + HPOIMS.dbo.gm_por_detail a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = 0 +-- , input_amt = SUM(ISNULL(a.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END) + , input_amt = SUM(ISNULL(a.amt,0)) + FROM + HPOIMS.dbo.ys_direct_cost a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a +-- where +-- (a.bud_x_amt*a.base_rate) <> (a.soyo_amt+a.input_amt) + +) b +on + a.pjt_no = b.pjt_no + and a.main = b.main + and a.sub = b.sub + and a.bud_seq = b.bud_seq + and a.pjt_no like '%' + and a.main <> 'AB00' + and a.curr = 'WON' + and ROUND(isnull(a.x_amt,0)*a.base_rate,0) <> (b.soyo_amt+b.input_amt) + +-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) +-- <> +-- (b.soyo_amt+b.input_amt) +-- and abs((a.x_amt*a.base_rate) - (b.soyo_amt+b.input_amt)) > 1 +-- and a.item_name = 'ManDay 지원비' + +-- 외자인 경우 체크 +select + a.* + , round(a.x_amt*a.base_rate,-1) + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) x_amt + , (b.soyo_amt+b.input_amt) + , a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (b.soyo_amt+b.input_amt) +from + HPOIMS.dbo.ys_pbudget a +join +( + select + * + from + ( + select + a.pjt_no, a.main, a.sub, a.bud_seq + , sum(a.bud_amt) bud_amt + , sum(a.bud_x_amt) bud_x_amt + , sum(a.bud_e_amt) bud_e_amt + , sum(a.soyo_amt) soyo_amt + , sum(a.input_amt) input_amt + from + ( + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = ISNULL(a.closing_yn,'N') + , bud_amt = round(ISNULL(a.amt*a.base_rate,0),0) + , bud_x_amt = round(ISNULL(a.x_amt*a.base_rate,0),0) + , bud_e_amt = round(ISNULL(a.e_amt*a.base_rate,0),0) + , soyo_amt = 0 + , input_amt = 0 + FROM + HPOIMS.dbo.ys_pbudget a + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 +-- , soyo_amt = SUM(ISNULL(a.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END) + , soyo_amt = SUM(ISNULL(a.w_amt,0)) + , input_amt = 0 + FROM + HPOIMS.dbo.gm_por_detail a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = 0 +-- , input_amt = SUM(ISNULL(a.amt,0)*ISNULL(b.base_rate,1) + CASE WHEN b.fob IS NULL THEN 0 ELSE FLOOR(ISNULL(a.amt,0)*ISNULL(b.fob,1)*b.base_rate) END) + , input_amt = SUM(ISNULL(a.amt,0)) + FROM + HPOIMS.dbo.ys_direct_cost a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a +-- where +-- (a.bud_x_amt*a.base_rate) <> (a.soyo_amt+a.input_amt) + +) b +on + a.pjt_no = b.pjt_no + and a.main = b.main + and a.sub = b.sub + and a.bud_seq = b.bud_seq + and a.pjt_no like 'V%' + and a.main <> 'AB00' +-- and a.curr = 'WON' +-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) +-- <> +-- (b.soyo_amt+b.input_amt) + and round(a.x_amt*a.base_rate, -1) + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) <> (b.soyo_amt+b.input_amt) + and abs(a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) - (b.soyo_amt+b.input_amt)) > 1 +-- and a.item_name = 'ManDay 지원비' + +/* + +-- 실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 업데이트 하기 +begin tran + +update + HPOIMS.dbo.ys_pbudget +set + x_amt = (b.soyo_amt+b.input_amt) +from + HPOIMS.dbo.ys_pbudget a +join +( + select + * + from + ( + select + a.pjt_no, a.main, a.sub, a.bud_seq + , sum(a.bud_amt) bud_amt + , sum(a.bud_x_amt) bud_x_amt + , sum(a.bud_e_amt) bud_e_amt + , sum(a.soyo_amt) soyo_amt + , sum(a.input_amt ) input_amt + from + ( + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = ISNULL(a.closing_yn,'N') + , bud_amt = ISNULL(a.amt,0) + , bud_x_amt = ISNULL(a.x_amt,0) + , bud_e_amt = ISNULL(a.e_amt,0) + , soyo_amt = 0 + , input_amt = 0 + FROM + HPOIMS.dbo.ys_pbudget a + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = SUM(ISNULL(a.w_amt,0)) + , input_amt = 0 + FROM + HPOIMS.dbo.gm_por_detail a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = 0 + , input_amt = SUM(ISNULL(a.amt,0)) + FROM + HPOIMS.dbo.ys_direct_cost a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a + where + a.bud_x_amt <> (a.soyo_amt+a.input_amt) +) b +on + a.pjt_no = b.pjt_no + and a.main = b.main + and a.sub = b.sub + and a.bud_seq = b.bud_seq + and a.pjt_no like '%' + and a.main <> 'AB00' + and a.curr = 'WON' + and ROUND(isnull(a.x_amt,0)*a.base_rate,0) <> (b.soyo_amt+b.input_amt) + +commit tran + +rollback tran + + +begin tran + +update + HPOIMS.dbo.ys_pbudget +set + x_amt = (b.soyo_amt+b.input_amt) +from + HPOIMS.dbo.ys_pbudget a +join +( + select + * + from + ( + select + a.pjt_no, a.main, a.sub, a.bud_seq + , sum(a.bud_amt) bud_amt + , sum(a.bud_x_amt) bud_x_amt + , sum(a.bud_e_amt) bud_e_amt + , sum(a.soyo_amt) soyo_amt + , sum(a.input_amt ) input_amt + from + ( + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = ISNULL(a.closing_yn,'N') + , bud_amt = ISNULL(a.amt,0) + , bud_x_amt = ISNULL(a.x_amt,0) + , bud_e_amt = ISNULL(a.e_amt,0) + , soyo_amt = 0 + , input_amt = 0 + FROM + HPOIMS.dbo.ys_pbudget a + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = SUM(ISNULL(a.w_amt,0)) + , input_amt = 0 + FROM + HPOIMS.dbo.gm_por_detail a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + UNION ALL + SELECT + pjt_no = a.pjt_no + , main = a.main + , sub = a.sub + , bud_seq = a.bud_seq + , closing_yn = '' + , bud_amt = 0 + , bud_x_amt = 0 + , bud_e_amt = 0 + , soyo_amt = 0 + , input_amt = SUM(ISNULL(a.amt,0)) + FROM + HPOIMS.dbo.ys_direct_cost a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + ) a +-- where +-- a.bud_x_amt <> (a.soyo_amt+a.input_amt) +) b +on + + a.pjt_no = b.pjt_no + and a.main = b.main + and a.sub = b.sub + and a.bud_seq = b.bud_seq + and a.pjt_no like '%' + and a.main <> 'AB00' + and a.curr = 'WON' + and ROUND(isnull(a.x_amt,0)*a.base_rate,0) <> (b.soyo_amt+b.input_amt) + +-- and a.pjt_no like 'B%' + and ROUND(a.x_amt*a.base_rate,0) <> (b.soyo_amt+b.input_amt) + +-- and a.x_amt*a.base_rate + round(((a.x_amt*a.base_rate) * isnull((select fob from HPOIMS.dbo.ys_project_rate where pjt_no = a.pjt_no and curr = a.curr),0)),0) +-- <> +-- (b.soyo_amt+b.input_amt) + +rollback tran +*/ + + + +-- 경상비 통제금액과 부서예산항목의 통제금액이 다른 것들 조회하기 +select + * +from +( + select + a.dept_cd, a.year, a.month, a.main_cd, a.sub_cd, isnull(a.budget_use,0) budget_use, isnull(b.amt,0) amt + from + HPOIMS.dbo.ks_budget a + left outer join + ( + select + dept_cd, year, month, main_cd, sub_cd, sum(amt) amt + from + HPOIMS.dbo.ks_indirect_cost + where + ctr_yn = 'Y' + group by + dept_cd, year, month, main_cd, sub_cd + ) b + on + a.dept_cd = b.dept_cd + and a.year = b.year + and a.month = b.month + and a.main_cd = b.main_cd + and a.sub_cd = b.sub_cd +) a +where + a.budget_use <> a.amt + and a.year >= '2024' + + +/* +-- 경상비 통제금액과 부서예산항목의 통제금액이 다른 것들 수정하기 +update + HPOIMS.dbo.ks_budget +set + budget_use = b.amt +from + HPOIMS.dbo.ks_budget a +join +( + select + a.* + from + ( + select + a.dept_cd, a.year, a.month, a.main_cd, a.sub_cd, isnull(a.budget_use,0) budget_use , isnull(b.amt,0) amt + from + HPOIMS.dbo.ks_budget a + left outer join + ( + select + dept_cd, year, month, main_cd, sub_cd, sum(amt) amt + from + HPOIMS.dbo.ks_indirect_cost + where + ctr_yn = 'Y' + group by + dept_cd, year, month, main_cd, sub_cd + ) b + on + a.dept_cd = b.dept_cd + and a.year = b.year + and a.month = b.month + and a.main_cd = b.main_cd + and a.sub_cd = b.sub_cd + ) a + where + a.budget_use <> a.amt +) b +on + a.dept_cd = b.dept_cd + and a.year = b.year + and a.month = b.month + and a.main_cd = b.main_cd + and a.sub_cd = b.sub_cd + and a.year >= '2024' + +*/ + +-- 직접비 예산에 있으나 전표와 일치 하지 않는 것 +select + a.*, b.* +from + HPOIMS.dbo.ys_direct_cost a +left outer join + ACC.dbo.t23b10 b +on + b.slpdate>'20220101' and a.pjt_no = b.ys_pjtno and a.main = b.ys_main and a.sub = b.ys_sub and a.bud_seq = b.ys_bud_seq and a.ctr_seq = b.ys_ctr_seq +where + a.bill_date > '20220101' + and a.ctr_yn = 'N' + and a.direct_desc not like '%국민연금%' + and a.direct_desc not like '%고용보험%' + and a.direct_desc not like '%건강보험%' + and a.direct_desc not like '%급여%' + and a.direct_desc not like '%중식대%' + and b.area is null +order by + a.pjt_no, a.ctr_seq + + +/* + +select + a.pjt_no, a.main, a.sub, a.bud_seq, isnull(a.x_amt,0) , b.amt +from + HPOIMS.dbo.ys_pbudget a +join +( + select a.pjt_no, a.main, a.sub, a.bud_seq, sum(amt) amt from HPOIMS.dbo.ys_direct_cost a where a.pjt_no like 'H%' or a.pjt_no like 'X%' group by a.pjt_no, a.main, a.sub, a.bud_seq +)b +on + a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq +where + (a.pjt_no like 'H%' or a.pjt_no like 'X%') + and isnull(a.x_amt,0) <> b.amt + + +update + a +set + x_amt = b.amt +from + HPOIMS.dbo.ys_pbudget a +join +( + select a.pjt_no, a.main, a.sub, a.bud_seq, sum(amt) amt from HPOIMS.dbo.ys_direct_cost a where a.pjt_no like 'H%' or a.pjt_no like 'X%' group by a.pjt_no, a.main, a.sub, a.bud_seq +)b +on + a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq +where + (a.pjt_no like 'H%' or a.pjt_no like 'X%') + and isnull(a.x_amt,0) <> b.amt + +*/ + +-- 경상비 예산과 전표가 일치 하지 않는 것 +select + a.*, b.* +from + HPOIMS.dbo.ks_indirect_cost a +left outer join + ACC.dbo.t23b10 b +on + b.slpdate>'20190101' and a.dept_cd = b.ys_dept_cd and a.main_cd = b.ys_main and a.sub_cd = b.ys_sub and a.ctr_seq = b.ys_ctr_seq +where + a.billdate > '20190101' + and a.ctr_yn = 'N' + and a.indirect_desc not like '%국민연금%' + and a.indirect_desc not like '%고용보험%' + and a.indirect_desc not like '%건강보험%' + and a.indirect_desc not like '%급여%' + and a.indirect_desc not like '%중식대%' + and b.area is null +order by + a.dept_cd, a.ctr_seq + + +-- >> 경상비에서 부서코드 없이 입력되어 있는 자료 +select '경상비에서 부서코드 없이', * from HPOIMS.dbo.ks_indirect_cost where dept_cd = '' and year > '2019' + + +select + '수주가와 수주상세금액 차이', a.pjt_no, a.suju_amt, b.w_amt +from + HPOIMS.dbo.ys_project a +join +( + select + pjt_no, sum(w_amt) w_amt + from + HPOIMS.dbo.ys_project_rev + where + pjt_no like 'V%' -- and approval_yn = 'Y' + group by + pjt_no +) b +on + a.pjt_no = b.pjt_no +where + a.pjt_no like 'V%' + and a.suju_amt <> b.w_amt + +/* + +update + a +set + suju_amt = b.w_amt +from + HPOIMS.dbo.ys_project a +join +( + select + pjt_no, sum(w_amt) w_amt + from + HPOIMS.dbo.ys_project_rev + where + pjt_no like 'V%' -- and approval_yn = 'Y' + group by + pjt_no +) b +on + a.pjt_no = b.pjt_no +where + a.pjt_no like 'V%' + and a.suju_amt <> b.w_amt + +*/ + + +-- 실행예산과 PM추가예상 금액 다른 것 +select + '실행예산과 PM추가예상 금액 다른 것', a.*, c.* +from +( + select + a.pjt_no, a.main, a.sub, a.bud_seq, sum(a.amt) amt, sum(a.amt*a.base_rate + a.amt*isnull(b.fob,0)) w_amt + from + HPOIMS.dbo.ys_ebudget a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + group by + a.pjt_no, a.main, a.sub, a.bud_seq +) a +right outer join + HPOIMS.dbo.ys_pbudget c +on + a.pjt_no = c.pjt_no and a.main = c.main and a.sub = c.sub and a.bud_seq = c.bud_seq +where + isnull(a.amt,0) <> isnull(c.e_amt,0) +/* +update + a +set + e_amt = isnull(b.amt,0) +from + HPOIMS.dbo.ys_pbudget a +left outer join +( + select + a.pjt_no, a.main, a.sub, a.bud_seq, sum(a.amt) amt, sum(a.amt*a.base_rate + a.amt*isnull(b.fob,0)) w_amt + from + HPOIMS.dbo.ys_ebudget a + left outer join + HPOIMS.dbo.ys_project_rate b + on + a.pjt_no = b.pjt_no and a.curr = b.curr + group by + a.pjt_no, a.main, a.sub, a.bud_seq +) b +on + a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq +where + isnull(a.e_amt,0) <> isnull(b.amt,0) +*/ + +-- 구매 청구수량과 구매 발주 수량이 다른 것 +select + '구매 청구수량과 구매 발주 수량이 다른 것', a.por_no, a.por_seq, a.pjt_no, a.main, a.sub, a.bud_seq, a.item_name, a.qty, a.w_amt, b.qty, b.w_amt, (select emp from HPOIMS.dbo.gm_poim where poim = c.poim) emp_id +from + HPOIMS.dbo.gm_por_detail a +join +( + select + por_no, por_seq, sum(qty) qty, sum(w_amt) w_amt + from + HPOIMS.dbo.gm_po_detail + where + isnull(u_stat, '') <> 'D' + group by + por_no, por_seq +) b +on + a.por_no = b.por_no + and a.por_seq = b.por_seq +join +( + select distinct b.por_no, b.por_seq, a.poim from HPOIMS.dbo.gm_po a join HPOIMS.dbo.gm_po_detail b on a.po_no = b.po_no +) c +on + a.por_no = c.por_no + and a.por_seq = c.por_seq +where + a.pjt_no like 'V%' + and a.pjt_no in (select pjt_no from HPOIMS.dbo.ys_project where closing_yn = 'N' and pjt_no like 'V%') + and a.qty < b.qty +-- and a.qty <> b.qty +order by + a.por_no + +-- 실행예산의 추가변경금액과 추가변경예산의 금액이 다른 것 +select + '추가변경예산 차이발생', b.*, a.item_name, a.amt, a.m_amt, a.c_amt, a.curr, a.base_rate +from + HPOIMS.dbo.ys_pbudget a +left outer join +( + select + a.pjt_no, a.main, a.sub, a.bud_seq, sum(a.amt) amt + from + HPOIMS.dbo.ys_cbudget a + group by + a.pjt_no, a.main, a.sub, a.bud_seq +) b +on + a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq +where + isnull(a.c_amt,0) <> isnull(b.amt,0) + and a.pjt_no like 'V%' +-- and a.curr = 'WON' +/* +begin tran + +update + a +set + c_amt = isnull(b.amt,0) +from + HPOIMS.dbo.ys_pbudget a +left outer join +( + select + a.pjt_no, a.main, a.sub, a.bud_seq, sum(a.amt) amt + from + HPOIMS.dbo.ys_cbudget a + group by + a.pjt_no, a.main, a.sub, a.bud_seq +) b +on + a.pjt_no = b.pjt_no and a.main = b.main and a.sub = b.sub and a.bud_seq = b.bud_seq +where + isnull(a.c_amt,0) <> isnull(b.amt,0) + and a.pjt_no like 'V%' +-- and a.curr = 'WON' + +commit +*/ + + +-- 실행예산에서 실행금액 <> 초기편성예산 + 추가변경예산 +select + '실행금액 <> 초기편성예산 + 추가변경예산', a.* +from + HPOIMS.dbo.ys_pbudget a +where + isnull(a.m_amt,0) + isnull(a.c_amt,0) <> isnull(a.amt,0) + and a.pjt_no like 'V%' + +/* +update + a +set + amt = isnull(a.m_amt,0) + isnull(a.c_amt,0) +from + HPOIMS.dbo.ys_pbudget a +where + isnull(a.m_amt,0) + isnull(a.c_amt,0) <> isnull(a.amt,0) + and a.pjt_no like 'V%' +*/ + + +-- 실행금액을 초과한 소요예산 +select + '실행금액을 초과한 소요예산' + , a.pjt_no, pjt_name = (select pjt_name from HPOIMS.dbo.ys_project where a.pjt_no = pjt_no) + , a.main, a.sub, a.bud_seq, a.item_name, a.amt, a.x_amt, a.curr, a.base_rate +from + HPOIMS.dbo.ys_pbudget a +join + HPOIMS.dbo.ys_project b +on + a.pjt_no = b.pjt_no + and b.closing_yn = 'N' +where + a.pjt_no like 'V%' + and isnull(abs(a.amt),0) < isnull(abs(a.x_amt),0) + and a.item_name not like '%원가안분%' + +/* + + +*/ + +-- 구매발주서에 프로젝트가 없는 것 +select '구매발주서에 프로젝트가 없는 것', * from HPOIMS.dbo.gm_po where pjt_no = '' + + +-- 미지급금(공익) 체크하기 +select + '미지급금(공익)' gubun, a.apvdate, a.apvnum, a.apvseq, sum(a.amt) jigub_amt, max(b.apvcramt), (max(b.apvcramt) - sum(a.amt)) +from + ACC.dbo.t23a11 a +join + ACC.dbo.t23a10 b +on + b.area = '9' and a.apvdate = b.apvdate and a.apvnum = b.apvnum and a.apvseq = b.apvseq +group by + a.apvdate, a.apvnum, a.apvseq +having + (max(b.apvcramt) - sum(a.amt)) < 0 +/* +select * from ACC.dbo.t23a11 where apvdate = '20180101' and apvnum = '000001' and apvseq = '000002' +*/ + +-- 매출부가세 검토하기 +select + '매출부가세' gubun, sum(apvcramt) - sum(apvdramt) - ISNULL((select item31 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)), 0) + , sum(apvcramt) - sum(apvdramt) +from + ACC.dbo.t23a10 +where + area = '9' and apvdate >= '20220101' and acntcode like '21016%' and magam_yn = 'Y' +having + sum(apvcramt) - sum(apvdramt) - (select item31 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)) <> 0 + +-- 매입부가세 검토하기 +select + '매입부가세' gubun, sum(apvdramt) - sum(apvcramt) - ISNULL((select item32 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)), 0) + , sum(apvdramt) - sum(apvcramt) +from + ACC.dbo.t23a10 +where + area = '9' and apvdate >= '20220101' and acntcode like '11311%' and magam_yn = 'Y' +having + sum(apvdramt) - sum(apvcramt) - (select item32 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)) <> 0 + +-- 매출 검토하기 +--select +-- '매출' gubun, isnull(sum(billamt),0) - ISNULL((select item26 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)), 0) +--from +-- ACC.dbo.t23e10 where billdate >= '20190101' and approve_yn = 'O' and gbn in ('1', '2') and magam_yn = 'Y' -- 공사기성, 위탁기성만 포함(원가안분, 수주분담, 기타 미수금은 미포함 한다.) +--having +-- isnull(sum(billamt),0) - (select item26 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)) <> 0 + +-- 수금 검토하기 +--select +-- '수금' gubun, isnull(sum(a.billamt),0) - ISNULL((select item27 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)), 0) +--from +-- ACC.dbo.t23e13 a +--join +-- ACC.dbo.t23e10 b +--on +-- a.billdate = b.billdate +-- and a.seq = b.seq +--where +-- a.collectdate >= '20190101' +-- and a.billdate >= '20190101' +-- and b.gbn in ('1', '2') -- 공사기성, 위탁기성만 포함(원가안분, 수주분담, 기타 미수금은 미포함 한다.) +--having +-- isnull(sum(a.billamt),0) - (select item27 from ACC.dbo.t23a13 where magam_dt = convert(char(8), getdate(), 112)) <> 0 + + +-- 수주통보서 최종납기일 없는 것 +select + '수주통보서 최종납기일 없는 것' gbn, a.pjt_no, a.delv_date, b.delv_date +from + HPOIMS.dbo.ys_project a +join + ( + select + pjt_no, delv_date + from + HPOIMS.dbo.ys_project_rev + where pjt_no+cast(rev_no as varchar(10)) in (select pjt_no + cast(max(rev_no) as varchar(10)) from HPOIMS.dbo.ys_project_rev where approval_yn = 'Y' group by pjt_no) + ) b +on + a.pjt_no = b.pjt_no +where + a.delv_date = '1900-01-01' + + +-- 인트라넷 결재상태와 미소 결재상태 비교하기 + +-- 인트라넷 결재상태 확인해 볼 것 +SELECT * FROM OPENQUERY ([MYSQL], 'SELECT DocSN, FORMNUM, RT_SanctionState FROM sanctiondoc_tbl WHERE formnum like ''HLF-2%'' and RT_SanctionState = '''' ') mysql + +SELECT * FROM OPENQUERY ([MYSQL], 'SELECT * FROM sanctiondoc_tbl WHERE DocSN LIKE ''2026-%'' and RT_SanctionState LIKE ''%FINISH%'' AND PG_Date IS NULL AND FormNum LIKE ''HLF-2%'' ') mysql + +SELECT * FROM OPENQUERY ([MYSQL], 'SELECT DocSN, FORMNUM, RT_SanctionState FROM sanctiondoc_tbl WHERE formnum like ''HLF-1%'' and rg_date > ''2019-01-01''and RT_SanctionState = '''' ') mysql + +SELECT * FROM OPENQUERY ([MYSQL], 'SELECT DocSN, FORMNUM, RT_SanctionState FROM sanctiondoc_tbl WHERE LENGTH(DocSN) < 13 ') mysql + +-- SELECT * FROM OPENQUERY ([MYSQL], 'SELECT DocSN, FORMNUM, RT_SanctionState FROM sanctiondoc_tbl WHERE formnum like ''HLF-%'' and RT_SanctionState = '''' ') mysql + + +-- 매출 지출 계획 관리 지워졌을 경우 복원하기 +-- insert +-- HPOIMS.dbo.ys_moneyplan_day +-- ( +-- plandate, seq, pjt_no, venname, content, amt1, v_amt1, amt2, v_amt2, amt3, v_amt3, payhow, bigo, input_id, input_dt, update_id, update_dt +-- ) +-- select +-- plandate, (select max(seq)+1 from HPOIMS.dbo.ys_moneyplan_day where plandate = HPOIMS.dbo.ys_moneyplan_h.plandate)+row_number() over (order by plandate) seq, +-- pjt_no, venname, content, amt1, v_amt1, amt2, v_amt2, amt3, v_amt3, payhow, bigo, input_id, input_dt, update_id, update_dt +-- from +-- HPOIMS.dbo.ys_moneyplan_h +-- where +-- pjt_no = 'V171T501' and actdate = '20180626' and acttime = '14:14:41' and io_knd = 'IN' + +-- POR 감액하기 +--select * from HPOIMS.dbo.gm_por_detail where por_no = 'P1809014' +--begin tran +--update HPOIMS.dbo.gm_por_detail set unitp = unitp-11290000, amt = amt-11290000, w_unitp = w_unitp-11290000, w_amt = w_amt-11290000, t_amt = t_amt-11290000 where por_no = 'P1809014' +--commit tran +--rollback tran + + +-- 인사정보의 이메일이 서로 다른 경우 일치시키기 +select + a.emp_id, a.emp_nm, b.E_MAIL, a.emp_email +from +(select * from HRM.dbo.hr_insam where holoff_gb = '01' -- and isnull(rtrim(emp_email),'') = '' +) a +join +(select * from HRM.dbo.HR_PERS_MASTER where isnull(rtrim(E_MAIL),'') <> '') b +on +a.emp_id = b.EMP_NO +where + isnull(rtrim(a.emp_email),'') <> isnull(rtrim(b.E_MAIL),'') + +-- and rtrim(a.emp_email) is null +-- and a.emp_id like 'HF%' + +/* +update +a +set + emp_email = b.E_MAIL +from +(select * from HRM.dbo.hr_insam where holoff_gb = '01' -- and isnull(rtrim(emp_email),'') = '' +) a +join +(select * from HRM.dbo.HR_PERS_MASTER where isnull(rtrim(E_MAIL),'') <> '') b +on +a.emp_id = b.EMP_NO +where + isnull(rtrim(a.emp_email),'') <> isnull(rtrim(b.E_MAIL),'') + and rtrim(a.emp_email) is null + -- and a.emp_id like 'HM01775%' + +begin tran +update +b +set + E_MAIL = a.emp_email +from +(select * from HRM.dbo.hr_insam where holoff_gb = '01' -- and isnull(rtrim(emp_email),'') = '' +) a +join +(select * from HRM.dbo.HR_PERS_MASTER where isnull(rtrim(E_MAIL),'') <> '') b +on +a.emp_id = b.EMP_NO +where + isnull(rtrim(a.emp_email),'') <> isnull(rtrim(b.E_MAIL),'') + and a.emp_id <> 'HM00550' +commit +*/ + + +-- 진행중인 프로젝트 중 PM 및 현장소장 미지정 프로젝트 +select a.pjt_no, a.pjt_name, max(a.pm) pm, max(a.현장소장) 현장소장, max(a.cost_dept) 원가부서 +from +( +select + distinct a.pjt_no, a.pjt_name + , (case when b.mbr_gb = 'A' then b.pjt_mbr else null end) as pm + , (case when b.mbr_gb = 'I' then b.pjt_mbr else null end) as 현장소장 + , cost_dept +from + HPOIMS.dbo.ys_project a +left outer join +(SELECT * FROM HPOIMS.dbo.pm_member WHERE pjt_no in (select pjt_no from HPOIMS.dbo.ys_project where pjt_no like 'V%' and closing_yn = 'N')) b +on a.pjt_no = b.pjt_no +where a.pjt_no like 'V%' and a.closing_yn = 'N' +) a +group by a.pjt_no, pjt_name -- 64 rows +having max(a.pm) is null or max(a.현장소장) is null or max(a.cost_dept) is null -- 55 rows --> 48 rows(24.05.17) + + +-- 기성지불처리된 것이나 기성신청에 지불처리중인 건 체크하기 +SELECT a.*, b.slpdate, b.slpnum, b.acc_gbn FROM HPOIMS.dbo.gs_require a left outer join HPOIMS.dbo.gs_payment b on a.cont_no = b.cont_no and a.year = b.year and a.month = b.month and a.gs_gbn = b.gs_gbn where a.pay_yn = 'N' and b.slpdate is not null +-- begin tran +-- update a set pay_yn = 'Y' FROM HPOIMS.dbo.gs_require a left outer join HPOIMS.dbo.gs_payment b on a.cont_no = b.cont_no and a.year = b.year and a.month = b.month and a.gs_gbn = b.gs_gbn where a.pay_yn = 'N' and b.slpdate is not null +-- commit +-- sp_who2 + +-- 기성지불의 전표정보와 실제 발행된 전표 차이 체크하기 +select + a.cont_no, a.year, a.month, a.gs_gbn, a.gs_seq, a.gs_amt, a.sk_amt, a.sj_amt, a.slpdate, a.dtcode, a.slpnum, b.slpnum , b.slpamt +from + HPOIMS.dbo.gs_payment a +left outer join + ACC.dbo.t23b10 b +on + a.slpdate = b.slpdate and a.dtcode = b.dtcode +where + a.year = '2026' and a.slpnum <> isnull(b.slpnum,0) and (a.gs_amt = b.slpamt or a.sk_amt = b.slpamt) + diff --git a/쿼리/Template/본예산승인오류검토하기.sql b/쿼리/Template/본예산승인오류검토하기.sql new file mode 100644 index 0000000..0a7985d --- /dev/null +++ b/쿼리/Template/본예산승인오류검토하기.sql @@ -0,0 +1,150 @@ +-- ========================================== +-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] +-- 작 성 자: [실행자 이름을 기록합니다.] +-- 작업목적: [예산승인오류가 발생했을 시 확인합니다.] +-- 요청자/티켓번호: [예산승인부서의 요청시 검토하는 용도입니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +declare @pjt_no CHAR(8) +, @bud_gbn CHAR(1) +, @chasu TINYINT +, @update_id CHAR(7) +, @change_why_gbn CHAR(7) +, @cnt int + + DECLARE @tmp_pbudget TABLE + ( + pjt_no CHAR(8) + , main CHAR(4) + , sub CHAR(4) + , bud_seq INT + , x_amt DECIMAL + ) + + select @pjt_no = 'V172T305', @bud_gbn='M' + + -- POR + INSERT + @tmp_pbudget + SELECT + a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.amt),0) x_amt -- SUM(b.w_amt) + FROM + HPOIMS.dbo.gm_por_detail a + LEFT OUTER JOIN + ( + SELECT + por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty + FROM + HPOIMS.dbo.gm_po_detail + GROUP BY + por_no, por_seq + )b + ON + a.por_no = b.por_no and a.por_seq = b.por_seq + WHERE + a.pjt_no = @pjt_no +-- AND a.qty = b.qty + AND a.w_amt > b.w_amt + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + INSERT + @tmp_pbudget + SELECT + a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.w_amt),0) x_amt -- SUM(b.w_amt) + FROM + HPOIMS.dbo.gm_por_detail a + LEFT OUTER JOIN + ( + SELECT + por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty + FROM + HPOIMS.dbo.gm_po_detail + GROUP BY + por_no, por_seq + )b + ON + a.por_no = b.por_no AND a.por_seq = b.por_seq + WHERE + a.pjt_no = @pjt_no +-- AND a.qty = b.qty + AND a.w_amt <= b.w_amt + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + INSERT + @tmp_pbudget + SELECT + a.pjt_no, a.main, a.sub, a.bud_seq, isnull(SUM(b.w_amt),0) x_amt + FROM + HPOIMS.dbo.gm_por_detail a + LEFT OUTER JOIN + ( + SELECT + por_no, por_seq, SUM(amt) amt, SUM(w_amt) w_amt , SUM(qty) qty + FROM + HPOIMS.dbo.gm_po_detail + GROUP BY + por_no, por_seq + )b + ON + a.por_no = b.por_no AND a.por_seq = b.por_seq + WHERE + a.pjt_no = @pjt_no + AND b.w_amt IS NULL + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + + -- 직접비 + INSERT + @tmp_pbudget + SELECT + a.pjt_no, a.main, a.sub, a.bud_seq, SUM(a.amt*a.base_rate) x_amt + FROM + HPOIMS.dbo.ys_direct_cost a + WHERE + a.pjt_no = @pjt_no + GROUP BY + a.pjt_no, a.main, a.sub, a.bud_seq + + + SELECT + @cnt = COUNT(*) + FROM + ( + SELECT pjt_no, main, sub, bud_seq, SUM(x_amt) x_amt FROM @tmp_pbudget GROUP BY pjt_no, main, sub, bud_seq + )b + LEFT OUTER JOIN + HPOIMS.dbo.ys_mbudget a + ON + a.pjt_no = b.pjt_no + AND a.main = b.main + AND a.sub = b.sub + AND a.bud_seq = b.bud_seq + AND a.bud_gbn = @bud_gbn -- 'M' + WHERE + b.pjt_no = @pjt_no + AND ISNULL(a.w_amt,0) < ISNULL(b.x_amt,0) + AND b.main+b.sub not in ('AB33001', 'AB33002') -- 원가안분 인 경우에는 제외(2011.05.04) + + SELECT + b.pjt_no, b.main, b.sub, b.bud_seq, ISNULL(a.w_amt,0) m_amt, ISNULL(b.x_amt,0) x_amt + FROM + ( + SELECT pjt_no, main, sub, bud_seq, SUM(x_amt) x_amt FROM @tmp_pbudget GROUP BY pjt_no, main, sub, bud_seq + )b + LEFT OUTER JOIN + HPOIMS.dbo.ys_mbudget a + ON + a.pjt_no = b.pjt_no + AND a.main = b.main + AND a.sub = b.sub + AND a.bud_seq = b.bud_seq + AND a.bud_gbn = @bud_gbn -- 'M' + WHERE + b.pjt_no = @pjt_no + AND ISNULL(a.w_amt,0) < ISNULL(b.x_amt,0) + AND b.main+b.sub not in ('AB33001', 'AB33002') -- 원가안분 인 경우에는 제외(2011.05.04) + \ No newline at end of file diff --git a/쿼리/Template/실행예산투입실적금액수정하기.sql b/쿼리/Template/실행예산투입실적금액수정하기.sql index 2c1d268..cb37383 100644 --- a/쿼리/Template/실행예산투입실적금액수정하기.sql +++ b/쿼리/Template/실행예산투입실적금액수정하기.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 조회하여 내용 확인 후 수정합니다.] -- 요청자/티켓번호: [사업부서의 요청 혹은 주기적으로 실행하여 데이터를 일치 시킵니다.] +-- 데이타베이스 : MS-SQL -- ========================================== -- [1] 원화인 경우 실행예산 소요예산 = 구매청구서 금액 + 직접비 금액 비교하여 다른 것 조회하기 diff --git a/쿼리/Template/원가계산.sql b/쿼리/Template/원가계산.sql new file mode 100644 index 0000000..40e5df9 --- /dev/null +++ b/쿼리/Template/원가계산.sql @@ -0,0 +1,1827 @@ +USE [ACC] +GO +/****** Object: StoredProcedure [dbo].[usp_frm21404_01] Script Date: 2023-02-21 오전 10:33:37 ******/ +SET ANSI_NULLS ON +GO +SET QUOTED_IDENTIFIER ON +GO + + +-- ========================================== +-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] +-- 작 성 자: [실행자 이름을 기록합니다.] +-- 작업목적: [회계장부로 원가계산기능을 순차적으로 실행하며 중간산출자료 등을 검토할 목적으로 만든 쿼리이며 원가계산 프로시저입니다.] +-- 요청자/티켓번호: [회계팀의 요청시 원가계산을 검토하는 용도입니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +/*************************************************************/ +/* 재료비 집계 & 간접 재료비 배부 */ +/* 노무비 집계 & 간접 노무비 배부 */ +/* 경 비 집계 & 간접 경 비 배부 */ +/* 외주비 집계 & 간접 외주비 배부 */ +/*************************************************************/ + +-- exec ACC.dbo.usp_frm21404_01 @area = '9', @saupbu = '10', @frdate = '20110101', @todate = '20110930' + +-- ALTER PROCEDURE [dbo].[usp_frm21404_01] + drop table #temp_t23a10 + +DECLARE + @area CHAR(1) , + @saupbu CHAR(2), + @frdate CHAR(8), + @todate CHAR(8) +-- AS + SELECT @area = '9', @saupbu = '10', @frdate = '20220101', @todate = '20221231' + + + DECLARE @totamt DECIMAL(20,0) + DECLARE @yy CHAR(4) + SET @yy = SUBSTRING(@frdate,1,4) + + CREATE TABLE #temp_t23a10 + ( + area CHAR(1) null, + apvdate CHAR(8) null, + apvnum CHAR(6) null, + apvseq CHAR(6) null, + saupbu CHAR(2) null, + acntcode CHAR(7) null, + vendorcd VARCHAR(20) null, + pjtno VARCHAR(20) null, + apvdramt DECIMAL, + apvcramt DECIMAL, + hyundae CHAR(1) null, + dr_cr CHAR(1) null + ) + +--============ 조정후 시작(2011.11.16) + + INSERT + #temp_t23a10 + SELECT + area,apvdate,apvnum,apvseq,saupbu,acntcode,vendorcd,pjtno,apvdramt,apvcramt,hyundae,dr_cr + FROM + ACC.dbo.t23a10 + WHERE area = @area + AND saupbu = @saupbu + AND apvdate BETWEEN SUBSTRING(@todate,1,4) AND @todate + + UPDATE + a + SET + acntcode = (CASE WHEN b.c_acntcode <> '' THEN b.c_acntcode ELSE a.acntcode END) + , pjtno = (CASE WHEN b.c_pjtno <> '' THEN b.c_pjtno ELSE a.pjtno END) + FROM + #temp_t23a10 a + JOIN + ACC.dbo.t23w70 b + ON + a.apvdate = b.apvdate and a.apvnum = b.apvnum and a.apvseq = b.apvseq + +--============ 조정후 종료 + + /* 지움 */ + DELETE + ACC.dbo.t23w20 -- 원가계산마스타 + WHERE + yy = @yy + + + DECLARE @temp_s1 TABLE + ( + pjtno VARCHAR(10) + , acntcode VARCHAR(7) + , mon VARCHAR(2) + , slpamt DECIMAL(20,2) + ) + + DECLARE @temp_s2 TABLE + ( + pjtno VARCHAR(10) + , yy CHAR(4) + , hg_gijun CHAR(1) + ) + + INSERT + @temp_s2 + SELECT + c.pjtno_rep pjtno, a.yy, a.hg_gijun + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + UNION + SELECT + c.pjtno_slip pjtno, a.yy, a.hg_gijun + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + + +--============================================================================================== +-- 원가계산 공사진행율로 인식 +-- 직접비와 간접비를 산출한다. +-- 직접비는 재료비는 프로젝트별 하나의 계정 월별로 합계액을 구한다. +-- 노무비는 프로젝트별 급여, 상여, 기타(나머지는 기타로)별 월별로 합계액을 구한다. +-- 경비는 프로젝트별 각 계정별 월별로 합계액을 구한다. +-- 외주비는 프로젝트별 하나의 계정 월별로 합계액을 구한다. +-- 간접비는 간접비 배부기준에서 불러와서 체크된 것에 한해서 프로젝트별 계정별 월별에 배부한다. +--============================================================================================== +/* 재료비 직접비 집계 -->월별로 재료비 하나로만 관리*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 노무비 직접비 집계 --> 프로젝트별 계정과목별 월별 금액*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 경 비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + +/* 외주비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 전표등록된 공사코드 ---> 원가계산용 공사코드로 변경 */ + UPDATE + @temp_s1 + SET + pjtno = b.pjtno_rep + FROM + @temp_s1 a + JOIN + ACC.dbo.t23w50 b + ON + b.yy = @yy and a.pjtno = b.pjtno_slip + +/* 원가계산 테이블에 저장 ---> 프로젝트별 계정별 월별 직접비 금액*/ + INSERT + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy + , pjtno, acntcode + , indi = '1'--직접비 + , mon + , amt = ISNULL(SUM(slpamt),0) + , rate = 0 + , gijun = '1' -- 공사진행율 인식 + FROM + @temp_s1 + WHERE + pjtno <> 'AA' + GROUP BY + pjtno, acntcode, mon + ORDER BY + pjtno, acntcode, mon + +--================================================================= +-- 원가계산 세금계산서 발행금액으로 인식(직접비만 산출한다.) +--================================================================= + DELETE @temp_s1 + +/* 재료비 직접비 집계 -->월별로 재료비 하나로만 관리*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 노무비 직접비 집계 --> 프로젝트별 계정과목별 월별 금액*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 경 비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + +/* 외주비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 전표등록된 공사코드 ---> 원가계산용 공사코드로 변경 */ + UPDATE + @temp_s1 + SET + pjtno = b.pjtno_rep + FROM + @temp_s1 a + JOIN + ACC.dbo.t23w50 b + ON + b.yy = @yy and a.pjtno = b.pjtno_slip + +/* 원가계산 테이블에 저장 ---> 프로젝트별 계정별 월별 직접비 금액*/ + INSERT + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy + , pjtno, acntcode + , indi = '1'--직접비 + , mon + , amt = ISNULL(SUM(slpamt),0) + , rate = 0 + , gijun = '2' -- 세금계산서 발행금액 인식 + FROM + @temp_s1 + WHERE + pjtno <> 'AA' + GROUP BY + pjtno, acntcode, mon + ORDER BY + pjtno, acntcode, mon + +/* ------------------------------------------------------------------- */ +/* 간접비는 원가배부기준이 1인것에만 프로젝트별 계정별 월별로 배부한다.*/ +/* 간접비는 공사코드가 AA인 것만 합치면 된다. */ +/* 간접비는 직접비의 비율에 따라서 배부한다. */ +/* ------------------------------------------------------------------- */ + DELETE @temp_s1 + +/* 재료비 간접집계 -- 하나의 계정으로 관리*/ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + +/* 노무비 간접비 집계 -- 급여, 상여, 기타로 관리하기로 했는데 일단 계정별로 */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + +/* 경비 간접비 집계 --계정별로 합계를 구한다. */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + +/* 외주비 간접비 집계 --하나의 계정으로 합계를 구한다. */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + +/* 간접비 합계 ------------------------------------------------ + SELECT pjtno, acntcode, mon, amt=ISNULL(SUM(slpamt),0) + into #temp_s3 + FROM @temp_s1 + group by pjtno, acntcode, mon +*/ + +/************************************************************************/ +/* 간접비 배부 ------------------------------------------------*/ +/************************************************************************/ + DECLARE @chk_baebu_yn1 char(1),@chk_baebu_yn2 char(1),@chk_baebu_yn3 char(1),@chk_baebu_yn4 char(1) + SELECT @chk_baebu_yn1 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '1' + SELECT @chk_baebu_yn2 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '2' + SELECT @chk_baebu_yn3 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '3' + SELECT @chk_baebu_yn4 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '4' + +/* 직접비 합 구함 :::: 프로젝트별 월별 계정별 합계 */ +/* 간접비 배부기준에 따라서 직접비 합이 틀려진다. 간접비배부에 해당하는 계정에 대한 합(A)을 구한다.*/ +/* 간접비 배부에 해당하는 프로젝트별 합(B)을 구해서 B/A*100을 하면 비율이 구해진다.*/ +/* + SELECT pjtno, month + , SUM(case when acntcode like '91%' then amt else 0 end) tot1 + , SUM(case when acntcode like '92%' then amt else 0 end) tot2 + , SUM(case when acntcode like '93%' then amt else 0 end) tot3 + , SUM(case when acntcode like '94%' then amt else 0 end) tot4 + , rate=convert(decimal(20,13),0) + into @totamt1 + FROM ACC.dbo.t23w20 + WHERE area=@area + AND saupbu=@saupbu + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno, month +*/ +-- SELECT * FROM @temp_s1 +-- SELECT SUM(slpamt) FROM @temp_s1 GROUP BY SUBSTRING(acntcode,1,2) +-- SELECT * FROM @totamt1 ORDER BY acntcode, pjtno +-- SELECT * FROM @totamt2 ORDER BY pjtno, acntcode + + -- 이거는 사용 안해도 될듯... + DECLARE @totamt1 TABLE + ( + pjtno VARCHAR(10), + acntcode VARCHAR(7), + [month] VARCHAR(2), + totamt DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt1 + SELECT + pjtno, acntcode, [month], totamt=SUM(amt), rate=0 + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY + pjtno, acntcode, [month] + ORDER BY + acntcode + + + -- 이거는 일단 간접비 배부기준을 92, 93으로 셋팅함 원래는 테이블에서 가져와야 하는데...처리 안됨 + DECLARE @totamt2 TABLE + ( + pjtno VARCHAR(10), + [month] VARCHAR(2), + totamt DECIMAL, + amt92 DECIMAL, + amt93 DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt2 + SELECT + pjtno, [month] +-- , totamt = (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + , totamt = case + when @todate < '20130531' + then + (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + else + (SUM(CASE WHEN acntcode like '92%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)) + end + , amt92 = SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END) + , amt93 = SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END) + , rate=CONVERT(DECIMAL(20,13),0) + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno, [month] + + /* pjt별 배부율 할당계산 */ + UPDATE + @totamt2 + SET + rate = CONVERT(DECIMAL(20,13), (a.totamt/b.total)) + FROM + @totamt2 a + INNER JOIN + ( + SELECT + [month] + , total = SUM(totamt) + FROM + @totamt2 + GROUP BY + [month] + ) b + on a.[month] = b.[month] + + -- 감가상각비, 퇴충에 대해서 처리 + DECLARE @totamt3 TABLE + ( + pjtno VARCHAR(10), + [month] VARCHAR(2), + totamt DECIMAL, + amt92 DECIMAL, + amt93 DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt3 + SELECT + pjtno + , [month] = SUBSTRING(@todate,5,2) +-- , [month] = [month] +-- , totamt = (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + , totamt = case + when @todate < '20130531' + then + (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + else + (SUM(CASE WHEN acntcode like '92%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)) + end + , amt92 = SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END) + , amt93 = SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END) + , rate=CONVERT(DECIMAL(20,13),0) + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno + -- , [month] + + /* pjt별 배부율 할당계산 */ + UPDATE + @totamt3 + SET + rate = CONVERT(DECIMAL(20,13), (totamt/(SELECT totamt=SUM(totamt) FROM @totamt3))) + + + SELECT * FROM @totamt1 + SELECT * FROM @totamt2 order by pjtno + SELECT * FROM @totamt3 order by pjtno + SELECT * FROM @temp_s1 order by pjtno + + SELECT substring(acntcode,1,2) acntcode, mon, sum(slpamt) slpamt FROM @temp_s1 group by substring(acntcode,1,2), mon + + SELECT * FROM ACC.dbo.t23w20 where yy = @yy + +/* 재료,노무,경비,외주 간접비 배부 ---------------------------------*/ +/* 직접비 구성대로 간접비 구성 */ +/* +SELECT * ,convert(decimal(20,0),round((a.rate*b.slpamt),0)) + FROM @totamt1 a inner join @temp_s1 b on a.acntcode = b.acntcode AND a.month = b.mon + WHERE b.acntcode like '93%' +*/ + + -- 간접비를 직접재료비에 배부시킨다. Y일 때만 + if (@chk_baebu_yn1 = 'Y') + BEGIN + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month] + , amt + , rate, gijun) + SELECT + @yy, a.pjtno, '91', '2', a.[month] + , amt = CONVERT(DECIMAL(20,0), ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt1 a + INNER JOIN + @temp_s1 b + ON + a.acntcode = b.acntcode + AND a.[month] = b.mon + WHERE + b.acntcode ='91' + END +-- SELECT SUM(amt) FROM t23w20 WHERE indi = '2' GROUP BY SUBSTRING(acntcode,1,2) +-- SELECT * FROM t23w20 WHERE indi = '2' AND acntcode like '92%' +/* SELECT a.pjtno, b.acntcode, '2', a.month + , a.rate, b.slpamt + FROM @totamt2 a inner join @temp_s1 b + on a.month = b.mon + WHERE b.acntcode like '93%' +*/ + -- 간접비를 직접노무비에 배부시킨다. Y일 때만 + if (@chk_baebu_yn2 = 'Y') + BEGIN + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt2 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode LIKE '92%' + AND b.acntcode NOT IN ('9200400' ,'9200401' ,'9200402','9200403') + GROUP BY + a.pjtno, b.acntcode, a.[month] + + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , rate = SUM(a.rate) + , slpamt = SUM(b.slpamt) + , 0, '1' + FROM + @totamt2 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode LIKE '92%' + AND b.acntcode NOT IN ('9200400' ,'9200401' ,'9200402','9200403') + GROUP BY + a.pjtno, b.acntcode, a.[month] + + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt3 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode IN ('9200400' ,'9200401' ,'9200402','9200403') + GROUP BY + a.pjtno, b.acntcode, a.[month] + END + -- 간접비를 직접경비에 배부시킨다. Y일 때만 + if (@chk_baebu_yn3 = 'Y') + BEGIN + IF (@todate < '20130531') -- (SUBSTRING(@todate,5,4) = '0531') + BEGIN + + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt2 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode LIKE '93%' + GROUP BY + a.pjtno, b.acntcode, a.[month] + + END + ELSE + BEGIN + + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt2 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode LIKE '93%' + AND b.acntcode NOT IN ('9303900' ,'9303901' ,'9303902','9303903','9303904','9303905','9303906','9303907','9303908') + GROUP BY + a.pjtno, b.acntcode, a.[month] + + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, b.acntcode, '2', a.[month] + , amt = SUM(ROUND((a.rate*b.slpamt),0)) + , 0, '1' + FROM + @totamt3 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode IN ('9303900' ,'9303901' ,'9303902','9303903','9303904','9303905','9303906','9303907','9303908') + GROUP BY + a.pjtno, b.acntcode, a.[month] + + END + +-- INSERT INTO +-- ACC.dbo.t23w20 +-- (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) +-- SELECT +-- @yy, a.pjtno, b.acntcode, '2', a.[month] +-- , amt = SUM(ROUND((a.rate*b.slpamt),0)) +-- , 0, '1' +-- FROM +-- @totamt2 a +-- INNER JOIN +-- @temp_s1 b +-- ON +-- a.[month] = b.mon +-- WHERE +-- b.acntcode LIKE '93%' +-- AND b.acntcode NOT IN ('9303900' ,'9303901' ,'9303902','9303903','9303904','9303905','9303906','9303907','9303908') +-- GROUP BY +-- a.pjtno, b.acntcode, a.[month] +-- +-- INSERT INTO +-- ACC.dbo.t23w20 +-- (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) +-- SELECT +-- @yy, a.pjtno, b.acntcode, '2', a.[month] +-- , amt = SUM(ROUND((a.rate*b.slpamt),0)) +-- , 0, '1' +-- FROM +-- @totamt3 a +-- INNER JOIN +-- @temp_s1 b +-- ON +-- a.[month] = b.mon +-- WHERE +-- b.acntcode IN ('9303900' ,'9303901' ,'9303902','9303903','9303904','9303905','9303906','9303907','9303908') +-- GROUP BY +-- a.pjtno, b.acntcode, a.[month] + + END + -- 간접비를 직접외주비에 배부시킨다. Y일 때만 + if (@chk_baebu_yn4 = 'Y') + BEGIN + INSERT INTO + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy, a.pjtno, '94', '2', a.[month] + , amt = CONVERT(DECIMAL(20,0),ROUND((a.rate*b.slpamt),0)), 0, '1' + FROM + @totamt1 a + INNER JOIN + @temp_s1 b + ON + a.[month] = b.mon + WHERE + b.acntcode LIKE '94%' + END + +/*=== 간접비인 경우에 승인전표에서 계정코드가 '5130100' 이 당기 기간의 매출액이 되므로 해당 매출액을 입력한다. */ + DECLARE @temp_saleamt TABLE + ( + pjtno VARCHAR(10), + saleamt DECIMAL + ) + + INSERT INTO + @temp_saleamt + SELECT + a.pjtno, + saleamt = SUM(a.apvcramt) + FROM + ( + SELECT + a.pjtno, + a.apvcramt + FROM + #temp_t23a10 a + INNER JOIN + ( + SELECT DISTINCT a.pjtno + FROM + ( + SELECT + distinct c.pjtno_slip pjtno + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + AND a.hg_gijun ='2' + UNION + SELECT + distinct a.pjtno + FROM + ACC.dbo.t23w60 a + WHERE + NOT EXISTS + ( + SELECT * FROM ACC.dbo.t23w50 + WHERE + a.yy = yy and a.pjtno = pjtno_slip + ) + AND a.yy = @yy + AND a.hg_gijun ='2' + ) a + ) b + ON + a.pjtno = b.pjtno + WHERE + a.apvdate BETWEEN @frdate AND @todate + AND a.acntcode = '5130100' + UNION ALL + SELECT + a.pjtno, + a.apvcramt + FROM + ACC.dbo.t23a90 a + INNER JOIN + ( + SELECT DISTINCT a.pjtno + FROM + ( + SELECT + distinct c.pjtno_slip pjtno + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + AND a.hg_gijun ='2' + UNION + SELECT + distinct a.pjtno + FROM + ACC.dbo.t23w60 a + WHERE + NOT EXISTS + ( + SELECT * FROM ACC.dbo.t23w50 + WHERE + a.yy = yy and a.pjtno = pjtno_slip + ) + AND a.yy = @yy + AND a.hg_gijun ='2' + ) a + ) b + ON + a.pjtno = b.pjtno + WHERE +-- a.apvdate BETWEEN @frdate AND @todate 2010.06.16 수정 + a.apvdate = @todate + AND a.acntcode = '5130100' + ) a + GROUP BY + a.pjtno + + +/*=== 직접비인 경우에 승인전표에서 계정코드가 '2100601','2100602'이고, 사업자번호가 '4118121029'이 아닌 대변금액이 당기 기간의 수금액이 되므로 */ + INSERT INTO + @temp_saleamt + SELECT + a.pjtno, + saleamt = SUM(a.apvcramt) + FROM + #temp_t23a10 a + INNER JOIN + ( +-- SELECT DISTINCT a.pjtno +-- FROM +-- @temp_s2 a +-- WHERE +-- a.yy = @yy +-- AND a.hg_gijun = '1' + + SELECT DISTINCT a.pjtno + FROM + ( + SELECT + distinct c.pjtno_slip pjtno + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + AND a.hg_gijun ='1' + UNION + SELECT + distinct a.pjtno + FROM + ACC.dbo.t23w60 a + WHERE + NOT EXISTS + ( + SELECT * FROM ACC.dbo.t23w50 + WHERE + a.yy = yy and a.pjtno = pjtno_slip + ) + AND a.yy = @yy + AND a.hg_gijun ='1' + ) a + ) b + ON + a.pjtno = b.pjtno + WHERE + a.apvdate BETWEEN substring(@frdate,1,7)+'2' AND @todate + AND a.acntcode in ('2100601','2100602') + AND a.vendorcd <> '4118121029' + GROUP BY + a.pjtno + + /* 전표등록된 공사코드 ---> 원가계산용 공사코드로 변경 */ + UPDATE + @temp_saleamt + SET + pjtno = b.pjtno_rep + FROM + @temp_saleamt a, + ACC.dbo.t23w50 b + WHERE + b.yy = substring(@frdate,1,4) and a.pjtno = b.pjtno_slip + + /* 원가계산에 있는 경우에는 업데이트하고 해당 기간에 없는 경우에는 신규로 입력한다.*/ + UPDATE + ACC.dbo.t23w20 + SET + saleamt = b.saleamt + FROM + ACC.dbo.t23w20 a + INNER JOIN + ( + SELECT pjtno, SUM(saleamt) saleamt FROM @temp_saleamt + GROUP BY pjtno + ) b + ON + a.yy = @yy + AND a.pjtno = b.pjtno + + + INSERT INTO + ACC.dbo.t23w20 + ( + yy, pjtno, amt, rate, indi, acntcode, [month] + , gijun + , saleamt + ) + SELECT + @yy, a.pjtno, 0, 0, '', '', '' + , (SELECT hg_gijun FROM ACC.dbo.t23w60 WHERE yy = @yy AND pjtno = a.pjtno) + , SUM(a.saleamt) saleamt + FROM + @temp_saleamt a + WHERE NOT EXISTS + ( + SELECT DISTINCT pjtno FROM ACC.dbo.t23w20 WHERE yy = @yy AND a.pjtno = pjtno + ) + GROUP BY + a.pjtno + + -- 해당 기간에 발생되지 않은 자료를 강제로 보여주기 위해서 추가함. + INSERT INTO + ACC.dbo.t23w20 + ( + yy, pjtno, amt, rate, indi, acntcode, [month] + , gijun + , saleamt + ) + SELECT + @yy, a.pjtno, 0, 0, '', '', '' + , a.hg_gijun + , 0 + FROM + ACC.dbo.t23w60 a + WHERE NOT EXISTS + ( + SELECT DISTINCT pjtno FROM ACC.dbo.t23w20 WHERE yy = @yy AND a.pjtno = pjtno + ) + AND a.yy = @yy + + /*=== 공사진행율기준의 경우에 선수금을 가져오기 위해서 추가 */ + UPDATE + ACC.dbo.t23w20 + SET + sunsugum = b.sunsugum + FROM + ACC.dbo.t23w20 a + INNER JOIN + ( + SELECT + a.pjtno, SUM(a.apvcramt) - SUM(a.apvdramt) sunsugum -- 대변 - 차변 + FROM + #temp_t23a10 a + INNER JOIN + ( + SELECT pjtno FROM ACC.dbo.t23w20 WHERE yy = @yy AND gijun ='1' GROUP BY pjtno + ) b + ON + a.pjtno = b.pjtno + WHERE + a.apvdate BETWEEN @frdate AND @todate + AND a.acntcode in ('2100601','2100602') + GROUP BY + a.pjtno + ) b + ON + a.yy = @yy + AND a.pjtno = b.pjtno + + + + -- 노무비 차액 발생하는 것 체크해서 월별로 가장 큰 계정의 금액에 더하거나 뺀다. + DECLARE @tmpjan92 TABLE + ( + seq INT IDENTITY(1,1), + mon CHAR(2), + amt DECIMAL + ) + + DECLARE @seq INT, @cnt INT, @janamt DECIMAL + SET @seq = 1 + SET @cnt = 0 + SET @janamt = 0 + + INSERT INTO + @tmpjan92 + SELECT + a.mon, b.amt-a.amt + FROM + ( + SELECT mon = [month], sum(amt) amt + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + and acntcode like '92%' + GROUP BY + [month] + ) a + JOIN + ( + SELECT + mon, SUM(amt) amt + FROM + ( + SELECT + mon = SUBSTRING(apvdate,5,2) + , amt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate + GROUP BY + SUBSTRING(apvdate,5,2) + UNION ALL + SELECT + mon = SUBSTRING(apvdate,5,2) + , amt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate + GROUP BY + SUBSTRING(apvdate,5,2) + ) a + GROUP BY + mon + ) b + ON + a.mon = b.mon + + -- SELECT * FROM @tmpjan92 + + SELECT @cnt = COUNT(*) + FROM @tmpjan92 + + WHILE(@seq<=@cnt) + BEGIN + SELECT @janamt = amt FROM @tmpjan92 WHERE seq = @seq + + UPDATE + ACC.dbo.t23w20 + SET + amt = amt + @janamt + FROM + ACC.dbo.t23w20 a + JOIN + ( + SELECT TOP 1 pjtno, [month], acntcode + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND [month] = HRM.dbo.ufn_lpad(@seq, 2, '0') + AND acntcode LIKE '92%' + AND indi = '2' -- 간접비에 배부해야 함 + GROUP BY + pjtno, [month], acntcode + ORDER BY + MAX(amt) DESC + ) b + ON + a.yy = @yy + AND a.[month] = b.[month] + AND a.pjtno = b.pjtno + AND a.acntcode = b.acntcode + AND a.indi = '2' -- 간접비에 배부해야 함 + + SET @seq = @seq + 1 + END + + -- 경비 차액 발생하는 것 체크해서 월별로 가장 큰 계정의 금액에 더하거나 뺀다. + DECLARE @tmpjan93 TABLE + ( + seq INT IDENTITY(1,1), + mon CHAR(2), + amt DECIMAL + ) + + INSERT INTO + @tmpjan93 + SELECT + a.mon, b.amt-a.amt + FROM + ( + SELECT mon = [month], sum(amt) amt + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND acntcode LIKE '93%' + GROUP BY + [month] + ) a + JOIN + ( + SELECT + mon, SUM(amt) amt + FROM + ( + SELECT + mon = SUBSTRING(apvdate,5,2) + , amt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate + GROUP BY + SUBSTRING(apvdate,5,2) + UNION ALL + SELECT + mon = SUBSTRING(apvdate,5,2) + , amt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate + GROUP BY + SUBSTRING(apvdate,5,2) + ) a + GROUP BY + mon + ) b + ON + a.mon = b.mon + ORDER BY + a.mon + + -- SELECT * FROM @tmpjan93 + + SET @seq = 1 + SET @cnt = 0 + SET @janamt = 0 + + SELECT @cnt = COUNT(*) + FROM @tmpjan93 + + WHILE(@seq<=@cnt) + BEGIN + SELECT @janamt = amt FROM @tmpjan93 WHERE seq = @seq + + -- SELECT @janamt + + UPDATE + ACC.dbo.t23w20 + SET + amt = amt + @janamt + FROM + ACC.dbo.t23w20 a + JOIN + ( + SELECT TOP 1 pjtno, [month], acntcode + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND [month] = HRM.dbo.ufn_lpad(@seq, 2, '0') + AND acntcode LIKE '93%' + AND indi = '2' -- 간접비에 배부해야 함 + GROUP BY + pjtno, [month], acntcode + ORDER BY + MAX(amt) DESC + ) b + ON + a.yy = @yy + AND a.[month] = b.[month] + AND a.pjtno = b.pjtno + AND a.acntcode = b.acntcode + AND indi = '2' -- 간접비에 배부해야 함 + + SET @seq = @seq + 1 + END diff --git a/쿼리/Template/원가계산검증.sql b/쿼리/Template/원가계산검증.sql new file mode 100644 index 0000000..4e7142e --- /dev/null +++ b/쿼리/Template/원가계산검증.sql @@ -0,0 +1,1131 @@ +-- ========================================== +-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] +-- 작 성 자: [실행자 이름을 기록합니다.] +-- 작업목적: [회계장부로 원가계산기능을 순차적으로 검증하며 중간산출자료등을 회계팀에 제공할 목적으로 작성된 쿼리입니다.] +-- 요청자/티켓번호: [회계팀의 요청시 검토하는 용도입니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +DROP TABLE #temp_t23a10 + +DECLARE + @area CHAR(1) , + @saupbu CHAR(2), + @frdate CHAR(8), + @todate CHAR(8) +-- AS + SELECT @area = '9', @saupbu = '10', @frdate = '20230101', @todate = '20230131' + + + DECLARE @totamt DECIMAL(20,0) + DECLARE @yy CHAR(4) + SET @yy = SUBSTRING(@frdate,1,4) + + CREATE TABLE #temp_t23a10 + ( + area CHAR(1) null, + apvdate CHAR(8) null, + apvnum CHAR(6) null, + apvseq CHAR(6) null, + saupbu CHAR(2) null, + acntcode CHAR(7) null, + vendorcd VARCHAR(20) null, + pjtno VARCHAR(20) null, + apvdramt DECIMAL, + apvcramt DECIMAL, + hyundae CHAR(1) null, + dr_cr CHAR(1) null + ) + +--============ 조정후 시작(2011.11.16) + + INSERT + #temp_t23a10 + SELECT + area,apvdate,apvnum,apvseq,saupbu,acntcode,vendorcd,pjtno,apvdramt,apvcramt,hyundae,dr_cr + FROM + ACC.dbo.t23a10 + WHERE area = @area + AND saupbu = @saupbu + AND apvdate BETWEEN SUBSTRING(@todate,1,4) AND @todate + + UPDATE + a + SET + acntcode = (CASE WHEN b.c_acntcode <> '' THEN b.c_acntcode ELSE a.acntcode END) + , pjtno = (CASE WHEN b.c_pjtno <> '' THEN b.c_pjtno ELSE a.pjtno END) + FROM + #temp_t23a10 a + JOIN + ACC.dbo.t23w70 b + ON + a.apvdate = b.apvdate and a.apvnum = b.apvnum and a.apvseq = b.apvseq + +--============ 조정후 종료 + + /* 지움 */ + DELETE + ACC.dbo.t23w20 -- 원가계산마스타 + WHERE + yy = @yy + + + DECLARE @temp_s1 TABLE + ( + pjtno VARCHAR(10) + , acntcode VARCHAR(7) + , mon VARCHAR(2) + , slpamt DECIMAL(20,2) + ) + + DECLARE @temp_s2 TABLE + ( + pjtno VARCHAR(10) + , yy CHAR(4) + , hg_gijun CHAR(1) + ) + + INSERT + @temp_s2 + SELECT + c.pjtno_rep pjtno, a.yy, a.hg_gijun + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + UNION + SELECT + c.pjtno_slip pjtno, a.yy, a.hg_gijun + FROM + ACC.dbo.t23w60 a + JOIN + ACC.dbo.t23w50 c + ON + a.yy = c.yy and a.pjtno = c.pjtno_rep + WHERE + a.yy = @yy + + +--============================================================================================== +-- 원가계산 공사진행율로 인식 +-- 직접비와 간접비를 산출한다. +-- 직접비는 재료비는 프로젝트별 하나의 계정 월별로 합계액을 구한다. +-- 노무비는 프로젝트별 급여, 상여, 기타(나머지는 기타로)별 월별로 합계액을 구한다. +-- 경비는 프로젝트별 각 계정별 월별로 합계액을 구한다. +-- 외주비는 프로젝트별 하나의 계정 월별로 합계액을 구한다. +-- 간접비는 간접비 배부기준에서 불러와서 체크된 것에 한해서 프로젝트별 계정별 월별에 배부한다. +--============================================================================================== +/* 재료비 직접비 집계 -->월별로 재료비 하나로만 관리*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 노무비 직접비 집계 --> 프로젝트별 계정과목별 월별 금액*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 경 비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + +/* 외주비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '1' + ORDER BY + a.pjtno + + +/* 전표등록된 공사코드 ---> 원가계산용 공사코드로 변경 */ + UPDATE + @temp_s1 + SET + pjtno = b.pjtno_rep + FROM + @temp_s1 a + JOIN + ACC.dbo.t23w50 b + ON + b.yy = @yy and a.pjtno = b.pjtno_slip + +/* 원가계산 테이블에 저장 ---> 프로젝트별 계정별 월별 직접비 금액*/ + INSERT + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy + , pjtno, acntcode + , indi = '1'--직접비 + , mon + , amt = ISNULL(SUM(slpamt),0) + , rate = 0 + , gijun = '1' -- 공사진행율 인식 + FROM + @temp_s1 + WHERE + pjtno <> 'AA' + GROUP BY + pjtno, acntcode, mon + ORDER BY + pjtno, acntcode, mon + +--================================================================= +-- 원가계산 세금계산서 발행금액으로 인식(직접비만 산출한다.) +--================================================================= + DELETE @temp_s1 + +/* 재료비 직접비 집계 -->월별로 재료비 하나로만 관리*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'91'), + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 노무비 직접비 집계 --> 프로젝트별 계정과목별 월별 금액*/ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9200101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 경 비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'9300101') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + +/* 외주비 직접비 집계 */ + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND apvdate >= @frdate + AND apvdate <= @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + INSERT + @temp_s1 + SELECT + a.pjtno, + acntcode = ISNULL(b.acntcode,'94') , + mon = ISNULL(b.mon,'01'), + slpamt = ISNULL(b.slpamt,0) + FROM + @temp_s2 a + JOIN + ( + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' +-- AND apvdate >= @frdate + AND apvdate = @todate + AND saupbu = @saupbu + AND area = @area + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + ) b + ON + a.pjtno = b.pjtno + WHERE + a.yy = @yy + AND a.hg_gijun = '2' + ORDER BY + a.pjtno + + +/* 전표등록된 공사코드 ---> 원가계산용 공사코드로 변경 */ + UPDATE + @temp_s1 + SET + pjtno = b.pjtno_rep + FROM + @temp_s1 a + JOIN + ACC.dbo.t23w50 b + ON + b.yy = @yy and a.pjtno = b.pjtno_slip + +/* 원가계산 테이블에 저장 ---> 프로젝트별 계정별 월별 직접비 금액*/ + INSERT + ACC.dbo.t23w20 + (yy, pjtno, acntcode, indi, [month], amt, rate, gijun) + SELECT + @yy + , pjtno, acntcode + , indi = '1'--직접비 + , mon + , amt = ISNULL(SUM(slpamt),0) + , rate = 0 + , gijun = '2' -- 세금계산서 발행금액 인식 + FROM + @temp_s1 + WHERE + pjtno <> 'AA' + GROUP BY + pjtno, acntcode, mon + ORDER BY + pjtno, acntcode, mon + +/* ------------------------------------------------------------------- */ +/* 간접비는 원가배부기준이 1인것에만 프로젝트별 계정별 월별로 배부한다.*/ +/* 간접비는 공사코드가 AA인 것만 합치면 된다. */ +/* 간접비는 직접비의 비율에 따라서 배부한다. */ +/* ------------------------------------------------------------------- */ + DELETE @temp_s1 + +/* 재료비 간접집계 -- 하나의 계정으로 관리*/ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '91%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '91' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '91%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + +/* 노무비 간접비 집계 -- 급여, 상여, 기타로 관리하기로 했는데 일단 계정별로 */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '92%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + +/* 경비 간접비 집계 --계정별로 합계를 구한다. */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '93%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) + + +/* 외주비 간접비 집계 --하나의 계정으로 합계를 구한다. */ + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '94%' + AND saupbu = @saupbu + AND area = @area + AND apvdate >= @frdate + AND apvdate <= @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + + INSERT + @temp_s1 + SELECT + pjtno + , acntcode = '94' + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + ACC.dbo.t23a90 + WHERE + acntcode LIKE '94%' + AND saupbu = @saupbu + AND area = @area +-- AND apvdate >= @frdate + AND apvdate = @todate +-- AND pjtno = 'AA' + AND (pjtno = 'AA' OR pjtno IN (select pjtno_slip from ACC.dbo.t23w50 where yy = substring(@frdate,1,4) and pjtno_rep = 'AA')) + GROUP BY + pjtno, SUBSTRING(apvdate,5,2) + +/* 간접비 합계 ------------------------------------------------ + SELECT pjtno, acntcode, mon, amt=ISNULL(SUM(slpamt),0) + into #temp_s3 + FROM @temp_s1 + group by pjtno, acntcode, mon +*/ + +/************************************************************************/ +/* 간접비 배부 ------------------------------------------------*/ +/************************************************************************/ + DECLARE @chk_baebu_yn1 char(1),@chk_baebu_yn2 char(1),@chk_baebu_yn3 char(1),@chk_baebu_yn4 char(1) + SELECT @chk_baebu_yn1 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '1' + SELECT @chk_baebu_yn2 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '2' + SELECT @chk_baebu_yn3 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '3' + SELECT @chk_baebu_yn4 = cd_name4 FROM ACC.dbo.t23c90 WHERE group_code = '05' AND sub_code = '4' + +/* 직접비 합 구함 :::: 프로젝트별 월별 계정별 합계 */ +/* 간접비 배부기준에 따라서 직접비 합이 틀려진다. 간접비배부에 해당하는 계정에 대한 합(A)을 구한다.*/ +/* 간접비 배부에 해당하는 프로젝트별 합(B)을 구해서 B/A*100을 하면 비율이 구해진다.*/ +/* + SELECT pjtno, month + , SUM(case when acntcode like '91%' then amt else 0 end) tot1 + , SUM(case when acntcode like '92%' then amt else 0 end) tot2 + , SUM(case when acntcode like '93%' then amt else 0 end) tot3 + , SUM(case when acntcode like '94%' then amt else 0 end) tot4 + , rate=convert(decimal(20,13),0) + into @totamt1 + FROM ACC.dbo.t23w20 + WHERE area=@area + AND saupbu=@saupbu + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno, month +*/ +-- SELECT * FROM @temp_s1 +-- SELECT SUM(slpamt) FROM @temp_s1 GROUP BY SUBSTRING(acntcode,1,2) +-- SELECT * FROM @totamt1 ORDER BY acntcode, pjtno +-- SELECT * FROM @totamt2 ORDER BY pjtno, acntcode + + -- 이거는 사용 안해도 될듯... + DECLARE @totamt1 TABLE + ( + pjtno VARCHAR(10), + acntcode VARCHAR(7), + [month] VARCHAR(2), + totamt DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt1 + SELECT + pjtno, acntcode, [month], totamt=SUM(amt), rate=0 + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY + pjtno, acntcode, [month] + ORDER BY + acntcode + + + -- 이거는 일단 간접비 배부기준을 92, 93으로 셋팅함 원래는 테이블에서 가져와야 하는데...처리 안됨 + DECLARE @totamt2 TABLE + ( + pjtno VARCHAR(10), + [month] VARCHAR(2), + totamt DECIMAL, + amt92 DECIMAL, + amt93 DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt2 + SELECT + pjtno, [month] +-- , totamt = (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + , totamt = case + when @todate < '20130531' + then + (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + else + (SUM(CASE WHEN acntcode like '92%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)) + end + , amt92 = SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END) + , amt93 = SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END) + , rate=CONVERT(DECIMAL(20,13),0) + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno, [month] + + /* pjt별 배부율 할당계산 */ + UPDATE + @totamt2 + SET + rate = CONVERT(DECIMAL(20,13), (a.totamt/b.total)) + FROM + @totamt2 a + INNER JOIN + ( + SELECT + [month] + , total = SUM(totamt) + FROM + @totamt2 + GROUP BY + [month] + ) b + on a.[month] = b.[month] + +SELECT * FROM @totamt2 order by pjtno +SELECT [month], sum(totamt) FROM @totamt2 GROUP BY [month] -- 11 1986898860 + + -- 감가상각비, 퇴충에 대해서 처리 + DECLARE @totamt3 TABLE + ( + pjtno VARCHAR(10), + [month] VARCHAR(2), + totamt DECIMAL, + amt92 DECIMAL, + amt93 DECIMAL, + rate DECIMAL(20,13) + ) + + INSERT INTO + @totamt3 + SELECT + pjtno + , [month] = SUBSTRING(@todate,5,2) +-- , totamt = (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + , totamt = case + when @todate < '20130531' + then + (SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END)) + else + (SUM(CASE WHEN acntcode like '92%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)+SUM(CASE WHEN acntcode like '93%' THEN (case when amt>0 then amt else 0 end) ELSE 0 END)) + end + , amt92 = SUM(CASE WHEN acntcode like '92%' THEN amt ELSE 0 END) + , amt93 = SUM(CASE WHEN acntcode like '93%' THEN amt ELSE 0 END) + , rate=CONVERT(DECIMAL(20,13),0) + FROM + ACC.dbo.t23w20 + WHERE + yy = @yy + AND indi = '1' --직접비기준 + AND gijun = '1' --공사진행율기준 + GROUP BY pjtno + + -- SELECT * FROM @totamt3 order by pjtno + -- SELECT sum(totamt) FROM @totamt3 -- 18731700085 + + /* pjt별 배부율 할당계산 */ + UPDATE + @totamt3 + SET + rate = CONVERT(DECIMAL(20,13), (totamt/(SELECT totamt=SUM(totamt) FROM @totamt3))) + + + -- SELECT * FROM @totamt2 order by pjtno + SELECT * FROM @totamt3 order by pjtno + SELECT substring(acntcode,1,5) acntcode, mon, sum(slpamt) slpamt FROM @temp_s1 where acntcode like '92%' group by substring(acntcode,1, 5), mon + -- 노무비 배부기준 + SELECT pjtno,substring(acntcode,1,5) acntcode, mon, sum(slpamt) slpamt FROM @temp_s1 where acntcode like '92%' group by pjtno,substring(acntcode,1, 5), mon + -- 경비 배부기준 + SELECT pjtno,substring(acntcode,1,5) acntcode, mon, sum(slpamt) slpamt FROM @temp_s1 where acntcode like '93%' group by pjtno,substring(acntcode,1, 5), mon + -- SELECT substring(acntcode,1,2) acntcode, mon, sum(slpamt) slpamt FROM @temp_s1 where substring(acntcode,1,5) in ('92001', '92002') group by substring(acntcode,1, 2), mon +/* + SELECT + pjtno = ISNULL(pjtno,'') + , acntcode + , mon = SUBSTRING(apvdate,5,2) + , slpamt = SUM(apvdramt) + FROM + #temp_t23a10 + WHERE + acntcode LIKE '93%' + AND apvdate >= '20230101' + AND apvdate <= '20230131' + AND saupbu = '10' + AND area = '9' + and pjtno = 'V172T004' + GROUP BY + pjtno, acntcode, SUBSTRING(apvdate,5,2) +*/ \ No newline at end of file diff --git a/쿼리/Template/인건비반영제거하기.sql b/쿼리/Template/인건비반영제거하기.sql index ea71b19..1af422d 100644 --- a/쿼리/Template/인건비반영제거하기.sql +++ b/쿼리/Template/인건비반영제거하기.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [인건비 일괄 입력된 자료가 중복되거나 잘못 입력된 경우 삭제하고 실행예산 투입실적금액을 변경할 경우 사용합니다.] -- 요청자/티켓번호: [요청 부서 / 요청자 또는 이슈 번호를 기록합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @yy char(4), @mm char(2) diff --git a/쿼리/Template/자금일보조회.sql b/쿼리/Template/자금일보조회.sql index 3ec02e5..5dd9e06 100644 --- a/쿼리/Template/자금일보조회.sql +++ b/쿼리/Template/자금일보조회.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [기간에 대한 자금집행내역을 조회하여 다량의 자료를 엑셀파일로 제공합니다.] -- 요청자/티켓번호: [회계부서의 요청에 따라 제공합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @fr_date char(8), @to_date char(8) diff --git a/쿼리/Template/전표금액과 예산투입금액 차이 조회.sql b/쿼리/Template/전표금액과 예산투입금액 차이 조회.sql new file mode 100644 index 0000000..7a677c6 --- /dev/null +++ b/쿼리/Template/전표금액과 예산투입금액 차이 조회.sql @@ -0,0 +1,14 @@ +-- ========================================== +-- 작업일자: YYYY-MM-DD [쿼리 작성 및 실행 날짜를 기록합니다.] +-- 작 성 자: [실행자 이름을 기록합니다.] +-- 작업목적: [전표금액과 예산투입금액의 차이를 검토하기 위해 작성된 쿼리입니다.] +-- 요청자/티켓번호: [회계팀의 요청시 전표금액과 예산투입금액의 차이 내역을 엑셀로 제공하여 검토하는 용도입니다.] +-- 데이타베이스 : MS-SQL +-- ========================================== + +select slpdate, dtcode, slpnum, slpseq, acntcode, slpamt, amt6, slpfree, ys_pjtno, ys_main, ys_sub, ys_bud_seq, ys_ctr_seq +from ACC.dbo.t23b10 +where + area = '9' and slpdate > '20200101' and acntcode like '9%' and prt_yn = 'Z' and slpamt <> amt6 and ys_main is not null +order by + slpdate, dtcode, slpnum, slpseq diff --git a/쿼리/Template/프로젝트별기간투입상세조회.sql b/쿼리/Template/프로젝트별기간투입상세조회.sql index 313a3e5..ec83b5e 100644 --- a/쿼리/Template/프로젝트별기간투입상세조회.sql +++ b/쿼리/Template/프로젝트별기간투입상세조회.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [기간이 긴 경우 많은 데이터를 조회할 때 실무자의 요청에 의해 조회하여 엑셀파일로 제공합니다.] -- 요청자/티켓번호: [요청 부서 / 요청자 또는 이슈 번호를 기록합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @f_year CHAR(4) diff --git a/쿼리/Template/회계장부_판관_원가_증빙조회.sql b/쿼리/Template/회계장부_판관_원가_증빙조회.sql index 1d5d6ba..df0b8da 100644 --- a/쿼리/Template/회계장부_판관_원가_증빙조회.sql +++ b/쿼리/Template/회계장부_판관_원가_증빙조회.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [회계년도에 대한 원가, 판관비 전표를 조회하여 다량의 자료를 엑셀파일로 제공합니다.] -- 요청자/티켓번호: [회계부서의 요청에 따라 제공합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @fr_date char(8), @to_date char(8) diff --git a/쿼리/Template/회계장부조회.sql b/쿼리/Template/회계장부조회.sql index fc3449e..29065b6 100644 --- a/쿼리/Template/회계장부조회.sql +++ b/쿼리/Template/회계장부조회.sql @@ -3,6 +3,7 @@ -- 작 성 자: [실행자 이름을 기록합니다.] -- 작업목적: [기간에 대한 회계 장부 전체를 조회하여 다량의 자료를 엑셀파일로 제공합니다.] -- 요청자/티켓번호: [회계부서의 요청에 따라 제공합니다.] +-- 데이타베이스 : MS-SQL -- ========================================== declare @fr_date char(8), @to_date char(8), @yy char(4)