From f1b5f2c379aa0fe45f240dbe6a29f39b4f66e4f1 Mon Sep 17 00:00:00 2001 From: Oliver Date: Thu, 7 Aug 2025 10:47:26 +1000 Subject: [PATCH] [refactor] Stock return API endpoints (#10132) * Add "StockReturn" API endpoint - Provide multiple items - Provide quantity for each item * Add frontend form * update frontend forms * Refactor frontend * Allow splitting quantity * Refactoring backend endpoints * cleanup * Update unit test * unit tests * Bump API version * Fix unit test * Add tests for returning build items to stock * Playwright tests * Enhanced unit tests * Add docs --- .../images/build/build_return_stock.png | Bin 0 -> 105068 bytes .../build/build_return_stock_dialog.png | Bin 0 -> 48854 bytes docs/docs/manufacturing/build.md | 10 ++ .../InvenTree/InvenTree/api_version.py | 11 +- src/backend/InvenTree/build/models.py | 8 +- src/backend/InvenTree/build/tasks.py | 2 +- src/backend/InvenTree/build/test_build.py | 41 ++++- src/backend/InvenTree/stock/api.py | 19 ++- src/backend/InvenTree/stock/events.py | 1 + src/backend/InvenTree/stock/models.py | 100 +++++++++--- src/backend/InvenTree/stock/serializers.py | 146 +++++++++++------- src/backend/InvenTree/stock/status_codes.py | 2 + src/backend/InvenTree/stock/test_api.py | 21 ++- src/backend/InvenTree/stock/tests.py | 4 +- src/frontend/lib/enums/ApiEndpoints.tsx | 2 +- src/frontend/src/forms/StockForms.tsx | 105 ++++++++++++- src/frontend/src/functions/icons.tsx | 2 + .../src/hooks/UseStockAdjustActions.tsx | 14 ++ src/frontend/src/pages/build/BuildDetail.tsx | 1 + .../src/pages/company/CompanyDetail.tsx | 1 + src/frontend/src/pages/stock/StockDetail.tsx | 42 +---- .../src/tables/stock/StockItemTable.tsx | 5 +- src/frontend/tests/pages/pui_stock.spec.ts | 33 ++++ 23 files changed, 427 insertions(+), 143 deletions(-) create mode 100644 docs/docs/assets/images/build/build_return_stock.png create mode 100644 docs/docs/assets/images/build/build_return_stock_dialog.png diff --git a/docs/docs/assets/images/build/build_return_stock.png b/docs/docs/assets/images/build/build_return_stock.png new file mode 100644 index 0000000000000000000000000000000000000000..1302bb7c28d23f4ff4fe1d15429797b224f6b225 GIT binary patch literal 105068 zcmb@u2{@F|`#0Vuk)@J^&_abo_Gl25hC~>XJ!Bagqih+=NTJP|Av<9(jIoW$GE|DP zZ)2G;B-v&xS;k}--cfpg-{1dw-|K(<-~T(8hk4HPJm)#*KKHrLeShxH@xtV`J}aJa7F$Xss zIN0Z0UNX%KE#2=d-Z0H}M=4*mhI#%|2xR!hY(AhP4>cVSkkgXp`9Xshc2r}p*j zJEStKwog}edELp+#nr|C4X>nwfL&*^lS=YJ+ictHeSwknZJrZ~H0 z+n+<4IV#!32OM|*J^db9sgbbV>g~^L!@jM3f4}b1SwHo!Je2R+`GY&fVg*Eiv-M@o zozo9_pzPxRUVrUdJ zf(Q0(yxD2cF3chC^RhrABcn~=&RwAv&o3wVj(-2whEjwhpYy-lIipRE?cAqvDEnW< zJ|}f8cS@&qo|W%>?RxS6SK&s5`za`%##o2r9X>l%s^2BaCD0?$?Djf5@i62M+ja?{;_5E276J6afKb3yjZe?U_?4gHZ|MBumZO7vc{>Z`H-X5Ef zaCFP-+B}h&`N{Sp)unSl(kvq7{@Zv5$(EZ3oSP*)H*dY7Srj_yg+-a*AhN5S=zU6n4iqO!^LQ0yMzKc6q zUEUii4J{l+F{oO^Peh~@K7?Q~XIDgtq8m()7zK)m_H~t-Mbc-m7;?Y#`dc8gF*&KI ztPmIxm-TEPt-G)9=YzdtJ8}Q5R7G` zm!j2IB`3&ScO_IhR8$7gT%f}hW?TS)%IuJ*HNq6%w(m}r9fLAwq_4g(;v&@t7Ol<> z7LVSpzdb4%oU*Dsdx!CPK4Z!s+_C3xuXOZ1@FuDxUVK`MrS#w#)jNv0?V768jxDXi zn1+pOsZlq?`b+QHKNvwn>3Yf=U&{;*NTOZM{GmexTgtkmH1xX{#%3#gRZ7KueHCMH z>vj*=G=lod*JA}&=>zau#TneXX|Aj5co%m8`A?7d68&UFqmF*ADRLEUKPx49);)0i zBH{h4AdA_qPj{JfB+ij?vHSRX$0*(jT{LqkNyeR}k!$J7({5svip-vM-rmDEUiM?x zZS?8Fx%1?dzS8`wgtq&0p2L_I`pzu}_N_Ff7)bdVnr0Pt2Y3crJATdHQPeEkN{_r^ zv1g=Py$RB0FSsc8kM|_eJj_jTH;oA(lpG25d6PoKuOH%_zHCCNTIj8jA3!s{Z)(Uu zO8t~)dzLUomHrI7ee#ygQqg@KTDya7Dr{zeXDZJ;jENR| z^jdXg7{fr@Cso&{rmU(Iloi@VBIb^#6B#t7k6HSjy|vPpx{S`$FnTlE$(1GReiNBX zfM8hPwK=G}i78&PbG6d>;L~>vL|PR8>e{*1gu>myyvX5@w}|s+5y2&P2klCdB%`!y zQbYV%4j)bYk|dRyO#CV&D?r(^4A@{+JGl-!O6)cBS%q|G%34fd7kYxd@dlG04?4Hn zld}U2F{LD`=d8+9^cj^0UTRzSfu{5FU`TIOs4Gb&;Aw)=rKOPJ%_$ASYKGuD!=AT& z_bL9pcQOJb3q2dPCWQLoC_&azk;bVUyeo-_$C~;^`QASNo<7iV9KB$)R9_{uvEc+I zk*3K2v%TxSy=I8xa~TKz%#BdK{!>ypD2Tz0FcDreiQ+XA{ss#)2N4TNjmv7cFE$Nk zq>DUQG3!LlTb27KS3yUL$2rA{D1<#4bzp=X?6*xJa4)j1BvOPi2g(Z6anbdM+A{L` z=g8=X(t60g*sQ20P-f}8S@2M)EkPijzF<7s6%8OG3-*E6_YA1w3V+28#AdgXZ#ml& z+O?0qsW3K53>#aV$(LNe(U>V;GdLN%GL)`Cdr2qN0X7DQ)%+vt5smPzpDZErS>MoK zyw$&(RIKVQ91Sw)XCP?3pk}^vcEBEv(K&3AgjgZhIeHwsYEo|b_3W(r-`zFe!4bzceJc%Knx>b< zPZ64Hr<3&E$LyQk#zuQUra`ZdUU_Z2*{V5;!dS>p{Gdh9kPQ;FD+Td?#jgIFy>Q}m zjm;wB3U1^84{8TlHUxW=RGm{R(BI1FnFJWjrWe27okR40Re3oey-FDhGFUn+LUJwL zFDxz6*Jn-V+MTyDU$hm>)W!^3<(tK<*EI30p^xl8=V5FR)?-?a?vBhyH~X0p0#{5= zmgfz*i#)0ry z1Ob}mI?LeLtDJ@PMPINVD&R+3ODF_>d4EUjf`^asmL#x;ASIeE7czSrMthrclI&3S@;ECfJ zs>F3$PPHc?zVvq78~i?RV2rC8I#8t(OWXRp#yvNlJJyndDm)7e6!n{4dx@Y;mPgVX z7^7VsO>`2mHnr(&Ol-A(<}pS=H;UP==$}jlcxA!oE}3IPtLBDK4mVy#D>Bi|AL>QC z`oNWhkVuP=)#|F%1(a{FU!iNKmX(tyF_N4FnF5RC=DfjqF!-Pb!?_^W-`@T{|N9k4iupARqp{qaInySAn6&bkwcCId5I^vDik<{!sP3OB{B}67 zeKOstT^6{-Z82yuVAULQuc52#gzEd+W%kP7U%mLT+_pdK6tCzBYG9hm*}ew6r=HTO z_cR4Q(FY*qTFz+oVX~p{-!bL1uZ<|@ipZ9yS7>E{Uwi_1Ej zkAI+9si2T+uU%?=nf-hR(L!C#`BA)hEubnjC;V0L`aIkxf07f%?NU(>3lI}*#e{an zW|uX;e@ckWF3Iv^P5!D!FWZyyCS(}_(K9Qbe68wxN=TI`ZB~43v%A}fe&!HLbb)eQ zmBpzxF!R*eLUdQ;DFEvSpPc;+uWV*WH}TPTUzq%WSHJfa`VZCg#T<~vxPDP(ogcO- zceTrqKgR3R0Dlru6JQe~Dp(!gFBVZUT50SnI{V#HBS`1xcr~QRmuCRV-7YF^4pKs5 zonKXH09@u?S^}Am2*EZy6M{kS7B=oB*DpVHX0~VQ&I$e<2CrY0*5_q~-4#<;h)?uo zP3*DlwOZXB;zk;$X53U}2T?7ahB&oLSwGtWK7(1=)XZV}&7xtFR01(|hp^NUDZLs$wX)?U{Xr4s&)YP>4C>>Njd)k8NNS zlvD*vif^B{s&WYzw`RUOB5;J*cQn@F?wla0#I#>92(D>se=185tWnC z3KX>kPU89slan`|hj%(POGx~9!S=D(Oa{dt?mv8;W+nG{ibaF%r`aP!(4vSw`xvbX z+f=*?Fup0XOK)p)S%J0Qsjm(_G^|xH;t`IEP@a3O#boH&cQ;5d(M_*QtG3Ff<~EB) z#y1#4jVnLwqx+(?t4MOUG?k#k$oYBMjz zs8YD^Z~Ypynpzi?-+JkKMY1yb`WCsQC`2Gc@6um!`xO6rRvdLa;*?6Vfx!%Bz4L;J zRRfR8*;zB)Of3Vu2IGht$gl23-=7&rRiKod4`6=fd|82H6*R!#vNZ*Q|ese)OM_-4Fi$e71IvK2W z@6GBgxzLUhSm0t9jEC!#u}jz&^boe6r%QQO(P=+h~o0|Co2%?Huc& zRxBDUhDj3FvKsgq4xibq`&z%&zuRr{@!EC3xzo2ASe^FpJwx&Dl#P*dT*3r;%V>{n zj8l3Ul?0b7;jX&%SGXUpc1LFy7e0HoZ_eXESLm7OK7s(EL{jPM!hC>nt-xx*K!l_) z5Rfq3fL$e)4BYUJg!9Z7Mbtn|!?Hir?}w7`mW}JYAiUiRQhz1Lmrkqf9L#}oStETO zzuX^n#Q>ncYO&NMDYbetA?{=$P>~@_!pmj_2l~1D_Dqq8??K~%QRWnsykxRPcyV_V zz&WpU*W8Z2i*77yuqzyt=2KyE%$F!~5#Ym6-eL1m{Se*TW+p+9@8ZR5IA3d&}>p zVnPN<@8Fh3)4=MY`hV7B;|?N7#fVd0Dyp-@3;>;qjLjv@dF1KD^C_9FMEyM6 zBQEXKI>2}z3w8#FLQN*S}Y4{V?Z?s4BFRWE(2#eL*=xlrdBr1=kh>rB@n9eM( zMz!;ZA&NnTR}_xVTMR^?LusnB-tceHVvzPJK6CB6RphlA$2Ct^A>*&5lfl1dcsqDM zpA7+AXHbGFl@Jdc2Oa*(t+Lk7@IbmKL^z^GO41!RE}p*C4yjR}3z{Pnz`T(Xs0`oQ zN@p@V%GA)Y9~v;D;Y)~BS0h$EDR}_8CQ%YH+95_I59*IIQ8S$9GV?Xh*%zk22=wXu zp3`Ry=zE`im6z;aROT78A4@Cgqwl590mfIxpSaF|g?s6(y-O-iKh`uZ%IN{%lAKT9 zSIwRirKBO|A3iF5UHPk}BYYv^;v!=F=~p#xZXxkv=V(5Tz&z({RW9$%!`y3Diu4r| z@>4_D(5&$K8pYa%_eVaq>VNjWBEPq9CG)+H~qP+Y=yiN(FC&bq#odZ;YmmR zGkd1lc$S%&S*fkg8^N%%lIKgE@=F3dt47G1$@^ywd#E)?5e*F^fM_mBMMVTYdlPC& zxDhD2DjncuPd^|DNxFj_@4ekOyg)%U5$MddSBO6SqC~geW_vdVDXQg!>J7`rXky&n z$eHJ-8kHY^y+;@80u$g2i${;jYkX;*fEs_WBVJPKtkv#9h?U$iKJ&%VRVtnTOgK7Q zZ~d!Wu(D4qa@V8{G~B}z)^cpuqN zZ^!_6awPS3-0aRXt6TTJ^D&8ZqWBtNne>r;g9%5e^%_l+-fXJ*xGJN$7J@4ICOTah zpUz6+h0hVv=aVmd-4ON&v12M%R~SVm0+eoH}o0tWjmPw1rs`Lzk%T=yxrl4Ytr zo<;D^mwW-$f_{@b)8o8Qz1FK^`2)0X2o6Rk&Iy&vHdI8$*>DE^U*LNA*EL0MHYj;K z;#P00v|dEq$%;ZCFnHa45-$%P1)x-=h_v@1`W|E^ozz_f1i%^nHJxCO={x#G4g-9_ zn9-X?8dOmO5;AK-5Lx3i0`sNAumc-`Te)frZ;Lit{ipktuw7VrX7xo4e{_A|YO=;+ z>N#oX$|Vs+pSOIP#hLJxSxoLvacV!I_Q(+dz^US`9_HS|)%wNR-TLRyvoX@QPs#!t zs>|`NC9?9f*^ABkg<4THQ6n=_73&Zk?SXnA+$Yg?Oc*L=r)HD#PDuR3Y~}@EO0ciC z@k!eA^5Dk(QdDfiVu>t31qe2dIl;4)?Ny3OA1nD@*{|txEk0UX_3{I_zr`I8(0F}-OFX}WAaNg&UPI& zd1T5@V2u^ktVmR--2VlxbZB=q5K+|uQh1@vM^E7rmvqQlTemDJk+Qh0J8&nusmd$~ zV=IbxC&mkk^x+#ke~-!geq>xUU(kvyER@dr{CQsS$dO`wg+qSgTwDe>|Kg5^Xj}iV zdy-jgc=@Wk9+cmW{FPd}>r zJH3`zim@}aDCw&q5lQ4y{WaGqDp+XC^h`udUkSis%esT; zv;)kkA17ggpNO@Pi0ET_@rBpU+zDjNbxVy_-<>+al4JV|MyxkxD__pZ-d~}X>^pOH z^!9DDli87Why{dIMfr{K@^bUlX4jP@Yl-eV`eHe@fsFH)F5RKj_*RgP?2~x$f|Brd zkV2n6b}5z@^y?p<%Z5!1EEx=xbh69zq`kpS^LqogCpzT1gaWJFdsD1}&(M^``U&|m zTMT#L)Ru0Z%K%9l07qHb{b4>U9u`iELBCn}w zzly4=%%!qa+2<;0C#!I)t~){8E_D-jWPSsEEo#O52`aQk%CGkoQohL17WX=x4$oT> zv-R(v5Xn@r`v!o!!y3h<&PwiE|7=BYq!cgA`9?OK24uE3@cmstcTFE)*CnHSp31K~ zw|KS!$o4-}`-ugfw6kLDgawl>TA*Y0hHb?ib#*_-f=d$j#a&C0*m;%@<;UyH+AyBr zHy2IaLp@gf9LlpVj93;Ac-0{EAeUaf)=b%0{wHGn()mQp3N4|Zbb-ZRx!?U=29S(x;1 zS9$-XWWJl|{a3o^`Tv*f%z=MZWbHlN@~^R+r~j9EsQ+!nI!KvYN(pAvOuoNDiu;bt!Cqb3Em`wC*Glutcktgd`!`k}ldn8K2;Vti6g@eytVx+eIweF&IVTXoETkHesuI9e;Ccpk6~q+BJhxvclmI%wR3h) z*z%1N{@(56!;V@ma|O!hT0G`TJ6b3C$R7tDg(7sWLOeRM6Mv5+eM0n~u2U0+$P_>D zlrTh&Gc8|Big&2|Y2^>G?AhH#=3{j{ptmSC#BX^giyGwbR(1`9E0ifX5S@x@E5EWJ zv#Jk?E`QkzI%4ArgqM}49nCWhhpeG57Ce7%gbZI!7<*tG&W&EqiEz%lY$5s`2g}pvss?64Hn-(txvWAAZj(Ww-96nh%mYVnnMn;zw8X@oM2?sj zugpF`b{>>?WocJZ4#G%fG@79UCgNMB0vb_LAhc0?mpU-O8M>m;oI8ymiI(?aED z4Oh+C(l6C@iZs{dP&-uLp3cBGpF%?NW{(VXCR^sbYrAEXnSx$Q-sFc%B0J0isOCnU zEBueYtXFTRR(E~)c;kHF2St#%h2*)MuNQiXXRX@(Ii8!=G~o_8R$9!|J<2=QmY8lo z(SFecEq27BgSbI@&@RKRRR~K}eARNFADAqYg2a&4yc_o(N4nbupt)T%JKqg)6qdwR zm|wn8Z|;beB;)QD{VXh&w8nu9i(%=d)lImleyxOnv(J7`xEK-*KgonoAzfwh7r;Xk zO4d9VazyiAn~%~gHH;?;3k~SuxV+^Sq=qki+UB`aT+Gl_bIXF{i4yN)@nK`rPl5`* zCtBuO4w>Q@0uj#@^Nm67b3p+kO{>c%Vrsp4w>ufCu5+F|DTB+kGQgV+wn(8@JC9s< zc1XeVUWG(Ym9q}XUPz~21h=M@6c$dTfMq}(=~&XN&AC#L!toa;>I{(m`y)B!4x@jt zYv&DbXfaEMhXhcihR`dEO69q*7tB-Qu#bpnby-u@&wNZluv+F^nURJEfL7svhIJ%~*5Q38Mtq$8j4G z_aq0oDLZg(>jDd#gcz2hddogYWle=MrZ9V*Zx5JnMIMeD@wYlUWAisl%$}l{m9v5a zF0un}WD;eyFX(V5S(@j>uQ;aL-xcOoG6)jPftHx72@c4RYd?y8Wo^{!)C%LiSbjX& z>W=-+A7MC!)LiegIVpA!reIN6y_{FrtAwGG9H0|NK>C>He4wLbxigBBLb83ove{F{ zGDTa(=bQh0T@bRi-^B7Qs(8&T-LPAh8;vpir1Z+%De=7Z$78}O-Hq7k<~I1INh-IQ z3$W&8g^k1gnJWXUN#|>;?y6P4`9yLAO<0XP2aJ(DI?$$NfssLp=0q74CmT222^-Mm z<{VuP_BcZFlk+aOVEJql?Ju=jb$BA~$qS@C2!FT6jcYp(1TU`5XEs_1b|z$8(o6a+ z+H_^&27EqiX=6FhHH>!9!}3SZtT*1r?q0b^dc$4NJRw|WQ<2>%PDQ_k0hh3$x*-nJMI)ID zR~q(y;*mW{{jHTz6033C0JpkE0m#ZKy1*OfzvunB-I115G8(n1LTg_>TuMS{csGiUw>rwV4{M>6sWzhkwg#{F87Lb~p zG~aAf8Pn)=4B@dtm7ZS*^C#keAF4 zj#!v+0$UefSa*fmmE7v3j~x9uBTeI`6XbYK*P+^TDS zJcljLT?Esyy(3;MKu14Bxv5TQDOcVN8V+{*U2pf3ZUNM{rX4hl0nNU)x#9; z9C`nfsf7<`%II}Itry@;0_EEi)yn>tb%~W=pn;}!BhJC4rxwC-FwcS6>f?L;U+w9P`nl9{Kk@u; zW`vCSa?35``BDFROX5Iwi%}zbq&VuBkJY-EA+C!2o(GoT4%w`>z9LTw^UlE@aZbW7 zp&aH*FCQPSHGT-wjGC4^v7w#$S0_xWjM)87NxsuPn>TLPebGCqxOJ@;nJyOc&FAJb z>SZv8D+-AUkm)s;LPlQXmv4U|t<(RWC$C24h%;x#B@UoP!_ZB^$L&K67JDt+AY2wJ z0rTf!wvHhu376;QWPEVf4{#)fr+~!)&t9*<-GE4jqVMR#)z#DD`LFx#1@2*J;Z~R` zt-fui>pE0r(<(`#=Iz`7|78&Na7X7oouL!{#}_tk4G|ML>bsP%7k<~=CT?7SDR`uy zWKbRa7P;2gJA-Ro`w6j>#Amm4k|r}XQOmmSYmJF-@2d65cE@G=I759Ax3Wx8mziNC?ZA7}Ai!yk=;$}s8D`q6G|K2(ylh-paacj~58Q$_D zNTH5!@r?Nja0K1Yif7LnlB3}IC$MZ~3YIzvheo%Wpz}G4=pyP%kC1Y(1NQJYwRkra z${2~|r#@LcQSrTui_p;@5W7$r`U_m2=x$emEVnprsnr{-RGRwpq90u}Y0UHR_XW8J z9CK{{B(1CS`lNau=ah6C7r=f}-2)wlz2njNHSsY+?h)1kw=yi3E>zw*HL3L(5?-f> zd>oSDbm+>$GXM9fdKH4(ACah=A8M)MV&pA-jPzdfL9$I-QgG2VmxTE8p0o>st@D?X z^VxBfU@dwVV5y}z6>!}KhI;94kl<;rnyzARCR+zWju?&+lAhE~AVCFL8jpd$Lsk*c z^jm_&eX#ozBlX2H6E%Jxf`N}M9@ZFyA>U_sks7JIRIXkt=QKrAskO$uIveMKegm_7 zeZFevaI%UZ2ih-sZLQ~m|3cRlSIYg!@du5v%SbxbWiaCH5V#+Hjx7}|8UqD7i4E~3?*IUZqdgN|1&Xlg5H@Pd#;I; zxuR|L1vY>LyMX-hlT>C&vGO^?FEdhi_WmU`bp^29V@}&V?%v^~SZjyjY%t4>a$-J~ zJa>MnrA_bGi9fY{@6uV{aiVuk>zMx^JJf$F+r_TpKX_FC;i-Q)(IOIYs!`$p$>8GR z;$jPeVf@FbW7qNdtAbJQit&n)kr@i&K3X44s`baN&Qpq-nr>`8*m+6lvCl_aWRAC~ zs;Cr}mEC!wqr)avy?l6Q=dzATTXwOHV8!Zb%-y3qWnCl_i+yD~Ctf;MV*fh2Yt=ps z@lOC*tV93Gb^bG==%Z$oW75QS9{=8h{zCT^sz0;ogy9C&nH@HV88yNIJvM_~~xT1!WVh3+0<3UN=8?BIeI#&UE%HkJT06{rez;mhE9gDqfO^5d&U`;M zke7$pT+USSo4re5j09>-B$%z_YqNl_j>+{z@QPMCH13zPs=Uds^*gJ6F$y-_u*JeE zDk`o_=fp6<|Hz9E&v?o@OTed3*@mo5P)7*0o((KNTYrl09kPJ3iptDf4J4A;# ze_TumreW}vj~5-&y*_c(EH;U<8sl?;Z_Yw`a)F!Q;&W4B^_I!W$#C{vE9@RJBb`hw z-=1w$sEbMb)W>I@GET1g{?ue=B0fhv6l$qwt&-z&WwCXN?)*cOl9H0sFJ((&ZD=I< zLJqWoQ8G%p_re{&fDoEqXPsiQOVmq6)?VnzTFLj&Z0Ifdj(CTk1-^?93m@_5VcOH! z4o|Ymb@v$Col&SM@6XSeYvVI*el0vM@u-eTErQdDVAdP4)pE|GE%2WZzpH5XqQu{v zKW=8Uv~dgOCdxM8xMcr!IFwJoKf9Rn=p+C@(U#<}7CIhr7#IA+rnP>#Lvu5mRh5hG zUk-M5uzGB`7ok1alXgrNOu!uJF@LO6&0g|coDCwli3xV-{gM-r& zByDyyAm3>Lw9G*K3^m_g3)F3;ZXXP@M7PK%s%=8^9ts>lj6@y$d%(x?CoMviAte%J$#GvB!OlC{y5tL;UL8`?*ZkCAb)< zq}7+Z!B6k1lV>%iw**Q+`wNBYM1nS&wg1`&zOeTPot2a@7xN@SerF?Ya#vk+`}X6@ zD=DC*rR8S!An}-NYspfZJlOr?0~}P+8lC#m18HkIX$8w@k>O6DCS#F`&C=#hHtY*| zVXig=d!<+R1$$K`N+*%kcv-XFe3Svv@Cvc~j$ENBrbneCpyvt__b@BC06x|ZV1A*H zl_!K!eO8g8zN>cq$ki`hee#@S7ct%jtl?$@t}BhI@>1pRs2&zdIQ`tcyw1T(E<)#Ve)W@0flcpo4RD2KDwIOgc0ZiH7a*m`hIjQ% zJNShX;`&t&s=pG*+zBUllRcfTst4+5tzF2nr_>r*S0%^uL|v{)otK*~VzUNvw~xSs z>yQmDz{abw(9hzIoAa6LuzbO!fM!B*NzfVF(|UY^t2@_ZJUx80_P0kRXvBNC3@uW!|#Yi zV2__)<66FbTja;fZB1+#qOFGbt85%>_gNA6@TL<#lVk%eN^P&QeOi5Z^fB{o(4%h; zNLgsONz&N)qYmD0bGWKVQS0-DU&n2t+TAB4t{DowmbUKx^OtAG@2_JNpT<0C4K2Vo z+)+N82d5@$qCWD+@aS!+t$C%Z&nvjjetsAUnFK*JAU302doGpWZU1#ah~0&`?wrUB zI8|CoN~-Yv`@37~qgxvl(?qa65|RR6n@9rmjs{GLvF807%-C72jKKNJ^yzLt;?q1e z!9W=krEQ!CTITs^kFo5bsALLRMO#0+trAJ|l4V=wpG7rUpQknM*cCDh-CJoGNAEbA@@Zg7p5FZ*mn6V_k&5i0Z zVtDpNQ$9iu$RL9AORBxo|79&T7*v&-$qpQve2-$Y@LB@Hr)2?IEQh;Re`%%qHpN&_ zU$?sZGM%%%sbg!YKFqvK>WZN@vC{=nGB83eG=$k4&TL{-zi_74Ka0og~O?HKT1`9rd5(p7uv< z=?-ZZ_Tc3=Zw_f&qDNUQZ?K=R;d9}XshkPT#*9Y4FPK*4vGvvUWL(>}Mm}3;DAMj^ zwIwgK(gS^I659O%;5zJL?^e;G5DUE4uwjBosWs5_yIvpQFr(c+eNGKLT{*1gV>M6H zkYo6=miVU5ss9K`xPm8DuMHFmZRodp`2BYMYsBXy=XEVPV5=Z=^KCaSN9(& z{miiPBRR6L(OiDCE#|5X@l8QjFGEAG2)QT=ccd8^JMlW0j(yYJQ=sOd8#C;KNoITN4FNSg17YT)Nc ziC^gi;|soL5aEcKi&HadP~PcpLaJ0(Jl1EDTqc`U1jB-cic&!h`M~&WCcsE0(6<8Z zLA4%<%*uWme}AF9JjJ%=XM_x3t0m(3Sn*h)xo@!8#-o6_i>zM}1_WluStv;)XpR>` zPol$rWZJto(IwzvLt?ceNJi@y`1A{+)oP&_+DdkPRNp#ntynsHYW)#K9C@XJB+UA@ zq8tS@eAx77Fm=`yZ}lp(1X%1e%E?0}!NCMmQ;m6v`Isw9&r7N&Mdn5b*7<3VUb?is z&0bmYi4s-2%??3Y6Xkl#om-V%J5CVR=WD6G`7t4E<3KBKy||3!R(G=~DSRUtrT*wG zqTqVNd)G*d;_^=f={IlajoyJwSFUCDO6I=Sas!BJ%8V^8x@d4G(=H+d{t&;p8j~Im zLA#b`H_sn0)*|q1GaK6xkfd3BSW!L$wEEkQJyG%VskNYZ6;@1xhD}a{|A0SYDZuMx zp(a+icsynB+_r=!KU`HMhB=aimwZHadR(KvL!kbKbqHl(3{s6RRDwnIx1VOADIZ;xR2FlOQi9eL0C(ywV=fLJvUyb) zju1ODBv{S}I%{UyDIO7G?NxarW;%Oxi*TDwvb(A1JNHF@I`9pXCU1-()(I6KJFm}c z)FalQZl!-BBe&X_M*rHos+v;sYqpX8=3q{PpQay&4-qQ6GL#f}e}BwtN&2lSlCVw2 zI;e9)V0pwlnhsEV?Pn!AJ1E#yStP`{*Kww~TA#W;6?C0#SE%@yeyTRinhc-46udGu zdg2_gh91*OH}GQqIs>Psyz2GodB|Fsr~$y;Mhx0(&e|>nS6**;%ZfW1BsCiJC@kb* zvp&;)!sVMXo!+*aNihn#|7Q`?(SO-$U`cjPvPDg_Cef@%nTaDI>rfUuRv>Vc3osU?JblxWT?+) zl)$4$4>Srkfl|_1T#iRXpCB0xjRykb%bOWJq4iw1!zXTo5ALm9T6#(apvheY4o_=m zQtCD}w2s%4yswX}JQqlx(HD!$x&wW+SsopE4$ELgk<2UI| z{ojwyoD<^do<7{aYNI;mqy_2wJ6(-@z=mIKAe z<@vvxZ*Z=BR1sMKj=AOvXW5x8xAeQ;_}Ej5wuF5to*??G7KUI2`}wrr<<}!Rz>+{| zLhVda5=tWyI+U-8a{}l1&ARs?Mn--Z4hg%_6bQz`8m-V291&Y;E<4d z@sQsRn7d`V*m@>9TK&g?tsgr1{k5(NkCb@iSjvyI@8D~Acb^N@e02A5?b8v!Q|+aQ zY-6p80il$9WBCQ^Ph)#$V=pOpzCCPl4{{UE%uBENIjLc*T5%gofPpIE*AJ=?%=AWu zv!Oml6?rRuG1UVO!3587t#hC28D%(T2S1vgE^(o^8jSIB83n<@TT`o4HLU%0Bk*9@ zf?c*~;g{2F35LY43j)?6A2Pr2M|j+8nC}mDn68j#Os{PfGvtpPYYV9ki2-D_`78)> zv4v;3e%$7Mz}#&)EJgT)iqFbnfbZwA_LVNxw5{nFZ!O>YdK&Yg!Ax(>&h`Y(j?9qH znC={Xn!YwO&cMK+5>9u=Sm6v}0IP2=*3K%jeXbU5%`T}EYKlkS23J)9HU05}P|2?* z3*uuB-F_dnu8jLNgLv=2rcK1X+Z`+rmJ`um4DA!+hdtt`7;Cls^tA8Sf=zGwcg0Uk zo2yQ5zdxGaVm9y?DJJx2nvYS%A((`b7aCLKrz?zFMW4RIA7lFzR{9-_!qn71(m_AR z4+Dpz4Jn{1Ox|RRA_eGWvW4e1T9%hb5MbZkgKg!$&c3!CT zR8?W~J(Qr4MROlJZ2Ng}r(gOk%Ukw7wg0_e_i9eNn2TNDqJrFpb&cKH_CYS|7~izF z4t_vsm1AZSdp=Z!m`%GluAgC#Sow|GB3l-15g{-3@Nu~kt3l$KXHVXDUV^USagjHq zbLIe9+Kqd+^Pty0=J7%%iOp!&m}|oEn`Nc9w*oZlUJCuu;YxX3%ahT(VhLGnTc384 z&UV*k2KeWD&Si$f6GGnC-PxwWYZZ^=J3Kw2JUMML2;UOWOux5UC`7}#U~t19>R*T; z!YFD)xhoec@AhgJj1*~#kGzWkFR)h=k&N8K_H*JVcyZzfa3>X3ex$M|oBtcCsxta# zrr#I0gsB%@9-x<3C@;Kh_436>o0ETanbC052#cE+fU*|zcgA2~&CyKtD!kG{n(IK3 zCqeM@$m(|yC~0zjx9H}uCmv90(7EOMrk>}bJP=!7d;Q?($n1l0{OwXW!GLY(vz;m& zk;H@G__OI(6x3bZ=t+SqznAR|KI*LEV@iBhf0NJgn;R^6vgM`UEG|GA{q)ZHw&7Fx zfrW1Q1siHH*|FXKbF8?=0#A`W=G07yHlkRp*2**LuTw>eb|B$*!`P_lKfLrMe&AH- zB*w~aFc(j2;uwVXUL!Gsv5qsO2ZG-#)$~D^5msE3GkMJme8z-ZN#Sx>A-CY_| zW`H-mf~-fSH+YSEJQf!E#Smpv2iwU?Lnf?|v#!1N@W<~ZXX4hZSNdLA+|xX(Vu{#5 z5+&elkC^gHQ#LIjH%S8MU9ZLJF_r|PZV9q}u=i&*)?6K$Lu@J@Z;FtRHS3W@RCtDh z@D7M<}0%WPpqs6>aoU7lb*L;5HDSiB4q{es%xQ%(2sNzT7-;0x>y~>H6&R&NJ z&sE-h>x;nH1vl4pCj#s}J4|dd0(0$xT`N2Z3uc{5{Ym`;jWN@OoG#A$itb}Z$_F-F zAcI#QNIxxx@l0uptJ$lNlIv&Rh{*)ZD{Wo)yJn@c!Mw_fs)8MKPG{h1-rp;` zcKz@68~=kLcm4liwERT~{5hiZattsmz0mBnjDDazlp|Lq4)x3GyQ_x1JF zn5*pFh78%5>DL|bXxFZE3pUP$f>4VqI(qUmL#Pt*lI(|p5e}8Vvp(&h<2qMf)|yzv z*Z41#u$TB2?SB+14M3x^QLlD)r?L^pp54TO0a+=jFWSSN?0wc@orv?Y?UxelZL?mc zoOWh%@|&|$*+GS$FPLQ@c%Y7Kj2qbV{7mFpWQw!=Uy4^~Nw|q>*fv}yIKV`?NK}4b z`W{i9*K%nIG@qJc>xjOvwCC5*=s#AHt(i@g{PTlpxs1r!$6m3_4GpcR% zzDOUo@5ldI&z!vWw zfIPUk-X(xh@ec}vMs}li!2J)W&Xx#B>xESavR&Pq*IHq%yZ4Tr_3qKhlN<3Nqj_6HQZjeymq4d0E*P7#(>~?qDy_9?TWf~iuS=aL zjpe%g*4AW7e6_I)Yo?9X;_T#Z3qLg0z#wP%`r3Qy(@1}dZl1GXtMJQG{`B^2QvJPAPKooSei+2kDeU@SnZeH+5q}i$M9%@| zGruC=`5m%K^W@AqJjoUDVx~T{vL;Jc<>S!-u7?%;R}$n(j6hFhPevcjUPkGVSKJqhq@j+2p7@tDM0l5jbTHPr#Z5ekYmY{ z{4%U3PQS0P;ozD*j;_gQ%M3^c)h-;&G9aeBv^g&B~-a?!ODlYXTMROkACyi1O;{YWUK(bAaB9b-#4mQ`I_^FoegApY9z% z-xNe0-dA+b(3_{d?EvT-=`=_2x?mwRHZU}6`4#>wTzT?Hz?N#mNe!1-dp zlhgZ$vIFYK5`fj8N+QCFd;Z2S&v!py=BbhQl-; z&TX~lk+s1!8RwnkJ>#>$rq<QyeP5$VG56bXu`#W<&FP^@rH+22g zv6(MI_U2cwJ_*?vmuOYs*@oA=o6Z@f+y~uJU4E+!iFZxsl&P2&-bVAa^UX~&9#sf( zL!PqL$^1AEV0jxBt-3o!7LWuT%aHFB+-&JvDJ(?G)k{}q^rW4K9!N>L9PB>049sgO zlQm*9NKWD`zDx;4gppfx(-$aN{h~?P<{;Sw*(8~BO=4e9BwZw0Kwbc{%S|q4%a47pTAvc_qO?Fa>yy!{JxsDddXUwwUU$SMKWrA zGAAo;va{Ky4-=I_>NDcDT0+jv;s%uD!GauxBgu}3$JTh9P>L?(sQqlVo7pye-zu(c z4{vI?ia}cDx^n0KxUhbCN?NVoce0&tE-*##7`PVSFl2}SJ90WxN0Zc;BHAH!Bag>< zJ1f~}E0qma(r?jTzoV>h+X|^Mf84NV|NOcAgVel?vr%tfQ`qM zQ-w#54RgGKq+~R=$~Vkr?re|SrIF4~4E(covg~;BFd>fN;&nLapeu*$e$ zA1Inj3A}~d5D>}S!#|q;3~i8SBN~!}?Wl)EoT5`5&R_nfeMC%+`8Ol0D&zb_otUg= z2#lBJNZAmOOAj8s)l1qj;;gIZ4}LD}IAKM4H>X!QlMVzA{=MSm^}kNz{>MKk`R~Ng z(D$of;AZ}tQ0)8$*)F&&qt@e3+e14#71|RQPI;!F_B;ut(rC!|_#YDcyIvzbsFJ`l z(I+M)-1{e?-3Vp;oPx^2M6eYTqC@s)>dQsad?|at;C8 zP+})!Uu=oAABZDuR z(AqK?4lFvI6&A>t&hyuOQY@K_TItb@l6mhRvuQ2tCEo)X+WEH}>OPf$d9x$?Aq??e zf#O|}@vmToNs_GP5xdQ77ZtD(d?KArvXp00d+tXGi?3B6CyG*hrtBFqc}YH7yZ~0? zoF_uo8Cz3ir|Ad0q5BwAYztWLsokAygfe9whiCoz4oaSfQu6u;a*969X8>7A$zQSq-Bfzx8+J*Ks|3xgDanuUv;rhD_A4xeY)O?@E;_ zCp<#3er{0iTP%})>Hf8ES9p^Zc_7UtC5w~g&b5V||AVeK0f+hv--p{(wl>OMNy=Iw zyGe?WosnTslAY|kDY8|FEZN4Ab;cl!eF-7N$QXl(vBcQM*vB^J{iwdb_y4=z|LeNC z!eD03InO!Ib3gZepTQIa!mhtg^9W?i`7@lR^O;wekk0^j?1RDx$W*?e&kk>?v*A^P z4kH_No;1GAt$$5ixyac_ZLTXHj+cUtMQ0U{21vAW%-0WKz$|X&M_b zpt7&`Eh7D9!}zW(bTNLE&Z6H|mfya{yyS9YL->@O z^Yh@wgoFZ0P+*zps#uxDmSvH&%fargEp`?*muqtiUB>QALb$5M! zH)_9=p~$9eomO7wu$iD3|H0BIzPGUqFkJ8|=x}ss>u%(UsEq=LE}jjkdnELycK><> zh^5(M2aAnXbv2VLA9DW3CDV}V8A7AMj?2S)F?8g%t{dLjK&N4#Am74S_I<$4w5sBU z{%0?8w6)bH#+Zc_Ewt4&!NC5YozO^*sbwDAzYsl)31C1P5GX#_v}UKhXl zFU0kVM(3r86pAsZqDwOg2U&P~-6p_0ki<1=xY@4M_P{`jZqj4?Dxr>81 z3i@Sl>ix-YdG17Vvl5b3X*3gc7U4(UUgY@PbFs5|q^fdV;Gchshu@pBdxE7BLy?w0 zmTB}@9`_3LV)W>K>`RF<)bgr@iQi|`|k8TN1v)*qWZ5d z#l3oOnSt|8I_5D-q56z4SCh)Eo=^i`Us?*p#qJLB{wokN*CZa7Pru95`hT%z{k_(n zk$O}c?kF^6l(3OO-CSjr>ZX-jm00yUDdt+n4Eu^xu>CqvQRV=a1^y_->v}c$-p0fW zNJM`VJW&DMs8do;C@62lY1P<34qF#xS&xfT3+>c%cj&7&8eKou-w*F@mQ-!dN5T`tXBzLcReF*7J4K2=&&^5RpS?9 zCq((dOzy=He>ybzFZ|idUxmEW z7tTC?df_&ga*^WmR0;mNy54=TH*Eo>s@Txyw+H;6PD3r-4owtIrcwd{UEILe#;~A3 zld>`$a`CrgH*YI<0k7oX8z*uuX(NLZX9yLe16I@iG@bK${uEP@_u!xx)|dLDlCCc# z6VHAB^R#`*dI#m$Wc> zjV2`CK-@%mAvxcpJmm-HPm=rK(LNhFaEsa%g$|qH|n0!

+lhm6#Ez61C)&jaX1OLEiI-)IOo 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

  • =Ajm|#LZ{-yxlk$S*N5Qi&$`X8u{kJa;p!sN zx`en6_>8dYYf;P950WaIi}8t-l3urrWOA zStZtT-fucdNnKrE1TU(3>Y4Dg*Mz^^G|5hx1{LbJ@iy5w_;|Eufez|69|D#9z3Y#C zHL$+PY)Zr~;|hCi^UZW_(of`50Olrz;rn9K$7&T4+2w@2zS!<vzcI>|K&-q9TpG1dm@WH#?)Wi(;rGgM@uc zJ|tB9$xs8stn*nG2J|I1D3$wE%__fc6*5;#)r1&As_enVXk{TnyK#;1xH zeUxB>jc8Uko5+Rr6|1?m^)GA&kXb~BM;zXVL1uh{BiKS~4!)=ZWwY6Mj-biS`N*8D z<3ERaC&B0I1v<-E-i;Rr=NJpy>46!ttf+z29s*fa?F74W5GI&Q8mmNs!J%hha{@u$ z=uYe7axo&avLl=>z^&V5Mt@3m)>#eu`_m6WS)06S%Y)AtU21;b=Xc&PgojTYSznv* zx)f!b>I56g=b=D4P*fG|1Th>(FO!2aru|!`(Us8W{9o38S3YE2T{)B4bl`b=$bqRJ zPb~HifJ{^l?grnt=25=qd+HX%WH*&&8E=ek6G8pt1ZRoPyCrxQ^bf@6oQ7j|rLpeJ zb;)Of>$;0Q_*z05gXJghcke5n3}~q^;WVcnwqE$67w^Gdr!`fRQp*u}sYw%a!Nn_X z0jbYcVk1VxuDPcA48Es;;ZWWVLJ}pNVDrN>>y!l)YV6NVp|41#BP#+-wB~yZWV-5M zRDHmDh%%2V@9{=Ba(>)vi|WI2T0b{T*3UA(RLX%~%9@4gE~M*&@ZMBEDW<_i+r&{&BSX7~1dVO;>Uh?bgQ6X>5Y5R4~HX9>rk2~T*YS$kxu0HYhRTb!s$pFg;)U_o7NfE3JHd09<1Yf)FRNe`L2I3 zy08DR@l#2llR5i0l^QOBp{NvMF>2urp{G4|{tj$icHDCA;*mOP@{eAp8ZyHch2?$z z9idcnA0WIR5DakGSVz%8x2M9^o1d_)%<#hx{ku$)NM9+0`nMSV((AE)-ep5 z{pwG?Asjx|dGI}6j|}8gbenPvj%|h<449?0bhu~Aly(O`va2I3Slq zPq=FT5Bi~6V2?kzRv2SjG}vUcnKJz>0FiDEmq=If$j}t)*BRwdgP*Wf7D~ubDSkSs zox5ma152{n!Vq|Us=lj?@ zXSWh4u`W2(7AF0;4&%TdE(S>zQ@%1 zl2ksuMe2j;wW4!Bi^2MzoOL>M9IJn%-KZ0qr?))a&Nf1!+=V1_?vo5l~`BR4`b;FIeYu*fs~vudQYlHg}#k< z#9C#8@DMr=I|p2SeFh*W@=t&_AM*)sUU0GJPu3kh#m95|k#=ZnOC;t9O`NZz`XitD z{Lt1M7gex}=+0H+9Ach9TZ z#`RE+eIUMkrb_6ZR!+D3(T8w5FE*A)PC~*niJeFeXLM_|RpqM|V2y**HO>ja*bZs6 z3hi}+X?I=x_YF%A(&tfSt7g!TK_}7JWCCMRoB(K)^AY%dE)t2!tALezwes1<2Bx=o z66p9MQd-gSdyLJ62(xVn%T}^y{@s)RL3Bg;?Q!xGzs~l0y?s%+3JmJ(N|JCp-}(x_ zu!ePW8jw>2O+B<)+L49oxV2J8Ddaud$bS)bdx_I0E4(ocD3F|*O55xopITaKULORI zsE0haT_&F#ur7;Zqe>5uP|7ZJWPhO@s@xvgY(bGf&8caIb!aKJE+?*ZWEpZmJwb;* zabTdILs}q06r73g`6yh@MY<8DW(6|W96yvyI09tOQt4=Alx9GT^8patu(PITzPj6< zT9CL*+pdr4>VTD7I-rLC19Cdp)?!jg4h=ozOEA*J%N*d;OrD;a@>402|LJ*mzGIXd zYoGthRe8QFVr4_1=LII4jRf4*%++r;N3}K1>2FzyTBHc$0DJ^@Plg}SIfVGYNch+r zF}7JqkXEUc+xZxqq2r#WCXEM$aJNAtp5;T5qxKBHz>l+mT+}Pn_B>;-YyD=x?b+F& z!=Hf;as*7`2*W=$KCxVI+HJZ)NQ4nn1G^#>Q3tB`fW5_&$bmRw0kCBoo|9LxWCg$c zZ?U-)zXtFSGgHy}J`imU2MJ|cekz#c9Fv*Ty@x8_-DNIB>iw7Pju!|_;=$0Z`V12z zX14q1=fZ#^jaPLxy^;zdF68sMtB@|CqBi{89LTl}?D@74VMw=&?Cg$y;a#x)8ghP& zIt&-c%jyBu8-W8<-gFR^RlxgQOR3C;&?Ka!pQO;pq&^!NkpV>#{y@RFy$eb1Z2=m+RtEQbK^M6kAu3hy)_r+W5w@_*a=2 zQI%RP%|IZ@cf$Rjp#=Jd&c9S^3=h&@ZLp3t#;K(<1o{wx{9HHOB~mj&i@k>}6xB@> zfxY}^fPct16!!M!2W=&5+t@dflaT>L6amm^m6U{sXpP;N^vnCU|1+N9GXOYKqDsI^ zlGXfYx&XG2iQ|7Sv|al%WG z#CM{Pg{)-tFW(C37u?WgpCE&r86&}UFpFHIV0L2w_umJV zB(NIyqk69aiHR83$Md7>3$3oUKm|3#`wf){R}IjB-%dsi&ul!BW3WOBBzXO$5XDrH zF&W9iO=oOx2~?C5dvglN%wrEJlK_jgvwd*vba;CILqx?Ci|uAG!ZEZ@~NhnA1Vj`FSvPrjz2jx`cqd z(#ijIxWD}NdvEXC?dkGPexdz-UeijzFtu=DFV74Us^#4IgRx{ISL{d8EoDQ6_*nI{ zXqJiyUrmJC8T=h9Fs?XeW-Lj)*%8e)7cwdHVp+zkM5)l>0HD!LZW~&4A8_}U(+-Lu z7!9I%J5oNTtV%;(vZtMiXbH}!)EZlPWq!SyV2jZ z;u5SO@S(bmTX|Sx_o|7#qbm2y*AU^Zy>a z=A7~lqkoR6{_$LifDF3X6(uDl#QRBIfGa>qSIl7NseA}@OKMfLPK(q}a1eX+@AzGd zZ6t-39-EJ+*j$F2JWM_A;XOe2B`#jhk_@sZbFcV2;;dJqkRsJd$wbs0jkWOH25{ir z3DK06h9tDADi8AnY_ytI`TOhbP#*Jt=aKb$wWvo6Wh6K75SjlIS)fm2I;Ni6u^u~} z$MjbI>pXhYSTdpTeg>St;DBe=90vC-fKBJ|6Rc zbx7w&_{O{ies4hLu>EIvU5iJvy6@{l zYNWW^jDhj_YEaF!0yquWM82P}64_}rx2o8HPL~;e6k|kRXbP7>63M33B^+uxkzU_K zjzI)vylWFGRMS^BLqr`s4Q4hf>99BlL^a^+&*}upOIaG*r}KLD_FY zY;mSJi~u<1R#&%t(0&vM7^Bt_fny*)J@;GwqqkBDG8dJ zfy}Mye8n~EdG3~^rx)RIKxHI%pAW956njA6;Ltoa$k#57<5j`}xtQo1RDPo>+u{O* z6=Ze(`nu6=Y&syyW;|aKG5f7#qF;0!9?61W0l!=d#$mU8lo|*e^d0nkkywmOe#j^k zgmxi=&5JAmD4b}vsxy>&UV4>e0Ai^SnrLYKSBhebY4zT1_PO&46w{jqQ)G)Lq;CD1 z%=hOG4fyCFyga2ZCZ7~pdo7(`QZHREfm^F>uSgBJDZfC~Em2`z>H6X`EC|=+!r_bq zzgch!T25!@X84v$`A@P!*@Y2j_Dsfw)iil>%9e3YdCIxfVn=6`N;V~=KI8r+9#s== z4=E{N`D=x=&P>(C_AQ4oKl$@SUGpY<-Fs_mu+L)q+FwXZCe{0S2*$r>!7Yb&YXWsK~yf6u<24rDi`z`fCh;2tJG3A=Tyg zugwqc?Ii_|dopnr4KXDJ=k6=Ltdk&qPjHJp1QIA#U@?ElriJ&7yOLVhbA9@tQb>Yo zyDPQcrAHo-{kh^Bz-<8IFXium+QxMkyqsj>sajfe^duVNl}-=2%PMl%3YhN+w|^a#S@VQ>3T1rmM)86Ti0bB z@@Jvd7#bhX{{Nih84AN2@RG=pC@JOvmK@w4tc34RE7 zK&j9hRcT-m{~uHDLvs$DlFTnP#akd$Ii2?&syv$Y_o8_DdfAs#-d2NgKj@)vg_f_k zW}cc-+CBor{;q-pTOLTn|u)RZ5=sW*B-df zt0OrvuM1sl3gv`wA7Gz3eOitZBfU08#*Y0LLui1w(sOYoG;kp=mp%CXk%E8Y2KWl? zzKMde1(~N{ygrtxjmY_nq(x>04{I($6(vnC^~4O^sbqZa6h+ysa2fTg4dn;aX?IqP zE0-St%(cJ(eE<89>&c;uBWm14!spI?egkF~!3a%OVjeS{*Iy4!S+5#QHyXRglCKTY z&bn>GDA^ga?$7%EYs4vWnC16Ovh92p*{6-9iVmc`dO7iCmgzMAVizQ?MjCpmQNVrw zcTj-I1>Wg@db`Er}C3Nm+BACrFO$9)=A8>#`n1t(UZg^x8A zaX$YlLJgA80xK+;y|S7g%1i~LOsoY%cg%Ahm4}%73u`RB4mngCIipHWjHkz^No`6z z`cI(X(~M@+*F`pCeu_OLWtq`fU2}xLrRc;d1-;-IwL}Fa7D60^&C?^dN!}4apu$x6$UV3g5oi^m8h$85{{N5&_<);(Up}# z7A2JnR>y2hieU~q>Lv7(to+XQJaqF673s7&*_`b2660Eweo?2E&AjBKXE_* zOONXoLRPLOwieO>K=beB4+#RIyRyW&8A@;6m*!99%K6I1)pykK#Zgg>1E>FwPsaIS-axN&p!=AgV!k>>IF9V0r9uIZ)5>GdEKnpis5$>q5y#l<&MXlDVK5{u( z3A)X}*b}7n5=WU(V#!+xGD}ugCgyu@W}X`M{t5jTGSutv zVEpG7NFV^Q4%PApJf?vE6+a9RAbz41LZdOp|F3^VlB=F${C_Rk0L!o!IFdYbQO8mbkT{14~%uOvcs9fAQr2oMtg zf!u(;f8L1I{9m6s0KHcDy>Hxqyt!Di;R{k07Brw1LP$p^vk4a<2f6{xgE0bkAv8&d z+A>H$g?7M=93D?P#k$PE5t4NEfJ;+bIe1A|G<7WM(suC0Q;zcoyc{p^k(-0qzp1)Z z6HqxM=)Im_V@~1hKUbfo66)gxdjqXkUv)d}+xd4{w|%jK9&RpD9tG0RGCu1pwA&86 zuxz>lQ*DX;Zgs5>cx*$XqrKa`A^lRi|0N%^e*m8!m9}yA0 za*UyKl@Ik@deSmmwmJ}6c^0GHK_STE-gug&9PsgMgsKhi;DZcO3=aNG#$nRRe+Wij z{=-_Ww>oj_blRyww51l1aVP8TGZki*3So)4eGoxk zj8qr@fZzH|9NvV#5{g=d`R)@uM}<-?Gp#ySp2-@xYc(5(C)mIOMqVFXsauC?dCwy* z9!qV-$kkH85Vl6tP1*dG`8FS&1W!X6^wmqJ&#t>|f4-iUVqN1`OD2bA#aUYxiX({8 zVVQP_@xqI2f`}9_!$HkHSa90f5!^pJTrdt^P$7U27x%&~|CiuFrF549dZRH(rXGk@pPc2uJ&QZOrNKHi3)HM!!cSSd8}jXiv7X^b+SNjY$-$6W-&VAJg`nLm zsuH6I4$mTaoE5r_W1?#%Y~&hiklRi#=EGVL+U8Yj*waiXmM`^09+fnQi{9pK>>~-S z`nRgr`fGF+6ibJ=YKrB$SK(&KsrhHRWnP@swUb}^36+*Dlh!TfnlV~fzV%N&+XROt zv^Y8Kg9B(V^ItkN)){9Jrf%zwHa^QvZDiZef5|%LW!k`~sMDpSxzl9APQxY?^;?Xj ztkw;MeU+x`W9Xm2oc`id=X$AYD|rhZx!%C-&{kdyd0-&8GOMG0_tNKw-e z{`|w9#LSbVa5!gEbwf@>xhzvi85Ftu@$>1m0KKThh1we48(uzWm36)W$~iel0;#|| z7ofx^Fn>%M;K|tCursxn&oqO`(e7M+#;wJ!+wormcnJUyaCQSw^S2Y8(fJFK|s={6t&#EC%ZH#w5K{ zo~|rU;U@oNKDxDNR4WdHbC|%xkWP67YDDe%f~&XqVuud=%?R9#DGAcD}_KtJI`m1%NqDen}L0!~0IBN~`vwT3zT!kyM=Z1mT@?8z=GmD|k2&wcM?b|`S-g~4i0na+ae+=i z^-%p__CWbqKBSp|BvTJB5KKaxdo`w`!V&Q9#H&)J?$}S%cA-d z+Q`=BQ!oDo9yaa7tZa=)?h8yHyAOD}*f8o4&M7RejVD!?kPIf~Qq@c6CDQe?O5{QN zQdYFj3Y*~S^KhhuYwSXZQDL96xy5z& zbd<2UxT#!{$|UdgrdlHt$2{R*uPH5FPkF_MZP5&&=j`w=j%5HOSmEhICAlRXBXKet zKq!xRw(v^@B<_Q@fYcy%{*zy8P|S;Y+)qF2BlZk3ag+pP$nG~>^;Vmh=H};rIvz|M zt~Ij)-fQ2mlmE2E$jEyz2L&yo9c0KkaakFr=@t_I2aA`$l?2N*&1ID1lgTya$H&P; z>+s)3krmA6GD^u(^pi_RO?BB2cR0{wqoQ#d>ZL5zNy2grA6r=oGKb{Hp$N6Umr$g& zV3tMjr_~BH;w;UDam>+W7?pFUr^DY57t%@J&Z`N4*trgu6?i`~ULl+p7&&>|7LZu_ zFLr%7(D_R;Hj|xznKra+)}5)6xC`74iI{OdkG#c!JZfo`8jF8_gGGKaicd8tjITN- z_k?F(XLu&QsoAeWxl(POcHjjUO)%?;0O;1Ncp_1(7Vpio!Ei?1{;?53gHl$^gpop+ zm(*j~e_r=vRT*r$o@cLxhJOB-2P0<$P_NKB=KgJFzXv=6;%@WZev5k+rW8m(XlZ`u zE2z}Uq7zA$LG{{W;*Fodug+(5VVqriF+&;zs#cn=H#HgF_9HyZE` znrR-q6saWuAXL)*G}c12-eCcP{l)Bz6+<*CEykY5-^Ej1rlI-3SnpaEa^_i#lf2o_ zN4-7AS@7RK0X^!FLhS~Rojc##uHi|LQ0*EUOTEfS5V&YIo20)a&t5i7(51fUzPMqg zP*^@`?V$pm-OC4|NN%fmlI79R`kKDU{V0}DZ|3zr;ng1h!&S0Oz>q(jh`g; za>2;zDhbnjqRvV$p--yL}U<$)gp8iGoeOvpcP||E>r=5$ zU9)92PX5NXeW-hc60pg-Vg={-r0d!`JMgvRgrk4kfTh!ee!k^I^Kp&&ZkhsN+}hX7 zQ;4b87S5e*{7vQMBR-G!2gF(}LOMxA2MDB0f$wrR+Dr#^bmjLuYW5$2oN1Eb+J%FK z|4)eRHwO?p%CX_amdg~x29i_zuoT2K0rE*2B6mk;hyzkJb0{=i;?Hju)jgp*-vmaZ zTQW&=AzeSeav=FKU1ZaMm0>pbMRDKJc$8}X?EAgey0D%#MV0rWt-{*CgX8~3@6>=; z6*jj6nZVn#qsY_EqFxNpSC{BL(%^EO`cB*&OlW{WzX!yBcpkoip`sqvo*LT&)Xmj+ zqjS@agKi)X3*qj^sS)(=Us045(ggnnf6wYd*rt*-7bbViL&TmhuItjCVU%ADj@rRY6vC?~ZQ62&(+*WIlPB^{D zoQ$1GcsCMIXY(tIgZ-W6LY7{ZM8y_vUJp3SHO6;lC>}J`1?{4n@KI6gbC(JbhR_JU zhROKWVXybyB4gz}*;1SkZd^HeiVNzvf7Qwn=Mb4Yy6|Uil>U;0oNo$V+0No}s!Ry{ zAsh$&RR?d3O169Sv_HCR+=KOZe!(O!0m1`pK+`a$0cg+`9Ni)yTjt24^Y%7MEqM)q~)G_#9^bNxt_1Ys|xI zqYCbzvMFXE-;--z*w$#@_f zW8`I`&{)b^oK3_fx}V9U|*ky>+fId4SpyRneMp!w0x9yLfyB*f6DjFLa)NyZ8f)8 zF%KOXi3ei2UYBu^k+L|C(XMfELi>g+0{4>Q*7TQsp9@0FBx){NUzSum#jI@9GL9Ra zigD{OHG`y&5_Y4C1uGM+{y={JF%+Hc|AJf+sB5Dz`0B|oO#C)_j4{#c;QGy3FrL%x zTDzK4PYsk3gq~25>B#SB;dYE?nujd-HG}U@dg10(wG+cl-ZbG)zUlrjPTiFPG z#C*gR+gs8$R9dOGKK5Zle$?H3*|0cxGAi#}Mt{C}Er)k}Ki$j*km6Ce6&IG6n&JcmSe1SnfSS=GjXN*Qp||MZqFWrJ$B93!-}}XT!9Q00wEtZ z5Ly<=7Vus>^M1VU2BKw5W>dsYXDjp72+m&t&8Nf)7~NvDH%5#x5&cW)28pUdutqk& z^cQwlf_O0>irC2 z15Fm?dKGJLPdW?ZVW)y>2B%y<89bS20DD)d(OX5`2=iDVCdm6*nG1O|u5zKLh-2H~ z=K#}X5vEE))L=DW{q#C^zJGc$xF&1o*`{N0_ss_rltX0I(4PoqP~R;C1{yBuiGiIC z)jE^mp zprol8CgAHpjlf8H7^`toSIxmoaHLpi4QZi`bx7}9{{81>#=m!OY>SHZp1o;Q?BeGxDN{KW-! z=o0rkSZO<}EtEQ;O59?@WUJNius<12b*8o|@%KLfORv9c@S`wa&~xSB#Y-tJ*T+?@ zzJJYLfm}FD%*!-AqC;IlzfXbm#mm}A-yIZhOUo+3=WMo3j5G&;C|&@bZ5t|Z8jH)y zL_U8GXte}da+Wkn(pHlcl_DGsiM25tCSuktv2Ljs_-NtA7U3z%jJic3qnNQKh4&wQ zR6URv4X!hO`Zlf^=oC>&VcpG^SO9a6IcBx_Vzv7js7A|fdFymMknjDqU{s?@GRjtc zBr2|+W9IQx3y|=x#wXGiiQiZfBM^V!gj)P{C!)XwvN|*^cF5}~u(+x0U0079?StJ@ zLKe0hewrxK-5y%@a*%&0FMF$VF&J$PM|nqE)f8kw;XXCNfo39e`uf;tuuNUpY>(R2 z%@ihCNrcJ@C^&dB(NwSc$QT%b=jz==CN78l(52tEPlO-0`dr2Y%lUkd+}Nj_K|Tws ztO^%I@`FQ_gMWN(W|t1lZ+C2Yx5uOVN9RQ2C|ETcNYGvBBL*VIORNc1lgq<;+`s4= z_CnU_(=SB>b3WU!IF>#jUG3ukljD5HIBV^qRA0PosdQ zR*|VUFUSIw62FIQ7!DcG6`_nBH&)?%1iv2@l;~E?TMoB8$f@qZ+AuA$@PH%ENc1C@XHEG^|7gT;WUSp>If*GIUA-Bh;Rff$1RXn=>Z9pc zBp`!`^1Y@I>h-n3{qp9wtAWg*lN{$(*{q%$Zb#Xm#v{%Y1Vrl{6Qm6zor~gXqJ@RU zS|DS+xKQ#?_S@@Sr`vv->DuJm^MT;5;M+sYw=8v5ZoH$R{;%5}hKzPy$?e$8117Fg z5PPTvc*H=?3>B;t4o+x1na-UrZ~XPuYJa4pPzB&Um*P+Ny%vroVl1N{nmlJwXQ0Pw)Xn`gm04cS1QR==O>ds$7SO)V$$1_|BBEjkD84(1BaLV~D+e_m@Way-%0AthB| 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Ή&eJS>i8Tv!n2KFak7+ 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

    S=k)M_OWih{bbG_wO89I<0l? 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 =(_TrLQx*l3GbHmvLI)y)u>nh{E>4Q2(%5 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 fkMn_P1mc=_IyU5eD?g?bhr1kHl^H<-Y%cP?Wda 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 literal 0 HcmV?d00001 diff --git a/docs/docs/assets/images/build/build_return_stock_dialog.png b/docs/docs/assets/images/build/build_return_stock_dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..2fd555a3e68aae11361fa33afd5ab35ae10c5a55 GIT binary patch literal 48854 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 literal 0 HcmV?d00001 diff --git a/docs/docs/manufacturing/build.md b/docs/docs/manufacturing/build.md index ae4b9bf8e9..ae01395f69 100644 --- a/docs/docs/manufacturing/build.md +++ b/docs/docs/manufacturing/build.md @@ -146,6 +146,16 @@ The *Consumed Stock* tab displays all stock items which have been *consumed* by !!! info "No BOM" If the part being built does not have a BOM, then the *Consumed Stock* tab will not be displayed. +#### Return to Stock + +After stock items have been *consumed* by a build order, it may be required to recover some of that stock back into the inventory. This can be done by selecting the desired items, and pressing the *Return to Stock* button: + +{{ image("build/build_return_stock.png", title="Return Stock") }} + +This will open the following dialog, which allows the user to specify the quantity of stock to return, and the location where the stock should be returned: + +{{ image("build/build_return_stock_dialog.png", title="Return Stock Dialog") }} + ### Incomplete Outputs The *Incomplete Outputs* panel shows the list of in-progress [build outputs](./output.md) (created stock items) associated with this build. diff --git a/src/backend/InvenTree/InvenTree/api_version.py b/src/backend/InvenTree/InvenTree/api_version.py index b837ab7622..6c3e7f0fae 100644 --- a/src/backend/InvenTree/InvenTree/api_version.py +++ b/src/backend/InvenTree/InvenTree/api_version.py @@ -1,12 +1,21 @@ """InvenTree API version information.""" # InvenTree API version -INVENTREE_API_VERSION = 380 +INVENTREE_API_VERSION = 381 """Increment this API version number whenever there is a significant change to the API that any clients need to know about.""" INVENTREE_API_TEXT = """ +v381 -> 2025-08-06 : https://github.com/inventree/InvenTree/pull/10132 + - Refactor the "return stock item" API endpoint to align with other stock adjustment actions + +v380 -> 2025-08-06 : https://github.com/inventree/InvenTree/pull/10135 + - Fixes "issued_by" filter for the BuildOrder list API endpoint + +v380 -> 2025-08-06 : https://github.com/inventree/InvenTree/pull/10132 + - Refactor the "return stock item" API endpoint to align with other stock adjustment actions + v380 -> 2025-08-06 : https://github.com/inventree/InvenTree/pull/10135 - Fixes "issued_by" filter for the BuildOrder list API endpoint diff --git a/src/backend/InvenTree/build/models.py b/src/backend/InvenTree/build/models.py index e06ab5f890..fbf4d96e65 100644 --- a/src/backend/InvenTree/build/models.py +++ b/src/backend/InvenTree/build/models.py @@ -671,10 +671,14 @@ class Build( get_global_setting('BUILDORDER_REQUIRE_CLOSED_CHILDS') and self.has_open_child_builds ): - return + raise ValidationError( + _('Cannot complete build order with open child builds') + ) if self.incomplete_count > 0: - return + raise ValidationError( + _('Cannot complete build order with incomplete outputs') + ) if trim_allocated_stock: self.trim_allocated_stock() diff --git a/src/backend/InvenTree/build/tasks.py b/src/backend/InvenTree/build/tasks.py index 29fded5bc9..5ce4798a8d 100644 --- a/src/backend/InvenTree/build/tasks.py +++ b/src/backend/InvenTree/build/tasks.py @@ -50,11 +50,11 @@ def complete_build_allocations(build_id: int, user_id: int): try: user = User.objects.get(pk=user_id) except User.DoesNotExist: + user = None logger.warning( 'Could not complete build allocations for BuildOrder <%s> - User does not exist', build_id, ) - return else: user = None diff --git a/src/backend/InvenTree/build/test_build.py b/src/backend/InvenTree/build/test_build.py index 0367f77e7f..d73989965b 100644 --- a/src/backend/InvenTree/build/test_build.py +++ b/src/backend/InvenTree/build/test_build.py @@ -498,9 +498,44 @@ class BuildTest(BuildTestBase): self.assertEqual(StockItem.objects.get(pk=self.stock_3_1.pk).quantity, 980) # Check that the "consumed_by" item count has increased - self.assertEqual( - StockItem.objects.filter(consumed_by=self.build).count(), n + 8 - ) + consumed_items = StockItem.objects.filter(consumed_by=self.build) + self.assertEqual(consumed_items.count(), n + 8) + + # Finally, return the items into stock + location = StockLocation.objects.filter(structural=False).first() + + for item in consumed_items: + item.return_to_stock(location) + + # No consumed items should remain + self.assertEqual(StockItem.objects.filter(consumed_by=self.build).count(), 0) + + def test_return_consumed(self): + """Test returning consumed stock items to stock.""" + self.build.auto_allocate_stock(interchangeable=True) + + self.build.incomplete_outputs.delete() + + self.assertGreater(self.build.allocated_stock.count(), 0) + + self.build.complete_build(self.user) + consumed_items = StockItem.objects.filter(consumed_by=self.build) + self.assertGreater(consumed_items.count(), 0) + + location = StockLocation.objects.filter(structural=False).last() + + # Return a partial quantity of each item to stock + for item in consumed_items: + self.assertEqual(item.get_descendant_count(), 0) + q = item.quantity + self.assertGreater(item.quantity, 1) + item.return_to_stock(location, merge=False, quantity=1) + item.refresh_from_db() + self.assertEqual(item.quantity, q - 1) + self.assertEqual(item.get_descendant_count(), 1) + self.assertFalse(item.is_in_stock()) + child = item.get_descendants().first() + self.assertTrue(child.is_in_stock()) def test_change_part(self): """Try to change target part after creating a build.""" diff --git a/src/backend/InvenTree/stock/api.py b/src/backend/InvenTree/stock/api.py index 5407e76408..37faee8bff 100644 --- a/src/backend/InvenTree/stock/api.py +++ b/src/backend/InvenTree/stock/api.py @@ -161,12 +161,6 @@ class StockItemConvert(StockItemContextMixin, CreateAPI): serializer_class = StockSerializers.ConvertStockItemSerializer -class StockItemReturn(StockItemContextMixin, CreateAPI): - """API endpoint for returning a stock item from a customer.""" - - serializer_class = StockSerializers.ReturnStockItemSerializer - - class StockAdjustView(CreateAPI): """A generic class for handling stocktake actions. @@ -218,6 +212,17 @@ class StockTransfer(StockAdjustView): serializer_class = StockSerializers.StockTransferSerializer +class StockReturn(StockAdjustView): + """API endpoint for returning items into stock. + + This API endpoint is for items that are initially considered "not in stock", + and the user wants to return them to stock, marking them as + "available" for further consumption or sale. + """ + + serializer_class = StockSerializers.StockReturnSerializer + + class StockAssign(CreateAPI): """API endpoint for assigning stock to a particular customer.""" @@ -1600,6 +1605,7 @@ stock_api_urls = [ path('add/', StockAdd.as_view(), name='api-stock-add'), path('remove/', StockRemove.as_view(), name='api-stock-remove'), path('transfer/', StockTransfer.as_view(), name='api-stock-transfer'), + path('return/', StockReturn.as_view(), name='api-stock-return'), path('assign/', StockAssign.as_view(), name='api-stock-assign'), path('merge/', StockMerge.as_view(), name='api-stock-merge'), path('change_status/', StockChangeStatus.as_view(), name='api-stock-change-status'), @@ -1657,7 +1663,6 @@ stock_api_urls = [ MetadataView.as_view(model=StockItem), name='api-stock-item-metadata', ), - path('return/', StockItemReturn.as_view(), name='api-stock-item-return'), path( 'serialize/', StockItemSerialize.as_view(), diff --git a/src/backend/InvenTree/stock/events.py b/src/backend/InvenTree/stock/events.py index 1dd2364d7b..6f6efb2f62 100644 --- a/src/backend/InvenTree/stock/events.py +++ b/src/backend/InvenTree/stock/events.py @@ -8,6 +8,7 @@ class StockEvents(BaseEventEnum): # StockItem events ITEM_ASSIGNED_TO_CUSTOMER = 'stockitem.assignedtocustomer' + ITEM_RETURNED_TO_STOCK = 'stockitem.returnedtostock' ITEM_RETURNED_FROM_CUSTOMER = 'stockitem.returnedfromcustomer' ITEM_SPLIT = 'stockitem.split' ITEM_MOVED = 'stockitem.moved' diff --git a/src/backend/InvenTree/stock/models.py b/src/backend/InvenTree/stock/models.py index 8aed9e39d0..8857aa571d 100644 --- a/src/backend/InvenTree/stock/models.py +++ b/src/backend/InvenTree/stock/models.py @@ -1387,47 +1387,101 @@ class StockItem( If the selected location is the same as the parent, merge stock back into the parent. Otherwise create the stock in the new location. + + Note that this function is provided for legacy compatibility, + and the 'return_to_stock' function should be used instead. + """ + self.return_to_stock( + location, + user, + tracking_code=StockHistoryCode.RETURNED_FROM_CUSTOMER, + **kwargs, + ) + + @transaction.atomic + def return_to_stock( + self, location, user=None, quantity=None, merge: bool = True, **kwargs + ): + """Return stock item into stock, removing any consumption status. + + Arguments: + location: The location to return the stock item to + user: The user performing the action + quantity: If specified, the quantity to return to stock (default is the full quantity) + merge: If True, attempt to merge this stock item back into the parent stock item """ notes = kwargs.get('notes', '') - tracking_info = {'location': location.pk} + tracking_code = kwargs.get('tracking_code', StockHistoryCode.RETURNED_TO_STOCK) - if self.customer: - tracking_info['customer'] = self.customer.id - tracking_info['customer_name'] = self.customer.name + item = self + + if quantity is not None and not self.serialized: + # If quantity is specified, we are splitting the stock item + if quantity <= 0: + raise ValidationError({ + 'quantity': _('Quantity must be greater than zero') + }) + + if quantity > self.quantity: + raise ValidationError({ + 'quantity': _('Quantity exceeds available stock') + }) + + if quantity < self.quantity: + # Split the stock item + item = self.splitStock(quantity, None, user) + + tracking_info = {} + + if location: + tracking_info['location'] = location.pk + + if item.customer: + tracking_info['customer'] = item.customer.id + tracking_info['customer_name'] = item.customer.name + + if item.consumed_by: + tracking_info['build_order'] = item.consumed_by.id # Clear out allocation information for the stock item - self.customer = None - self.belongs_to = None - self.sales_order = None - self.location = location + item.consumed_by = None + item.customer = None + item.belongs_to = None + item.sales_order = None + item.location = location if status := kwargs.pop('status', None): - if not self.compare_status(status): - self.set_status(status) + if not item.compare_status(status): + item.set_status(status) tracking_info['status'] = status - self.save() + item.save() - self.clearAllocations() + item.clearAllocations() - self.add_tracking_entry( - StockHistoryCode.RETURNED_FROM_CUSTOMER, - user, - notes=notes, - deltas=tracking_info, - location=location, + item.add_tracking_entry( + tracking_code, user, notes=notes, deltas=tracking_info, location=location ) - trigger_event(StockEvents.ITEM_RETURNED_FROM_CUSTOMER, id=self.id) + trigger_event(StockEvents.ITEM_RETURNED_TO_STOCK, id=item.id) - """If new location is the same as the parent location, merge this stock back in the parent""" - if self.parent and self.location == self.parent.location: + # Attempt to merge returned item into parent item: + # - 'merge' parameter is True + # - The parent location is the same as the current location + # - The item does not have a serial number + + if ( + merge + and not item.serialized + and self.parent + and item.location == self.parent.location + ): self.parent.merge_stock_items( - {self}, user=user, location=location, notes=notes + {item}, user=user, location=location, notes=notes ) else: - self.save(add_note=False) + item.save(add_note=False) def is_allocated(self): """Return True if this StockItem is allocated to a SalesOrder or a Build.""" diff --git a/src/backend/InvenTree/stock/serializers.py b/src/backend/InvenTree/stock/serializers.py index 4fea859db9..a080b62780 100644 --- a/src/backend/InvenTree/stock/serializers.py +++ b/src/backend/InvenTree/stock/serializers.py @@ -1020,53 +1020,6 @@ class StockStatusCustomSerializer(serializers.ChoiceField): super().__init__(*args, **kwargs) -class ReturnStockItemSerializer(serializers.Serializer): - """DRF serializer for returning a stock item from a customer.""" - - class Meta: - """Metaclass options.""" - - fields = ['location', 'status', 'notes'] - - location = serializers.PrimaryKeyRelatedField( - queryset=StockLocation.objects.all(), - many=False, - required=True, - allow_null=False, - label=_('Location'), - help_text=_('Destination location for returned item'), - ) - - status = StockStatusCustomSerializer(default=None, required=False, allow_blank=True) - - notes = serializers.CharField( - label=_('Notes'), - help_text=_('Add transaction note (optional)'), - required=False, - allow_blank=True, - ) - - def save(self): - """Save the serializer to return the item into stock.""" - item = self.context.get('item') - - if not item: - raise ValidationError(_('No stock item provided')) - - request = self.context['request'] - - data = self.validated_data - - location = data['location'] - - item.return_from_customer( - location, - user=request.user, - notes=data.get('notes', ''), - status=data.get('status', None), - ) - - class StockChangeStatusSerializer(serializers.Serializer): """Serializer for changing status of multiple StockItem objects.""" @@ -1612,6 +1565,15 @@ class StockAdjustmentItemSerializer(serializers.Serializer): fields = ['pk', 'quantity', 'batch', 'status', 'packaging'] + def __init__(self, *args, **kwargs): + """Initialize the serializer.""" + # Store the 'require_in_stock' status + # Either True / False / None + self.require_in_stock = kwargs.pop('require_in_stock', True) + self.require_non_zero = kwargs.pop('require_non_zero', False) + + super().__init__(*args, **kwargs) + pk = serializers.PrimaryKeyRelatedField( queryset=StockItem.objects.all(), many=False, @@ -1623,14 +1585,18 @@ class StockAdjustmentItemSerializer(serializers.Serializer): def validate_pk(self, stock_item: StockItem) -> StockItem: """Ensure the stock item is valid.""" - allow_out_of_stock_transfer = get_global_setting( - 'STOCK_ALLOW_OUT_OF_STOCK_TRANSFER', backup_value=False, cache=False - ) + if self.require_in_stock == True: + allow_out_of_stock_transfer = get_global_setting( + 'STOCK_ALLOW_OUT_OF_STOCK_TRANSFER', backup_value=False, cache=False + ) - if not allow_out_of_stock_transfer and not stock_item.is_in_stock( - check_status=False, check_quantity=False - ): - raise ValidationError(_('Stock item is not in stock')) + if not allow_out_of_stock_transfer and not stock_item.is_in_stock( + check_status=False, check_quantity=False + ): + raise ValidationError(_('Stock item is not in stock')) + elif self.require_in_stock == False: + if stock_item.is_in_stock(): + raise ValidationError(_('Stock item is already in stock')) return stock_item @@ -1638,6 +1604,16 @@ class StockAdjustmentItemSerializer(serializers.Serializer): max_digits=15, decimal_places=5, min_value=Decimal(0), required=True ) + def validate_quantity(self, quantity): + """Validate the quantity value.""" + if self.require_non_zero and quantity <= 0: + raise ValidationError(_('Quantity must be greater than zero')) + + if quantity < 0: + raise ValidationError(_('Quantity must not be negative')) + + return quantity + batch = serializers.CharField( max_length=100, required=False, @@ -1775,8 +1751,10 @@ class StockTransferSerializer(StockAdjustmentSerializer): fields = ['items', 'notes', 'location'] + items = StockAdjustmentItemSerializer(many=True, require_non_zero=True) + location = serializers.PrimaryKeyRelatedField( - queryset=StockLocation.objects.all(), + queryset=StockLocation.objects.filter(structural=False), many=False, required=True, allow_null=False, @@ -1812,6 +1790,64 @@ class StockTransferSerializer(StockAdjustmentSerializer): ) +class StockReturnSerializer(StockAdjustmentSerializer): + """Serializer class for returning stock item(s) into stock.""" + + class Meta: + """Metaclass options.""" + + fields = ['items', 'notes', 'location'] + + items = StockAdjustmentItemSerializer( + many=True, require_in_stock=False, require_non_zero=True + ) + + location = serializers.PrimaryKeyRelatedField( + queryset=StockLocation.objects.filter(structural=False), + many=False, + required=True, + allow_null=False, + label=_('Location'), + help_text=_('Destination stock location'), + ) + + merge = serializers.BooleanField( + default=False, + required=False, + label=_('Merge into existing stock'), + help_text=_('Merge returned items into existing stock items if possible'), + ) + + def save(self): + """Return the provided items into stock.""" + request = self.context['request'] + data = self.validated_data + items = data['items'] + merge = data.get('merge', False) + notes = data.get('notes', '') + location = data['location'] + + with transaction.atomic(): + for item in items: + stock_item = item['pk'] + quantity = item.get('quantity', None) + + # Optional fields + kwargs = {'notes': notes} + + for field_name in StockItem.optional_transfer_fields(): + if field_value := item.get(field_name, None): + kwargs[field_name] = field_value + + stock_item.return_to_stock( + location, + quantity=quantity, + merge=merge, + user=request.user, + **kwargs, + ) + + class StockItemSerialNumbersSerializer(InvenTreeModelSerializer): """Serializer for extra serial number information about a stock item.""" diff --git a/src/backend/InvenTree/stock/status_codes.py b/src/backend/InvenTree/stock/status_codes.py index d59d622569..af99974d7e 100644 --- a/src/backend/InvenTree/stock/status_codes.py +++ b/src/backend/InvenTree/stock/status_codes.py @@ -54,6 +54,8 @@ class StockHistoryCode(StatusCode): STOCK_ADD = 11, _('Stock manually added') STOCK_REMOVE = 12, _('Stock manually removed') + RETURNED_TO_STOCK = 15, _('Returned to stock') # Stock item returned to stock + # Location operations STOCK_MOVE = 20, _('Location changed') STOCK_UPDATE = 25, _('Stock updated') diff --git a/src/backend/InvenTree/stock/test_api.py b/src/backend/InvenTree/stock/test_api.py index a134f5346c..a12f01b1d8 100644 --- a/src/backend/InvenTree/stock/test_api.py +++ b/src/backend/InvenTree/stock/test_api.py @@ -1586,16 +1586,33 @@ class StockItemTest(StockAPITestCase): n_entries = item.tracking_info_count - url = reverse('api-stock-item-return', kwargs={'pk': item.pk}) + url = reverse('api-stock-return') # Empty POST will fail response = self.post(url, {}, expected_code=400) + self.assertIn('This field is required', str(response.data['items'])) self.assertIn('This field is required', str(response.data['location'])) + # Test condition where provided quantity is zero + response = self.post( + url, + {'items': [{'pk': item.pk, 'quantity': 0}], 'location': '1'}, + expected_code=400, + ) + + self.assertIn( + 'Quantity must be greater than zero', + str(response.data['items'][0]['quantity']), + ) + response = self.post( url, - {'location': '1', 'notes': 'Returned from this customer for testing'}, + { + 'items': [{'pk': item.pk, 'quantity': item.quantity}], + 'location': '1', + 'notes': 'Returned from this customer for testing', + }, expected_code=201, ) diff --git a/src/backend/InvenTree/stock/tests.py b/src/backend/InvenTree/stock/tests.py index f71270d821..6df3dddb1b 100644 --- a/src/backend/InvenTree/stock/tests.py +++ b/src/backend/InvenTree/stock/tests.py @@ -457,7 +457,9 @@ class StockTest(StockTestBase): it.refresh_from_db() self.assertEqual(it.quantity, 10) - ait.return_from_customer(it.location, None, notes='Stock removed from customer') + ait.return_from_customer( + it.location, None, merge=True, notes='Stock returned from customer' + ) # When returned stock is returned to its original (parent) location, check that the parent has correct quantity it.refresh_from_db() diff --git a/src/frontend/lib/enums/ApiEndpoints.tsx b/src/frontend/lib/enums/ApiEndpoints.tsx index b99e428e43..628b858c34 100644 --- a/src/frontend/lib/enums/ApiEndpoints.tsx +++ b/src/frontend/lib/enums/ApiEndpoints.tsx @@ -144,6 +144,7 @@ export enum ApiEndpoints { stock_test_result_list = 'stock/test/', stock_transfer = 'stock/transfer/', stock_remove = 'stock/remove/', + stock_return = 'stock/return/', stock_add = 'stock/add/', stock_count = 'stock/count/', stock_change_status = 'stock/change_status/', @@ -153,7 +154,6 @@ export enum ApiEndpoints { stock_install = 'stock/:id/install/', stock_uninstall = 'stock/:id/uninstall/', stock_serialize = 'stock/:id/serialize/', - stock_return = 'stock/:id/return/', stock_serial_info = 'stock/:id/serial-numbers/', // Generator API endpoints diff --git a/src/frontend/src/forms/StockForms.tsx b/src/frontend/src/forms/StockForms.tsx index f94ecc6184..b0ab6c25bc 100644 --- a/src/frontend/src/forms/StockForms.tsx +++ b/src/frontend/src/forms/StockForms.tsx @@ -746,6 +746,54 @@ function stockTransferFields(items: any[]): ApiFormFieldSet { return fields; } +function stockReturnFields(items: any[]): ApiFormFieldSet { + if (!items) { + return {}; + } + + // Only include items that are currently *not* in stock + const records = Object.fromEntries( + items.filter((item) => !item.in_stock).map((item) => [item.pk, item]) + ); + + const fields: ApiFormFieldSet = { + items: { + field_type: 'table', + value: mapAdjustmentItems(items), + modelRenderer: (row: TableFieldRowProps) => { + const record = records[row.item.pk]; + + return ( + + ); + }, + headers: [ + { title: t`Part` }, + { title: t`Location` }, + { title: t`Batch` }, + { title: t`Quantity` }, + { title: t`Return`, style: { width: '200px' } }, + { title: t`Actions` } + ] + }, + location: { + filters: { + structural: false + } + }, + merge: {}, + notes: {} + }; + + return fields; +} + function stockRemoveFields(items: any[]): ApiFormFieldSet { if (!items) { return {}; @@ -1136,7 +1184,12 @@ export function useAddStockItem(props: StockOperationProps) { fieldGenerator: stockAddFields, endpoint: ApiEndpoints.stock_add, title: t`Add Stock`, - successMessage: t`Stock added` + successMessage: t`Stock added`, + preFormContent: ( + + {t`Increase the quantity of the selected stock items by a given amount.`} + + ) }); } @@ -1146,7 +1199,12 @@ export function useRemoveStockItem(props: StockOperationProps) { fieldGenerator: stockRemoveFields, endpoint: ApiEndpoints.stock_remove, title: t`Remove Stock`, - successMessage: t`Stock removed` + successMessage: t`Stock removed`, + preFormContent: ( + + {t`Decrease the quantity of the selected stock items by a given amount.`} + + ) }); } @@ -1156,7 +1214,27 @@ export function useTransferStockItem(props: StockOperationProps) { fieldGenerator: stockTransferFields, endpoint: ApiEndpoints.stock_transfer, title: t`Transfer Stock`, - successMessage: t`Stock transferred` + successMessage: t`Stock transferred`, + preFormContent: ( + + {t`Transfer selected items to the specified location.`} + + ) + }); +} + +export function useReturnStockItem(props: StockOperationProps) { + return useStockOperationModal({ + ...props, + fieldGenerator: stockReturnFields, + endpoint: ApiEndpoints.stock_return, + title: t`Return Stock`, + successMessage: t`Stock returned`, + preFormContent: ( + + {t`Return selected items into stock, to the specified location.`} + + ) }); } @@ -1166,7 +1244,12 @@ export function useCountStockItem(props: StockOperationProps) { fieldGenerator: stockCountFields, endpoint: ApiEndpoints.stock_count, title: t`Count Stock`, - successMessage: t`Stock counted` + successMessage: t`Stock counted`, + preFormContent: ( + + {t`Count the selected stock items, and adjust the quantity accordingly.`} + + ) }); } @@ -1176,7 +1259,12 @@ export function useChangeStockStatus(props: StockOperationProps) { fieldGenerator: stockChangeStatusFields, endpoint: ApiEndpoints.stock_change_status, title: t`Change Stock Status`, - successMessage: t`Stock status changed` + successMessage: t`Stock status changed`, + preFormContent: ( + + {t`Change the status of the selected stock items.`} + + ) }); } @@ -1222,7 +1310,12 @@ export function useDeleteStockItem(props: StockOperationProps) { endpoint: ApiEndpoints.stock_item_list, modalFunc: useDeleteApiFormModal, title: t`Delete Stock Items`, - successMessage: t`Stock deleted` + successMessage: t`Stock deleted`, + preFormContent: ( + + {t`This operation will permanently delete the selected stock items.`} + + ) }); } diff --git a/src/frontend/src/functions/icons.tsx b/src/frontend/src/functions/icons.tsx index 1cf0a2d2f3..f411c20f95 100644 --- a/src/frontend/src/functions/icons.tsx +++ b/src/frontend/src/functions/icons.tsx @@ -1,5 +1,6 @@ import type { InvenTreeIconType, TablerIconType } from '@lib/types/Icons'; import { + IconArrowBack, IconArrowBigDownLineFilled, IconArrowMerge, IconBell, @@ -165,6 +166,7 @@ const icons: InvenTreeIconType = { refresh: IconRefresh, select_image: IconGridDots, delete: IconTrash, + return: IconArrowBack, packaging: IconPackage, packages: IconPackages, install: IconTransitionRight, diff --git a/src/frontend/src/hooks/UseStockAdjustActions.tsx b/src/frontend/src/hooks/UseStockAdjustActions.tsx index d6d994adbb..d9e9ba927e 100644 --- a/src/frontend/src/hooks/UseStockAdjustActions.tsx +++ b/src/frontend/src/hooks/UseStockAdjustActions.tsx @@ -13,6 +13,7 @@ import { useDeleteStockItem, useMergeStockItem, useRemoveStockItem, + useReturnStockItem, useTransferStockItem } from '../forms/StockForms'; import { InvenTreeIcon } from '../functions/icons'; @@ -29,6 +30,7 @@ interface StockAdjustActionProps { merge?: boolean; remove?: boolean; transfer?: boolean; + return?: boolean; } interface StockAdjustActionReturnProps { @@ -58,6 +60,7 @@ export function useStockAdjustActions( const mergeStock = useMergeStockItem(props.formProps); const removeStock = useRemoveStockItem(props.formProps); const transferStock = useTransferStockItem(props.formProps); + const returnStock = useReturnStockItem(props.formProps); // Construct a list of modals available for stock adjustment actions const modals: UseModalReturn[] = useMemo(() => { @@ -74,6 +77,7 @@ export function useStockAdjustActions( props.merge != false && modals.push(mergeStock); props.remove != false && modals.push(removeStock); props.transfer != false && modals.push(transferStock); + props.return === true && modals.push(returnStock); props.delete != false && user.hasDeleteRole(UserRoles.stock) && modals.push(deleteStock); @@ -159,6 +163,16 @@ export function useStockAdjustActions( } }); + props.return === true && + menuActions.push({ + name: t`Return Stock`, + icon: , + tooltip: t`Return selected items into stock`, + onClick: () => { + returnStock.open(); + } + }); + props.delete != false && menuActions.push({ name: t`Delete Stock`, diff --git a/src/frontend/src/pages/build/BuildDetail.tsx b/src/frontend/src/pages/build/BuildDetail.tsx index 646de48483..810cc292e6 100644 --- a/src/frontend/src/pages/build/BuildDetail.tsx +++ b/src/frontend/src/pages/build/BuildDetail.tsx @@ -443,6 +443,7 @@ export default function BuildDetail() { allowAdd={false} tableName='build-consumed' showLocation={false} + allowReturn params={{ consumed_by: id }} diff --git a/src/frontend/src/pages/company/CompanyDetail.tsx b/src/frontend/src/pages/company/CompanyDetail.tsx index a108495509..ad52203c59 100644 --- a/src/frontend/src/pages/company/CompanyDetail.tsx +++ b/src/frontend/src/pages/company/CompanyDetail.tsx @@ -248,6 +248,7 @@ export default function CompanyDetail(props: Readonly) { allowAdd={false} tableName='assigned-stock' showLocation={false} + allowReturn params={{ customer: company.pk }} /> ) : ( diff --git a/src/frontend/src/pages/stock/StockDetail.tsx b/src/frontend/src/pages/stock/StockDetail.tsx index 153024f14f..5b2c661787 100644 --- a/src/frontend/src/pages/stock/StockDetail.tsx +++ b/src/frontend/src/pages/stock/StockDetail.tsx @@ -1,7 +1,6 @@ import { t } from '@lingui/core/macro'; import { Accordion, - Alert, Button, Grid, Group, @@ -725,6 +724,8 @@ export default function StockDetail() { const stockAdjustActions = useStockAdjustActions({ formProps: stockOperationProps, delete: false, + assign: !!stockitem.in_stock, + return: !!stockitem.consumed_by || !!stockitem.customer, merge: false }); @@ -756,30 +757,6 @@ export default function StockDetail() { successMessage: t`Stock item serialized` }); - const returnStockItem = useCreateApiFormModal({ - url: ApiEndpoints.stock_return, - pk: stockitem.pk, - title: t`Return Stock Item`, - preFormContent: ( - - {t`Return this item into stock. This will remove the customer assignment.`} - - ), - fields: { - location: {}, - status: {}, - notes: {} - }, - initialData: { - location: stockitem.location ?? stockitem.part_detail?.default_location, - status: stockitem.status_custom_key ?? stockitem.status - }, - successMessage: t`Item returned to stock`, - onFormSuccess: () => { - refreshInstance(); - } - }); - const orderPartsWizard = OrderPartsWizard({ parts: stockitem.part_detail ? [stockitem.part_detail] : [] }); @@ -884,20 +861,6 @@ export default function StockDetail() { onClick: () => { orderPartsWizard.openWizard(); } - }, - { - name: t`Return`, - tooltip: t`Return from customer`, - hidden: !stockitem.customer, - icon: ( - - ), - onClick: () => { - stockitem.pk && returnStockItem.open(); - } } ]} />, @@ -1045,7 +1008,6 @@ export default function StockDetail() { {duplicateStockItem.modal} {deleteStockItem.modal} {serializeStockItem.modal} - {returnStockItem.modal} {stockAdjustActions.modals.map((modal) => modal.modal)} {orderPartsWizard.wizard} diff --git a/src/frontend/src/tables/stock/StockItemTable.tsx b/src/frontend/src/tables/stock/StockItemTable.tsx index 7664386a4a..0e7f8c4523 100644 --- a/src/frontend/src/tables/stock/StockItemTable.tsx +++ b/src/frontend/src/tables/stock/StockItemTable.tsx @@ -463,12 +463,14 @@ export function StockItemTable({ allowAdd = false, showLocation = true, showPricing = true, + allowReturn = false, tableName = 'stockitems' }: Readonly<{ params?: any; allowAdd?: boolean; showLocation?: boolean; showPricing?: boolean; + allowReturn?: boolean; tableName: string; }>) { const table = useTable(tableName); @@ -536,7 +538,8 @@ export function StockItemTable({ }); const stockAdjustActions = useStockAdjustActions({ - formProps: stockOperationProps + formProps: stockOperationProps, + return: allowReturn }); const tableActions = useMemo(() => { diff --git a/src/frontend/tests/pages/pui_stock.spec.ts b/src/frontend/tests/pages/pui_stock.spec.ts index fd95e29709..2385b6058a 100644 --- a/src/frontend/tests/pages/pui_stock.spec.ts +++ b/src/frontend/tests/pages/pui_stock.spec.ts @@ -299,6 +299,39 @@ test('Stock - Stock Actions', async ({ browser }) => { await page.getByLabel('action-menu-stock-operations-return').click(); }); +test('Stock - Return Items', async ({ browser }) => { + const page = await doCachedLogin(browser, { + url: 'sales/customer/32/assigned-stock' + }); + + // Return stock items assigned to customer + await page.getByRole('cell', { name: 'Select all records' }).click(); + await page.getByRole('button', { name: 'action-menu-stock-actions' }).click(); + await page + .getByRole('menuitem', { name: 'action-menu-stock-actions-return-stock' }) + .click(); + await page.getByText('Return selected items into stock').first().waitFor(); + await page.getByRole('button', { name: 'Cancel' }).click(); + + // Location detail + await navigate(page, 'stock/item/1253'); + await page + .getByRole('button', { name: 'action-menu-stock-operations' }) + .click(); + await page + .getByRole('menuitem', { + name: 'action-menu-stock-operations-return-stock' + }) + .click(); + await page.getByText('#128').waitFor(); + await page.getByText('Merge into existing stock').waitFor(); + await page.getByRole('textbox', { name: 'number-field-quantity' }).fill('0'); + await page.getByRole('button', { name: 'Submit' }).click(); + + await page.getByText('Quantity must be greater than zero').waitFor(); + await page.getByText('This field is required.').waitFor(); +}); + test('Stock - Tracking', async ({ browser }) => { const page = await doCachedLogin(browser, { url: 'stock/item/176/details' });