From 301249c6c5587befab8fcf2cfb191db52d4b50e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Fri, 19 Sep 2014 18:41:57 +0200 Subject: [PATCH] Add mandate report issue3922 review9701002 --- CHANGELOG | 1 + MANIFEST.in | 1 + __init__.py | 3 +++ mandate.odt | Bin 0 -> 12740 bytes payment.py | 10 +++++++++- payment.xml | 13 +++++++++++++ 6 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 mandate.odt diff --git a/CHANGELOG b/CHANGELOG index f0a7e414cd..5cd7a29cef 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Add mandate report * Use FRST sequence type only for the first payment ever processed * Handle camt.054 * Add generic SEPA Message diff --git a/MANIFEST.in b/MANIFEST.in index 9d81a0576c..4b95b3655e 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -11,3 +11,4 @@ include doc/* include tests/*.rst include tests/*.xsd include template/*.xml +include *.odt diff --git a/__init__.py b/__init__.py index 98b2a2d376..6b0570de43 100644 --- a/__init__.py +++ b/__init__.py @@ -16,3 +16,6 @@ def register(): Party, Configuration, module='account_payment_sepa', type_='model') + Pool.register( + MandateReport, + module='account_payment_sepa', type_='report') diff --git a/mandate.odt b/mandate.odt new file mode 100644 index 0000000000000000000000000000000000000000..ac7e364f1a9bb8e597d169a47ab57cee30217e87 GIT binary patch literal 12740 zcmeHtWmH_t)@|bwTtaXN5D4z>ZowtEyVE!XcXxM(1b2701b26W6I>qL`<an|PckeZ;_Nra8x>ijY2{3Rp000^Qn3AIx((I*&BLx5eFURv&01Fcf13PDH z108E?a}zxsI}#+Q3rZO3&WHz|xM|&cMk|=1*V_PHxzO-~hnO z@#Yy!!PwqH*HXvC97tpLN0Hjv(kMtqN(3Gj3-pI`5Fi;5a5G*N6f$@zV7^*CgD8&JUs#Ep}7KKJ9h8**Me_K$JGdnog;BesF7}zP*aCI~_<*2*6^DaQZcfW)` zIi7Wq%b=oebzW`XJX(5k+TO~`3({zsPlxRC9{T)wWu?XSwm-_jpjPid?8D(4!@c;3 zR?F@B^|b^l>dJEK!()YBhI-@0?c+n4l+>g3@v_<7`vB}I%{31r0y;!+CRSKtX0PaAO;xlXsO@Z z8E&Vj)w!!{;u*Fz+HA~x+r7vV&{}C`TimVdiwLk#81wFa9fOsUvXGdz#3_}*b=Psa zflo!rY2$Xz3VgiR%2-LvSmC@I{r=thaB(1pCWGyK(rl&CS|{<--FgpccwL0g;exK5 zhkL?USO0l054Udg+jsB(|J(nM!T-y1&<3{bGFSF4hR^Dm9ROlNQi7%Y+TQ^>FMk-^bHQB4*~;FIN>4}6*g#KTTc0e_P+J>%RbN|M2b7-Q3G)r>wHKTX0VF_1 z0t&joQK1g^*$Myo_b~s~YtpY3M(&GYh(IhIhBsZ-wJ#SH?0yg`Ar0>a< zd78mnFGJs-i#jb;hB`=eWeKR$;Aqsj-<;*R&)u$VODpTMUf?V`1~I@`_uB{f;yg}e z+V|fUUp6vj>0}UWSGWg)4&N^B#Xtv$eRhv;r0J6*2_3s193io(W$L48Hr3-xF$;m5 z5{d7go2C|;C=P?5qGeie6D?+T*J+?0r zYs7D~Rg;(kb0CT;cVrF1 zobaf0!We|BD=kIWo1Hi;?N1#R%@+WtrzlD4$@rOakJl&erLPzZ+2b=uDh9JO6`YfU z*%#80qWRI`W4*-d9h#Pyrhxt~jnQu6T;V4Eiz;GA1S?`}Qr`6WAZZ4me&HE@$@#%F zZ#v=`%ReZlp)fd_%sgG6Ja%Ai07imZesnit(1&-j85JURjwhujp^5mO#nN@{BcSFQ z6wLN=o+P9+6@CyEnY5P>1CiUthiVWsL zI2^ni0EvClHdLkcRp-Tj3w1#4;N}3#b8}YxQe@qB4ilY5mc z+vOnZVK}f8jI<(E;12?;Q>)#Xpi2M_Ry^D}q>%5Y3=%n#20ru(?oL7^PpBMXUY+o_ zXZ2v*kC?L3tqQ%x;lwo+j^XMUVwS*C`jxv8G$5m+#0lVOpfi{Fzs%rFdps$Ph=+PCu^VS{N9 zj1SmjR^vHTE*J)aI4)Qcxz2v}vL_r`BvQH?KAh@k)XrS!fpsC6(Hp*lJ*1>qZ!kzD zn?^pDssAE}Lv(#jQd-JgcJ#Qzlpw(eEH<8TudiIyN9aV)%Tc^=;!$Vgfi1P8rdD@^ zSJq8#vEI^cQcoItH-+p-2{h#ao%`Mx{mU>fP>i!j#xo^3|u zVTrX>o_&$IOO4=!8RL6T>TO1Xqc8mCCaYbhg6Ef`hLH*VH?Tpen3r?nS*bH9!Bb>H z&KQk^YuBrwCb3nF0Ij8~8NdozkO`o*F{BivRW`p8;lAUH`m=2CH+^=}NK2Iw`Ve}S zI!d?gEA6e|sl`R6_-UpeA+F-YleM;$*rN7i^D!fLcg?tOgSja2d}?vMlZRnIlmu}V6^#=#fKORQFmF)1l2 zVsr$v^}UEF3Qb)lQn)iIPZvFns}`iHY91A$;EPSaO9zwiO!0X9Idd9k*6J?vYL|Ns z;dNfo!l0Te_(oex!*{LUA38w0#^5FJUfWZb962BBQr-1DIb)-Pk$k6VPOlXdCeeF+ zCqYu%*w>(qarcFAo62gj?bcg>hWPS;q}Hv|#^u|?wcy#vQScK>C ze@si&st1`fHLG0bZrwH)9G3 z27&RAGNvfNeWF*iLjF87z!VWBV#l{7rHm)%7@_rg;8S>yE4GavE4~=MpfWj0D(#7t zKJ;rClXMp@PG=HMpg=fer_}_(#6u)2YP^`TkOA5a!%`0%@#{9UM03d@ms0^*a;_U> z_Yo#smsU4;&6X%?3Ia|D=y4hD5bLv}PjaZX;%=fcMD|bEJ#OIApe1n3F!0FgaC{bl zv`~*6oBmi#I^f+7!#@b)JXMpMEtm1-Ia7IxvXXE}lf;>CMqUqBFUsSDbN57C>7j+6 zh=3mO%Fu#bX^hDZxKUwP@Q3p5Nkq?ZJnB<#$xa6lImS9n)Z_vGVjN9#TG{bnMh_dZM zdG<|`6qOnymD~OGoF2#A*O;o?fh$sg+`hMGove{ov}=3HkGHlPA2^&pw^93j#*w2IUb((^MT+x}VrX?gzw4wt2O+E<8 z1V7^Jm2!2R5?fN@(gq4HvXNY6wKlQRc%Tp&rL23Qhtt)bl0+zE;WYEC;O=?~-?i+B zQO#F!zHiGeXp)kyAy9ZT+>7pRu6J7+rC>kqKHkek@@E38d@!QWj{ywrK-TUf z-v=fsMt=ciRQ#@NRFOdMAb!Ay8W7lwZXb#`h1Z0AgfWq3w416}(8TM?`@v=ACc21F zvp(knK~%X!8$mWqJe0B6{M#c`6TTEs5V8!hMue2Fsd|#X>L2MT(}J3yA(FP^vDL6e zY`Qn<1BeqrVsOx$lMCKN*@X$C4dp7+QCe6T*NOFkZ1T+m%)%p@0g&jv?FSMT!KX2- z^ngNs3=#lcrh+hv=|sg&=sA7z+kC+Qjhy@n0|_M(kVAfB6*#@=aazMESiNc8H)=Dh zrItQ-VW4@6R5J0W6$_0w1(B&v>hFv8KOV{T_TBZGo=IXjAnAUjVzLW1AdMKY_-G(| zP~wQrfpZr6-rTVe*}h z8~Nks>*QIcg=j1b@EttjCkxR-Ut9DB$-Hxjd-4f1S))(NWjCERo3F0KaSBGZ?5L2B z3lyYW5X|x~g$=Q!FJ-gnCwWx5hEbcb7LniJh~6_7Q&Yt8*;T9pI~8TWP~w_8wLJh9iE!{=l-YAzZ% z76W77dB3qfUW?1cL&P??xC2Q7w?6N&%*U~L)YDf{p*Y00c_5-brk2-cj?aaVQzSV| ziyq}8-9ye#f4{^;_P8?LKNLStu%5I0qNG%$I>#YT(bTA_*n((a#n+Pzvmlw*(m~ZX zWGF!KrkkiL=j58yS+ z25P`tSfMx9+@USZ3NDaDZ$z%~)ddo+IZ01Kfg-f>z&q!-X^i4|TedekDi5BvN{x*zEmU)L3wa>HCX5_PinX^bIc)bY@wcD;}q(A7yqbMME^8zAPP_+PAl9aNd(E znM1tvT)Uss?O`9VqHs=3A&d3Lw~~rp;xD1&CTn&8%G2!b;Rl{33Lf%XhRbCr z#JQM<6s6%8Vecsyh+7d-kH*j6x$l+p<_yodHe^~gnu6ni!t02P`+%zPoSb|L z8gOkXQVqb6N#JZPGenddV6@+R8rOzW=(7tbNxy_&nXDg=;&&sIQG0+|_rP*0xo3`M zh~h97Q@ZyY$?Wm&k<=x37N6WUJ!O7Ka{07#|zNM}EtC9~7ewCN*`!CUtR} zK+VqAmH6RS&;UOvRjAYJe(V&y^PB3o5QL5?KNuxHiZvco?RH{@QkO_`6N!PFIIa*F zx;cm(;oI0~#qp^04_^y#5_ZNKWrtaVGtTUcAv(fVdb92Dev zA;g;o--#h6VGvM8+3gk zi{2vjL}dR-13uVZj|tNd zwQpin1kNy05y+_wGlc}GX;*+or582XYAh=Rf{FUjcBaV-&}yWE5KeDQd}Hf*)W+MQ70BMiO8M@021sZ6O&!{L*QGO6diGNp3V z$Y2hS`X~IS<|~`Otsg`gj)VBPW7ocqLm_X?w@!a>@0Lbs&2N48VVOMzbop*5ET=ld z)J=*%AJ{ZF0JR0vAKrbfoyQ7R%bt(T%CcdGCfCIB&<^wYUU+j>85z|_0i505el;?R zh+dZ$m2Egme!5BSyeCw+?ahr8tKgKGuA}rdKtA4<6sVlIboiq{9>P+Jit^(J%}_$A zdel{JdM+zj8s?If%VMoCO46A1m{M>PG!=d7fi`$br#bUFBS=RP3={thk2O{uEBP$C zd}u@4GJ6SEo=ozshw3jkh%fVkBWeEAG6VpS`tG0Rg@5gA8QAH(%n4yJBbKSOXnt3p zU^fk4_4@0ygT56~R4$QwFJIIY)#vbrRGUbT|MrrpEs3~lHyYS_;CfUuV5OBZ?~0rs zqlylIAUyHaO_oqZU%gsu%J5z|lPJZ>zpFmL+^iA3g12#<&jLEy6|UdNaC0p@BJiU`hHrGwBhfdkx!ca3A8Q zCsVqBs~3BN=8wr&Lgc1QDUOppi^zbV2jvUXOU&Ov-H8cnQ#rO47kq=(k!O#wcfKsC zd2`_DvHs8{cQ)Xz)$>@XYDe5(aw zfo8F~3x!u1dzy2g+O#2+SyS))Lkgw!>LW~D`GivpjSY-lHN%$NZ6GbKrzuqx9ULHr zVb2W@D|_URF8!;jv(4TE)3~#YGeAFXpDek0%{-2r;lK1huRs^*AP4|32lh|>|FY8v zv~zwQ(*H``s~7W4L z$K>gb#lv|dUIJy!c{uxRM-jAbMGosR-wtDj*}7ia>RxJA>gG8b32R1(@hE-jyc96O zwN!BLHPgqLqu{wisuLx{YbAew%_AkTPOeo&@(s3%;*v&b+WNuTyp)0X>zxlod-iIIrA|6)!X(o}~lS zeoFeRkvvbRvc0*=B$C%vb0kAK4f(X$lsvz`*gxr53E^IDZ} z{lwbkbl?K(Ft-JxkrbDb^u7fiuX8{h_E2|`+ZEC z>~dRgxeZ_qKix)=swv(b5AEfJfr7A!yMoT@o_3F$z}Y=Y+%oD%4D|W9{&K}K$PMMM zB})T+_Mh*PdbJczDfS*-X`-W@E)*ZNA3Mp|cXv=@u(IV(mQ&p&IcTh?ZRs@&LNF<| z;m+;Wual|86k0it920Dm4_otTClKt!y&6rYoivH%)45*SJeuP2{{Ai@?Iv1ARSvIn zjvjO{dW3~mp`AV}+F=m%X2EV?X7%$2z&yVxd~L*oShSN^6P6fn5C*SMs1K(A^5jNG zvdvl2K+kpsK0-c}bHqF8z=3tCMnY?@Cd;+@p#pM^*>2#fZ4zOo zgk>AazrrS47h}CG(o%b{xi7kvK1{I0eWrLnkm;?ua67G#{JKi|i>A zNCE}2L1OsE8?b#%#mbT~B%z(Vkr8@z;$+`?a)fFS%&SXCU=+#`DCPmOv8#t7ws55R zW%DXVNb8m$m?ow*(3_VSB9P5yrIaTx%_#z@TE-ix4xOiX(mO)gNj5O$$?j^UvNw%0 zgyRIa1dC6&P-PM-okgcko zcR0+PjL@0`*mrTR@I-SJ5av3*Gu3p-$GV41=AQ*9t`am-kN`h{q6c4yy5AO~zXc$= z*v`DR8$B%wF3*B&Uhc4x?X0fWwO5VY-_TcIBcJ$XBSSDK=`|frKP^n@wf9c!gh$fnOGR_5j4KWjuUSqXH_NX` zwdU?(%$%P%S+ur$hf*(y^xhh*e}TBeTAQv+!!vQ6V$^uF_-Nk8ho}WBl#y$f1hq1lmg-WpBheFFGPBu$wJoXUZR`9% zLbEGb)@59ss|W#QzeE_;!24|?cqqYiY73WD-pmkU-x2C;oSqBQp;ZF7v>x~lhRkum z;x+@NW#cqXnjr#A!FCBWLzzSG^j)`EdeD7JHguVeeVIea)|O6!w-B5B;0P-5%4H@c z%gp3$)R-}&pNE4n6D$D^@F7!hriKm`w2z7t8)XP;nw`G|M_9prWBJo14_d6QAL>JD z6~w#bl9|;#{el)JyOnTefr|5{@$GVEaaG7dt#aIW-G+ICII~_IlfKz6&Cz3@m|RuU zRM@^A^9;?H6|S+Lv@=x~C54O8nH#}6lOl%8!3#f-1W5aD?Ke5}DSupRWwGX%T2X6GP|!M|yRgV3WGQ(jUJmvzV}jL;B;tzWP63veHH=!2^ev?=Ha++n5KxwjJ;OBbyR8 z91`_OcUR6dzScKI?RL#Tg&jxoVJJ(YNNpa;(sFNasPf{WJtH5Ne`&PwVcRhM8J7pn zkjlY<%w7PybA*ZuuZ2urTG)r<$>kX(zt&emQiHVNG9iGC?K|HDi3<9*c{4HicCMp} zraifw;Dt}iJfY1UUED!^1tz~o_;skU*Os4`WwowtpZ0zTaa}~KL1YHy!0C6#t8wpjofLfGzu3x=_90m+!D!j--d?5~`dc9Giaf&hyAmR^Cm=%c5KKA2qf}Fo5;rMn ziDCQW7&)+7AkN}()U{k5G;4e5oCRw~9=svCY!HZnzJjWC%4hkDiugbM$9~DZS?E}r7#aZWsBQHPN1oSNKD0=_ z$DDo!qqDp;5D>OxgAJw`?M(h3A!yE$QI=c7W0Yibi}y1oH%f&WR>G@O4s~$)Ln;e9 z6d3j1lMIR)*X&WSH&Hj_EwIne)>7an#YulhQSNtH~F#YhQ&6z4r8b+Yj=3l`N6|%%$lvxR@Q!CdJP)iWy z#Ty1AIp}NWgVQJ_(ZdjbF3Z-Db-3QA-7?{m&8dAt5k5A%90-@crMcQtex&ZR;udG@ za-`>CKhbl#LKLf=N`EB1-^AhkwDU+k_Jp}!R_!2Y&O4f8bQ`%-eTJ_nQuY$Q>MP@M zi037W&wrLEe~2%iBlaJ|dM*iASsI!c+1vh0b_t}Xv9q!=x7M*VFsJ#m&hkG_&jp;{ z_*vUp8QB^Dfx0@j|Ks^Poz#ou^RG4P=;;}l8$36_%9cjY-q!Yi#79;%l`paTdH=tw z@^@a(!dCl#_WE5v0qu0`?0<>&?`r#z4c3#|Ikb5&w=?Mq`*fdCM8VspYipa z$EZ<|uDMPVOi98B_Lme0Gxn=sf)Yr<F^*hmV##gAbr|q@ zuN6i87mjMu=5? z%MvK|8Ndtrapl5Am)1f7B2l4=nrst`cbD zs0tWoY!TR$Eed6sy?8ItD<+XHhm42t_Qu?6{lV~gY^*NZNR&VEono$Wc6HLTk>zOapwhqx#~MLs~+J#`b?K4hS~%B9{r08=5VaM zuokvi`Ev6>^}epH`WH%upI&V}h8>JzB+!SU=+};`6NPS4{MblQ@%R^urK~vCP(BaC ztY>kuj06ZM8sP6$(9bdd#s1Jl|JCcSa_65eAD)YUCw~3|<&PoxtNQSTLw{P|b4z~} zGXB-`*FBLJb>dIMd(MdI{nRS{)$!M)*`KTIe2&Sl8z_JE{59S3l2rR?^Un|XvvmAl zDYn0Q{W^iXq+)*B{4;(1Ow9b%?^ovhb33`o{yf?I;rVwX?`Msl-v2kz{K~U`elULe z{hMijp4a>a=g++RZ=^rE`Ni`O@_b?5pLYBkq`%?ef4a>VI{RtDCRGarCcy`23YoWrf> literal 0 HcmV?d00001 diff --git a/payment.py b/payment.py index 1ef3289bb7..92d477c096 100644 --- a/payment.py +++ b/payment.py @@ -16,10 +16,13 @@ from trytond.pyson import Eval, If from trytond.transaction import Transaction from trytond.tools import reduce_ids, grouped_slice from trytond import backend +from trytond.modules.company import CompanyReport + from .sepa_handler import CAMT054 __metaclass__ = PoolMeta -__all__ = ['Journal', 'Group', 'Payment', 'Mandate', 'Message'] +__all__ = ['Journal', 'Group', 'Payment', 'Mandate', 'Message', + 'MandateReport'] class Journal: @@ -307,6 +310,7 @@ class Mandate(Workflow, ModelSQL, ModelView): ('CORE', 'Core'), ('B2B', 'Business to Business'), ], 'Scheme', required=True) + scheme_string = scheme.translated('scheme') signature_date = fields.Date('Signature Date', states={ 'readonly': Eval('state').in_(['validated', 'canceled']), @@ -495,6 +499,10 @@ class Mandate(Workflow, ModelSQL, ModelView): super(Mandate, cls).delete(mandates) +class MandateReport(CompanyReport): + __name__ = 'account.payment.sepa.mandate' + + class Message(Workflow, ModelSQL, ModelView): 'SEPA Message' __name__ = 'account.payment.sepa.message' diff --git a/payment.xml b/payment.xml index 7b824b1729..751007e435 100644 --- a/payment.xml +++ b/payment.xml @@ -177,5 +177,18 @@ this repository contains the full copyright notices and license terms. --> + + + Mandate + account.payment.sepa.mandate + account.payment.sepa.mandate + account_payment_sepa/mandate.odt + company/header_A4.odt + + + form_print + account.payment.sepa.mandate,-1 + +