summaryrefslogtreecommitdiff
path: root/addons/l10n_co_pos
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/l10n_co_pos
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/l10n_co_pos')
-rw-r--r--addons/l10n_co_pos/__init__.py0
-rw-r--r--addons/l10n_co_pos/__manifest__.py22
-rw-r--r--addons/l10n_co_pos/static/src/js/PaymentScreen.js31
-rw-r--r--addons/l10n_co_pos/static/src/js/pos.js32
-rw-r--r--addons/l10n_co_pos/static/src/xml/pos.xml11
-rw-r--r--addons/l10n_co_pos/views/templates.xml11
-rw-r--r--addons/l10n_co_pos/views/views.xml18
7 files changed, 125 insertions, 0 deletions
diff --git a/addons/l10n_co_pos/__init__.py b/addons/l10n_co_pos/__init__.py
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/addons/l10n_co_pos/__init__.py
diff --git a/addons/l10n_co_pos/__manifest__.py b/addons/l10n_co_pos/__manifest__.py
new file mode 100644
index 00000000..1262a276
--- /dev/null
+++ b/addons/l10n_co_pos/__manifest__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+{
+ 'name': 'Colombian - Point of Sale',
+ 'version': '1.0',
+ 'description': """Colombian - Point of Sale""",
+ 'category': 'Accounting/Localizations/Point of Sale',
+ 'auto_install': True,
+ 'depends': [
+ 'l10n_co',
+ 'point_of_sale'
+ ],
+ 'data': [
+ 'views/templates.xml',
+ 'views/views.xml'
+ ],
+ 'qweb': [
+ 'static/src/xml/pos.xml'
+ ],
+ 'license': 'LGPL-3',
+}
diff --git a/addons/l10n_co_pos/static/src/js/PaymentScreen.js b/addons/l10n_co_pos/static/src/js/PaymentScreen.js
new file mode 100644
index 00000000..d7b90711
--- /dev/null
+++ b/addons/l10n_co_pos/static/src/js/PaymentScreen.js
@@ -0,0 +1,31 @@
+odoo.define('l10n_co_pos.PaymentScreen', function(require) {
+ 'use strict';
+
+ const PaymentScreen = require('point_of_sale.PaymentScreen');
+ const Registries = require('point_of_sale.Registries');
+ const session = require('web.session');
+
+ const L10nCoPosPaymentScreen = PaymentScreen =>
+ class extends PaymentScreen {
+ async _postPushOrderResolve(order, order_server_ids) {
+ try {
+ if (this.env.pos.is_colombian_country()) {
+ const result = await this.rpc({
+ model: 'pos.order',
+ method: 'search_read',
+ domain: [['id', 'in', order_server_ids]],
+ fields: ['name'],
+ context: session.user_context,
+ });
+ order.set_l10n_co_dian(result[0].name || false);
+ }
+ } finally {
+ return super._postPushOrderResolve(...arguments);
+ }
+ }
+ };
+
+ Registries.Component.extend(PaymentScreen, L10nCoPosPaymentScreen);
+
+ return PaymentScreen;
+});
diff --git a/addons/l10n_co_pos/static/src/js/pos.js b/addons/l10n_co_pos/static/src/js/pos.js
new file mode 100644
index 00000000..ff07dae1
--- /dev/null
+++ b/addons/l10n_co_pos/static/src/js/pos.js
@@ -0,0 +1,32 @@
+odoo.define('l10n_co_pos.pos', function (require) {
+"use strict";
+
+var models = require('point_of_sale.models');
+
+models.PosModel = models.PosModel.extend({
+ is_colombian_country: function () {
+ return this.company.country.code === 'CO';
+ },
+});
+
+var _super_order = models.Order.prototype;
+models.Order = models.Order.extend({
+ export_for_printing: function () {
+ var result = _super_order.export_for_printing.apply(this, arguments);
+ result.l10n_co_dian = this.get_l10n_co_dian();
+ return result;
+ },
+ set_l10n_co_dian: function (l10n_co_dian) {
+ this.l10n_co_dian = l10n_co_dian;
+ },
+ get_l10n_co_dian: function () {
+ return this.l10n_co_dian;
+ },
+ wait_for_push_order: function () {
+ var result = _super_order.wait_for_push_order.apply(this, arguments);
+ result = Boolean(result || this.pos.is_colombian_country());
+ return result;
+ }
+});
+
+});
diff --git a/addons/l10n_co_pos/static/src/xml/pos.xml b/addons/l10n_co_pos/static/src/xml/pos.xml
new file mode 100644
index 00000000..6cc28add
--- /dev/null
+++ b/addons/l10n_co_pos/static/src/xml/pos.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<templates id="template" xml:space="preserve">
+ <t t-name="OrderReceipt" t-inherit="point_of_sale.OrderReceipt" t-inherit-mode="extension" owl="1">
+ <xpath expr="//div[hasclass('pos-receipt-order-data')]" position="inside">
+ <t t-if="receipt.l10n_co_dian !== false">
+ <div style="word-wrap:break-word;"><t t-esc="receipt.l10n_co_dian"/></div>
+ </t>
+ </xpath>
+ </t>
+</templates>
diff --git a/addons/l10n_co_pos/views/templates.xml b/addons/l10n_co_pos/views/templates.xml
new file mode 100644
index 00000000..5e38a119
--- /dev/null
+++ b/addons/l10n_co_pos/views/templates.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <template id="assets" inherit_id="point_of_sale.assets">
+ <xpath expr="." position="inside">
+ <script type="text/javascript" src="/l10n_co_pos/static/src/js/pos.js"></script>
+ <script type="text/javascript" src="/l10n_co_pos/static/src/js/PaymentScreen.js"></script>
+ </xpath>
+ </template>
+
+</odoo>
diff --git a/addons/l10n_co_pos/views/views.xml b/addons/l10n_co_pos/views/views.xml
new file mode 100644
index 00000000..27bb5db6
--- /dev/null
+++ b/addons/l10n_co_pos/views/views.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<odoo>
+
+ <record id="pos_config_view_form" model="ir.ui.view">
+ <field name="name">pos.config.form.view.inherit.l10n_co_pos</field>
+ <field name="model">pos.config</field>
+ <field name="inherit_id" ref="point_of_sale.pos_config_view_form"/>
+ <field name="arch" type="xml">
+ <xpath expr="//div[@id='order_reference']" position="attributes">
+ <attribute name="groups"></attribute>
+ </xpath>
+ <xpath expr="//field[@name='sequence_id']" position="attributes">
+ <attribute name="readonly">0</attribute>
+ </xpath>
+ </field>
+ </record>
+
+</odoo>