Mohamed Shaban18 نشر الأحد في 09:38 أرسل تقرير نشر الأحد في 09:38 فى نسخه اودو الكومينتي تحديد فى موديول نقطه البيع اريد وضع خيارات اضافيه داخل الجلسه نفسها مثلا 1 - اريد عمل خيارات قبل انشاء الطلب اما ان يكون استلام من الفرع او توصيل الى المنزل 2 - اذا كان توصيل الي المنزل اريد اضافه عنوان العميل وايضا اسم عامل التوصيل ويضا رسوم التوصيل 1 اقتباس
0 بلال زيادة نشر الأحد في 09:59 أرسل تقرير نشر الأحد في 09:59 إضافة خيار قبل إنشاء الطلب (استلام من الفرع أو توصيل إلى المنزل) لإضافة خيار لتحديد نوع الطلب (استلام من الفرع أو توصيل) قبل إنشاء الطلب في جلسة نقطة البيع، يمكنك استخدام إضافة مخصصة (Custom Module) لتعديل واجهة المستخدم وسلوك النظام. قم بإنشاء موديول جديد في مجلد الـ addons الخاص بـ Odoo. قم بإنشاء الهيكلية التالية للموديول custom_pos_delivery/ ├── __init__.py ├── __manifest__.py ├── models/ │ ├── __init__.py │ ├── pos_order.py ├── static/ │ ├── src/ │ ├── js/ │ ├── xml/ └── views/ ├── pos_templates.xml عداد ملف __manifest__.py { 'name': 'Custom POS Delivery and Pickup', 'version': '1.0', 'depends': ['point_of_sale'], 'data': [ 'views/pos_templates.xml', ], 'assets': { 'point_of_sale.assets': [ 'custom_pos_delivery/static/src/js/*.js', 'custom_pos_delivery/static/src/xml/*.xml', ], }, } تعديل واجهة المستخدم (JavaScript وXML) في static/src/xml/pos_templates.xml، أضف زرين أو قائمة منسدلة لتحديد نوع الطلب (استلام أو توصيل) في واجهة نقطة البيع. <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <div class="order-type-selector"> <label>Order Type:</label> <select class="order-type" onchange="setOrderType(this)"> <option value="pickup">Pickup</option> <option value="delivery">Delivery</option> </select> </div> </t> </t> في static/src/js/pos_delivery.js، أضف منطقًا لتخزين نوع الطلب في جلسة نقطة البيع odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; // Default value }, set_order_type: function(type) { this.order_type = type; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; return json; }, }); return models; }); تعديل نموذج pos.order في Python في models/pos_order.py، أضف حقلًا لتخزين نوع الطلب from odoo import fields, models class PosOrder(models.Model): _inherit = 'pos.order' order_type = fields.Selection([ ('pickup', 'Pickup'), ('delivery', 'Delivery') ], string='Order Type', default='pickup') قم بتثبيت الموديول الجديد من خلال واجهة Odoo (Apps > Update Apps List > Install). تأكد من تمكين وضع المطور (Developer Mode) لتسهيل التعديلات. إضافة عنوان العميل، اسم عامل التوصيل، ورسوم التوصيل إذا تم اختيار "توصيل إلى المنزل"، يمكنك إضافة حقول لإدخال عنوان العميل، اسم عامل التوصيل، ورسوم التوصيل. إضافة حقول إضافية إلى نموذج pos.order في models/pos_order.py، أضف الحقول التالية from odoo import fields, models class PosOrder(models.Model): _inherit = 'pos.order' order_type = fields.Selection([ ('pickup', 'Pickup'), ('delivery', 'Delivery') ], string='Order Type', default='pickup') delivery_address = fields.Char(string='Delivery Address') delivery_person = fields.Char(string='Delivery Person') delivery_fee = fields.Float(string='Delivery Fee') تعديل واجهة نقطة البيع لإدخال التفاصيل في static/src/xml/pos_templates.xml، أضف حقول إدخال تظهر عند اختيار "توصيل" <t t-extend="PaymentScreenWidget"> <t t-jquery=".paymentlines" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-details"> <label>Delivery Address:</label> <input type="text" class="delivery-address"/> <label>Delivery Person:</label> <input type="text" class="delivery-person"/> <label>Delivery Fee:</label> <input type="number" class="delivery-fee"/> </div> </t> </t> </t> في static/src/js/pos_delivery.js، أضف منطقًا لحفظ بيانات التوصيل odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type', 'delivery_address', 'delivery_person', 'delivery_fee']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; this.delivery_address = ''; this.delivery_person = ''; this.delivery_fee = 0.0; }, set_delivery_details: function(address, person, fee) { this.delivery_address = address; this.delivery_person = person; this.delivery_fee = parseFloat(fee) || 0.0; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; json.delivery_address = this.delivery_address; json.delivery_person = this.delivery_person; json.delivery_fee = this.delivery_fee; return json; }, }); return models; }); إذا كنت تريد إضافة رسوم التوصيل كعنصر في الفاتورة، قم بإنشاء منتج افتراضي في Odoo يسمى "رسوم التوصيل" (Delivery Fee) وقم بإضافته تلقائيًا إلى الطلب عند اختيار التوصيل في static/src/js/pos_delivery.js، أضف منطقًا لإضافة المنتج var _super_posmodel = PosModel.prototype; models.PosModel = models.PosModel.extend({ initialize: function() { _super_posmodel.initialize.apply(this, arguments); this.on('change:order_type', this, this.add_delivery_fee); }, add_delivery_fee: function(order) { if (order.order_type === 'delivery') { var delivery_product = this.db.get_product_by_id(DELIVERY_PRODUCT_ID); // استبدل بمعرف المنتج if (delivery_product) { order.add_product(delivery_product, { price: order.delivery_fee }); } } }, }); قم بتعديل قالب الإيصال في pos_templates.xml لإظهار عنوان التوصيل، اسم عامل التوصيل، ورسوم التوصيل <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-info"> <p>Delivery Address: <t t-esc="order.delivery_address"/></p> <p>Delivery Person: <t t-esc="order.delivery_person"/></p> <p>Delivery Fee: <t t-esc="order.delivery_fee"/></p> </div> </t> </t> </t> إذا كنت تريد تحديد عامل التوصيل من قائمة موظفين، يمكنك إضافة حقل مرتبط بنموذج hr.employee class PosOrder(models.Model): _inherit = 'pos.order' delivery_person_id = fields.Many2one('hr.employee', string='Delivery Person') أو يمكنك إضافة جاهزة من Odoo Apps Store إذا كنت لا ترغب في تطوير موديول مخصص بنفسك، يمكنك استخدام إضافة مثل "POS TakeAway Order" من Odoo Apps Store، والتي تدعم إدارة الطلبات الخارجية وتفاصيل التوصيل. 1 اقتباس
0 Mohamed Shaban18 نشر منذ 22 ساعة الكاتب أرسل تقرير نشر منذ 22 ساعة بتاريخ 20 ساعة قال بلال زيادة: إضافة خيار قبل إنشاء الطلب (استلام من الفرع أو توصيل إلى المنزل) لإضافة خيار لتحديد نوع الطلب (استلام من الفرع أو توصيل) قبل إنشاء الطلب في جلسة نقطة البيع، يمكنك استخدام إضافة مخصصة (Custom Module) لتعديل واجهة المستخدم وسلوك النظام. قم بإنشاء موديول جديد في مجلد الـ addons الخاص بـ Odoo. قم بإنشاء الهيكلية التالية للموديول custom_pos_delivery/ ├── __init__.py ├── __manifest__.py ├── models/ │ ├── __init__.py │ ├── pos_order.py ├── static/ │ ├── src/ │ ├── js/ │ ├── xml/ └── views/ ├── pos_templates.xml عداد ملف __manifest__.py { 'name': 'Custom POS Delivery and Pickup', 'version': '1.0', 'depends': ['point_of_sale'], 'data': [ 'views/pos_templates.xml', ], 'assets': { 'point_of_sale.assets': [ 'custom_pos_delivery/static/src/js/*.js', 'custom_pos_delivery/static/src/xml/*.xml', ], }, } تعديل واجهة المستخدم (JavaScript وXML) في static/src/xml/pos_templates.xml، أضف زرين أو قائمة منسدلة لتحديد نوع الطلب (استلام أو توصيل) في واجهة نقطة البيع. <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <div class="order-type-selector"> <label>Order Type:</label> <select class="order-type" onchange="setOrderType(this)"> <option value="pickup">Pickup</option> <option value="delivery">Delivery</option> </select> </div> </t> </t> في static/src/js/pos_delivery.js، أضف منطقًا لتخزين نوع الطلب في جلسة نقطة البيع odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; // Default value }, set_order_type: function(type) { this.order_type = type; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; return json; }, }); return models; }); تعديل نموذج pos.order في Python في models/pos_order.py، أضف حقلًا لتخزين نوع الطلب from odoo import fields, models class PosOrder(models.Model): _inherit = 'pos.order' order_type = fields.Selection([ ('pickup', 'Pickup'), ('delivery', 'Delivery') ], string='Order Type', default='pickup') قم بتثبيت الموديول الجديد من خلال واجهة Odoo (Apps > Update Apps List > Install). تأكد من تمكين وضع المطور (Developer Mode) لتسهيل التعديلات. إضافة عنوان العميل، اسم عامل التوصيل، ورسوم التوصيل إذا تم اختيار "توصيل إلى المنزل"، يمكنك إضافة حقول لإدخال عنوان العميل، اسم عامل التوصيل، ورسوم التوصيل. إضافة حقول إضافية إلى نموذج pos.order في models/pos_order.py، أضف الحقول التالية from odoo import fields, models class PosOrder(models.Model): _inherit = 'pos.order' order_type = fields.Selection([ ('pickup', 'Pickup'), ('delivery', 'Delivery') ], string='Order Type', default='pickup') delivery_address = fields.Char(string='Delivery Address') delivery_person = fields.Char(string='Delivery Person') delivery_fee = fields.Float(string='Delivery Fee') تعديل واجهة نقطة البيع لإدخال التفاصيل في static/src/xml/pos_templates.xml، أضف حقول إدخال تظهر عند اختيار "توصيل" <t t-extend="PaymentScreenWidget"> <t t-jquery=".paymentlines" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-details"> <label>Delivery Address:</label> <input type="text" class="delivery-address"/> <label>Delivery Person:</label> <input type="text" class="delivery-person"/> <label>Delivery Fee:</label> <input type="number" class="delivery-fee"/> </div> </t> </t> </t> في static/src/js/pos_delivery.js، أضف منطقًا لحفظ بيانات التوصيل odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type', 'delivery_address', 'delivery_person', 'delivery_fee']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; this.delivery_address = ''; this.delivery_person = ''; this.delivery_fee = 0.0; }, set_delivery_details: function(address, person, fee) { this.delivery_address = address; this.delivery_person = person; this.delivery_fee = parseFloat(fee) || 0.0; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; json.delivery_address = this.delivery_address; json.delivery_person = this.delivery_person; json.delivery_fee = this.delivery_fee; return json; }, }); return models; }); إذا كنت تريد إضافة رسوم التوصيل كعنصر في الفاتورة، قم بإنشاء منتج افتراضي في Odoo يسمى "رسوم التوصيل" (Delivery Fee) وقم بإضافته تلقائيًا إلى الطلب عند اختيار التوصيل في static/src/js/pos_delivery.js، أضف منطقًا لإضافة المنتج var _super_posmodel = PosModel.prototype; models.PosModel = models.PosModel.extend({ initialize: function() { _super_posmodel.initialize.apply(this, arguments); this.on('change:order_type', this, this.add_delivery_fee); }, add_delivery_fee: function(order) { if (order.order_type === 'delivery') { var delivery_product = this.db.get_product_by_id(DELIVERY_PRODUCT_ID); // استبدل بمعرف المنتج if (delivery_product) { order.add_product(delivery_product, { price: order.delivery_fee }); } } }, }); قم بتعديل قالب الإيصال في pos_templates.xml لإظهار عنوان التوصيل، اسم عامل التوصيل، ورسوم التوصيل <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-info"> <p>Delivery Address: <t t-esc="order.delivery_address"/></p> <p>Delivery Person: <t t-esc="order.delivery_person"/></p> <p>Delivery Fee: <t t-esc="order.delivery_fee"/></p> </div> </t> </t> </t> إذا كنت تريد تحديد عامل التوصيل من قائمة موظفين، يمكنك إضافة حقل مرتبط بنموذج hr.employee class PosOrder(models.Model): _inherit = 'pos.order' delivery_person_id = fields.Many2one('hr.employee', string='Delivery Person') أو يمكنك إضافة جاهزة من Odoo Apps Store إذا كنت لا ترغب في تطوير موديول مخصص بنفسك، يمكنك استخدام إضافة مثل "POS TakeAway Order" من Odoo Apps Store، والتي تدعم إدارة الطلبات الخارجية وتفاصيل التوصيل. لم نضع كود فى ملف views\pos_templates.xml ولذالك لم يتم التثبيت بسبب انه فارغ بتاريخ 19 ساعة قال بلال زيادة: اقتباس
0 بلال زيادة نشر منذ 22 ساعة أرسل تقرير نشر منذ 22 ساعة بتاريخ 16 دقائق مضت قال Mohamed Shaban18: لم نضع كود فى ملف views\pos_templates.xml ولذالك لم يتم التثبيت بسبب انه فارغ يجب التأكد من أن ملف views/pos_templates.xml يحتوي على تعليمات XML صالحة لتعديل واجهة نقطة البيع (POS) كما هو مطلوب أضف الكود التالي إلى ملف views/pos_templates.xml لتعديل واجهة نقطة البيع بحيث تتضمن خيار تحديد نوع الطلب (استلام أو توصيل) وحقول التوصيل (عنوان، عامل التوصيل، رسوم التوصيل). <?xml version="1.0" encoding="UTF-8"?> <templates id="template" xml:space="preserve"> <!-- تعديل شاشة الإيصال لإضافة خيار نوع الطلب --> <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <div class="order-type-selector"> <label>Order Type:</label> <select class="order-type" onchange="setOrderType(this)"> <option value="pickup">Pickup</option> <option value="delivery">Delivery</option> </select> </div> <!-- إضافة تفاصيل التوصيل إذا تم اختيار التوصيل --> <t t-if="order.order_type == 'delivery'"> <div class="delivery-info"> <p>Delivery Address: <t t-esc="order.delivery_address"/></p> <p>Delivery Person: <t t-esc="order.delivery_person"/></p> <p>Delivery Fee: <t t-esc="order.delivery_fee"/></p> </div> </t> </t> </t> <!-- تعديل شاشة الدفع لإضافة حقول إدخال تفاصيل التوصيل --> <t t-extend="PaymentScreenWidget"> <t t-jquery=".paymentlines" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-details"> <label>Delivery Address:</label> <input type="text" class="delivery-address"/> <label>Delivery Person:</label> <input type="text" class="delivery-person"/> <label>Delivery Fee:</label> <input type="number" class="delivery-fee"/> </div> </t> </t> </t> </templates> تأكد من أن ملف __manifest__.py يشير إلى ملف views/pos_templates.xml بشكل صحيح وأن الأصول (assets) تشمل الملفات في static/src/js وstatic/src/xml إذا كنت تستخدم ملفات JavaScript أو XML إضافية في تلك المجلدات. الكود الذي قدمته في __manifest__.py يبدو صحيحًا، لكن دعنا نتحقق منه. { 'name': 'Custom POS Delivery and Pickup', 'version': '1.0', 'depends': ['point_of_sale'], 'data': [ 'views/pos_templates.xml', ], 'assets': { 'point_of_sale.assets': [ 'custom_pos_delivery/static/src/js/*.js', ], }, } الكود التالي يجب أن يكون موجودًا في static/src/js/pos_delivery.js odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type', 'delivery_address', 'delivery_person', 'delivery_fee']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; this.delivery_address = ''; this.delivery_person = ''; this.delivery_fee = 0.0; }, set_order_type: function(type) { this.order_type = type; this.trigger('change', this); }, set_delivery_details: function(address, person, fee) { this.delivery_address = address; this.delivery_person = person; this.delivery_fee = parseFloat(fee) || 0.0; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; json.delivery_address = this.delivery_address; json.delivery_person = this.delivery_person; json.delivery_fee = this.delivery_fee; return json; }, }); var _super_posmodel = PosModel.prototype; models.PosModel = models.PosModel.extend({ initialize: function() { _super_posmodel.initialize.apply(this, arguments); this.on('change:order_type', this, this.add_delivery_fee); }, add_delivery_fee: function(order) { if (order.order_type === 'delivery') { var delivery_product = this.db.get_product_by_id(DELIVERY_PRODUCT_ID); // استبدل بمعرف المنتج if (delivery_product) { order.add_product(delivery_product, { price: order.delivery_fee }); } } }, }); return models; }); 1 اقتباس
0 Mohamed Shaban18 نشر منذ 17 ساعة الكاتب أرسل تقرير نشر منذ 17 ساعة بتاريخ 5 ساعة قال بلال زيادة: يجب التأكد من أن ملف views/pos_templates.xml يحتوي على تعليمات XML صالحة لتعديل واجهة نقطة البيع (POS) كما هو مطلوب أضف الكود التالي إلى ملف views/pos_templates.xml لتعديل واجهة نقطة البيع بحيث تتضمن خيار تحديد نوع الطلب (استلام أو توصيل) وحقول التوصيل (عنوان، عامل التوصيل، رسوم التوصيل). <?xml version="1.0" encoding="UTF-8"?> <templates id="template" xml:space="preserve"> <!-- تعديل شاشة الإيصال لإضافة خيار نوع الطلب --> <t t-extend="PosTicket"> <t t-jquery=".pos-receipt" t-operation="after"> <div class="order-type-selector"> <label>Order Type:</label> <select class="order-type" onchange="setOrderType(this)"> <option value="pickup">Pickup</option> <option value="delivery">Delivery</option> </select> </div> <!-- إضافة تفاصيل التوصيل إذا تم اختيار التوصيل --> <t t-if="order.order_type == 'delivery'"> <div class="delivery-info"> <p>Delivery Address: <t t-esc="order.delivery_address"/></p> <p>Delivery Person: <t t-esc="order.delivery_person"/></p> <p>Delivery Fee: <t t-esc="order.delivery_fee"/></p> </div> </t> </t> </t> <!-- تعديل شاشة الدفع لإضافة حقول إدخال تفاصيل التوصيل --> <t t-extend="PaymentScreenWidget"> <t t-jquery=".paymentlines" t-operation="after"> <t t-if="order.order_type == 'delivery'"> <div class="delivery-details"> <label>Delivery Address:</label> <input type="text" class="delivery-address"/> <label>Delivery Person:</label> <input type="text" class="delivery-person"/> <label>Delivery Fee:</label> <input type="number" class="delivery-fee"/> </div> </t> </t> </t> </templates> تأكد من أن ملف __manifest__.py يشير إلى ملف views/pos_templates.xml بشكل صحيح وأن الأصول (assets) تشمل الملفات في static/src/js وstatic/src/xml إذا كنت تستخدم ملفات JavaScript أو XML إضافية في تلك المجلدات. الكود الذي قدمته في __manifest__.py يبدو صحيحًا، لكن دعنا نتحقق منه. { 'name': 'Custom POS Delivery and Pickup', 'version': '1.0', 'depends': ['point_of_sale'], 'data': [ 'views/pos_templates.xml', ], 'assets': { 'point_of_sale.assets': [ 'custom_pos_delivery/static/src/js/*.js', ], }, } الكود التالي يجب أن يكون موجودًا في static/src/js/pos_delivery.js odoo.define('custom_pos_delivery.pos_delivery', function(require) { 'use strict'; var models = require('point_of_sale.models'); var PosModel = models.PosModel; models.load_fields('pos.order', ['order_type', 'delivery_address', 'delivery_person', 'delivery_fee']); var _super_order = models.Order.prototype; models.Order = models.Order.extend({ initialize: function() { _super_order.initialize.apply(this, arguments); this.order_type = 'pickup'; this.delivery_address = ''; this.delivery_person = ''; this.delivery_fee = 0.0; }, set_order_type: function(type) { this.order_type = type; this.trigger('change', this); }, set_delivery_details: function(address, person, fee) { this.delivery_address = address; this.delivery_person = person; this.delivery_fee = parseFloat(fee) || 0.0; this.trigger('change', this); }, export_as_JSON: function() { var json = _super_order.export_as_JSON.apply(this, arguments); json.order_type = this.order_type; json.delivery_address = this.delivery_address; json.delivery_person = this.delivery_person; json.delivery_fee = this.delivery_fee; return json; }, }); var _super_posmodel = PosModel.prototype; models.PosModel = models.PosModel.extend({ initialize: function() { _super_posmodel.initialize.apply(this, arguments); this.on('change:order_type', this, this.add_delivery_fee); }, add_delivery_fee: function(order) { if (order.order_type === 'delivery') { var delivery_product = this.db.get_product_by_id(DELIVERY_PRODUCT_ID); // استبدل بمعرف المنتج if (delivery_product) { order.add_product(delivery_product, { price: order.delivery_fee }); } } }, }); return models; }); ظهر لى هذا الخطا RPC_ERROR Odoo Server Error Traceback (most recent call last): File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\addons\base\models\ir_http.py", line 242, in _dispatch result = request.dispatch() File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 702, in dispatch result = self._call_function(**self.params) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 368, in _call_function return checked_call(self.db, *args, **kwargs) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\service\model.py", line 94, in wrapper return f(dbname, *args, **kwargs) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 357, in checked_call result = self.endpoint(*a, **kw) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 925, in __call__ return self.method(*args, **kw) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 546, in response_wrap response = f(*args, **kw) File "c:\users\fula\desktop\ready\ready\odoo\addons\web\controllers\main.py", line 1328, in call_button action = self._call_kw(model, method, args, kwargs) File "c:\users\fula\desktop\ready\ready\odoo\addons\web\controllers\main.py", line 1316, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\api.py", line 471, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\api.py", line 456, in _call_kw_multi result = method(recs, *args, **kwargs) File "C:\Users\fula\AppData\Local\Programs\Python\Python310\lib\site-packages\decorator.py", line 232, in fun return caller(func, *(extras + args), **kw) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\addons\base\models\ir_module.py", line 72, in check_and_log return method(self, *args, **kwargs) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\addons\base\models\ir_module.py", line 470, in button_immediate_install return self._button_immediate_function(self.env.registry[self._name].button_install) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\addons\base\models\ir_module.py", line 587, in _button_immediate_function registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\modules\registry.py", line 87, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\modules\loading.py", line 474, in load_modules processed_modules += load_marked_modules(cr, graph, File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\modules\loading.py", line 363, in load_marked_modules loaded, processed = load_module_graph( File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\modules\loading.py", line 222, in load_module_graph load_data(cr, idref, mode, kind='data', package=package) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\modules\loading.py", line 69, in load_data tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\tools\convert.py", line 748, in convert_file convert_xml_import(cr, module, fp, idref, mode, noupdate) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\tools\convert.py", line 797, in convert_xml_import relaxng.assert_(doc) File "src\lxml\etree.pyx", line 3650, in lxml.etree._Validator.assert_ Exception The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 658, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "C:\Users\fula\Desktop\ready\ready\odoo\odoo\http.py", line 301, in _handle_exception raise exception.with_traceback(None) from new_cause AssertionError: Document does not comply with schema اقتباس
السؤال
Mohamed Shaban18
فى نسخه اودو الكومينتي تحديد فى موديول نقطه البيع اريد وضع خيارات اضافيه داخل الجلسه نفسها مثلا
1 - اريد عمل خيارات قبل انشاء الطلب اما ان يكون استلام من الفرع او توصيل الى المنزل
2 - اذا كان توصيل الي المنزل اريد اضافه عنوان العميل وايضا اسم عامل التوصيل ويضا رسوم التوصيل
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.