res_config_settings_views.xml 53 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <odoo>
  3. <record id="res_config_settings_view_form" model="ir.ui.view">
  4. <field name="name">res.config.settings.view.form.inherit.point_of_sale</field>
  5. <field name="model">res.config.settings</field>
  6. <field name="priority" eval="95"/>
  7. <field name="inherit_id" ref="base.res_config_settings_view_form" />
  8. <field name="arch" type="xml">
  9. <xpath expr="//div[hasclass('settings')]" position="inside">
  10. <t groups="point_of_sale.group_pos_manager">
  11. <field name="pos_selectable_categ_ids" invisible="1"/>
  12. <field name="pos_has_active_session" invisible="1"/>
  13. <field name="pos_allowed_pricelist_ids" invisible="1"/>
  14. <field name="pos_cash_control" invisible="1"/>
  15. <field name="pos_iface_print_via_proxy" invisible="1"/>
  16. <field name="pos_company_has_template" invisible="1"/>
  17. <field name="is_default_pricelist_displayed" invisible="1"/>
  18. <field name="group_cash_rounding" invisible="1"/>
  19. </t>
  20. <div class="app_settings_block" data-string="Point of sale" string="Point of Sale" data-key="point_of_sale" groups="point_of_sale.group_pos_manager">
  21. <div class="app_settings_header pt-1 pb-1 bg-warning bg-opacity-25">
  22. <div class="col-xs-12 col-md-6 ms-0 o_setting_box">
  23. <div class="o_setting_right_pane border-start-0 ms-0 ps-0">
  24. <div class="content-group">
  25. <div class="row flex-row flex-nowrap mt8 align-items-center">
  26. <label class="col text-nowrap ml8 flex-nowrap" string="Point of Sale" for="pos_config_id"/>
  27. <field name="pos_config_id" class="w-50" options="{'no_open': True, 'no_create': True}" title="Settings on this page will apply to this point of sale."/>
  28. <button name="action_pos_config_create_new" type="object" string="+ New Shop" class="col btn-link ms-2 text-nowrap" style="line-height: 0.5;"/>
  29. </div>
  30. </div>
  31. </div>
  32. </div>
  33. </div>
  34. <div class="o_view_nocontent" attrs="{'invisible': [('pos_config_id', '!=', False)]}">
  35. <div class="o_nocontent_help">
  36. <p class="o_view_nocontent_empty_folder">No Point of Sale selected</p>
  37. <p>Please create/select a Point of Sale above to show the configuration options.</p>
  38. </div>
  39. </div>
  40. <div attrs="{'invisible': [('pos_config_id', '=', False)]}">
  41. <h2 name="pos_interface">PoS Interface</h2>
  42. <div class="row mt16 o_settings_container" id="pos_interface_section">
  43. <div class="o_setting_box">
  44. <!-- Wrap the warnings in an o_setting_box so that it doesn't show in the search. -->
  45. <div class="o_notification_alert alert alert-warning" attrs="{'invisible':[('pos_has_active_session','=', False)]}" role="alert">
  46. A session is currently opened for this PoS. Some settings can only be changed after the session is closed.
  47. <button class="btn-link" style="padding:0" name="pos_open_ui" type="object" context="{'pos_config_id': pos_config_id}">Click here to close the session</button>
  48. </div>
  49. <div class="o_notification_alert alert alert-warning" attrs="{'invisible': [('pos_company_has_template','=',True)]}" role="alert">
  50. There is no Chart of Accounts configured on the company. Please go to the invoicing settings to install a Chart of Accounts.
  51. </div>
  52. </div>
  53. <div class="col-12 col-lg-6 o_setting_box">
  54. <div class="o_setting_left_pane">
  55. <field name="pos_module_pos_restaurant" attrs="{'readonly': [('pos_has_active_session', '=', True)]}"/>
  56. </div>
  57. <div class="o_setting_right_pane">
  58. <label for="pos_module_pos_restaurant"/>
  59. <div class="content-group" id="warning_text_pos_restaurant" attrs="{'invisible': [('pos_module_pos_restaurant', '=', False)]}">
  60. <div class="text-warning mt16 mb4">
  61. Save this page and come back here to set up the feature.
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. <div class="col-12 col-lg-6 o_setting_box">
  67. <div class="o_setting_left_pane">
  68. <field name="pos_start_category"/>
  69. </div>
  70. <div class="o_setting_right_pane">
  71. <label for="pos_start_category"/>
  72. <div class="text-muted">
  73. Start selling from a default product category
  74. </div>
  75. <div class="content-group mt16" attrs="{'invisible': [('pos_start_category', '=', False)]}">
  76. <field name="pos_iface_start_categ_id" domain="[('id', 'in', pos_selectable_categ_ids)]"/>
  77. </div>
  78. </div>
  79. </div>
  80. <div class="col-12 col-lg-6 o_setting_box"
  81. title="Employees can scan their badge or enter a PIN to log in to a PoS session. These credentials are configurable in the *HR Settings* tab of the employee form.">
  82. <div class="o_setting_left_pane">
  83. <field name="pos_module_pos_hr" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  84. </div>
  85. <div class="o_setting_right_pane">
  86. <span class="o_form_label">Multi Employees per Session</span>
  87. <div class="text-muted">
  88. Allow to log and switch between selected Employees
  89. </div>
  90. <div class="content-group mt16" attrs="{'invisible': [('pos_module_pos_hr','=',False)]}">
  91. <div class="text-warning" id="warning_text_employees">
  92. Save this page and come back here to set up the feature.
  93. </div>
  94. </div>
  95. </div>
  96. </div>
  97. <div class="col-12 col-lg-6 o_setting_box">
  98. <div class="o_setting_left_pane">
  99. <field name="pos_limit_categories" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  100. </div>
  101. <div class="o_setting_right_pane">
  102. <label for="pos_limit_categories"/>
  103. <div class="text-muted">
  104. Pick which product categories are available
  105. </div>
  106. <div class="content-group mt16" attrs="{'invisible': [('pos_limit_categories', '=', False)]}">
  107. <field name="pos_iface_available_categ_ids" widget="many2many_tags" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  108. </div>
  109. <div class="content-group mt16" attrs="{'invisible': [('pos_limit_categories', '=', False)]}">
  110. <button name="%(product_pos_category_action)d" icon="fa-arrow-right" type="action" string="PoS Product Categories" class="btn-link"/>
  111. </div>
  112. </div>
  113. </div>
  114. <div class="col-12 col-lg-6 o_setting_box">
  115. <div class="o_setting_left_pane">
  116. <field name="pos_iface_big_scrollbars"/>
  117. </div>
  118. <div class="o_setting_right_pane">
  119. <label for="pos_iface_big_scrollbars"/>
  120. <div class="text-muted">
  121. Improve navigation for imprecise industrial touchscreens
  122. </div>
  123. </div>
  124. </div>
  125. <div class="col-12 col-lg-6 o_setting_box">
  126. <div class="o_setting_left_pane">
  127. <field name="pos_is_margins_costs_accessible_to_every_user"/>
  128. </div>
  129. <div class="o_setting_right_pane">
  130. <label for="pos_is_margins_costs_accessible_to_every_user" string="Margins &amp; Costs"/>
  131. <div class="text-muted">
  132. Show margins &amp; costs on product information
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. <h2>Accounting</h2>
  138. <div class="row mt16 o_settings_container" id="pos_accounting_section">
  139. <div class="col-12 col-lg-6 o_setting_box"
  140. id="default_sales_tax_setting"
  141. title="This tax is applied to any new product created in the catalog.">
  142. <div class="o_setting_right_pane">
  143. <div>
  144. <label string="Default Sales Tax" for="sale_tax_id"/>
  145. <i class="fa fa-info-circle me-1" title="This setting is common to all PoS." pos-data-toggle="tooltip"/>
  146. <div class="text-muted">
  147. Default sales tax for products
  148. </div>
  149. <div class="content-group mt16">
  150. <field name="sale_tax_id" colspan="4" nolabel="1" domain="[('type_tax_use', 'in', ('sale', 'all')), ('company_id', '=', company_id)]"/>
  151. </div>
  152. </div>
  153. <div class="mt8">
  154. <button name="%(account.action_tax_form)d" icon="fa-arrow-right" type="action" string="Taxes" class="btn-link"/>
  155. </div>
  156. </div>
  157. </div>
  158. <div class="col-12 col-lg-6 o_setting_box"
  159. groups="account.group_account_readonly">
  160. <div class="o_setting_right_pane">
  161. <div>
  162. <label string="Default Temporary Account" for="account_default_pos_receivable_account_id"/>
  163. <i class="fa fa-info-circle me-1" title="This setting is common to all PoS." pos-data-toggle="tooltip"/>
  164. <div class="text-muted">
  165. Intermediary account used for unidentified customers.
  166. </div>
  167. <div class="content-group mt16">
  168. <field name="account_default_pos_receivable_account_id" colspan="4" nolabel="1" domain="[('reconcile', '=', True), ('account_type', '=', 'asset_receivable'), ('company_id', '=', company_id)]"/>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. <div class="col-12 col-lg-6 o_setting_box" title="Choose a specific fiscal position at the order depending on the kind of customer (tax exempt, onsite vs. takeaway, etc.).">
  174. <div class="o_setting_left_pane">
  175. <field name="pos_tax_regime_selection"/>
  176. </div>
  177. <div class="o_setting_right_pane">
  178. <label for="pos_tax_regime_selection" string="Flexible Taxes"/>
  179. <div class="text-muted">
  180. Use fiscal positions to get different taxes by order
  181. </div>
  182. <div class="content-group mt16" attrs="{'invisible': [('pos_tax_regime_selection', '=', False)]}">
  183. <div class="row">
  184. <label string="Default" for="pos_default_fiscal_position_id" class="col-lg-3 o_light_label"/>
  185. <field name="pos_default_fiscal_position_id" domain="['|',('company_id', '=', company_id),('company_id', '=', False)]"/>
  186. </div>
  187. <div class="row">
  188. <label string="Allowed" for="pos_fiscal_position_ids" class="col-lg-3 o_light_label"/>
  189. <field name="pos_fiscal_position_ids" widget="many2many_tags" options="{'no_create': True}" domain="['|',('company_id', '=', company_id),('company_id', '=', False)]"/>
  190. </div>
  191. <div>
  192. <button name="%(account.action_account_fiscal_position_form)d" icon="fa-arrow-right" type="action" string="Fiscal Positions" class="btn-link"/>
  193. </div>
  194. </div>
  195. </div>
  196. </div>
  197. <div class="col-12 col-lg-6 o_setting_box">
  198. <div class="o_setting_right_pane">
  199. <span class="o_form_label">Default Journals</span>
  200. <div class="text-muted">
  201. Default journals for orders and invoices
  202. </div>
  203. <div class="content-group mt16">
  204. <div class="row" title="Whenever you close a session, one entry is generated in the following accounting journal for all the orders not invoiced. Invoices are recorded in accounting separately.">
  205. <label string="Orders" for="pos_journal_id" class="col-lg-3 o_light_label" options="{'no_open': True, 'no_create': True}"/>
  206. <field name="pos_journal_id" domain="[('company_id', '=', company_id), ('type', 'in', ('general', 'sale'))]" context="{'default_company_id': company_id, 'default_type': 'general'}" attrs="{'required': [('pos_company_has_template', '=', True)]}"/>
  207. </div>
  208. <div class="row">
  209. <label string="Invoices" for="pos_invoice_journal_id" class="col-lg-3 o_light_label"/>
  210. <field name="pos_invoice_journal_id"
  211. domain="[('company_id', '=', company_id), ('type', '=', 'sale')]"
  212. attrs="{'required': [('pos_company_has_template', '=', True)]}"
  213. context="{'default_company_id': company_id, 'default_type': 'sale'}"/>
  214. </div>
  215. </div>
  216. </div>
  217. </div>
  218. </div>
  219. <h2>Pricing</h2>
  220. <div class="row mt16 o_settings_container" id="pos_pricing_section">
  221. <div class="col-12 col-lg-6 o_setting_box" id="multiple_prices_setting">
  222. <div class="o_setting_left_pane">
  223. <field name="pos_use_pricelist" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  224. </div>
  225. <div class="o_setting_right_pane">
  226. <label for="pos_use_pricelist" string="Flexible Pricelists" />
  227. <div class="text-muted">
  228. Set multiple prices per product, automated discounts, etc.
  229. </div>
  230. <div class="content-group" attrs="{'invisible': [('pos_use_pricelist' ,'=', False)]}">
  231. <div class="mt16">
  232. <field name="group_sale_pricelist" invisible="1"/>
  233. <field name="product_pricelist_setting" widget="radio" class="o_light_label"/>
  234. </div>
  235. <div class="row mt16">
  236. <label string="Available" for="pos_available_pricelist_ids" class="col-lg-3 o_light_label"/>
  237. <field name="pos_available_pricelist_ids" widget="many2many_tags" domain="['|',('company_id', '=', company_id),('company_id', '=', False)]" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  238. </div>
  239. <div class="row mt16" attrs="{'invisible': [('is_default_pricelist_displayed', '=', False)]}">
  240. <label string="Default" for="pos_pricelist_id" class="col-lg-3 o_light_label"/>
  241. <field name="pos_pricelist_id" domain="[('id', 'in', pos_allowed_pricelist_ids)]" options="{'no_create': True}"/>
  242. </div>
  243. <div class="mt8">
  244. <button name="%(product.product_pricelist_action2)d" icon="fa-arrow-right" type="action" string="Pricelists" groups="product.group_product_pricelist" class="btn-link"/>
  245. </div>
  246. </div>
  247. </div>
  248. </div>
  249. <div class="col-12 col-lg-6 o_setting_box price_control" title="Only users with Manager access rights for PoS app can modify the product prices on orders.">
  250. <div class="o_setting_left_pane">
  251. <field name="pos_restrict_price_control"/>
  252. </div>
  253. <div class="o_setting_right_pane">
  254. <label for="pos_restrict_price_control" string="Price Control"/>
  255. <div class="text-muted">
  256. Restrict price modification to managers
  257. </div>
  258. </div>
  259. </div>
  260. <div class="col-xs-12 col-lg-6 o_setting_box" id="product_prices">
  261. <div class="o_setting_right_pane">
  262. <label for="pos_iface_tax_included" string="Product Prices"/>
  263. <div class="text-muted">
  264. Product prices on receipts
  265. </div>
  266. <div class="content-group">
  267. <div class="mt16">
  268. <field name="pos_iface_tax_included" class="o_light_label" widget="radio"/>
  269. </div>
  270. <a attrs="{'invisible': [('pos_iface_tax_included', '!=', 'total')]}"
  271. href="https://www.odoo.com/documentation/16.0/applications/finance/accounting/taxation/taxes/B2B_B2C.html"
  272. target="_blank" class="oe-link"><i class="fa fa-fw fa-arrow-right"/>How to manage tax-included prices</a>
  273. </div>
  274. </div>
  275. </div>
  276. <div class="col-xs-12 col-lg-6 o_setting_box" >
  277. <div class="o_setting_left_pane">
  278. <field name="pos_manual_discount"/>
  279. </div>
  280. <div class="o_setting_right_pane">
  281. <label for="pos_manual_discount"/>
  282. <div class="text-muted">
  283. Allow cashiers to set a discount per line
  284. </div>
  285. </div>
  286. </div>
  287. <div class="col-xs-12 col-lg-6 o_setting_box" >
  288. <div class="o_setting_left_pane">
  289. <field name="pos_module_pos_discount" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  290. </div>
  291. <div class="o_setting_right_pane">
  292. <label for="pos_module_pos_discount"/>
  293. <div class="text-muted">
  294. Adds a button to set a global discount
  295. </div>
  296. <div class="content-group mt16" attrs="{'invisible':[('pos_module_pos_discount','=',False)]}">
  297. <div class="text-warning mb4" id="warning_text_pos_discount" >
  298. Save this page and come back here to set up the feature.
  299. </div>
  300. </div>
  301. </div>
  302. </div>
  303. <div class="col-12 col-lg-6 o_setting_box" id="pos-loyalty"
  304. title="Boost your sales with multiple kinds of programs: Coupons, Promotions, Gift Card, Loyalty. Specific conditions can be set (products, customers, minimum purchase amount, period). Rewards can be discounts (% or amount) or free products.">
  305. <div class="o_setting_left_pane">
  306. <field name="module_loyalty" nolabel="1"/>
  307. </div>
  308. <div class="o_setting_right_pane">
  309. <label for="module_loyalty" string="Promotions, Coupons, Gift Card &amp; Loyalty Program"/>
  310. <div class="text-muted" id="loyalty_program_text" >
  311. Manage promotion that will grant customers discounts or gifts
  312. </div>
  313. </div>
  314. </div>
  315. </div>
  316. <h2>Bills &amp; Receipts</h2>
  317. <div class="row mt16 o_settings_container" id="pos_bills_and_receipts_section">
  318. <div class="col-12 col-lg-6 o_setting_box">
  319. <div class="o_setting_left_pane">
  320. <field name="pos_is_header_or_footer"/>
  321. </div>
  322. <div class="o_setting_right_pane">
  323. <label for="pos_is_header_or_footer"/>
  324. <div class="text-muted">
  325. Add a custom message to header and footer
  326. </div>
  327. <div class="content-group mt16" attrs="{'invisible' : [('pos_is_header_or_footer', '=', False)]}">
  328. <div>
  329. <label string="Header" for="pos_receipt_header" class="col-lg-2 o_light_label"/>
  330. <field name="pos_receipt_header" placeholder="e.g. Company Address, Website"/>
  331. </div>
  332. <div>
  333. <label string="Footer" for="pos_receipt_footer" class="col-lg-2 o_light_label"/>
  334. <field name="pos_receipt_footer" placeholder="e.g. Return Policy, Thanks for shopping with us!"/>
  335. </div>
  336. </div>
  337. </div>
  338. </div>
  339. <div class="col-12 col-lg-6 o_setting_box" id="auto_printing">
  340. <div class="o_setting_left_pane">
  341. <field name="pos_iface_print_auto"/>
  342. </div>
  343. <div class="o_setting_right_pane">
  344. <label for="pos_iface_print_auto"/>
  345. <div class="text-muted">
  346. Print receipts automatically once the payment is registered
  347. </div>
  348. <div class="content-group mt16" attrs="{'invisible' : ['|', ('pos_iface_print_auto', '=', False), '&amp;', ('pos_is_posbox', '=', False), ('pos_other_devices', '=', False)]}">
  349. <div>
  350. <field name="pos_iface_print_skip_screen" class="oe_inline"/><span class="oe_inline"><b>Skip Preview Screen</b></span>
  351. </div>
  352. </div>
  353. </div>
  354. <div class="o_setting_left_pane mt-4">
  355. <field name="point_of_sale_use_ticket_qr_code"/>
  356. </div>
  357. <div class="o_setting_right_pane mt-4">
  358. <label for="point_of_sale_use_ticket_qr_code"/>
  359. <div class="text-muted">
  360. Print a QR code on the receipt to allow the user to easily request the invoice for an order.
  361. </div>
  362. </div>
  363. </div>
  364. <div id="order_reference" class="col-12 col-lg-6 o_setting_box" groups="base.group_no_one">
  365. <div class="o_setting_right_pane">
  366. <span class="o_form_label">Order Reference</span>
  367. <div class="text-muted">
  368. Generation of your order references
  369. </div>
  370. <div class="content-group mt16">
  371. <field name="pos_sequence_id" readonly="1"/>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. <h2>Payment</h2>
  377. <div class="row mt16 o_settings_container" id="pos_payment_section">
  378. <div class="col-12 col-lg-6 o_setting_box" id="payment_methods_new">
  379. <div class="o_setting_right_pane">
  380. <span class="o_form_label">Payment Methods</span>
  381. <div class="text-muted">
  382. Payment methods available
  383. </div>
  384. <div class="content-group mt16">
  385. <field name="pos_payment_method_ids" colspan="4" nolabel="1" widget="many2many_tags" attrs="{'readonly': [('pos_has_active_session','=', True)], 'required': [('pos_company_has_template', '=', True)]}" options="{'no_create': True}" />
  386. </div>
  387. <div>
  388. <button name="%(action_payment_methods_tree)d" icon="fa-arrow-right" type="action" string="Payment Methods" class="btn-link"/>
  389. </div>
  390. </div>
  391. </div>
  392. <div class="col-12 col-lg-6 o_setting_box">
  393. <div class="o_setting_left_pane">
  394. <field name="pos_cash_rounding"/>
  395. </div>
  396. <div class="o_setting_right_pane">
  397. <label for="pos_cash_rounding" string="Cash Rounding" />
  398. <a href="https://www.odoo.com/documentation/16.0/applications/sales/point_of_sale/pricing/cash_rounding.html"
  399. title="Documentation" class="o_doc_link" target="_blank"></a>
  400. <div class="text-muted">
  401. Define the smallest coinage of the currency used to pay by cash
  402. </div>
  403. <div class="content-group mt16" attrs="{'invisible': [('pos_cash_rounding', '=', False)]}">
  404. <div class="row mt16">
  405. <label string="Rounding Method" for="pos_rounding_method" class="col-lg-3 o_light_label" />
  406. <field name="pos_rounding_method" attrs="{'required' : [('pos_cash_rounding', '=', True)]}" domain="[('company_id', '=', company_id)]"/>
  407. </div>
  408. <div class="row mt16">
  409. <div class="col">
  410. <field name="pos_only_round_cash_method"/>
  411. <label string="Only on cash methods" for="pos_only_round_cash_method" class="o_light_label" />
  412. </div>
  413. </div>
  414. </div>
  415. <div class="mt8">
  416. <button name="%(account.rounding_list_action)d" icon="fa-arrow-right"
  417. type="action" string="Cash Roundings" class="btn-link"
  418. attrs="{'invisible': [('group_cash_rounding', '=', False)]}"/>
  419. </div>
  420. </div>
  421. </div>
  422. <div class="col-12 col-lg-6 o_setting_box">
  423. <div class="o_setting_left_pane">
  424. <field name="pos_set_maximum_difference" />
  425. </div>
  426. <div class="o_setting_right_pane">
  427. <label for="pos_set_maximum_difference" />
  428. <div class="text-muted">
  429. Set a maximum difference allowed between the expected and counted money during the closing of the session
  430. </div>
  431. <div class="content-group mt16" attrs="{'invisible': [('pos_set_maximum_difference', '=', False)]}">
  432. <label for="pos_amount_authorized_diff" string="Authorized Difference" class="fw-normal"/>
  433. <field name="pos_amount_authorized_diff"/>
  434. </div>
  435. </div>
  436. </div>
  437. <div class="col-12 col-lg-6 o_setting_box" attrs="{'invisible': [('pos_cash_control', '=', False)]}">
  438. <div class="o_setting_right_pane">
  439. <label for="pos_default_bill_ids" string="Coins/Bills" />
  440. <div class="text-muted">
  441. Set of coins/bills that will be used in opening and closing control
  442. </div>
  443. <div class="content-group mt16">
  444. <field name="pos_default_bill_ids" colspan="4" widget="many2many_tags" options="{'no_create_edit': True}" context="{'default_pos_config_ids':[(6, False, [pos_config_id])]}"/>
  445. </div>
  446. </div>
  447. </div>
  448. <div class="col-12 col-lg-6 o_setting_box"
  449. id="iface_tipproduct"
  450. title="This product is used as reference on customer receipts.">
  451. <div class="o_setting_left_pane">
  452. <field name="pos_iface_tipproduct" attrs="{'readonly': [('pos_has_active_session','=', True)]}"/>
  453. </div>
  454. <div class="o_setting_right_pane">
  455. <label for="pos_iface_tipproduct" string="Tips"/>
  456. <div class="text-muted">
  457. Accept customer tips or convert their change to a tip
  458. </div>
  459. <div class="content-group" attrs="{'invisible': [('pos_iface_tipproduct', '=', False)]}">
  460. <div class="mt16" id="tip_product">
  461. <label string="Tip Product" for="pos_tip_product_id" class="o_light_label"/>
  462. <field name="pos_tip_product_id"/>
  463. </div>
  464. </div>
  465. </div>
  466. </div>
  467. </div>
  468. <h2>
  469. Payment Terminals
  470. <i class="fa fa-info-circle me-1" title="Those settings are common to all PoS." pos-data-toggle="tooltip"/>
  471. </h2>
  472. <div class="row mt16 o_settings_container" id="pos_payment_terminals_section">
  473. <div class="col-12 col-lg-6 o_setting_box"
  474. id="adyen_payment_terminal_setting"
  475. title="The transactions are processed by Adyen. Set your Adyen credentials on the related payment method.">
  476. <div class="o_setting_left_pane">
  477. <field name="module_pos_adyen"/>
  478. </div>
  479. <div class="o_setting_right_pane">
  480. <label for="module_pos_adyen" string="Adyen"/>
  481. <div class="text-muted">
  482. Accept payments with an Adyen payment terminal
  483. </div>
  484. </div>
  485. </div>
  486. <div class="col-12 col-lg-6 o_setting_box"
  487. id="stripe_payment_terminal_setting"
  488. title="The transactions are processed by Stripe. Set your Stripe credentials on the related payment method.">
  489. <div class="o_setting_left_pane">
  490. <field name="module_pos_stripe"/>
  491. </div>
  492. <div class="o_setting_right_pane">
  493. <label for="module_pos_stripe" string="Stripe"/>
  494. <div class="text-muted">
  495. Accept payments with a Stripe payment terminal
  496. </div>
  497. </div>
  498. </div>
  499. <div class="col-12 col-lg-6 o_setting_box"
  500. id="vantiv_payment_terminal_setting"
  501. title="The transactions are processed by Vantiv. Set your Vantiv credentials on the related payment method.">
  502. <div class="o_setting_left_pane">
  503. <field name="module_pos_mercury"/>
  504. </div>
  505. <div class="o_setting_right_pane">
  506. <label for="module_pos_mercury" string="Vantiv (US &amp; Canada)"/>
  507. <a href="https://www.odoo.com/documentation/16.0/applications/sales/point_of_sale/payment_methods/terminals/vantiv.html" title="Documentation" class="o_doc_link" target="_blank"></a>
  508. <div class="text-muted">
  509. Accept payments with a Vantiv payment terminal
  510. </div>
  511. <div class="content-group" attrs="{'invisible': [('module_pos_mercury', '=', False)]}">
  512. <div class="mt16" id="btn_use_pos_mercury">
  513. </div>
  514. </div>
  515. </div>
  516. </div>
  517. <div class="col-12 col-lg-6 o_setting_box" title="The transactions are processed by Six. Set the IP address of the terminal on the related payment method.">
  518. <div class="o_setting_left_pane">
  519. <field name="module_pos_six"/>
  520. </div>
  521. <div class="o_setting_right_pane">
  522. <label for="module_pos_six" string="Six"/>
  523. <a href="https://www.odoo.com/documentation/16.0/applications/sales/point_of_sale/payment_methods/terminals/six.html" title="Documentation" class="o_doc_link" target="_blank"></a>
  524. <div class="text-muted">
  525. Accept payments with a Six payment terminal
  526. </div>
  527. </div>
  528. </div>
  529. </div>
  530. <h2>Connected Devices</h2>
  531. <div class="row mt16 o_settings_container" id="pos_connected_devices_section">
  532. <div class="col-12 col-lg-6 o_setting_box" id="pos_other_devices">
  533. <div class="o_setting_left_pane">
  534. <field name="pos_other_devices"/>
  535. </div>
  536. <div class="o_setting_right_pane">
  537. <label for="pos_other_devices" string="ePos Printer"/>
  538. <div class="text-muted mb16">
  539. Connect device to your PoS without an IoT Box
  540. </div>
  541. </div>
  542. </div>
  543. <div id="customer_display" class="col-12 col-lg-6 o_setting_box">
  544. <div class="o_setting_left_pane">
  545. <field name="pos_iface_customer_facing_display_local"/>
  546. </div>
  547. <div class="o_setting_right_pane">
  548. <label for="pos_iface_customer_facing_display_local" string="Customer Display"/>
  549. <div class="text-muted">
  550. Show checkout to customers through a second display
  551. </div>
  552. </div>
  553. </div>
  554. <div class="col-12 col-lg-6 o_setting_box">
  555. <div class="o_setting_left_pane">
  556. <field name="pos_is_posbox"/>
  557. </div>
  558. <div class="o_setting_right_pane">
  559. <label for="pos_is_posbox" string="IoT Box"/>
  560. <div class="text-muted mb16">
  561. Connect devices using an IoT Box
  562. </div>
  563. <div class="content-group pos_iot_config" attrs="{'invisible' : [('pos_is_posbox', '=', False)]}">
  564. <div class="row">
  565. <label string="IoT Box IP Address" for="pos_proxy_ip" class="col-lg-4 o_light_label"/>
  566. <field name="pos_proxy_ip"/>
  567. </div>
  568. <div class="row iot_barcode_scanner">
  569. <label string="Barcode Scanner/Card Reader" for="pos_iface_scan_via_proxy" class="col-lg-4 o_light_label"/>
  570. <field name="pos_iface_scan_via_proxy"/>
  571. </div>
  572. <div class="row">
  573. <label string="Electronic Scale" for="pos_iface_electronic_scale" class="col-lg-4 o_light_label"/>
  574. <field name="pos_iface_electronic_scale"/>
  575. </div>
  576. <div class="row">
  577. <label string="Receipt Printer" for="pos_iface_print_via_proxy" class="col-lg-4 o_light_label"/>
  578. <field name="pos_iface_print_via_proxy"/>
  579. </div>
  580. <div class="row" attrs="{'invisible': [('pos_iface_print_via_proxy', '=', False)]}">
  581. <label string="Cashdrawer" for="pos_iface_cashdrawer" class="col-lg-4 o_light_label"/>
  582. <field name="pos_iface_cashdrawer"/>
  583. </div>
  584. <div class="row">
  585. <label string="Customer Display" for="pos_iface_customer_facing_display_via_proxy" class="col-lg-4 o_light_label"/>
  586. <field name="pos_iface_customer_facing_display_via_proxy"/>
  587. </div>
  588. </div>
  589. </div>
  590. </div>
  591. </div>
  592. <h2>Inventory</h2>
  593. <div class="row mt16 o_settings_container" id="pos_inventory_section">
  594. <div class="col-12 col-lg-6 o_setting_box" title="Operation types show up in the Inventory dashboard.">
  595. <div class="o_setting_right_pane">
  596. <label for="pos_picking_type_id" string="Operation Type"/>
  597. <div class="text-muted">
  598. Used to record product pickings. Products are consumed from its default source location.
  599. </div>
  600. <div class="content-group mt16">
  601. <field name="pos_picking_type_id" domain="[('company_id', '=', company_id)]" attrs="{'required': [('pos_config_id', '!=', False)]}"/>
  602. </div>
  603. </div>
  604. </div>
  605. <div class="col-12 col-lg-6 o_setting_box">
  606. <div class="o_setting_left_pane">
  607. <field name="pos_ship_later"/>
  608. </div>
  609. <div class="o_setting_right_pane">
  610. <label for="pos_ship_later" string="Allow Ship Later"/>
  611. <div class="text-muted">
  612. Sell products and deliver them later.
  613. </div>
  614. <div class="mt16" attrs="{'invisible' : [('pos_ship_later', '=', False)]}">
  615. <div>
  616. <label for="pos_warehouse_id" string="Warehouse" class="fw-normal"/>
  617. <field name="pos_warehouse_id" attrs="{'required': [('pos_ship_later', '=', True)]}"/>
  618. </div>
  619. <div groups="stock.group_adv_location">
  620. <label for="pos_route_id" string="Specific route" class="fw-normal"/>
  621. <field name="pos_route_id"/>
  622. </div>
  623. <div>
  624. <label for="pos_picking_policy" class="fw-normal"/>
  625. <field name="pos_picking_policy" attrs="{'required': [('pos_ship_later', '=', True)]}"/>
  626. </div>
  627. </div>
  628. </div>
  629. </div>
  630. <div id="barcode_scanner" class="col-12 col-lg-6 o_setting_box">
  631. <div class="o_setting_left_pane">
  632. </div>
  633. <div class="o_setting_right_pane">
  634. <span class="o_form_label">Barcodes</span>
  635. <i class="fa fa-info-circle me-1" title="This setting is common to all PoS." pos-data-toggle="tooltip"/>
  636. <div class="text-muted">
  637. Use barcodes to scan products, customer cards, etc.
  638. </div>
  639. <div class="content-group mt16 row">
  640. <label for="barcode_nomenclature_id" string="Barcode Nomenclature" class="col-lg-3 o_light_label"/>
  641. <field name="barcode_nomenclature_id"/>
  642. </div>
  643. </div>
  644. </div>
  645. <div class="col-12 col-lg-6 o_setting_box" id="update_quantities_stock_setting" groups="base.group_no_one">
  646. <div class="o_setting_right_pane">
  647. <div>
  648. <label string="Inventory Management" for="update_stock_quantities"/>
  649. <span class="fa fa-lg fa-building-o" title="Values set here are company-specific." aria-label="Values set here are company-specific." groups="base.group_multi_company" role="img"/>
  650. <div class="text-muted">
  651. Update quantities in stock
  652. </div>
  653. <div class="content-group mt16 o_light_label">
  654. <field name="update_stock_quantities" colspan="4" nolabel="1" widget="radio"/>
  655. </div>
  656. </div>
  657. </div>
  658. </div>
  659. </div>
  660. <h2 groups="base.group_no_one">Technical</h2>
  661. <div class="row mt16 o_settings_container" id="pos_technical_section" groups="base.group_no_one">
  662. <div class="col-12 col-lg-6 o_setting_box">
  663. <div class="o_setting_left_pane">
  664. <field name="pos_limited_products_loading"/>
  665. </div>
  666. <div class="o_setting_right_pane">
  667. <label for="pos_limited_products_loading" string="Limited Products Loading"/>
  668. <div class="text-muted">
  669. Only load most common products at the opening of the PoS.
  670. </div>
  671. <div class="content-group mt16" attrs="{'invisible' : [('pos_limited_products_loading', '=', False)]}">
  672. <div class="row">
  673. <label for="pos_limited_products_amount" string="Number of Products Loaded" class="col-lg-3 o_light_label"/>
  674. <field name="pos_limited_products_amount" class="oe_inline"/>
  675. </div>
  676. <div class="mt8">
  677. <field name="pos_product_load_background" class="oe_inline" />
  678. <label for="pos_product_load_background" string="Load all remaining products in the background" />
  679. </div>
  680. </div>
  681. </div>
  682. </div>
  683. <div class="col-12 col-lg-6 o_setting_box">
  684. <div class="o_setting_left_pane">
  685. <field name="pos_limited_partners_loading"/>
  686. </div>
  687. <div class="o_setting_right_pane">
  688. <label for="pos_limited_partners_loading" string="Limited Partners Loading"/>
  689. <div class="text-muted">
  690. Only load a limited number of customers at the opening of the PoS.
  691. </div>
  692. <div class="content-group mt16" attrs="{'invisible' : [('pos_limited_partners_loading', '=', False)]}">
  693. <div class="row">
  694. <label for="pos_limited_partners_amount" string="Number of Partners Loaded" class="col-lg-3 o_light_label"/>
  695. <field name="pos_limited_partners_amount" class="oe_inline"/>
  696. </div>
  697. <div class="mt8">
  698. <field name="pos_partner_load_background" class="oe_inline" />
  699. <label for="pos_partner_load_background" string="Load all remaining partners in the background" />
  700. </div>
  701. </div>
  702. </div>
  703. </div>
  704. </div>
  705. </div>
  706. </div>
  707. </xpath>
  708. </field>
  709. </record>
  710. </odoo>