You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

567 lines
20 KiB

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. <meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
  7. <title>Point Of Sale - Picking Load</title>
  8. <style type="text/css">
  9. /*
  10. :Author: David Goodger (goodger@python.org)
  11. :Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
  12. :Copyright: This stylesheet has been placed in the public domain.
  13. Default cascading style sheet for the HTML output of Docutils.
  14. See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
  15. customize this style sheet.
  16. */
  17. /* used to remove borders from tables and images */
  18. .borderless, table.borderless td, table.borderless th {
  19. border: 0 }
  20. table.borderless td, table.borderless th {
  21. /* Override padding for "table.docutils td" with "! important".
  22. The right padding separates the table cells. */
  23. padding: 0 0.5em 0 0 ! important }
  24. .first {
  25. /* Override more specific margin styles with "! important". */
  26. margin-top: 0 ! important }
  27. .last, .with-subtitle {
  28. margin-bottom: 0 ! important }
  29. .hidden {
  30. display: none }
  31. .subscript {
  32. vertical-align: sub;
  33. font-size: smaller }
  34. .superscript {
  35. vertical-align: super;
  36. font-size: smaller }
  37. a.toc-backref {
  38. text-decoration: none ;
  39. color: black }
  40. blockquote.epigraph {
  41. margin: 2em 5em ; }
  42. dl.docutils dd {
  43. margin-bottom: 0.5em }
  44. object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
  45. overflow: hidden;
  46. }
  47. /* Uncomment (and remove this text!) to get bold-faced definition list terms
  48. dl.docutils dt {
  49. font-weight: bold }
  50. */
  51. div.abstract {
  52. margin: 2em 5em }
  53. div.abstract p.topic-title {
  54. font-weight: bold ;
  55. text-align: center }
  56. div.admonition, div.attention, div.caution, div.danger, div.error,
  57. div.hint, div.important, div.note, div.tip, div.warning {
  58. margin: 2em ;
  59. border: medium outset ;
  60. padding: 1em }
  61. div.admonition p.admonition-title, div.hint p.admonition-title,
  62. div.important p.admonition-title, div.note p.admonition-title,
  63. div.tip p.admonition-title {
  64. font-weight: bold ;
  65. font-family: sans-serif }
  66. div.attention p.admonition-title, div.caution p.admonition-title,
  67. div.danger p.admonition-title, div.error p.admonition-title,
  68. div.warning p.admonition-title, .code .error {
  69. color: red ;
  70. font-weight: bold ;
  71. font-family: sans-serif }
  72. /* Uncomment (and remove this text!) to get reduced vertical space in
  73. compound paragraphs.
  74. div.compound .compound-first, div.compound .compound-middle {
  75. margin-bottom: 0.5em }
  76. div.compound .compound-last, div.compound .compound-middle {
  77. margin-top: 0.5em }
  78. */
  79. div.dedication {
  80. margin: 2em 5em ;
  81. text-align: center ;
  82. font-style: italic }
  83. div.dedication p.topic-title {
  84. font-weight: bold ;
  85. font-style: normal }
  86. div.figure {
  87. margin-left: 2em ;
  88. margin-right: 2em }
  89. div.footer, div.header {
  90. clear: both;
  91. font-size: smaller }
  92. div.line-block {
  93. display: block ;
  94. margin-top: 1em ;
  95. margin-bottom: 1em }
  96. div.line-block div.line-block {
  97. margin-top: 0 ;
  98. margin-bottom: 0 ;
  99. margin-left: 1.5em }
  100. div.sidebar {
  101. margin: 0 0 0.5em 1em ;
  102. border: medium outset ;
  103. padding: 1em ;
  104. background-color: #ffffee ;
  105. width: 40% ;
  106. float: right ;
  107. clear: right }
  108. div.sidebar p.rubric {
  109. font-family: sans-serif ;
  110. font-size: medium }
  111. div.system-messages {
  112. margin: 5em }
  113. div.system-messages h1 {
  114. color: red }
  115. div.system-message {
  116. border: medium outset ;
  117. padding: 1em }
  118. div.system-message p.system-message-title {
  119. color: red ;
  120. font-weight: bold }
  121. div.topic {
  122. margin: 2em }
  123. h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
  124. h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
  125. margin-top: 0.4em }
  126. h1.title {
  127. text-align: center }
  128. h2.subtitle {
  129. text-align: center }
  130. hr.docutils {
  131. width: 75% }
  132. img.align-left, .figure.align-left, object.align-left, table.align-left {
  133. clear: left ;
  134. float: left ;
  135. margin-right: 1em }
  136. img.align-right, .figure.align-right, object.align-right, table.align-right {
  137. clear: right ;
  138. float: right ;
  139. margin-left: 1em }
  140. img.align-center, .figure.align-center, object.align-center {
  141. display: block;
  142. margin-left: auto;
  143. margin-right: auto;
  144. }
  145. table.align-center {
  146. margin-left: auto;
  147. margin-right: auto;
  148. }
  149. .align-left {
  150. text-align: left }
  151. .align-center {
  152. clear: both ;
  153. text-align: center }
  154. .align-right {
  155. text-align: right }
  156. /* reset inner alignment in figures */
  157. div.align-right {
  158. text-align: inherit }
  159. /* div.align-center * { */
  160. /* text-align: left } */
  161. .align-top {
  162. vertical-align: top }
  163. .align-middle {
  164. vertical-align: middle }
  165. .align-bottom {
  166. vertical-align: bottom }
  167. ol.simple, ul.simple {
  168. margin-bottom: 1em }
  169. ol.arabic {
  170. list-style: decimal }
  171. ol.loweralpha {
  172. list-style: lower-alpha }
  173. ol.upperalpha {
  174. list-style: upper-alpha }
  175. ol.lowerroman {
  176. list-style: lower-roman }
  177. ol.upperroman {
  178. list-style: upper-roman }
  179. p.attribution {
  180. text-align: right ;
  181. margin-left: 50% }
  182. p.caption {
  183. font-style: italic }
  184. p.credits {
  185. font-style: italic ;
  186. font-size: smaller }
  187. p.label {
  188. white-space: nowrap }
  189. p.rubric {
  190. font-weight: bold ;
  191. font-size: larger ;
  192. color: maroon ;
  193. text-align: center }
  194. p.sidebar-title {
  195. font-family: sans-serif ;
  196. font-weight: bold ;
  197. font-size: larger }
  198. p.sidebar-subtitle {
  199. font-family: sans-serif ;
  200. font-weight: bold }
  201. p.topic-title {
  202. font-weight: bold }
  203. pre.address {
  204. margin-bottom: 0 ;
  205. margin-top: 0 ;
  206. font: inherit }
  207. pre.literal-block, pre.doctest-block, pre.math, pre.code {
  208. margin-left: 2em ;
  209. margin-right: 2em }
  210. pre.code .ln { color: grey; } /* line numbers */
  211. pre.code, code { background-color: #eeeeee }
  212. pre.code .comment, code .comment { color: #5C6576 }
  213. pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
  214. pre.code .literal.string, code .literal.string { color: #0C5404 }
  215. pre.code .name.builtin, code .name.builtin { color: #352B84 }
  216. pre.code .deleted, code .deleted { background-color: #DEB0A1}
  217. pre.code .inserted, code .inserted { background-color: #A3D289}
  218. span.classifier {
  219. font-family: sans-serif ;
  220. font-style: oblique }
  221. span.classifier-delimiter {
  222. font-family: sans-serif ;
  223. font-weight: bold }
  224. span.interpreted {
  225. font-family: sans-serif }
  226. span.option {
  227. white-space: nowrap }
  228. span.pre {
  229. white-space: pre }
  230. span.problematic {
  231. color: red }
  232. span.section-subtitle {
  233. /* font-size relative to parent (h1..h6 element) */
  234. font-size: 80% }
  235. table.citation {
  236. border-left: solid 1px gray;
  237. margin-left: 1px }
  238. table.docinfo {
  239. margin: 2em 4em }
  240. table.docutils {
  241. margin-top: 0.5em ;
  242. margin-bottom: 0.5em }
  243. table.footnote {
  244. border-left: solid 1px black;
  245. margin-left: 1px }
  246. table.docutils td, table.docutils th,
  247. table.docinfo td, table.docinfo th {
  248. padding-left: 0.5em ;
  249. padding-right: 0.5em ;
  250. vertical-align: top }
  251. table.docutils th.field-name, table.docinfo th.docinfo-name {
  252. font-weight: bold ;
  253. text-align: left ;
  254. white-space: nowrap ;
  255. padding-left: 0 }
  256. /* "booktabs" style (no vertical lines) */
  257. table.docutils.booktabs {
  258. border: 0px;
  259. border-top: 2px solid;
  260. border-bottom: 2px solid;
  261. border-collapse: collapse;
  262. }
  263. table.docutils.booktabs * {
  264. border: 0px;
  265. }
  266. table.docutils.booktabs th {
  267. border-bottom: thin solid;
  268. text-align: left;
  269. }
  270. h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
  271. h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
  272. font-size: 100% }
  273. ul.auto-toc {
  274. list-style-type: none }
  275. </style>
  276. </head>
  277. <body>
  278. <div class="document" id="point-of-sale-picking-load">
  279. <h1 class="title">Point Of Sale - Picking Load</h1>
  280. <!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  281. !! This file is generated by oca-gen-addon-readme !!
  282. !! changes will be overwritten. !!
  283. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
  284. <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/pos/tree/12.0/pos_picking_load"><img alt="OCA/pos" src="https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/pos-12-0/pos-12-0-pos_picking_load"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/184/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
  285. <p>This module extends the functionality of point of sale to allow you to
  286. load your pickings in the Point of Sale, in order to add / remove products
  287. and so create a PoS Order and mark it as paid.</p>
  288. <p><strong>Detailled Use Case</strong></p>
  289. <p>This module is usefull for the following use case</p>
  290. <ul class="simple">
  291. <li>You have many Sale Orders that have generated pickings. Typically if you have
  292. connected your Odoo instance to an online store like Shop Invader,
  293. Prestashop, Magento, or if you use light Odoo shop (<tt class="docutils literal">website_sale</tt>
  294. module).</li>
  295. <li>Once the order validated, you prepare your pickings</li>
  296. <li>The customer come in your shop to recover his order</li>
  297. <li>the customer add (or remove) some products</li>
  298. <li>the customer pay his order, based on the real delivered products list</li>
  299. </ul>
  300. <p><strong>Table of contents</strong></p>
  301. <div class="contents local topic" id="contents">
  302. <ul class="simple">
  303. <li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
  304. <li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
  305. <li><a class="reference internal" href="#known-issues-roadmap" id="id3">Known issues / Roadmap</a></li>
  306. <li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
  307. <li><a class="reference internal" href="#credits" id="id5">Credits</a><ul>
  308. <li><a class="reference internal" href="#authors" id="id6">Authors</a></li>
  309. <li><a class="reference internal" href="#contributors" id="id7">Contributors</a></li>
  310. <li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
  311. </ul>
  312. </li>
  313. </ul>
  314. </div>
  315. <div class="section" id="configuration">
  316. <h1><a class="toc-backref" href="#id1">Configuration</a></h1>
  317. <p>To configure this module, you need to:</p>
  318. <ol class="arabic simple">
  319. <li>Go to Warehouse / Configuration / Types of Operation</li>
  320. <li>Select the picking type(s) you want to see in the point of sale</li>
  321. <li>Check the box ‘Available in Point of Sale’</li>
  322. </ol>
  323. <div class="figure">
  324. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/stock_picking_type_form.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/stock_picking_type_form.png" style="width: 800px;" />
  325. </div>
  326. <p>Note: This box is NOT enabled by default except in demo data for the type
  327. ‘Delivery Orders’ of the demo company ‘YourCompany’.</p>
  328. <ol class="arabic simple">
  329. <li>Go to Point of Sale / Configuration / Point of Sales</li>
  330. <li>Select the Point(s) of Sales witch those you want to enable the feature</li>
  331. <li>Check the box ‘Load Pickings’</li>
  332. <li>Set the max quantity of pickings you want to load</li>
  333. </ol>
  334. <div class="figure">
  335. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/pos_config_form.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/pos_config_form.png" style="width: 800px;" />
  336. </div>
  337. <p>Note: This box is enabled by default</p>
  338. <p><strong>Technical Notes</strong></p>
  339. <ul class="simple">
  340. <li>By default, the Point of Sale will display only the pickings if the state is
  341. in ‘Waiting Availability’, ‘Partially Available’ or ‘Ready to Transfer’.</li>
  342. </ul>
  343. <p>You can change this filter by overloading the <tt class="docutils literal">_prepare_filter_for_pos</tt>
  344. function of the model <tt class="docutils literal">stock.picking</tt>.</p>
  345. <ul class="simple">
  346. <li>By default, the search of pickings will be done on the fields <tt class="docutils literal">name</tt>,
  347. <tt class="docutils literal">origin</tt> and <tt class="docutils literal">partner_id</tt> of the picking.</li>
  348. </ul>
  349. <p>You can change this feature by overloading the
  350. <tt class="docutils literal">_prepare_filter_query_for_pos</tt> function of the model <tt class="docutils literal">stock.picking</tt>.</p>
  351. <ul class="simple">
  352. <li>By default, when the PoS order is confirmed, the original picking is
  353. cancelled and the sale order is set to the state ‘Done’.</li>
  354. </ul>
  355. <p>You can change this behaviour by overloading
  356. <tt class="docutils literal">_handle_orders_with_original_picking</tt> function of the model <tt class="docutils literal">pos.order</tt>.</p>
  357. </div>
  358. <div class="section" id="usage">
  359. <h1><a class="toc-backref" href="#id2">Usage</a></h1>
  360. <p>To use this module, you need to:</p>
  361. <ul class="simple">
  362. <li>Launch the point of sale</li>
  363. <li>On a new order (without lines), click on the ‘Load Picking’ button.</li>
  364. </ul>
  365. <div class="figure">
  366. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_01_load_button.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_01_load_button.png" style="width: 800px;" />
  367. </div>
  368. <ul class="simple">
  369. <li>Point of sale will load available pickings. (About displayed pickings, see
  370. ‘Technical Notes’ section).</li>
  371. </ul>
  372. <div class="figure">
  373. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_02_picking_list.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_02_picking_list.png" style="width: 800px;" />
  374. </div>
  375. <ul class="simple">
  376. <li>Click on a picking will check if the picking is loadable and if yes, will
  377. display a ‘Select’ button. (See ‘Possible Warnings’ Section)</li>
  378. </ul>
  379. <div class="figure">
  380. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_03_confirm.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_03_confirm.png" style="width: 800px;" />
  381. </div>
  382. <ul class="simple">
  383. <li>Confirm the selection, by clicking on ‘Select’ button. It will display
  384. the content of the moves (as PoS Order Lines)</li>
  385. </ul>
  386. <div class="figure">
  387. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_04_pos_order.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_04_pos_order.png" style="width: 800px;" />
  388. </div>
  389. <p>The price and the discount will be the sale price and the discount set in
  390. the according Sale Order Line, if it was found. Otherwise, discount will be
  391. set to 0, and unit price will be the unit price of the product when it has been
  392. loaded in the Point of Sale.</p>
  393. <p><strong>Related Sale Order:</strong></p>
  394. <div class="figure">
  395. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_sale_order.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_sale_order.png" style="width: 800px;" />
  396. </div>
  397. <p><strong>Related Picking:</strong></p>
  398. <div class="figure">
  399. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_stock_picking.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_stock_picking.png" style="width: 800px;" />
  400. </div>
  401. <ul class="simple">
  402. <li>Finally, you can add / remove products or change quantity and collect the
  403. payment.</li>
  404. </ul>
  405. <p>When, the order is marked as paid, the original picking will be cancelled,
  406. because Point Of Sale generates a new picking related to the real delivered
  407. products and the original Sale Order will pass to the state ‘Done’. (Delivery
  408. exception is ignored).
  409. (See ‘Technical Notes’ section).</p>
  410. <p><strong>Possible Warnings</strong></p>
  411. <p>Some warning messages can appear:</p>
  412. <ul class="simple">
  413. <li>if some products are not available in the Point of Sale</li>
  414. </ul>
  415. <div class="figure">
  416. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_product.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_product.png" style="width: 800px;" />
  417. </div>
  418. <ul class="simple">
  419. <li>if the partner is not available in the Point of Sale</li>
  420. </ul>
  421. <div class="figure">
  422. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_partner.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_partner.png" style="width: 800px;" />
  423. </div>
  424. <ul class="simple">
  425. <li>if the picking has been still loaded in another PoS order</li>
  426. </ul>
  427. <div class="figure">
  428. <img alt="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_picking_still_loaded.png" src="https://raw.githubusercontent.com/OCA/pos/12.0/pos_picking_load/static/description/load_picking_warning_picking_still_loaded.png" style="width: 800px;" />
  429. </div>
  430. </div>
  431. <div class="section" id="known-issues-roadmap">
  432. <h1><a class="toc-backref" href="#id3">Known issues / Roadmap</a></h1>
  433. <ul class="simple">
  434. <li>This module will try to get original unit price from the sale order and not
  435. use the Current unit price of the product.
  436. (The price at which you pledged to sell the product).
  437. Some VAT troubles will occure if a product is set with VAT marked as
  438. ‘VAT included’ and if in the sale order line, there are some VAT marked as
  439. ‘VAT excluded’ for exemple.</li>
  440. </ul>
  441. <p><strong>The VAT settings should be consistent.</strong></p>
  442. </div>
  443. <div class="section" id="bug-tracker">
  444. <h1><a class="toc-backref" href="#id4">Bug Tracker</a></h1>
  445. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/pos/issues">GitHub Issues</a>.
  446. In case of trouble, please check there if your issue has already been reported.
  447. If you spotted it first, help us smashing it by providing a detailed and welcomed
  448. <a class="reference external" href="https://github.com/OCA/pos/issues/new?body=module:%20pos_picking_load%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
  449. <p>Do not contact contributors directly about support or help with technical issues.</p>
  450. </div>
  451. <div class="section" id="credits">
  452. <h1><a class="toc-backref" href="#id5">Credits</a></h1>
  453. <div class="section" id="authors">
  454. <h2><a class="toc-backref" href="#id6">Authors</a></h2>
  455. <ul class="simple">
  456. <li>GRAP</li>
  457. </ul>
  458. </div>
  459. <div class="section" id="contributors">
  460. <h2><a class="toc-backref" href="#id7">Contributors</a></h2>
  461. <ul class="simple">
  462. <li>Sylvain LE GAL (<a class="reference external" href="https://twitter.com/legalsylvain">https://twitter.com/legalsylvain</a>)</li>
  463. <li>Stefan Rijnhart &lt;<a class="reference external" href="mailto:stefan&#64;opener.am">stefan&#64;opener.am</a>&gt;</li>
  464. </ul>
  465. </div>
  466. <div class="section" id="maintainers">
  467. <h2><a class="toc-backref" href="#id8">Maintainers</a></h2>
  468. <p>This module is maintained by the OCA.</p>
  469. <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
  470. <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
  471. mission is to support the collaborative development of Odoo features and
  472. promote its widespread use.</p>
  473. <p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
  474. <p><a class="reference external" href="https://github.com/legalsylvain"><img alt="legalsylvain" src="https://github.com/legalsylvain.png?size=40px" /></a></p>
  475. <p>This module is part of the <a class="reference external" href="https://github.com/OCA/pos/tree/12.0/pos_picking_load">OCA/pos</a> project on GitHub.</p>
  476. <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
  477. </div>
  478. </div>
  479. </div>
  480. </body>
  481. </html>