Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- odoo.define('module_name.models', function (require) {
- var gui = require('point_of_sale.gui');
- var screens = require('point_of_sale.screens');
- var core = require('web.core');
- var qweb = core.qweb;
- var syncing = require('client_get_notify');
- var Model = require('web.Model');
- var chrome = require('point_of_sale.chrome');
- var models = require('point_of_sale.models');
- var _t = core._t;
- //Add field to load models
- models.load_fields('product.product', ['price']);
- models.load_fields('model_name', ['new field']);
- //Load new models
- models.load_models({
- model: 'category.mapping.line',
- fields: ['categ_ids', 'next_pos_config_id','ip_address','config_id',],
- domain: function(self){ return [['config_id','=',self.config.id]]; },
- loaded: function(self, category_mappings){
- self.category_mappings = category_mappings
- self.next_screen_by_categ = {}
- for (var i = 0; i < category_mappings.length; i++) {
- for (var j = 0; j < category_mappings[i].categ_ids.length; j++) {
- self.next_screen_by_categ[category_mappings[i].categ_ids[j]] = category_mappings[i].next_pos_config_id;
- }
- }
- },
- });
- //Send message to bus
- this.pos_bus.push_message_to_other_sessions({
- action: 'sync_next_screen',
- data: {
- uid: line.uid,
- next_screen: line.next_screen,
- summary_screen: line.summary_screen,
- popup_option: 'Transfer Out',
- reward: line.reward
- },
- order: line.export_as_JSON(),
- bus_id: this.config.bus_id[0],
- });
- //Call function python in model
- new Model("pos.sales.order").call("confirm_sale",
- [line.order.uid], {}).then(function (results) {
- console.log('Confirm order: ', results);
- });
- //Inherit screen
- var kitchen_screen = null
- for (var index in gui.Gui.prototype.screen_classes) {
- if(gui.Gui.prototype.screen_classes[index].name=='kitchen_screen'){
- kitchen_screen =gui.Gui.prototype.screen_classes[index].widget
- gui.Gui.prototype.screen_classes.splice(index, 1);
- }
- }
- var KitchenScreenWidget = kitchen_screen.extend({
- renderElement: function () {
- },
- });
- gui.define_screen({
- 'name': 'kitchen_screen',
- 'widget': KitchenScreenWidget,
- });
- var model_list = models.PosModel.prototype.models
- var _t = core._t;
- var _super_posmodel = models.PosModel.prototype;
- //--Fetching product model dictionary--
- models.load_fields('product.product',['qty_available','virtual_available','outgoing_qty','type']);
- var product_model = null;
- for(var i = 0,len = model_list.length;i<len;i++){
- if(model_list[i].model == "product.product"){
- product_model = model_list[i];
- break;
- }
- }
- //--Updating product model dictionary--
- var super_product_loaded = product_model.loaded;
- product_model.context= function(self){ return { pricelist: self.pricelist.id, display_default_code: false ,location: self.config.stock_location_id[0]}; },
- product_model.loaded = function(self,products){
- if(self.config.wk_hide_out_of_stock){
- var available_product = [];
- for(var i = 0,len = products.length; i<len; i++){
- switch(self.config.wk_stock_type){
- case'forecasted_qty':
- if(products[i].virtual_available>0||products[i].type == 'service')
- available_product.push(products[i]);
- break;
- case'virtual_qty':
- if((products[i].qty_available-products[i].outgoing_qty)>0||products[i].type == 'service')
- available_product.push(products[i]);
- break;
- default:
- if(products[i].qty_available>0||products[i].type == 'service')
- available_product.push(products[i]);
- }
- }
- products = available_product;
- }
- var results={}
- for(var i = 0,len=products.length;i<len;i++){
- switch(self.config.wk_stock_type){
- case'available_qty':
- results[products[i].id]=products[i].qty_available
- break;
- case'forecasted_qty':
- results[products[i].id]=products[i].virtual_available
- break;
- default:
- results[products[i].id]=products[i].qty_available-products[i].outgoing_qty
- }
- }
- self.set({'wk_product_qtys' : results});
- self.chrome.wk_change_qty_css();
- super_product_loaded.call(this,self,products);
- },
- })
Add Comment
Please, Sign In to add comment