I have written Company Address<br />
<t t-esc="widget.pos.company.street"/>, <t t-esc="widget.pos.company.street2"/><br />
<t t-esc="widget.pos.company.city"/>, <t t-esc="widget.pos.company.zip"/><br /> this code in pos.xml in posticket template. But these information not showing in pos receipt. Just it is showing "camas". My company has the proper info of street, street2, city, zip. Company name and phone showing well.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
- CRM
- e-Commerce
- Accounting
- Inventory
- PoS
- Project management
- MRP
This question has been flagged
Hi Samba
You will need to add those fields to the models (point_of_sale/static/src/js/models.js)
{
//Custom, logo added as an example. Load what you need here.
model: 'res.company',
fields: [ 'currency_id', 'email', 'website', 'company_registry', 'vat', 'name', 'phone', 'partner_id' , 'country_id', 'logo'],
domain: function(self){ return [['id','=',self.user.company_id[0]]]; },
loaded: function(self,companies){ self.company = companies[0]; },
},
The second step is to add it to the ticket (point_of_sale/static/src/xml/
<t t-name="PosTicket">
<div class="pos-sale-ticket">
<div id="company_logo" style="text-align:center;"><img t-att-src="'data:image/png;base64,'+ widget.pos.company.logo" height="40%" width="40%"/></div>
<!--add your custom fields here!-->
<t t-esc="widget.pos.company.name"/><br /></t>
Do a reload of the whole module, restart your session and you'll see everything working!
Thank you, Yenthe. How can i inherit model.js to add this information?
No problem Samba. I'm not sure about this since I haven't tried inheriting the JS files yet. You should know that the js files are actually used with Backbone.js which means that the data is available in 'sessions'. So I believe you could even add another js file in the module.. Anyways this topic might help you in the good way: https://www.odoo.com/nl_NL/forum/help-1/question/inheritance-of-posmodel-in-pos-models-js-file-59023 (By the way, please accept the answer if it solved your problem? :) )
Yenthe, thanks for the above but how do I add tax code for each order line?
Hmm I'm not sure about which field exactly you're talking but you should also add it in models.js at the correct model (if it is not already there). On the ticket you'd need to add a t-foreach item and in that t-foreach add a span etc or a t-esc which prints out the field, just like I did with the company name but then inside a t-foreach.
In model.js there is a function call get _tax_details() can it be used to display the tax name/code at the orderline, I am not good in javascript hope you can help.
Yenthe, sorry is not the tax code, is the description in account_tax table I wish to add at each orderline. I reckon I just have to add description to model model: 'account.tax', the question is how do I get it for each order line. reason why we need this is because we apply diff tax to products and customer wish to know. Thanks in advance.
i want to do something similar to what you have achieved , i want to load the contracts module(account.analytic.account) so i can get the contract reference and display it on the receipt. The tricky part is the only way to link the product in the point of sale back to their contract is : product.product > account.analytic.invoice.line > account.analytic.account , so is there any way i can achieve this ?
Hi Thanks and wish you the same...
I think Yenthe's method might work... sure you can inherit a js, (i.e) you have to extend instance/model etc...
I had inherited JS of List view Widget of Journal Items, it worked fine for me... you can have a look at it ..
/*
[Inherited]: account_move_line_quickadd.js
To Remove default values for (Journal & Period)
*/
instance.web.account.QuickAddListView = instance.web.account.QuickAddListView.extend(
{
start:function(){
var tmp = this._super.apply(this, arguments);
var self = this;
var mod = new instance.web.Model("account.move.line", self.dataset.context, self.dataset.domain);
mod.call("default_get", [['journal_id','period_id'],self.dataset.context]).then(function(result) {
self.current_period = null;
self.current_journal = null;
});
return tmp;
},
});
};
So I think you may have to try some thing like this for the model extention also ...
If it didnt work out then worst case, you have to create your own custom receipt...
Thank you Deep, Let me try this process
Hi @ deep i want to do something similar to what you have achieved , i want to load the contracts module(account.analytic.account) so i can get the contract reference and display it on the receipt. The tricky part is the only way to link the product in the point of sale back to its to the contract is : product.product > account.analytic.invoice.line > account.analytic.account , so is there any way i can achieve this ?
Enjoying the discussion? Don't just read, join in!
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Nov 24
|
236 | ||
|
0
Aug 24
|
351 | ||
|
1
Aug 24
|
583 | ||
|
0
Jul 24
|
224 | ||
|
0
May 23
|
969 |
--
Thanks and Regards,
Skype: samba.guduru2(skype)Sambasiva rao,
I think that street, street2, city, etc are fields from res.partner. Not from res.company. So I tried widget.pos.company.partner_id and it displays the ID of the associated partner.
But widget.pos.company.partner_id.street doesn't (nor the others city, street2, etc.) work... snif!