[FIX] stock, point_of_sale, barcodes: specific values in selection field Type of barcode.rule added when corresponding module installed

This commit is contained in:
Aaron Bohy
2014-11-26 11:46:20 +01:00
committed by Frédéric van der Essen
parent b1a863b60e
commit 226b5ba477
8 changed files with 112 additions and 79 deletions
+9 -3
View File
@@ -23,7 +23,7 @@ import logging
import re
import openerp
from openerp import tools
from openerp import tools, models, fields
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -154,19 +154,25 @@ class barcode_nomenclature(osv.osv):
return parsed_result
return parsed_result
class barcode_rule(osv.osv):
class barcode_rule(models.Model):
_name = 'barcode.rule'
_order = 'sequence asc'
def _get_type_selection(self, cr, uid, context=None):
# return [('product','Unit Product'),('weight','Weighted Product'),('price','Priced Product'),('discount','Discounted Product'),('client','Client'),('cashier','Cashier'),('location','Location'),('lot','Lot'),('package','Package')]
return [('product','Unit Product')]
_columns = {
'name': fields.char('Rule Name', size=32, required=True, help='An internal identification for this barcode nomenclature rule'),
'barcode_nomenclature_id': fields.many2one('barcode.nomenclature','Barcode Nomenclature'),
'sequence': fields.integer('Sequence', help='Used to order rules such that rules with a smaller sequence match first'),
#'encoding': fields.selection([('any','Any'),('ean13','EAN-13'),('ean8','EAN-8'),('codabar','Codabar'),('upca','UPC-A'),('upce','UPC-E')],'Encoding',help='This rule will apply only if the barcode is encoded with the specified encoding'),
'encoding': fields.selection([('any','Any'),('ean13','EAN-13')],'Encoding',required=True,help='This rule will apply only if the barcode is encoded with the specified encoding'),
'type': fields.selection([('product','Unit Product'),('weight','Weighted Product'),('price','Priced Product'),('discount','Discounted Product'),('client','Client'),('cashier','Cashier'),('location','Location'),('lot','Lot'),('package','Package')],'Type', required=True),
'type': fields.selection([('product','Unit Product')],'Type', required=True),
'pattern': fields.char('Barcode Pattern', size=32, help="The barcode matching pattern"),
#'alias': fields.char('Alias',size=32,help='The matched pattern will alias to this barcode'),
}
#type = openerp.fields.Selection([('product','Unit Product')],'Type', required=True)
_defaults = {
'type': 'product',
-72
View File
@@ -13,77 +13,5 @@
<field name="encoding">ean13</field>
<field name="pattern">*</field>
</record>
<record id="barcode_rule_cashier" model="barcode.rule">
<field name="name">Cashier Barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">50</field>
<field name="type">cashier</field>
<field name="encoding">any</field>
<field name="pattern">041</field>
</record>
<record id="barcode_rule_client" model="barcode.rule">
<field name="name">Customer Barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">40</field>
<field name="type">client</field>
<field name="encoding">any</field>
<field name="pattern">042</field>
</record>
<record id="barcode_rule_weight_three_dec" model="barcode.rule">
<field name="name">Weight Barcodes 3 Decimals</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">36</field>
<field name="type">weight</field>
<field name="encoding">ean13</field>
<field name="pattern">21*****{NNDDD}*</field>
</record>
<record id="barcode_rule_discount" model="barcode.rule">
<field name="name">Discount Barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">20</field>
<field name="type">discount</field>
<field name="encoding">any</field>
<field name="pattern">22{NN}*</field>
</record>
<record id="barcode_rule_price_two_dec" model="barcode.rule">
<field name="name">Price Barcodes 2 Decimals</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">14</field>
<field name="type">price</field>
<field name="encoding">ean13</field>
<field name="pattern">23*****{NNNDD}*</field>
</record>
<record id="barcode_rule_package" model="barcode.rule">
<field name="name">Package barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">70</field>
<field name="type">package</field>
<field name="encoding">any</field>
<field name="pattern">PACK*</field>
</record>
<record id="barcode_rule_lot" model="barcode.rule">
<field name="name">Lot barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">80</field>
<field name="type">lot</field>
<field name="encoding">any</field>
<field name="pattern">10*</field>
</record>
<record id="barcode_rule_location" model="barcode.rule">
<field name="name">Location barcodes</field>
<field name="barcode_nomenclature_id" ref="default_barcode_nomenclature"/>
<field name="sequence">60</field>
<field name="type">location</field>
<field name="encoding">any</field>
<field name="pattern">414*</field>
</record>
</data>
</openerp>
+1
View File
@@ -51,6 +51,7 @@ Main Features
'depends': ['sale_stock', 'barcodes'],
'data': [
'data/report_paperformat.xml',
#'data/default_barcode_patterns.xml',
'security/point_of_sale_security.xml',
'security/ir.model.access.csv',
'wizard/pos_box.xml',
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="barcode_rule_cashier" model="barcode.rule">
<field name="name">Cashier Barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">50</field>
<field name="type">cashier</field>
<field name="encoding">any</field>
<field name="pattern">041</field>
</record>
<record id="barcode_rule_client" model="barcode.rule">
<field name="name">Customer Barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">40</field>
<field name="type">client</field>
<field name="encoding">any</field>
<field name="pattern">042</field>
</record>
<record id="barcode_rule_weight_three_dec" model="barcode.rule">
<field name="name">Weight Barcodes 3 Decimals</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">36</field>
<field name="type">weight</field>
<field name="encoding">ean13</field>
<field name="pattern">21*****{NNDDD}*</field>
</record>
<record id="barcode_rule_discount" model="barcode.rule">
<field name="name">Discount Barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">20</field>
<field name="type">discount</field>
<field name="encoding">any</field>
<field name="pattern">22{NN}*</field>
</record>
<record id="barcode_rule_price_two_dec" model="barcode.rule">
<field name="name">Price Barcodes 2 Decimals</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">14</field>
<field name="type">price</field>
<field name="encoding">ean13</field>
<field name="pattern">23*****{NNNDD}*</field>
</record>
</data>
</openerp>
+10 -1
View File
@@ -23,7 +23,7 @@ import logging
import time
import uuid
from openerp import tools
from openerp import tools, models
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp.exceptions import Warning
@@ -1449,6 +1449,15 @@ class res_partner(osv.osv):
return partner_id
class barcode_rule(models.Model):
_inherit = 'barcode.rule'
type = openerp.fields.Selection(selection_add=[
('weight','Weighted Product'),
('price','Priced Product'),
('discount','Discounted Product'),
('client','Client'),
('cashier','Cashier')
])
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1
View File
@@ -66,6 +66,7 @@ Dashboard / Reports for Warehouse Management will include:
'stock_location_demo_cpu3.yml',
],
'data': [
#'data/default_barcode_patterns.xml',
'security/stock_security.xml',
'security/ir.model.access.csv',
'stock_data.xml',
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="barcode_rule_package" model="barcode.rule">
<field name="name">Package barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">70</field>
<field name="type">package</field>
<field name="encoding">any</field>
<field name="pattern">PACK*</field>
</record>
<record id="barcode_rule_lot" model="barcode.rule">
<field name="name">Lot barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">80</field>
<field name="type">lot</field>
<field name="encoding">any</field>
<field name="pattern">10*</field>
</record>
<record id="barcode_rule_location" model="barcode.rule">
<field name="name">Location barcodes</field>
<field name="barcode_nomenclature_id" ref="barcodes.default_barcode_nomenclature"/>
<field name="sequence">60</field>
<field name="type">location</field>
<field name="encoding">any</field>
<field name="pattern">414*</field>
</record>
</data>
</openerp>
+11 -3
View File
@@ -24,10 +24,11 @@ from dateutil import relativedelta
import json
import time
import openerp
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
from openerp import SUPERUSER_ID, api
from openerp import SUPERUSER_ID, api, models
import openerp.addons.decimal_precision as dp
from openerp.addons.procurement import procurement
import logging
@@ -1332,7 +1333,6 @@ class stock_picking(osv.osv):
@api.cr_uid_ids_context
def do_transfer(self, cr, uid, picking_ids, context=None):
print "DO TRANSFER"
"""
If no pack operation, we do simple action_done of the picking
Otherwise, do the pack operations
@@ -1341,7 +1341,6 @@ class stock_picking(osv.osv):
context = {}
stock_move_obj = self.pool.get('stock.move')
for picking in self.browse(cr, uid, picking_ids, context=context):
print picking
if not picking.pack_operation_ids:
self.action_done(cr, uid, [picking.id], context=context)
continue
@@ -4315,4 +4314,13 @@ class stock_picking_type(osv.osv):
'active': True,
}
class barcode_rule(models.Model):
_inherit = 'barcode.rule'
type = openerp.fields.Selection(selection_add=[
('location','Location'),
('lot','Lot'),
('package','Package')
])
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: