&s%%$yPcI09(%j;cy!69P2{>s{&pC-=B*
zz5?^J;qjw@<7EO30QfjLw+c60<2?H#?;E`BgaPnVKhu2Pz6*PA4t?2aXTv_L@pdkb
zEd<%bkN7#t@d?BCvRP0GZMkmAlr49_F+Poh!%6t<$)`S_>$dewb$Z_F!w<-D@X#$Q&O>d_A8~f*%y4g;IS<2B{(EA@ar%LVr?a
ze@*!TMV5j$mlpkwsuUebKjk8ZfHC;EptPNBezpP&b7TS3F^fUp)dfs49vMpjXgF2)
z^0m${ApqWb!T|Wmr_^75))U5ma!PAA930%1X92xZ?%%V$0LJ9oS$l+NS5=U#&4QC`
z2M5hN1}8FhjbeM$Z1V9`&`HhU=8TWM2zl|S3aDKf#6WX|tyIe+*~)jIO5?b577n7_
zWo8Z~-!Ca%d0ASH`z;|fFP6~H5x<`*7KY6{%6mBs^b7_dGf89$3GeQ;!!V2`s00;3
z0zQ{Y;+ump0>I_bbPF?8n4b&oo(VigG3Z!b!DS23aB6VFwdy(7y>IaMCk%jxUR-_E
zIZup!f7Yu(H|^yoXYiNd0J%jlPS?weK(xWSjsREy6)&<2U_-|n9#QlCRmq}pfya@!
znu27IglLR7#>D2c^cX${0euOk<5qhHul0lb`wwosa%-#b4${j)X
z&=qU}5Cr4`YHb9*v_d|<#ZUv
zx3k%ghD{#zMgX89(862|W+)0c1_$6`P-Zy5G4=)6axl991VBRo@H_;--<~i4Uh|fv
zKi+`;|FgZa9qt<3EX2=}KBv%l-vGo8c#`%o^kbSzr^x(u19iW_CxJLLYlnLa`f?y*
zR+GdKl0oes#YMyK2mr?^?cs-M0F)<)*n~@2z;|Q+rA%LLww3JS$=k#%8B9x`cTdTo
zOs+)7vH?QJZ8Q=+BXkOtWBCk6=htr!m~b6Rb#Fk`Z$Pgb@P7X)YD|a=xwO3ojru(#
zg1!q0ECYZofLDhvU9F%0vG))E=7a(8s(;w_*J$RI55Bu8**4q!x#bE~>G!;Q=NLCJ)y`!>
zP%`PcnJ=HnmD%PG0|Mh_(o#fW2_pSMeF4YT&UFLB|LKkCh507eE_C2>{n$tzYo5e;mH~gaPo%zh8IN*vNG{2Kx8dJ-rZxZ0|GXUTcs``v}Bae;ByKyY2?(?
z;U9ff!#0}x8I0d=gTR@AjSY#G=ydZ1i~uMH5R}Wo+$(u(4sg6EARqwvb@lgmh
zKMw!;gaPof|2=z6Q@BU4#FYYp$f5@W4??#AzH0GA
zEpG4Tk}7rcMA8;!Dr;pEUf%69rRiI4V5%&uN+y4c_Ld7a_E5%r(`Z%#O{s=qqXKH=
zpn;P*Uf}6t9Ky0Y0|qo0{!&i=+T>Wh+JRxe3PJS{T7U&u+elE*3f+Ov+FuPlwg9$k
z>3DkskLLn>>jFNUz389*@%V>E92Wq;_O~;i-pJM;8M-oWM;Rg8(yuKH*|snn3i{r3
z+Zbm$V~3}O0!`DJEZ}NMb7w}46$Ap_7ck<&3TOPxT
z7s;6ya&E!Hd-e4qtZhzs>gZgn0`v3I5uEn~8V;b@3LLv1;2tdi0-)}o3%DkGF#_N(
zPZ$6%`QPm?MNW3U=g^0aiiQTii2bd9qoY?{yFrA0mpN?=06qybBLLJOi{>C3Z^sXA
zat?q_1fw)BwOMiP-yKSHK&@a#<#TN+lsnJ6+n?F{;^*}6EoRJQoXjNUa`UbWP;j$`
z@%5QK(Aq`@#(LOHW8T)ybAkiDZk=KTK*=6HxM{$nV;H>Dsgwo*Zzz!09O-22;v^rC
zr^;=_lr6$WZw!^dL-JSU-PIK|nSQw`^cbn&_#Rw;94=k;TauGN!`L!Dh8Ljm_506>RP6;w2lCvS)YX{p=bd=IGTt4FoJd?
zfNcvj55S$a05l$!BQ4FYaXJxn{8TVmfEup#^&ie&^6?Lh{^EoI@VqxS?(~9Sr-v)L
znQj!OzSR0<%fg%=FuXt_1jPWLK?oFX(d=MIS`dx4qxoBqO`qB|W}N^qmVys&16#*8
zTo)5-{HeX#ywz(<>2-ZwhCI+#@u|3fi&%}i5)zn
zlq?m^Belr{+g_S)Pm&CfW2&fg&Al*)@8q=aWYk1$O)>VbK)V^B_B#v!jsjeA6FwiY
z!~L`PIVsO0j1U0$g#tfjM^GsWs1pFLzK;O-mA|U3H)}JU$z%YmxUIfe-JBdm0~dqM2-oC8!9
zWdgI8e)5B(|8+tDc-*B6b2E=vTc!g(LPztiQ=9N%t+&k}3;}?f7YT
zicl~sg?{BuVypS~Z&M**4iJZ%J}B;1nanC6&6n+IWX$DkVm|0HY06vzX8(#UmfTBL
zoQI%<3eeis{5o2f0n~yyK9#hF%)c6j2!J{YzsY+9e7A`fAmj<_)G`L7FbIIuJ%p|X
z0g!FV*?|*RM$MxM9K{0|#$yCT#K53xAUYPf;cETTPn;+K9((EhzRtr}Z{9z5n(7Vj
zf_^$Ewu9M_#t=TA0HA2d$qWSPHgI*D1xtJ86Y5Z@(||>E)WKnll{bYUbB$dxMx13J
zA_zjuB@v{H9DixNoAuN5!`g=N{a*3MV`)Da;+N-oO4h)>za(-L3!hnfQj@F5G^cwx
z_fNZ#&{8=ul33y_%7hVg&^3K$;p?Is$tiULxsEh`;A@)UBIopJH&89Cq3~y*;?5xe
zW^g@G`@MjPAXyLP##|rCTyz0?1pzRD$vDKXCThHg=6?jEWCI52I)Y(<>hM`-@+4=W84kcgmt*1!NfuSQsd6q9u{@1G>X`XH`WR+D*Y4D0{7Tlr
zx{(|JB};?q#=$4W`1C~$teX1)(A?ATs?4_eU<6<`t~dl{vRcFim?ub@TbXGoo%$R%
zl*SlN&((Lq0M$1@|5*!~DEtNd+JSGN9_Gq~bsCPPoi(&B>-gF}pFT1fQ8YD&
z)-{B2G=^ci0)y-bx|cNs!vq0^;g47KY8T|0^m_UGxLPmN34Hje`i0ejBe#K
zc=CQf!vmB71VwmM(sYOe(7*?D1x{K+!qkL8&*hY9t&K#6x_c?aPCO-O8}iu)wTb^}e?8^WJEZ|nxydg9z`6vRA+|%J^9TUH`uIMz78IE#?)%TA
z4}j;p&B$H`GW9esn5LD`pbBkk7G#1VscU#6IS7lYp6)nbv$@s|6#5!xKex4Z!{%@-
z00fr)kpC-W$X2KvPbc$GC&ybV62!4^}*-1{cOHl5Qa
zzdsrZ`{!7>6z^{x3s+A5=u#el@)JG8V;wKm3k<0=J6Ts(u>*fE>UNIE&|d
z$hSP1w#N4cauiOI4KWHB;Cedf0_q5YDrf&jF}i^4C<0&|T>za_g0H}c>&ENUiMxQG
zcv9mfa}VqP`Tp5CIJCJc{r`c4e?h4VX!8IxZ6omHTwa0!wSVhq1_m2+Ks3g=b!h_O
z)3(UpCp88DwS!aEFM(xns~a+W!6tw5#(zE4x=r6n`)NjTU?*`Ha9Hgw7k_LnAkPS9
zax^?m>Y|Z)l(S%fP9lwd^0h6Dv
z$y5!`DR_YI6~!O>#f>3E?C5|6H1X?4sMWd6xdG1XQLjHWR8p>xTEJ-^0BZOIZ@{Co
z_`saPMb$!H_PErktJsf{=5C_qHruAXt|Z{Hz-=L@>_Y6MZc0rnF9AE5lu0LB5kzua
z@>dF8pgm*Do*Lr5&d+=jkPz@#Y{Tof`T;n0MH
zw*QS9J7c`a9$J9;<^pHYID_V)srOcarhm$SCy!6Y&h!LBUO81P_xqX549M8`YVIGT
z4w}u4jB^XFnf0IF$rk3HH-4D6qvsNLSUHS7c@cP`Y2NTbLZymcR$+olAs&Zy6zgjl
zUa6`5%NaN
z{Y+`#Vt25^sbH-eYymR10DX)C*7zuz$)p0~VF!7DhoK*ZfqesjAzHNw0w98YvkR|%
z@uhdX>4X6AoIjX-$G46Qf8m^++u_DLZs+Yr6|@44s*FG*Kvd0$RVom9UJ>#*T8={R
zcO5<|wjRu*)^x=Dx@)p%H0X&ND;*BCXv-5NF!;~~a|9bj23&D7RW?n97Zl>g8XCr?
zgn!!fedmn66z)wmhGa6On=D5a&3>iovcKn~AI0`5fe|%6qS3UW41yxEM>Pv-{vh{7
zQ_6_>YnfukM3LM7N!9VqCvzz2b#p4ZD<`G<6RG&koC-&KH^V}s!$-`eT5;M}0N@$`
zm|~DGxfO>S3JHKAzec8nMSL*CcoLxSYxw1(HJD&H7-Lu%!zk+^q3xq(*o0l3`QQ8X
zpS$xlCj@}Yf2Z}CZyoMG;vuK)h8u3XolQIW`Fc%8pf+2@phepaWH*8`yT+C6t~=0f
zhI|qiZwVvqbO+M?tD?MdA~U2;O35-LI-|x>+LDz?xTrZ9Lxe0r%c5Yjn?ifmHKSuR
zhmeU)`PyS1-1te1=KZg;iyUqvp|b?9&NkNg$(Xxw#XskB)&M9>DW}VoCU*b|;4P
zk>BUOzqrY4-JuL8jkNK4><%bBPGj@yh`4rT2{y(z!_L`x278t%&iNBK2m}@1VGsmU
z^8qZl5iqC-3HtR(6haicDD;HCMw|hp5%t6gG+GD*Kzo1@$10pMJNM>S{_LR_oDcvm
zeO>+L)gJ6WZK(raJ#dgsKc8HJ3)!AQQ#LDLm}(7Er8H|wN1`fd)dHc{JG(d_q`2#&{O5rADly@jFSa2gP-%Zzm{My}JmJjWoO>-a1`
z874)9if8g=GJ%Q;Gvi^xCwNzC2@8tSvQ&ZN@iLUeLHCmJk?%v^bV8a>)*#FePziV!
z53_pS$0u9_IHfa@L=cy9&8beT?cyw`u_g637$n5{IZaGtjdw5G?Qy=GndHct%{J!{
zxO8gi2Ar{D2MkG4N?Pa10#MqQ01z+<+&Upd!axB)8=~v`u=q`|D%aw
z3qVby&4z;j=)qE}{qa}--1>#zGXO5Re6ez5ex;Av=5CvD;m-95`f;h9*HFmYmIMHF
zbKC`Fd@l`1B!*7s36Pnk0!TtfxzU*dJ`{C!n9jlxFvi9LSOTcX4bYnsa5($sbEgfB
zXNd<00=(H~v%)P?OeA?@3A&dwkd7j5-$J*5excWmpwXu5k-R=Pa?-?)ES1^CbW9x0
zE6#WSnB6^mEy}!al~3`ctzk|=ZQy+w62(Mt%&v(4=VZljY|}eYuVRRYKSbFG&f2wv
z=2@Q4sbPFFMFMoNc0ggES8fWm>*Yxl5ZBQHVEm859;ZFD022Gt5%ydb9%tM%O6La;
zdwtl}YTxkMr+1HgeC#m+@R*A`4?426@g*lk!yS^D&!piK1-!76&bCF(Zxl0u?3QpA
zX6BlP3Dd@vk>84dcSM;HGWiHr8oc06*eFEi`1PsMtZmz(pD8@cWH94kGhsp38x^zj
zSdNWLQz;;64w>j+z6NX_MdCUa@j(g>oA=oG{IN_Yp=zDkog}A&ChY4;=-dEGoj;WD
zp=%{BfY+TR@K~PPALP5uo
zzQ8E}kXxa-MCgW+xWXrw5?>l8V;H5B`dvpW(8I3?tw78zV@)J!0|dZqqj~!qF7NI6
zo&oTa7d3w2=wkmJ`xX~ru^q#I-L)#sASjH^b~I@n(r}aI5+yP5zX+A{U_7KZ60?uy
zYc!5{j2fMUO=gs;ebUk`O_XFg5Xc-|fSMLQR{|qP%sZ!U(PuVNIlz(Qcuxo#kv8f(
zfB_3K8hQ{9t5EC2%P765cxRNGurTL4vq;!BFoLSU?)e%IgrEbV=o*4BV=Evekj@CGfESoi
zvAlQ)z!W2gc$NVWQ%hKsN>>oY{%irdFh~XntN~h?2%1#{K)(;|YHj0ppE;cQo&oTH
zM^|1o**pII`|a2Xak2r+{eiT5;Z4tOL-RjpPQy@=7PftQ%D$!c^8I`~{Fx7KMlpFk^9jcQl*J6`}-*WP0%O3(?or%NZDD~&Tf-`5TDW5X
zFoOV?$NLXa9#juV83bc00aG=Q6G7`-6Nr%aG%8gFK+O*)-}>Zi{i-VtrQZ_(p7V!0
z|N38VI{5rEcW%dp>B6DaF_*n7Ejb9OGb5oOhkjYH1>1Jd+NMpJ3@$#F^5xV(5yi1#
z{Tk6vN3>@!8KH|IP8QPC(L4YF$2r#?G>}p_zTDm{pB}rm3dm
zKJgSZsUdaM(otO%1`Q=?B=<+_B36aAdpl`ed@g=)N^StZ9Bu|d)6eq?<$@A#Qzn_&
zwlBk5?4(qWeLL{!pA;hRo;w@XhquE#@~N4o8~{n$-9Swp4N>^PnA7OY2T=R@xHz|p
zYvZy4(FmP1Y2kgNMN4Cu5*E?SW8?y32ft5DE#N4`s>d5|`n>@i;GNz2>CXIz-?O^@
zJptgUukZZZSMJ#Oi9K@_SX&;`X)#c3nJi#cGJ=gpu`j^(;AxWw;2H+~jrjn#MR1Hv
z1k0g>2Kwg+)p^u&`M4Q3$at}G8Vvdpd{bNB7
zMgb&*C9+vT3xiRDoAC)Mr_7%QEB#ww$9xMK^>NN`sOCT0+y+OFu0o@wCHv+1b`8Sev?tizF#cB8bo@4M7;uofy^(w<1;g7U-RDeZ+uSx
zxbRiAqu)L-oUhWp^$rsF%Me&)tbdaT6
zNx42Dhh0i}+Lm_Zj6fx(oh%K8kQBzz`z3rdY$|}H1P@0D9{YK_aE`fsD*rleYBtKa
z;sX4P#R7hp%ryp!nEW;8E}s
z!vU!EYeeDT$dhvelOc0}7&%NGwY1wEFvxEIO#9K-y|4S}dkuj7XV$`n3#0yOH}M{O
z{vP<3|GJGkf9%$9bf@g2Ta*cG7QO#!%Jf6AMLUytm$y$-bEOigk%^|kNC`3_9o115
zeaW9wUp*b1%=LPKQr@zi$!S}3?jE@edq5M_3sgcIPa{aOm>0~Ys+!}oR!L|Pnu3lb
zqqx_f#?|n65IHi8j;)~&=7vv7B(YUXnBh;Nn4`-j!g3sTy
z$|i}Af-_AP=(^b@P&&90mPnvBNujJ1!>
zTmcypmC3=8)Fe70fY7YqI;^h?0B-qo?M0uua`;#G8UR0jQR~_9xtnj<*VqP!SJvT<
zjhInfF|Ey6W~zTRA%l4B;`i-5zzp&OqVxTA+Gt5?4uqmY5XQ9>1;mKrc$Bfw$VYP-
znOZW_m^D}iF^PcKVrT&cC7sfUAt6=Bd_1jUjdsFB^46x&lS`{+#-Fs1i7g&S3~X2pkhjx1%ix=Z`DHB
z*ch{-+<({J*Sz>=ZvDM`4S*;7YUj7V0~@cWQ^I;(%~2H{4DH!tSu&ML`035ExpO4h0LF3@SwJ*)D{*S^Fd5r!h|kMU7jJ7@sP%t
zL%AqY+;GazaZ(0@!*QwNXdvG>s*3`VHQ_~vd8zl0t&Qf9xXdTCYe*h~j1IR#Kqb^0
zNwo<#HGBSC<_`ohKk2Xu*XRnoAVGg0qpNh}AZ>iR`<)sf020Xpnhi9LG50hlXmNHo
z+;-rIaRpAE3a0lYtDAt&H4=)X?rCR`9Thw1p_1TpPMhEMm#=#I@{8{^04{s|><7Pc
zd;gN%b5;1pZC&>JokgkoaXoz^U$ii-wiJf)`M|~(ltUvh+#uh_M~|ZkRc7pZHllbQ
z&F+vgONr#&smq44ZOD2vv$c%0N-OEo%{V^CzfS`2YGW1#C5`CdWbmb-q&zcFT#*t0
z((BC`gA7I#ro)UsDdq|hJdgysO8Wh2h94)mXtXO?3EHqp5r>)^!&A+zwpVie%=Ju>gSn
zQA;+(<2LsVx|k1a4^h-<@gaF*P9hsFHO7|-qSTF>sLd(H!saAR5(1J
zlxx^Lx)2`kVokmmF{AgYiGYK&(rnD&B9h$;z`GbYzJiCL~8i>{+z}|u(-hx3E)m7X={9{`L=m&`U@T7
z0!+TZv7A6b4HN)22GRJhJuzx14PURRHuHA$10oz`jnPyYU^Yc_P-syuR(~UB<^x0|V05JU2;3*e2m6uCH(+o)2r
zBXXq)ZOHWt0FW!7#8!g$5G4`~5J-=1#xN*Z0Qw)bplx(VFyCk#`omx9@3>b0_~|Fl
zoPWn`_dhS#w_Sbp_9Ga(N`|gAkAkiiX9L;&cAlAeW7MnQ0a+;@pz}Y=Vy49hQ$~;L
zzcI$p6V(2(%XNcT4SB8*4|yO>q!=Gk&Xkc5Vyf3CE|V|r>m%Ut*@FMKy{q?)s`FrmPB)C$V
zaQT|RkuD6SGK3&?aQY1~00n?7skn~1Iah*f}+AqGH_0s09R2mbHL0p~`@rh&9E
zR4f;kj6YL(8hM6X->s-P)JuTM6X$H!7mv56V$|u*-o2#;cRrZ96B*#OZ};EWT$;WG
zr!%kE_xF3&9g(%K)226YZR`nAcT#{oie-bz6Smb}#Wl=;uD9iaPs>uJ@HZ(FVW+9T
zM~VVi#gZe81O$h)%c}r1
zJwQY?#QedB5AI%I097-9z{fFyM+=^BNSg=X8mK2I{09kb;u0`Uz5BO5DNzEzXxVJyoox^j5RDu^PIbq-lRh#Ge1PrYd3@XpOEUh;lIc0Bj0>tx_sW!-`%4sbCGDBE1Z7a13HNN4nqND}q^phy$pQ
z(JGu!=BO$Nl0=9GrW$}i_$bs*`t{n4SH$i055>)ET_h&FHR~x%5%1@2f$%NWfa*Zu
zo^NIu~1i8h_>8U+lhrA_IK)
zC(FNI+t~glAWQO+PjJk6e9fIf0wOqVAYAo$m{#R(IPIadJJjd33GbNrwx9?f{I3x4
z(_SxY$i!8YK31LyAafX}5sO1fCm4rLfMB3(k%Hbma8eOxK;TjwObz)6@bQ5mbiqL!
z&1xXDb|uLGh9g!2DRM8dP5^-;35JkM=yeQ+p=%mINnU6GMol*GYpbi`JP+|?R~NNhv9dA^Q))toX7xIUrt~7`s=-)J($eCwY^vN{67funVP=$5o7TU1%m+S
z5pg@1@Wn&fwF-eCCOkm1aH>cYi~ugts@PlLk|UH5Y#*qig8&SXIIOwX5EYYj1IZ;p
zP;-C@AxTxc0mDyCI=r!FH2eARQA#|~%20IBDhe#2=*KDMgaiV{2o=5vB7s-~P7AaY
zQ&6ov;X29oyd>rqh
zzPOrRDUG@8|7FI3Z-}0y#<)@c#?5mpdaWM~#rc^tFXql%DvUi}l;v<%REZbW3Jo1@
zAs+~e)_qQ$JP^_i1S$zi7R8N9fgn#=^5#-9kw(s9x)-EFpY*h?Q5dm{8Wj-5qHd{DR|Z$a3=vBPU?qy
z#0ggeWxZ6ao|6emi~dGz_4axPhpEqxB9TwEV!weg3`IdJVij
z<`wY@Ow(p0{388KcLu|F?8VrqP&U(NU3ah~N49H1E>??1}G^2hF&Ih*3P0UNHd2Wci#-{XM)-Z9!t9=eI3NIP15Vo3E}sL
zxd3$qwT1=|N}L;M(djxI5CxXH;uEb{4TLN!5F7k_?6U+60pL&-a8?$pr${;oJcCIB
z#U)y7PAakc)DY5GP#2dnkL>ib&L?Ys7Qeppx9QvdiI0T9R%RzMK*~hUc=cOE@9^^p
zuOJPg*3Y)IPzy`8eu{<1HAy{VsNp!yy1i)Z5Ad+;*>1KXGGG!bUDs%(jcnT{
zF5J;H(5xU)g0Uv}1mjfC+C^!kP94*5t&IuyZ}k>v9A~v~nPz(wMA&^Ldx`vq-qNOe`p2+-5U&}k&e}l^T7@axr
zV!1$3-$}@T1C$RAdNf}5=hXdEsiv^?&@{9lifl9D)*3I~r=8hsQ{KJ*zP!EjY4z8~
zn+HJfN4&O~@W~@IGI>-?s>&VrnPr^FXprfFmr6^}_rB`d&e97a8;;bO
zs$++GP{k^>qzzPK3|?N&JkfLU^3{&mn;sx|WA4@3{;Z^Wh5#oEfi=;RC@q(ovam^M
z_Vts0KNSDkxFgo`iMzdVKfmLR@*V#)Ot1u~5#ZGTb5@BKe&zFKfG^@YEmIxEP>Y7@
z^O)*+k|`F)Ggy4gJ@Ed+k^ZgNXdbf#1R|OQd0l@#{Vx}
z$1&9+V=dYzM@guYn5xYzk(WN*%U|kz_3U-;g5QX~;f+1$qh+P?>cyW@WxcA&Zd8YRWqlEw^#AMmmptOJJmPUJrG~?9
y)Eji8%Ilc@XLFm+ONPhP1YIQT=SJMqT>k;u_2u?LIm99W0000).
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import lunch_order_confirm
-import lunch_order_cancel
-import lunch_cashbox_clean
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/lunch/wizard/lunch_cashbox_clean.py b/addons/lunch/wizard/lunch_cashbox_clean.py
deleted file mode 100644
index e95d05870f9..00000000000
--- a/addons/lunch/wizard/lunch_cashbox_clean.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class lunch_cashbox_clean(osv.osv_memory):
-
- _name = "lunch.cashbox.clean"
- _description = "clean cashbox"
-
- def set_to_zero(self, cr, uid, ids, context=None):
-
- """
- clean Cashbox. set active fields False.
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List Lunch cashbox Clean’s IDs
- @return:Dictionary {}.
- """
- #TOFIX: use orm methods
- if context is None:
- context = {}
- data = context and context.get('active_ids', []) or []
- cashmove_ref = self.pool.get('lunch.cashmove')
- cr.execute("select user_cashmove, box,sum(amount) from lunch_cashmove \
- where active = 't' and box IN %s group by user_cashmove, \
- box" , (tuple(data),))
- res = cr.fetchall()
-
- cr.execute("update lunch_cashmove set active = 'f' where active= 't' \
- and box IN %s" , (tuple(data),))
- #TOCHECK: Why need to create duplicate entry after clean box ?
-
- #for (user_id, box_id, amount) in res:
- # cashmove_ref.create(cr, uid, {
- # 'name': 'Summary for user' + str(user_id),
- # 'amount': amount,
- # 'user_cashmove': user_id,
- # 'box': box_id,
- # 'active': True,
- # })
- return {'type': 'ir.actions.act_window_close'}
-
-lunch_cashbox_clean()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/lunch/wizard/lunch_cashbox_clean_view.xml b/addons/lunch/wizard/lunch_cashbox_clean_view.xml
deleted file mode 100644
index 5ba2a6ff3bf..00000000000
--- a/addons/lunch/wizard/lunch_cashbox_clean_view.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
- lunch.cashbox.clean.form
- lunch.cashbox.clean
-
-
-
-
-
-
- Set CashBox to Zero
- lunch.cashbox.clean
- form
- tree,form
-
- new
-
-
-
-
-
-
diff --git a/addons/lunch/wizard/lunch_order_cancel.py b/addons/lunch/wizard/lunch_order_cancel.py
deleted file mode 100644
index a0c8779b323..00000000000
--- a/addons/lunch/wizard/lunch_order_cancel.py
+++ /dev/null
@@ -1,45 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import fields, osv
-
-class lunch_order_cancel(osv.osv_memory):
- """
- Cancel Lunch Order
- """
- _name = "lunch.order.cancel"
- _description = "Cancel Order"
-
- def cancel(self, cr, uid, ids, context=None):
- """
- Cancel cashmove entry from cashmoves and update state to draft.
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List Lunch Order Cancel’s IDs
- """
- if context is None:
- context = {}
- data = context and context.get('active_ids', []) or []
- return self.pool.get('lunch.order').lunch_order_cancel(cr, uid, data, context)
-
-lunch_order_cancel()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/lunch/wizard/lunch_order_cancel_view.xml b/addons/lunch/wizard/lunch_order_cancel_view.xml
deleted file mode 100644
index 8421dd74f9b..00000000000
--- a/addons/lunch/wizard/lunch_order_cancel_view.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
- lunch.order.cancel.form
- lunch.order.cancel
-
-
-
-
-
-
- Cancel Order
- lunch.order.cancel
- form
- tree,form
-
- new
-
-
-
-
-
-
diff --git a/addons/lunch/wizard/lunch_order_confirm.py b/addons/lunch/wizard/lunch_order_confirm.py
deleted file mode 100644
index 279234897de..00000000000
--- a/addons/lunch/wizard/lunch_order_confirm.py
+++ /dev/null
@@ -1,56 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class lunch_order_confirm(osv.osv_memory):
- """
- Confirm Lunch Order
- """
- _name = "lunch.order.confirm"
- _description = "confirm Order"
-
- _columns = {
- 'confirm_cashbox':fields.many2one('lunch.cashbox', 'Name of box', required=True),
- }
-
- def confirm(self, cr, uid, ids, context=None):
- """
- confirm Lunch Order.Create cashmoves in launch cashmoves when state is
- confirm in lunch order.
- @param cr: the current row, from the database cursor,
- @param uid: the current user’s ID for security checks,
- @param ids: List Lunch Order confirm’s IDs
- @return: Dictionary {}.
- """
- if context is None:
- context = {}
- data = context and context.get('active_ids', []) or []
- order_ref = self.pool.get('lunch.order')
-
- for confirm_obj in self.browse(cr, uid, ids, context=context):
- order_ref.confirm(cr, uid, data, confirm_obj.confirm_cashbox.id, context)
- return {'type': 'ir.actions.act_window_close'}
-
-lunch_order_confirm()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/lunch/wizard/lunch_order_confirm_view.xml b/addons/lunch/wizard/lunch_order_confirm_view.xml
deleted file mode 100644
index dadde4ed089..00000000000
--- a/addons/lunch/wizard/lunch_order_confirm_view.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
- lunch.order.confirm.form
- lunch.order.confirm
-
-
-
-
-
-
- Confirm Order
- lunch.order.confirm
- form
- tree,form
-
- new
-
-
-
-
-
-
diff --git a/addons/openacademy/__init__.py b/addons/openacademy/__init__.py
deleted file mode 100644
index de12070d44b..00000000000
--- a/addons/openacademy/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-import openacademy
\ No newline at end of file
diff --git a/addons/openacademy/__openerp__.py b/addons/openacademy/__openerp__.py
deleted file mode 100644
index 9514efb6df0..00000000000
--- a/addons/openacademy/__openerp__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- 'name': 'Open Academy',
- 'version': '1.0',
- 'depends': ['base'],
- 'author': 'Arnaud_Pineux',
- 'category': 'Test',
- 'description': """
- Open Academy module for managing trainings:
- - training courses
- - training sessions
- - attendees registration """,
- 'data': ['openacademy_view.xml'],
- 'demo': [],
- 'installable': True,
- 'application' : True,
-}
diff --git a/addons/openacademy/openacademy.py b/addons/openacademy/openacademy.py
deleted file mode 100644
index b134ee5b45d..00000000000
--- a/addons/openacademy/openacademy.py
+++ /dev/null
@@ -1,30 +0,0 @@
-from openerp.osv import osv, fields
-
-class Course (osv.Model):
- _name = "openacademy.course"
- _description = "OpenAcademy course"
- _column = {
- 'name': fields.char('Course Title',size=128,required=True),
- 'description': fields.text('Description'),
- 'responsible_id': fields.many2one('res.users',string='responsible',ondelete='set null'),
- 'session_ids': fields.one2many('openacademy.session','course_id','Session'),
- }
-class Session(osv.Model):
- _name = 'openacademy.session'
- _description = "OpenAcademy session"
- _columns = {
- 'name': fields.char('Session Title', size=128, required=True),
- 'start_date': fields.date('Start Date'),
- 'duration': fields.float('Duration', digits=(6,2), help="Duration in days"),
- 'seats': fields.integer('Number of seats'),
- 'instructor_id': fields.many2one('res.partner','Intructor'),
- 'course_id': fields.many2one('openacademy.course','course',required=True,ondelete='cascade'),
- 'attendee_ids': fields.one2many('openacademy.attendee','session_id','Attendees'),
- }
-class Attendee(osv.Model):
- _name = 'openacademy.attendee'
- _description = "OpenAcademy Attendee"
- _columns = {
- 'partner_id': fields.many2one('res.partner','Partner',required=True,ondelete='cascade'),
- 'session_id': fields.many2one('openacademy.session','Session',required=True,ondelete='cascade'),
- }
\ No newline at end of file
diff --git a/addons/openacademy/openacademy_view.xml b/addons/openacademy/openacademy_view.xml
deleted file mode 100644
index e694788aa69..00000000000
--- a/addons/openacademy/openacademy_view.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-
-
- Courses
- openacademy.course
- form
- tree,form
-
-
-
- openacadamy.course.tree
- openacademy.course
-
-
-
-
-
-
-
-
-
- Sessions
- openacademy.session
- form
- tree,form
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/addons/openacademy/temporary.py b/addons/openacademy/temporary.py
deleted file mode 100644
index 86e482a33e5..00000000000
--- a/addons/openacademy/temporary.py
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- course.form
- openacademy.course
- form
-
-
-
-
-
-
-
- session.tree
- openacademy.session
- tree
-
-
-
-
-
-
-
-
-
- session.form
- openacademy.session
- form
-
-
-
-
\ No newline at end of file
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 23d2c556f40..6274eb5365d 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -4,7 +4,8 @@