From b104e4f2f28e8b9450661cd0e0060420573fe819 Mon Sep 17 00:00:00 2001 From: mreficent Date: Tue, 27 Jun 2017 19:33:51 +0200 Subject: [PATCH 01/15] [MIG] account_mass_reconcile_by_purchase_line: Migration to 9.0 --- .../README.rst | 65 ++++++++++++++++++ .../__init__.py | 6 ++ .../__openerp__.py | 22 ++++++ .../models/__init__.py | 6 ++ .../models/base_reconciliation.py | 19 +++++ .../models/mass_reconcile.py | 18 +++++ .../static/description/icon.png | Bin 0 -> 9455 bytes .../views/mass_reconcile.xml | 18 +++++ .../wizards/__init__.py | 5 ++ .../wizards/advanced_reconciliation.py | 32 +++++++++ 10 files changed, 191 insertions(+) create mode 100644 account_mass_reconcile_by_purchase_line/README.rst create mode 100644 account_mass_reconcile_by_purchase_line/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/__openerp__.py create mode 100644 account_mass_reconcile_by_purchase_line/models/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/models/base_reconciliation.py create mode 100644 account_mass_reconcile_by_purchase_line/models/mass_reconcile.py create mode 100644 account_mass_reconcile_by_purchase_line/static/description/icon.png create mode 100644 account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml create mode 100644 account_mass_reconcile_by_purchase_line/wizards/__init__.py create mode 100644 account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst new file mode 100644 index 00000000..65449897 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -0,0 +1,65 @@ +.. image:: https://img.shields.io/badge/license-AGPLv3-blue.svg + :target: https://www.gnu.org/licenses/agpl.html + :alt: License: AGPL-3 + +======================================= +Account Mass Reconcile by Purchase Line +======================================= + +This module extends the functionality of acccount_mass_reconcile and +allow an user to reconcile debits and credits of an Account +using the PO Line, Product and Partner as key fields. This type of +reconciliation is to be used in the context of the Perpetual Inventory +accounting system, with the accrual account '*Goods Received Not Invoiced*'. + + +Usage +===== + +To use this module, you need to: + +* Go to 'Accounting / Adviser / Mass Automatic Reconcile'. + +* Create a new reconciliation profile, and select a new configuration entry + with type 'Advanced. Partner, product, purchase order line.'. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/98/9.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Images +------ + +* Odoo Community Association: `Icon `_. + +Contributors +------------ + +* Jordi Ballester Alomar +* Miquel Raïch + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file diff --git a/account_mass_reconcile_by_purchase_line/__init__.py b/account_mass_reconcile_by_purchase_line/__init__.py new file mode 100644 index 00000000..09cfd859 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import models +from . import wizards diff --git a/account_mass_reconcile_by_purchase_line/__openerp__.py b/account_mass_reconcile_by_purchase_line/__openerp__.py new file mode 100644 index 00000000..9bf7a07f --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/__openerp__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +{ + "name": "Account Mass Reconcile by Purchase Line", + "summary": "Allows to reconcile based on the PO line", + "version": "9.0.1.0.0", + "author": "Eficent, " + "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/bank-statement-reconcile", + "category": "Finance", + "depends": ["account_mass_reconcile", + "account_move_line_purchase_info" + ], + "license": "AGPL-3", + "data": [ + "views/mass_reconcile.xml", + ], + "installable": True, + "auto_install": False, +} diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py new file mode 100644 index 00000000..f4d36637 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -0,0 +1,6 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import mass_reconcile +from . import base_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py new file mode 100644 index 00000000..09861e45 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class MassReconcileBase(models.AbstractModel): + _inherit = 'mass.reconcile.base' + + @api.model + def _base_columns(self): + """ Mandatory columns for move lines queries + An extra column aliased as ``key`` should be defined + in each query.""" + aml_cols = super(MassReconcileBase, self)._base_columns() + aml_cols.append('account_move_line.purchase_line_id') + aml_cols.append('account_move_line.product_id') + return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py new file mode 100644 index 00000000..5ae3f691 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class AccountMassReconcileMethod(models.Model): + _inherit = 'account.mass.reconcile.method' + + @api.model + def _get_all_rec_method(self): + methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() + methods += [ + ('mass.reconcile.advanced.by.purchase.line', + 'Advanced. Partner, product, purchase order line.'), + ] + return methods diff --git a/account_mass_reconcile_by_purchase_line/static/description/icon.png b/account_mass_reconcile_by_purchase_line/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml new file mode 100644 index 00000000..374a692a --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -0,0 +1,18 @@ + + + + account.mass.reconcile.form + 20 + account.mass.reconcile + + + + + + + + + + diff --git a/account_mass_reconcile_by_purchase_line/wizards/__init__.py b/account_mass_reconcile_by_purchase_line/wizards/__init__.py new file mode 100644 index 00000000..141fb706 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/wizards/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py new file mode 100644 index 00000000..13b0e634 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from openerp import api, models + + +class MassReconcileAdvancedByPurchaseLine(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.advanced' + + @api.multi + def _skip_line(self, move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('partner_id') and move_line.get( + 'product_id') and move_line.get('purchase_line_id')) + + @api.multi + def _matchers(self, move_line): + return (('partner_id', move_line['partner_id']), + ('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @api.multi + def _opposite_matchers(self, move_line): + yield ('partner_id', move_line['partner_id']) + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) From ac0c3f165c18cf5943a7dcb218db77d9ef884050 Mon Sep 17 00:00:00 2001 From: lreficent Date: Fri, 1 Sep 2017 11:47:39 +0200 Subject: [PATCH 02/15] [9.0] account_mass_reconcile_by_purchase_line: do not consider partner. --- .../models/mass_reconcile.py | 2 +- .../wizards/advanced_reconciliation.py | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 5ae3f691..21dbdcc0 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -13,6 +13,6 @@ class AccountMassReconcileMethod(models.Model): methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() methods += [ ('mass.reconcile.advanced.by.purchase.line', - 'Advanced. Partner, product, purchase order line.'), + 'Advanced. Product, purchase order line.'), ] return methods diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py index 13b0e634..1a602849 100644 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -16,17 +16,15 @@ class MassReconcileAdvancedByPurchaseLine(models.TransientModel): will be skipped for reconciliation. Can be inherited to skip on some conditions. ie: ref or partner_id is empty. """ - return not (move_line.get('partner_id') and move_line.get( - 'product_id') and move_line.get('purchase_line_id')) + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) @api.multi def _matchers(self, move_line): - return (('partner_id', move_line['partner_id']), - ('product_id', move_line['product_id']), + return (('product_id', move_line['product_id']), ('purchase_line_id', move_line['purchase_line_id'])) @api.multi def _opposite_matchers(self, move_line): - yield ('partner_id', move_line['partner_id']) yield ('product_id', move_line['product_id']) yield ('purchase_line_id', move_line['purchase_line_id']) From f5bf7563966288bfa02156299e11ce649e5d906e Mon Sep 17 00:00:00 2001 From: Lois Rilo Date: Fri, 1 Sep 2017 18:35:48 +0200 Subject: [PATCH 03/15] Update README --- account_mass_reconcile_by_purchase_line/README.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index 65449897..ad78d7a3 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -8,11 +8,10 @@ Account Mass Reconcile by Purchase Line This module extends the functionality of acccount_mass_reconcile and allow an user to reconcile debits and credits of an Account -using the PO Line, Product and Partner as key fields. This type of +using the PO Line and Product as key fields. This type of reconciliation is to be used in the context of the Perpetual Inventory accounting system, with the accrual account '*Goods Received Not Invoiced*'. - Usage ===== @@ -21,7 +20,7 @@ To use this module, you need to: * Go to 'Accounting / Adviser / Mass Automatic Reconcile'. * Create a new reconciliation profile, and select a new configuration entry - with type 'Advanced. Partner, product, purchase order line.'. + with type 'Advanced. Product, purchase order line.'. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -48,6 +47,7 @@ Contributors * Jordi Ballester Alomar * Miquel Raïch +* Lois Rilo Maintainer ---------- @@ -62,4 +62,4 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -To contribute to this module, please visit https://odoo-community.org. \ No newline at end of file +To contribute to this module, please visit https://odoo-community.org. From e69275585914f2f4d76ca998e93d28f07f204ed3 Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 15 Sep 2017 11:36:04 +0200 Subject: [PATCH 04/15] [MIG] account_mass_reconcile_by_purchase_line: Migration to 10.0 --- account_mass_reconcile_by_purchase_line/README.rst | 2 +- .../{__openerp__.py => __manifest__.py} | 2 +- .../models/base_reconciliation.py | 2 +- .../models/mass_reconcile.py | 2 +- .../views/mass_reconcile.xml | 4 ++-- .../wizards/advanced_reconciliation.py | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) rename account_mass_reconcile_by_purchase_line/{__openerp__.py => __manifest__.py} (96%) diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index ad78d7a3..2554bb51 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -24,7 +24,7 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/9.0 + :target: https://runbot.odoo-community.org/runbot/98/10.0 Bug Tracker =========== diff --git a/account_mass_reconcile_by_purchase_line/__openerp__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py similarity index 96% rename from account_mass_reconcile_by_purchase_line/__openerp__.py rename to account_mass_reconcile_by_purchase_line/__manifest__.py index 9bf7a07f..99350968 100644 --- a/account_mass_reconcile_by_purchase_line/__openerp__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -5,7 +5,7 @@ { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "9.0.1.0.0", + "version": "10.0.1.0.0", "author": "Eficent, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/bank-statement-reconcile", diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py index 09861e45..5de2ba08 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class MassReconcileBase(models.AbstractModel): diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 21dbdcc0..e85c9980 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class AccountMassReconcileMethod(models.Model): diff --git a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml index 374a692a..c1347cfe 100644 --- a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -1,5 +1,5 @@ - + account.mass.reconcile.form 20 @@ -15,4 +15,4 @@ The lines should have the same partner, product and PO lines to be reconciled." - + diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py index 1a602849..1db5bc6f 100644 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py @@ -2,7 +2,7 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from openerp import api, models +from odoo import api, models class MassReconcileAdvancedByPurchaseLine(models.TransientModel): From 78ff8a3a68062a90d2b35d97b115a19b5c4d5642 Mon Sep 17 00:00:00 2001 From: mreficent Date: Mon, 6 Nov 2017 18:23:44 +0100 Subject: [PATCH 05/15] [FIX] mass_reconcile_purchase_by_purchase_line --- .../models/__init__.py | 2 +- ...reconciliation.py => base_advanced_reconciliation.py} | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) rename account_mass_reconcile_by_purchase_line/models/{base_reconciliation.py => base_advanced_reconciliation.py} (71%) diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index f4d36637..98605de2 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -3,4 +3,4 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from . import mass_reconcile -from . import base_reconciliation +from . import base_advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py similarity index 71% rename from account_mass_reconcile_by_purchase_line/models/base_reconciliation.py rename to account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 5de2ba08..16c2b189 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -2,18 +2,17 @@ # © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import models -class MassReconcileBase(models.AbstractModel): - _inherit = 'mass.reconcile.base' +class MassReconcileAdvanced(models.AbstractModel): + _inherit = 'mass.reconcile.advanced' - @api.model def _base_columns(self): """ Mandatory columns for move lines queries An extra column aliased as ``key`` should be defined in each query.""" - aml_cols = super(MassReconcileBase, self)._base_columns() + aml_cols = super(MassReconcileAdvanced, self)._base_columns() aml_cols.append('account_move_line.purchase_line_id') aml_cols.append('account_move_line.product_id') return aml_cols From d5acc51fc429c1b954dc1529ceb6ad75c9591d63 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Thu, 12 Jul 2018 17:06:20 +0000 Subject: [PATCH 06/15] [UPD] Update account_mass_reconcile_by_purchase_line.pot --- ...ccount_mass_reconcile_by_purchase_line.pot | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot diff --git a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot new file mode 100644 index 00000000..b2a0c75a --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot @@ -0,0 +1,75 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_mass_reconcile_by_purchase_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Advanced. Purchase Order Line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_uid +msgid "Created by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_date +msgid "Created on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_display_name +msgid "Display Name" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_id +msgid "ID" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line___last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_date +msgid "Last Updated on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the same partner, product and PO lines to be reconciled." +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced +msgid "mass.reconcile.advanced" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced_by_purchase_line +msgid "mass.reconcile.advanced.by.purchase.line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_account_mass_reconcile_method +msgid "reconcile method for account_mass_reconcile" +msgstr "" + From 5706ec50557d1b27bcc0110008256df831bbbffc Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Thu, 12 Jul 2018 20:28:05 +0200 Subject: [PATCH 07/15] [MIG] account_mass_reconcile_by_purchase_line: Migration to 11.0 --- .../README.rst | 2 +- .../__init__.py | 5 ---- .../__manifest__.py | 5 ++-- .../models/__init__.py | 5 +--- .../models/base_advanced_reconciliation.py | 29 +++++++++++------- .../models/mass_reconcile.py | 8 ++--- .../models/simple_reconciliation.py | 12 ++++++++ .../wizards/__init__.py | 5 ---- .../wizards/advanced_reconciliation.py | 30 ------------------- 9 files changed, 39 insertions(+), 62 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py delete mode 100644 account_mass_reconcile_by_purchase_line/wizards/__init__.py delete mode 100644 account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index 2554bb51..c8aad386 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -24,7 +24,7 @@ To use this module, you need to: .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/10.0 + :target: https://runbot.odoo-community.org/runbot/98/11.0 Bug Tracker =========== diff --git a/account_mass_reconcile_by_purchase_line/__init__.py b/account_mass_reconcile_by_purchase_line/__init__.py index 09cfd859..0650744f 100644 --- a/account_mass_reconcile_by_purchase_line/__init__.py +++ b/account_mass_reconcile_by_purchase_line/__init__.py @@ -1,6 +1 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import models -from . import wizards diff --git a/account_mass_reconcile_by_purchase_line/__manifest__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py index 99350968..418ae681 100644 --- a/account_mass_reconcile_by_purchase_line/__manifest__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -1,11 +1,10 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "10.0.1.0.0", + "version": "11.0.1.0.0", "author": "Eficent, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/bank-statement-reconcile", diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index 98605de2..8b08acfb 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -1,6 +1,3 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - from . import mass_reconcile from . import base_advanced_reconciliation +from . import simple_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 16c2b189..053358f0 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import models @@ -8,11 +7,21 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - def _base_columns(self): - """ Mandatory columns for move lines queries - An extra column aliased as ``key`` should be defined - in each query.""" - aml_cols = super(MassReconcileAdvanced, self)._base_columns() - aml_cols.append('account_move_line.purchase_line_id') - aml_cols.append('account_move_line.product_id') - return aml_cols + def _skip_line(self, move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) + + @staticmethod + def _matchers(move_line): + return (('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @staticmethod + def _opposite_matchers(move_line): + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index e85c9980..91df430f 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -1,5 +1,4 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import api, models @@ -9,8 +8,9 @@ class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' @api.model - def _get_all_rec_method(self): - methods = super(AccountMassReconcileMethod, self)._get_all_rec_method() + def _get_reconcilation_methods(self): + methods = super(AccountMassReconcileMethod, + self)._get_reconcilation_methods() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), diff --git a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py new file mode 100644 index 00000000..2d5de51c --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py @@ -0,0 +1,12 @@ +# Copyright 2012-2016 Camptocamp SA +# Copyright 2010 Sébastien Beau +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, api + + +class MassReconcileAdvancedByPurchaseLineName(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.simple' + + _key_field = 'purchase_line_id' diff --git a/account_mass_reconcile_by_purchase_line/wizards/__init__.py b/account_mass_reconcile_by_purchase_line/wizards/__init__.py deleted file mode 100644 index 141fb706..00000000 --- a/account_mass_reconcile_by_purchase_line/wizards/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - -from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py deleted file mode 100644 index 1db5bc6f..00000000 --- a/account_mass_reconcile_by_purchase_line/wizards/advanced_reconciliation.py +++ /dev/null @@ -1,30 +0,0 @@ -# -*- coding: utf-8 -*- -# © 2015-17 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). - -from odoo import api, models - - -class MassReconcileAdvancedByPurchaseLine(models.TransientModel): - _name = 'mass.reconcile.advanced.by.purchase.line' - _inherit = 'mass.reconcile.advanced' - - @api.multi - def _skip_line(self, move_line): - """ - When True is returned on some conditions, the credit move line - will be skipped for reconciliation. Can be inherited to - skip on some conditions. ie: ref or partner_id is empty. - """ - return not (move_line.get('product_id') and - move_line.get('purchase_line_id')) - - @api.multi - def _matchers(self, move_line): - return (('product_id', move_line['product_id']), - ('purchase_line_id', move_line['purchase_line_id'])) - - @api.multi - def _opposite_matchers(self, move_line): - yield ('product_id', move_line['product_id']) - yield ('purchase_line_id', move_line['purchase_line_id']) From 56381c70a9e7c4463953f425ce236988f69d2e9b Mon Sep 17 00:00:00 2001 From: mreficent Date: Fri, 13 Jul 2018 12:37:18 +0200 Subject: [PATCH 08/15] [FIX] Finish the migration to v11 --- .../README.rst | 10 +++---- .../models/__init__.py | 2 +- .../models/advanced_reconciliation.py | 29 +++++++++++++++++++ .../models/base_advanced_reconciliation.py | 26 ++++++----------- .../models/mass_reconcile.py | 11 +++---- .../models/simple_reconciliation.py | 12 -------- 6 files changed, 50 insertions(+), 40 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py delete mode 100644 account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index c8aad386..7205c756 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -1,12 +1,12 @@ -.. image:: https://img.shields.io/badge/license-AGPLv3-blue.svg - :target: https://www.gnu.org/licenses/agpl.html +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl :alt: License: AGPL-3 ======================================= Account Mass Reconcile by Purchase Line ======================================= -This module extends the functionality of acccount_mass_reconcile and +This module extends the functionality of account_mass_reconcile and allow an user to reconcile debits and credits of an Account using the PO Line and Product as key fields. This type of reconciliation is to be used in the context of the Perpetual Inventory @@ -20,7 +20,7 @@ To use this module, you need to: * Go to 'Accounting / Adviser / Mass Automatic Reconcile'. * Create a new reconciliation profile, and select a new configuration entry - with type 'Advanced. Product, purchase order line.'. + with type 'Advanced. Product, purchase order line'. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot @@ -40,7 +40,7 @@ Credits Images ------ -* Odoo Community Association: `Icon `_. +* Odoo Community Association: `Icon `_. Contributors ------------ diff --git a/account_mass_reconcile_by_purchase_line/models/__init__.py b/account_mass_reconcile_by_purchase_line/models/__init__.py index 8b08acfb..fbcdbc24 100644 --- a/account_mass_reconcile_by_purchase_line/models/__init__.py +++ b/account_mass_reconcile_by_purchase_line/models/__init__.py @@ -1,3 +1,3 @@ from . import mass_reconcile from . import base_advanced_reconciliation -from . import simple_reconciliation +from . import advanced_reconciliation diff --git a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py new file mode 100644 index 00000000..769f05ea --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py @@ -0,0 +1,29 @@ +# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class MassReconcileAdvancedByPurchaseLine(models.TransientModel): + _name = 'mass.reconcile.advanced.by.purchase.line' + _inherit = 'mass.reconcile.advanced' + + @staticmethod + def _skip_line(move_line): + """ + When True is returned on some conditions, the credit move line + will be skipped for reconciliation. Can be inherited to + skip on some conditions. ie: ref or partner_id is empty. + """ + return not (move_line.get('product_id') and + move_line.get('purchase_line_id')) + + @staticmethod + def _matchers(move_line): + return (('product_id', move_line['product_id']), + ('purchase_line_id', move_line['purchase_line_id'])) + + @staticmethod + def _opposite_matchers(move_line): + yield ('product_id', move_line['product_id']) + yield ('purchase_line_id', move_line['purchase_line_id']) diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 053358f0..13acfded 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -7,21 +7,13 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - def _skip_line(self, move_line): - """ - When True is returned on some conditions, the credit move line - will be skipped for reconciliation. Can be inherited to - skip on some conditions. ie: ref or partner_id is empty. - """ - return not (move_line.get('product_id') and - move_line.get('purchase_line_id')) - @staticmethod - def _matchers(move_line): - return (('product_id', move_line['product_id']), - ('purchase_line_id', move_line['purchase_line_id'])) - - @staticmethod - def _opposite_matchers(move_line): - yield ('product_id', move_line['product_id']) - yield ('purchase_line_id', move_line['purchase_line_id']) + def _base_columns(): + """ Mandatory columns for move lines queries + An extra column aliased as ``key`` should be defined + in each query.""" + aml_cols = super(MassReconcileAdvanced, MassReconcileAdvanced).\ + _base_columns() + aml_cols.append('account_move_line.purchase_line_id') + aml_cols.append('account_move_line.product_id') + return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 91df430f..e11eb7a5 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -1,16 +1,17 @@ # © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). -from odoo import api, models +from odoo import models class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' - @api.model - def _get_reconcilation_methods(self): - methods = super(AccountMassReconcileMethod, - self)._get_reconcilation_methods() + @staticmethod + def _get_reconcilation_methods(): + methods = super( + AccountMassReconcileMethod, AccountMassReconcileMethod).\ + _get_reconcilation_methods() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), diff --git a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py deleted file mode 100644 index 2d5de51c..00000000 --- a/account_mass_reconcile_by_purchase_line/models/simple_reconciliation.py +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2012-2016 Camptocamp SA -# Copyright 2010 Sébastien Beau -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo import models, api - - -class MassReconcileAdvancedByPurchaseLineName(models.TransientModel): - _name = 'mass.reconcile.advanced.by.purchase.line' - _inherit = 'mass.reconcile.simple' - - _key_field = 'purchase_line_id' From 0eeba05a5d7ce108d49b2c7a3a2e16d354f94ec7 Mon Sep 17 00:00:00 2001 From: mreficent Date: Wed, 25 Jul 2018 12:58:12 +0200 Subject: [PATCH 09/15] [FIX] Super call on static methods --- .../models/base_advanced_reconciliation.py | 9 ++------- .../models/mass_reconcile.py | 7 ++----- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 13acfded..9c9d46e4 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -7,13 +7,8 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): _inherit = 'mass.reconcile.advanced' - @staticmethod - def _base_columns(): - """ Mandatory columns for move lines queries - An extra column aliased as ``key`` should be defined - in each query.""" - aml_cols = super(MassReconcileAdvanced, MassReconcileAdvanced).\ - _base_columns() + def _selection_columns(self): + aml_cols = super(MassReconcileAdvanced, self)._selection_columns() aml_cols.append('account_move_line.purchase_line_id') aml_cols.append('account_move_line.product_id') return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index e11eb7a5..145ce52b 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -7,11 +7,8 @@ from odoo import models class AccountMassReconcileMethod(models.Model): _inherit = 'account.mass.reconcile.method' - @staticmethod - def _get_reconcilation_methods(): - methods = super( - AccountMassReconcileMethod, AccountMassReconcileMethod).\ - _get_reconcilation_methods() + def _selection_name(self): + methods = super(AccountMassReconcileMethod, self)._selection_name() methods += [ ('mass.reconcile.advanced.by.purchase.line', 'Advanced. Product, purchase order line.'), From 247c03dbf82dd718a2108e7c3cddc82e1160f5d6 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Wed, 25 Jul 2018 17:34:59 +0000 Subject: [PATCH 10/15] [UPD] Update account_mass_reconcile_by_purchase_line.pot --- .../i18n/account_mass_reconcile_by_purchase_line.pot | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot index b2a0c75a..9ef22f27 100644 --- a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot +++ b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 10.0\n" +"Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" From cca1017dcb2c57eb4bc3c8ebfa6f09c57bc2d0d2 Mon Sep 17 00:00:00 2001 From: Osoul Date: Fri, 10 Aug 2018 23:26:52 +0000 Subject: [PATCH 11/15] Added translation using Weblate (Arabic) --- .../i18n/ar.po | 76 +++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 account_mass_reconcile_by_purchase_line/i18n/ar.po diff --git a/account_mass_reconcile_by_purchase_line/i18n/ar.po b/account_mass_reconcile_by_purchase_line/i18n/ar.po new file mode 100644 index 00000000..ae90be22 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/i18n/ar.po @@ -0,0 +1,76 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_mass_reconcile_by_purchase_line +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Advanced. Purchase Order Line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_uid +msgid "Created by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_date +msgid "Created on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_display_name +msgid "Display Name" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_id +msgid "ID" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line___last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_uid +msgid "Last Updated by" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_write_date +msgid "Last Updated on" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form +msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the same partner, product and PO lines to be reconciled." +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced +msgid "mass.reconcile.advanced" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced_by_purchase_line +msgid "mass.reconcile.advanced.by.purchase.line" +msgstr "" + +#. module: account_mass_reconcile_by_purchase_line +#: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_account_mass_reconcile_method +msgid "reconcile method for account_mass_reconcile" +msgstr "" From dd0878205fadcd81c761dfd51a4d26493d914699 Mon Sep 17 00:00:00 2001 From: Osoul Date: Fri, 10 Aug 2018 23:27:24 +0000 Subject: [PATCH 12/15] Translated using Weblate (Arabic) Currently translated at 16.7% (2 of 12 strings) Translation: account-reconcile-11.0/account-reconcile-11.0-account_mass_reconcile_by_purchase_line Translate-URL: https://translation.odoo-community.org/projects/account-reconcile-11-0/account-reconcile-11-0-account_mass_reconcile_by_purchase_line/ar/ --- account_mass_reconcile_by_purchase_line/i18n/ar.po | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/i18n/ar.po b/account_mass_reconcile_by_purchase_line/i18n/ar.po index ae90be22..16c8257e 100644 --- a/account_mass_reconcile_by_purchase_line/i18n/ar.po +++ b/account_mass_reconcile_by_purchase_line/i18n/ar.po @@ -6,7 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 11.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2018-08-12 00:01+0000\n" +"Last-Translator: Osoul \n" "Language-Team: none\n" "Language: ar\n" "MIME-Version: 1.0\n" @@ -14,11 +15,12 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " "&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Weblate 3.1.1\n" #. module: account_mass_reconcile_by_purchase_line #: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form msgid "Advanced. Purchase Order Line" -msgstr "" +msgstr "متطور. أوامر الشراء" #. module: account_mass_reconcile_by_purchase_line #: model:ir.model.fields,field_description:account_mass_reconcile_by_purchase_line.field_mass_reconcile_advanced_by_purchase_line_create_uid @@ -59,6 +61,8 @@ msgstr "" #: model:ir.ui.view,arch_db:account_mass_reconcile_by_purchase_line.account_mass_reconcile_form msgid "Match multiple debit vs multiple credit entries. Allow partial reconciliation. The lines should have the same partner, product and PO lines to be reconciled." msgstr "" +"تسوية مجموعة قيود مدينة ودائنة. السماح بالتسوية الجزئية. القيود يجب ان تحتوي " +"على نفس الشريك، والمنتج وبند أمر الشراء." #. module: account_mass_reconcile_by_purchase_line #: model:ir.model,name:account_mass_reconcile_by_purchase_line.model_mass_reconcile_advanced From 701ed8b73eed51b6f9d8a76560aeddb8a7c45803 Mon Sep 17 00:00:00 2001 From: mreficent Date: Thu, 6 Jun 2019 14:18:53 +0200 Subject: [PATCH 13/15] [MIG] account_mass_reconcile_by_purchase_line: Migration to 12.0 --- account_mass_reconcile_by_purchase_line/README.rst | 6 +++--- account_mass_reconcile_by_purchase_line/__manifest__.py | 6 +++--- .../i18n/account_mass_reconcile_by_purchase_line.pot | 2 +- .../readme/CONTRIBUTORS.rst | 3 +++ .../readme/DESCRIPTION.rst | 5 +++++ account_mass_reconcile_by_purchase_line/readme/USAGE.rst | 6 ++++++ .../views/mass_reconcile.xml | 2 +- 7 files changed, 22 insertions(+), 8 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst create mode 100644 account_mass_reconcile_by_purchase_line/readme/DESCRIPTION.rst create mode 100644 account_mass_reconcile_by_purchase_line/readme/USAGE.rst diff --git a/account_mass_reconcile_by_purchase_line/README.rst b/account_mass_reconcile_by_purchase_line/README.rst index 7205c756..419efb8f 100644 --- a/account_mass_reconcile_by_purchase_line/README.rst +++ b/account_mass_reconcile_by_purchase_line/README.rst @@ -17,14 +17,14 @@ Usage To use this module, you need to: -* Go to 'Accounting / Adviser / Mass Automatic Reconcile'. +* Go to 'Invoicing / Accounting / Actions / Mass Automatic Reconcile'. * Create a new reconciliation profile, and select a new configuration entry with type 'Advanced. Product, purchase order line'. .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas :alt: Try me on Runbot - :target: https://runbot.odoo-community.org/runbot/98/11.0 + :target: https://runbot.odoo-community.org/runbot/98/12.0 Bug Tracker =========== @@ -32,7 +32,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, -help us smashing it by providing a detailed and welcomed feedback. +help us smash it by providing detailed and welcomed feedback. Credits ======= diff --git a/account_mass_reconcile_by_purchase_line/__manifest__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py index 418ae681..921c6ead 100644 --- a/account_mass_reconcile_by_purchase_line/__manifest__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -4,13 +4,13 @@ { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "11.0.1.0.0", + "version": "12.0.1.0.0", "author": "Eficent, " "Odoo Community Association (OCA)", - "website": "https://github.com/OCA/bank-statement-reconcile", + "website": "https://github.com/OCA/account-reconcile", "category": "Finance", "depends": ["account_mass_reconcile", - "account_move_line_purchase_info" + "account_move_line_purchase_info", ], "license": "AGPL-3", "data": [ diff --git a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot index 9ef22f27..262d3376 100644 --- a/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot +++ b/account_mass_reconcile_by_purchase_line/i18n/account_mass_reconcile_by_purchase_line.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" diff --git a/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst b/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..435bad2d --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst @@ -0,0 +1,3 @@ +* Jordi Ballester Alomar +* Miquel Raïch +* Lois Rilo diff --git a/account_mass_reconcile_by_purchase_line/readme/DESCRIPTION.rst b/account_mass_reconcile_by_purchase_line/readme/DESCRIPTION.rst new file mode 100644 index 00000000..cfceadd4 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/readme/DESCRIPTION.rst @@ -0,0 +1,5 @@ +This module extends the functionality of account_mass_reconcile and +allow an user to reconcile debits and credits of an Account +using the PO Line and Product as key fields. This type of +reconciliation is to be used in the context of the Perpetual Inventory +accounting system, with the accrual account '*Goods Received Not Invoiced*'. diff --git a/account_mass_reconcile_by_purchase_line/readme/USAGE.rst b/account_mass_reconcile_by_purchase_line/readme/USAGE.rst new file mode 100644 index 00000000..cf838212 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/readme/USAGE.rst @@ -0,0 +1,6 @@ +To use this module, you need to: + +* Go to 'Invoicing / Accounting / Actions / Mass Automatic Reconcile'. + +* Create a new reconciliation profile, and select a new configuration entry + with type 'Advanced. Product, purchase order line'. diff --git a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml index c1347cfe..ca749444 100644 --- a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -9,7 +9,7 @@ - From d2e27c76a4fc75e9a95a4f49ca74877386bcc442 Mon Sep 17 00:00:00 2001 From: AaronHForgeFlow Date: Fri, 16 Jul 2021 12:01:56 +0200 Subject: [PATCH 14/15] [IMP] account_mass_reconcile_by_purchase_line: black, isort, prettier --- .../__manifest__.py | 11 ++---- .../models/advanced_reconciliation.py | 17 ++++---- .../models/base_advanced_reconciliation.py | 6 +-- .../models/mass_reconcile.py | 8 ++-- .../views/mass_reconcile.xml | 39 +++++++++++-------- 5 files changed, 43 insertions(+), 38 deletions(-) diff --git a/account_mass_reconcile_by_purchase_line/__manifest__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py index 921c6ead..6d6d042d 100644 --- a/account_mass_reconcile_by_purchase_line/__manifest__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -5,17 +5,12 @@ "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", "version": "12.0.1.0.0", - "author": "Eficent, " - "Odoo Community Association (OCA)", + "author": "Eficent, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-reconcile", "category": "Finance", - "depends": ["account_mass_reconcile", - "account_move_line_purchase_info", - ], + "depends": ["account_mass_reconcile", "account_move_line_purchase_info",], "license": "AGPL-3", - "data": [ - "views/mass_reconcile.xml", - ], + "data": ["views/mass_reconcile.xml",], "installable": True, "auto_install": False, } diff --git a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py index 769f05ea..336b3f11 100644 --- a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py @@ -5,8 +5,8 @@ from odoo import models class MassReconcileAdvancedByPurchaseLine(models.TransientModel): - _name = 'mass.reconcile.advanced.by.purchase.line' - _inherit = 'mass.reconcile.advanced' + _name = "mass.reconcile.advanced.by.purchase.line" + _inherit = "mass.reconcile.advanced" @staticmethod def _skip_line(move_line): @@ -15,15 +15,16 @@ class MassReconcileAdvancedByPurchaseLine(models.TransientModel): will be skipped for reconciliation. Can be inherited to skip on some conditions. ie: ref or partner_id is empty. """ - return not (move_line.get('product_id') and - move_line.get('purchase_line_id')) + return not (move_line.get("product_id") and move_line.get("purchase_line_id")) @staticmethod def _matchers(move_line): - return (('product_id', move_line['product_id']), - ('purchase_line_id', move_line['purchase_line_id'])) + return ( + ("product_id", move_line["product_id"]), + ("purchase_line_id", move_line["purchase_line_id"]), + ) @staticmethod def _opposite_matchers(move_line): - yield ('product_id', move_line['product_id']) - yield ('purchase_line_id', move_line['purchase_line_id']) + yield ("product_id", move_line["product_id"]) + yield ("purchase_line_id", move_line["purchase_line_id"]) diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index 9c9d46e4..f5052320 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -5,10 +5,10 @@ from odoo import models class MassReconcileAdvanced(models.AbstractModel): - _inherit = 'mass.reconcile.advanced' + _inherit = "mass.reconcile.advanced" def _selection_columns(self): aml_cols = super(MassReconcileAdvanced, self)._selection_columns() - aml_cols.append('account_move_line.purchase_line_id') - aml_cols.append('account_move_line.product_id') + aml_cols.append("account_move_line.purchase_line_id") + aml_cols.append("account_move_line.product_id") return aml_cols diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index 145ce52b..a67bf9e4 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -5,12 +5,14 @@ from odoo import models class AccountMassReconcileMethod(models.Model): - _inherit = 'account.mass.reconcile.method' + _inherit = "account.mass.reconcile.method" def _selection_name(self): methods = super(AccountMassReconcileMethod, self)._selection_name() methods += [ - ('mass.reconcile.advanced.by.purchase.line', - 'Advanced. Product, purchase order line.'), + ( + "mass.reconcile.advanced.by.purchase.line", + "Advanced. Product, purchase order line.", + ), ] return methods diff --git a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml index ca749444..6491a8a7 100644 --- a/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml +++ b/account_mass_reconcile_by_purchase_line/views/mass_reconcile.xml @@ -1,18 +1,25 @@ - + - - account.mass.reconcile.form - 20 - account.mass.reconcile - - - - - - - - - + + account.mass.reconcile.form + 20 + account.mass.reconcile + + + + + + + + + From 9450faac5f59425101c50236f6ea1fb9d7d58873 Mon Sep 17 00:00:00 2001 From: Don Kendall Date: Sat, 22 Jan 2022 11:43:36 -0500 Subject: [PATCH 15/15] [14.0][MIG] account_mass_reconcile_by_purchase_line [imp] security --- .../__manifest__.py | 10 +++++----- .../models/advanced_reconciliation.py | 5 +++-- .../models/base_advanced_reconciliation.py | 2 +- .../models/mass_reconcile.py | 2 +- .../readme/CONTRIBUTORS.rst | 6 +++--- .../security/ir.model.access.csv | 2 ++ .../addons/account_mass_reconcile_by_purchase_line | 1 + setup/account_mass_reconcile_by_purchase_line/setup.py | 6 ++++++ 8 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 account_mass_reconcile_by_purchase_line/security/ir.model.access.csv create mode 120000 setup/account_mass_reconcile_by_purchase_line/odoo/addons/account_mass_reconcile_by_purchase_line create mode 100644 setup/account_mass_reconcile_by_purchase_line/setup.py diff --git a/account_mass_reconcile_by_purchase_line/__manifest__.py b/account_mass_reconcile_by_purchase_line/__manifest__.py index 6d6d042d..a4d4be87 100644 --- a/account_mass_reconcile_by_purchase_line/__manifest__.py +++ b/account_mass_reconcile_by_purchase_line/__manifest__.py @@ -1,16 +1,16 @@ -# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# Copyright 2020 ForgeFlow S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Account Mass Reconcile by Purchase Line", "summary": "Allows to reconcile based on the PO line", - "version": "12.0.1.0.0", - "author": "Eficent, " "Odoo Community Association (OCA)", + "version": "14.0.1.0.0", + "author": "ForgeFlow, " "Odoo Community Association (OCA)", "website": "https://github.com/OCA/account-reconcile", "category": "Finance", - "depends": ["account_mass_reconcile", "account_move_line_purchase_info",], + "depends": ["account_mass_reconcile", "account_move_line_purchase_info"], "license": "AGPL-3", - "data": ["views/mass_reconcile.xml",], + "data": ["security/ir.model.access.csv", "views/mass_reconcile.xml"], "installable": True, "auto_install": False, } diff --git a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py index 336b3f11..aa3e1e7e 100644 --- a/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/advanced_reconciliation.py @@ -1,5 +1,5 @@ -# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +# Copyright 2020 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import models @@ -7,6 +7,7 @@ from odoo import models class MassReconcileAdvancedByPurchaseLine(models.TransientModel): _name = "mass.reconcile.advanced.by.purchase.line" _inherit = "mass.reconcile.advanced" + _description = "Mass Reconcile By Purchase Line" @staticmethod def _skip_line(move_line): diff --git a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py index f5052320..9ab7c388 100644 --- a/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py +++ b/account_mass_reconcile_by_purchase_line/models/base_advanced_reconciliation.py @@ -1,4 +1,4 @@ -# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# Copyright 2020 ForgeFlow S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import models diff --git a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py index a67bf9e4..fbc507c0 100644 --- a/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py +++ b/account_mass_reconcile_by_purchase_line/models/mass_reconcile.py @@ -1,4 +1,4 @@ -# © 2015-18 Eficent Business and IT Consulting Services S.L. (www.eficent.com) +# Copyright 2020 ForgeFlow S.L. # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from odoo import models diff --git a/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst b/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst index 435bad2d..39ebe28f 100644 --- a/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst +++ b/account_mass_reconcile_by_purchase_line/readme/CONTRIBUTORS.rst @@ -1,3 +1,3 @@ -* Jordi Ballester Alomar -* Miquel Raïch -* Lois Rilo +* Jordi Ballester Alomar +* Miquel Raïch +* Lois Rilo diff --git a/account_mass_reconcile_by_purchase_line/security/ir.model.access.csv b/account_mass_reconcile_by_purchase_line/security/ir.model.access.csv new file mode 100644 index 00000000..cfc1f375 --- /dev/null +++ b/account_mass_reconcile_by_purchase_line/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_mass_reconcile_advanced_by_purchase_line,access_mass_reconcile_advanced_by_purchase_line,model_mass_reconcile_advanced_by_purchase_line,base.group_user,1,1,1,1 diff --git a/setup/account_mass_reconcile_by_purchase_line/odoo/addons/account_mass_reconcile_by_purchase_line b/setup/account_mass_reconcile_by_purchase_line/odoo/addons/account_mass_reconcile_by_purchase_line new file mode 120000 index 00000000..6d19d44f --- /dev/null +++ b/setup/account_mass_reconcile_by_purchase_line/odoo/addons/account_mass_reconcile_by_purchase_line @@ -0,0 +1 @@ +../../../../account_mass_reconcile_by_purchase_line \ No newline at end of file diff --git a/setup/account_mass_reconcile_by_purchase_line/setup.py b/setup/account_mass_reconcile_by_purchase_line/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/account_mass_reconcile_by_purchase_line/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)