[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:
committed by
Frédéric van der Essen
parent
b1a863b60e
commit
226b5ba477
@@ -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',
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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:
|
||||
|
||||
@@ -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
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user