[MERGE] point_of_sale: make the kg unit precise up to grams, and use the unit's rounding factor on the scale screen

bzr revid: fva@openerp.com-20140429122107-1s1vwm90484fo7pl
This commit is contained in:
Frédéric van der Essen 2014-04-29 14:21:07 +02:00
commit 18c4c8436d
2 changed files with 46 additions and 25 deletions

View File

@ -19,6 +19,8 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
var QWeb = instance.web.qweb,
_t = instance.web._t;
var round_pr = instance.web.round_precision
module.ScreenSelector = instance.web.Class.extend({
init: function(options){
this.pos = options.pos;
@ -564,7 +566,20 @@ function openerp_pos_screens(instance, module){ //module is instance.point_of_sa
this.$('.js-weight').text(this.get_product_weight_string());
},
get_product_weight_string: function(){
return (this.weight || 0).toFixed(3) + ' Kg';
var product = this.get_product();
var defaultstr = (this.weight || 0).toFixed(3) + ' Kg';
if(!product || !this.pos){
return defaultstr;
}
var unit_id = product.uos_id || product.uom_id;
if(!unit_id){
return defaultstr;
}
var unit = this.pos.units_by_id[unit_id[0]];
var weight = round_pr(this.weight || 0, unit.rounding);
var weightstr = weight.toFixed(Math.ceil(Math.log(1.0/unit.rounding) / Math.log(10) ));
weightstr += ' Kg';
return weightstr;
},
get_product_image_url: function(){
var product = this.get_product();

View File

@ -28,6 +28,35 @@
<field name="name">Volume</field>
</record>
<!--
Precisions
-->
<record forcecreate="True" id="decimal_price" model="decimal.precision">
<field name="name">Product Price</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_discount" model="decimal.precision">
<field name="name">Discount</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_account" model="decimal.precision">
<field name="name">Account</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_stock_weight" model="decimal.precision">
<field name="name">Stock Weight</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_product_uom" model="decimal.precision">
<field name="name">Product Unit of Measure</field>
<field name="digits" eval="3"/>
</record>
<record forcecreate="True" id="decimal_product_uos" model="decimal.precision">
<field name="name">Product UoS</field>
<field name="digits" eval="3"/>
</record>
<!--
Resource: product.uom
-->
@ -47,6 +76,7 @@
<field name="category_id" ref="product_uom_categ_kgm"/>
<field name="name">kg</field>
<field name="factor" eval="1"/>
<field name="rounding" eval="0.001"/>
</record>
<record id="product_uom_gram" model="product.uom">
<field name="category_id" ref="product_uom_categ_kgm"/>
@ -211,30 +241,6 @@ parameter) will see those record just disappear.
<field eval="'product.pricelist,'+str(ref('list0'))" name="value"/>
</record>
<record forcecreate="True" id="decimal_price" model="decimal.precision">
<field name="name">Product Price</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_discount" model="decimal.precision">
<field name="name">Discount</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_account" model="decimal.precision">
<field name="name">Account</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_stock_weight" model="decimal.precision">
<field name="name">Stock Weight</field>
<field name="digits">2</field>
</record>
<record forcecreate="True" id="decimal_product_uom" model="decimal.precision">
<field name="name">Product Unit of Measure</field>
<field name="digits" eval="3"/>
</record>
<record forcecreate="True" id="decimal_product_uos" model="decimal.precision">
<field name="name">Product UoS</field>
<field name="digits" eval="3"/>
</record>
<!--
Product