[MERGE] merge trunk into local branch
bzr revid: ged@openerp.com-20140113110402-t4hmjl1vdqt91qx6 bzr revid: ged@openerp.com-20140113142408-12i6pqw1cbdqhqg2
This commit is contained in:
commit
be0da788f6
|
@ -18,10 +18,18 @@
|
|||
Fiscal Periods
|
||||
-->
|
||||
|
||||
<record id="period_0" model="account.period">
|
||||
<field eval="'00/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X Opening Period '+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-01-01'" name="date_stop"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
<record id="period_1" model="account.period">
|
||||
<field eval="'01/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 01/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-01-31'" name="date_stop"/>
|
||||
|
@ -30,7 +38,6 @@
|
|||
<record id="period_2" model="account.period">
|
||||
<field eval="'02/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 02/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-02-01'" name="date_start"/>
|
||||
<!-- for the last day of February, we have to compute the day before March 1st -->
|
||||
|
@ -40,7 +47,6 @@
|
|||
<record id="period_3" model="account.period">
|
||||
<field eval="'03/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 03/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-03-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-03-31'" name="date_stop"/>
|
||||
|
@ -49,7 +55,6 @@
|
|||
<record id="period_4" model="account.period">
|
||||
<field eval="'04/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 04/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-04-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-04-30'" name="date_stop"/>
|
||||
|
@ -58,7 +63,6 @@
|
|||
<record id="period_5" model="account.period">
|
||||
<field eval="'05/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 05/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-05-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-05-31'" name="date_stop"/>
|
||||
|
@ -68,7 +72,6 @@
|
|||
<field eval="'06/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 06/'+time.strftime('%Y')" name="name"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field eval="time.strftime('%Y')+'-06-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-06-30'" name="date_stop"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
|
@ -76,7 +79,6 @@
|
|||
<record id="period_7" model="account.period">
|
||||
<field eval="'07/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 07/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-07-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-07-31'" name="date_stop"/>
|
||||
|
@ -85,7 +87,6 @@
|
|||
<record id="period_8" model="account.period">
|
||||
<field eval="'08/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 08/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-08-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-08-31'" name="date_stop"/>
|
||||
|
@ -94,7 +95,6 @@
|
|||
<record id="period_9" model="account.period">
|
||||
<field eval="'09/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 09/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-09-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-09-30'" name="date_stop"/>
|
||||
|
@ -103,7 +103,6 @@
|
|||
<record id="period_10" model="account.period">
|
||||
<field eval="'10/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 10/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-10-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-10-31'" name="date_stop"/>
|
||||
|
@ -112,7 +111,6 @@
|
|||
<record id="period_11" model="account.period">
|
||||
<field eval="'11/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 11/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-11-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-11-30'" name="date_stop"/>
|
||||
|
@ -121,7 +119,6 @@
|
|||
<record id="period_12" model="account.period">
|
||||
<field eval="'12/'+time.strftime('%Y')" name="code"/>
|
||||
<field eval="'X 12/'+time.strftime('%Y')" name="name"/>
|
||||
<field eval="True" name="special"/>
|
||||
<field name="fiscalyear_id" ref="data_fiscalyear"/>
|
||||
<field eval="time.strftime('%Y')+'-12-01'" name="date_start"/>
|
||||
<field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/>
|
||||
|
|
|
@ -37,6 +37,9 @@ that would need such functionality.
|
|||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['hw_proxy'],
|
||||
'external_dependencies': {
|
||||
'python' : ['usb.core','serial','qrcode'],
|
||||
},
|
||||
'test': [
|
||||
],
|
||||
'installable': True,
|
||||
|
|
|
@ -14,8 +14,6 @@ import usb.core
|
|||
from openerp.tools.translate import _
|
||||
from .. import escpos
|
||||
from ..escpos import printer
|
||||
#import escpos
|
||||
#import escpos.printer
|
||||
from PIL import Image
|
||||
|
||||
from openerp import http
|
||||
|
@ -29,6 +27,13 @@ class EscposDriver(hw_proxy.Proxy):
|
|||
supported_printers = [
|
||||
{ 'vendor' : 0x04b8, 'product' : 0x0e03, 'name' : 'Epson TM-T20' }
|
||||
]
|
||||
|
||||
def connected_usb_devices(self,devices):
|
||||
connected = []
|
||||
for device in devices:
|
||||
if usb.core.find(idVendor=device['vendor'], idProduct=device['product']) != None:
|
||||
connected.append(device)
|
||||
return connected
|
||||
|
||||
def get_escpos_printer(self):
|
||||
printers = self.connected_usb_devices(self.supported_printers)
|
||||
|
|
|
@ -7,30 +7,21 @@ import openerp
|
|||
import time
|
||||
import random
|
||||
import subprocess
|
||||
import usb.core
|
||||
import escpos
|
||||
import escpos.printer
|
||||
import werkzeug
|
||||
import werkzeug.wrappers
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
from openerp import http
|
||||
from openerp.http import request
|
||||
from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
class Proxy(http.Controller):
|
||||
def __init__(self):
|
||||
self.scale = 'closed'
|
||||
self.scale_weight = 0.0
|
||||
|
||||
def connected_usb_devices(self,devices):
|
||||
connected = []
|
||||
for device in devices:
|
||||
if usb.core.find(idVendor=device['vendor'], idProduct=device['product']) != None:
|
||||
connected.append(device)
|
||||
return connected
|
||||
|
||||
@http.route('/hw_proxy/hello', type='http', auth='admin')
|
||||
def helloajx(self):
|
||||
return request.make_response('ping', {
|
||||
|
|
|
@ -12,7 +12,12 @@ from openerp.http import request
|
|||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
from evdev import InputDevice, ecodes, categorize, list_devices
|
||||
try:
|
||||
import evdev
|
||||
except ImportError:
|
||||
_logger.error('OpenERP module hw_scanner depends on the evdev python module')
|
||||
evdev = None
|
||||
|
||||
from select import select
|
||||
|
||||
class ScannerDriver(hw_proxy.Proxy):
|
||||
|
@ -76,13 +81,15 @@ class ScannerDriver(hw_proxy.Proxy):
|
|||
}
|
||||
|
||||
def get_device(self):
|
||||
if not evdev:
|
||||
return None
|
||||
devices = [ device for device in listdir(self.input_dir)]
|
||||
keyboards = [ device for device in devices if 'kbd' in device ]
|
||||
scanners = [ device for device in devices if ('barcode' in device.lower()) or ('scanner' in device.lower()) ]
|
||||
if len(scanners) > 0:
|
||||
return InputDevice(join(self.input_dir,scanners[0]))
|
||||
return evdev.InputDevice(join(self.input_dir,scanners[0]))
|
||||
elif len(keyboards) > 0:
|
||||
return InputDevice(join(self.input_dir,keyboards[0]))
|
||||
return evdev.InputDevice(join(self.input_dir,keyboards[0]))
|
||||
else:
|
||||
return None
|
||||
|
||||
|
@ -105,9 +112,9 @@ class ScannerDriver(hw_proxy.Proxy):
|
|||
device.ungrab()
|
||||
return ''
|
||||
for event in device.read():
|
||||
if event.type == ecodes.EV_KEY:
|
||||
if event.type == evdev.ecodes.EV_KEY:
|
||||
#_logger.debug('Evdev Keyboard event %s',evdev.categorize(event))
|
||||
if event.value == 1: # keydown events
|
||||
#print categorize(event)
|
||||
if event.code in self.keymap:
|
||||
if shift:
|
||||
barcode.append(self.keymap[event.code][1])
|
||||
|
|
|
@ -79,12 +79,6 @@ class project(osv.osv):
|
|||
return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order,
|
||||
context=context, count=count)
|
||||
|
||||
def _complete_name(self, cr, uid, ids, name, args, context=None):
|
||||
res = {}
|
||||
for m in self.browse(cr, uid, ids, context=context):
|
||||
res[m.id] = (m.parent_id and (m.parent_id.name + '/') or '') + m.name
|
||||
return res
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part=False, context=None):
|
||||
partner_obj = self.pool.get('res.partner')
|
||||
val = {}
|
||||
|
@ -234,7 +228,6 @@ class project(osv.osv):
|
|||
_visibility_selection = lambda self, *args, **kwargs: self._get_visibility_selection(*args, **kwargs)
|
||||
|
||||
_columns = {
|
||||
'complete_name': fields.function(_complete_name, string="Project Name", type='char', size=250),
|
||||
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the project without removing it."),
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of Projects."),
|
||||
'analytic_account_id': fields.many2one('account.analytic.account', 'Contract/Analytic', help="Link this project to an analytic account if you need financial management on projects. It enables you to connect projects with budgets, planning, cost and revenue analysis, timesheets on projects, etc.", ondelete="cascade", required=True),
|
||||
|
|
Loading…
Reference in New Issue