[MERGE] point_of_sale: Add some improvements and bug fixes
bzr revid: stw@openerp.com-20120830132642-o9ish51w0s7aigzn
This commit is contained in:
commit
54237bc2a2
|
@ -746,9 +746,11 @@ class account_journal(osv.osv):
|
|||
'profit_account_id' : fields.many2one('account.account', 'Profit Account'),
|
||||
'loss_account_id' : fields.many2one('account.account', 'Loss Account'),
|
||||
'internal_account_id' : fields.many2one('account.account', 'Internal Transfers Account', select=1),
|
||||
'cash_control' : fields.boolean('Cash Control', help='If you want the journal should be control at opening/closing, check this option'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'cash_control' : False,
|
||||
'with_last_closing_balance' : False,
|
||||
'user_id': lambda self, cr, uid, context: uid,
|
||||
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
|
||||
|
|
|
@ -194,12 +194,27 @@ class account_cash_statement(osv.osv):
|
|||
journal = self.pool.get('account.journal').browse(cr, uid, vals['journal_id'], context=context)
|
||||
if journal and (journal.type == 'cash') and not vals.get('details_ids'):
|
||||
vals['details_ids'] = []
|
||||
|
||||
last_pieces = None
|
||||
|
||||
if journal.with_last_closing_balance == True:
|
||||
domain = [('journal_id', '=', journal.id),
|
||||
('state', '=', 'confirm')]
|
||||
last_bank_statement_ids = self.search(cr, uid, domain, limit=1, order='create_date desc', context=context)
|
||||
if last_bank_statement_ids:
|
||||
last_bank_statement = self.browse(cr, uid, last_bank_statement_ids[0], context=context)
|
||||
|
||||
last_pieces = dict(
|
||||
(line.pieces, line.number_closing) for line in last_bank_statement.details_ids
|
||||
)
|
||||
|
||||
for value in journal.cashbox_line_ids:
|
||||
nested_values = {
|
||||
'number_closing' : 0,
|
||||
'number_opening' : 0,
|
||||
'number_opening' : last_pieces.get(value.pieces, 0) if isinstance(last_pieces, dict) else 0,
|
||||
'pieces' : value.pieces
|
||||
}
|
||||
|
||||
vals['details_ids'].append([0, False, nested_values])
|
||||
|
||||
res_id = super(account_cash_statement, self).create(cr, uid, vals, context=context)
|
||||
|
|
|
@ -515,7 +515,7 @@
|
|||
<separator colspan="4" string="Accounts Allowed (empty for no control)"/>
|
||||
<field colspan="4" name="account_control_ids" nolabel="1"/>
|
||||
</page>
|
||||
<page string="Cash Registers" attrs="{'invisible':[('type', '!=', 'cash')]}">
|
||||
<page string="Cash Registers">
|
||||
<group>
|
||||
<group string="Accounts">
|
||||
<field name="profit_account_id"/>
|
||||
|
@ -524,10 +524,11 @@
|
|||
</group>
|
||||
<group string="Miscellaneous">
|
||||
<field name="with_last_closing_balance"/>
|
||||
<field name="cash_control"/>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Available Coins" colspan="4" />
|
||||
<field name="cashbox_line_ids" nolabel="1" string="Unit Of Currency Definition" colspan="4">
|
||||
<separator string="Available Coins" colspan="4" attrs="{'invisible' : [('cash_control', '=', False)] }"/>
|
||||
<field name="cashbox_line_ids" nolabel="1" string="Unit Of Currency Definition" colspan="4" attrs="{'invisible' : [('cash_control', '=', False)]}">
|
||||
<tree string="CashBox Lines" editable="bottom">
|
||||
<field name="pieces" />
|
||||
</tree>
|
||||
|
|
|
@ -381,6 +381,11 @@
|
|||
<field name="name">Cash Journal - (test)</field>
|
||||
<field name="code">TCSH</field>
|
||||
<field name="type">cash</field>
|
||||
<field name="profit_account_id" model="account.account" ref="rsa" />
|
||||
<field name="loss_account_id" model="account.account" ref="rsa" />
|
||||
<field name="internal_account_id" model="account.account" ref="chart0" />
|
||||
<field name="with_last_closing_balance" eval="True" />
|
||||
<field name="cash_control" eval="True" />
|
||||
<field name="view_id" ref="account_journal_bank_view"/>
|
||||
<field name="sequence_id" ref="sequence_cash_journal"/>
|
||||
<field model="account.account" name="default_debit_account_id" ref="cash"/>
|
||||
|
|
|
@ -27,15 +27,10 @@ class account_journal(osv.osv):
|
|||
_columns = {
|
||||
'journal_user': fields.boolean('PoS Payment Method', help="Check this box if this journal define a payment method that can be used in point of sales."),
|
||||
|
||||
'opening_control': fields.boolean('Opening Control', help="If you want the journal should be control at opening, check this option"),
|
||||
'closing_control': fields.boolean('Closing Control', help="If you want the journal should be control at closing, check this option"),
|
||||
|
||||
'amount_authorized_diff' : fields.float('Amount Authorized Difference'),
|
||||
'self_checkout_payment_method' : fields.boolean('Self Checkout Payment Method'),
|
||||
}
|
||||
_defaults = {
|
||||
'opening_control' : False,
|
||||
'closing_control' : False,
|
||||
'self_checkout_payment_method' : False,
|
||||
}
|
||||
|
||||
|
@ -46,6 +41,7 @@ class account_cash_statement(osv.osv):
|
|||
_columns = {
|
||||
'pos_session_id' : fields.many2one('pos.session'),
|
||||
}
|
||||
|
||||
account_cash_statement()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -10,8 +10,6 @@
|
|||
<page string="Point of Sale">
|
||||
<group col="4" colspan="4">
|
||||
<field name="journal_user"/>
|
||||
<field name="opening_control"/>
|
||||
<field name="closing_control"/>
|
||||
<field name="amount_authorized_diff"/>
|
||||
<field name="self_checkout_payment_method" />
|
||||
</group>
|
||||
|
@ -113,37 +111,5 @@
|
|||
<field name="view_id" ref="account.view_bank_statement_form2"/>
|
||||
<field name="act_window_id" ref="action_new_bank_statement_all_tree"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
<menuitem name="Cash Register Management" parent="point_of_sale.menu_point_root"
|
||||
id="menu_point_open_config" sequence="10"/>
|
||||
<menuitem
|
||||
name="Open Cash Registers" parent="menu_point_open_config"
|
||||
string="Open Cash Registers"
|
||||
action="action_pos_open_statement"
|
||||
id="menu_open_statement" sequence="1" />
|
||||
|
||||
<menuitem
|
||||
name="Close Cash Registers" parent="menu_point_open_config"
|
||||
string="Close Cash Registers"
|
||||
action="action_pos_close_statement"
|
||||
id="menu_close_statement" sequence="2" />
|
||||
|
||||
<menuitem
|
||||
parent="menu_point_open_config"
|
||||
action="action_pos_confirm"
|
||||
id="menu_wizard_pos_confirm" sequence="8" />
|
||||
|
||||
|
||||
<menuitem
|
||||
name="List of Cash Registers"
|
||||
parent="menu_point_open_config"
|
||||
action="action_new_bank_statement_all_tree"
|
||||
id="menu_all_menu_all_register"
|
||||
sequence="4"
|
||||
/>
|
||||
-->
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -74,6 +74,26 @@ class pos_config(osv.osv):
|
|||
'group_by' : fields.boolean('Group Journal Items', help="Check this if you want to group the Journal Items by Product while closing a Session"),
|
||||
}
|
||||
|
||||
def _check_cash_control(self, cr, uid, ids, context=None):
|
||||
return all(
|
||||
(sum(int(journal.cash_control) for journal in record.journal_ids) <= 1)
|
||||
for record in self.browse(cr, uid, ids, context=context)
|
||||
)
|
||||
|
||||
_constraints = [
|
||||
(_check_cash_control, "You cannot have two cash controls in one Point Of Sale !", ['journal_ids']),
|
||||
]
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
if not default:
|
||||
default = {}
|
||||
d = {
|
||||
'sequence_id' : False,
|
||||
}
|
||||
d.update(default)
|
||||
return super(pos_order, self).copy(cr, uid, id, d, context=context)
|
||||
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
result = []
|
||||
states = {
|
||||
|
@ -90,11 +110,6 @@ class pos_config(osv.osv):
|
|||
result.append((record.id, record.name + ' ('+session.user_id.name+')')) #, '+states[session.state]+')'))
|
||||
return result
|
||||
|
||||
|
||||
def _default_payment_journal(self, cr, uid, context=None):
|
||||
res = self.pool.get('account.journal').search(cr, uid, [('type', 'in', ('bank','cash'))], limit=2)
|
||||
return res or []
|
||||
|
||||
def _default_sale_journal(self, cr, uid, context=None):
|
||||
res = self.pool.get('account.journal').search(cr, uid, [('type', '=', 'sale')], limit=1)
|
||||
return res and res[0] or False
|
||||
|
@ -107,7 +122,6 @@ class pos_config(osv.osv):
|
|||
'state' : POS_CONFIG_STATE[0][0],
|
||||
'shop_id': _default_shop,
|
||||
'journal_id': _default_sale_journal,
|
||||
'journal_ids': _default_payment_journal,
|
||||
'group_by' : True,
|
||||
}
|
||||
|
||||
|
@ -148,45 +162,20 @@ class pos_session(osv.osv):
|
|||
('closed', 'Closed & Posted'),
|
||||
]
|
||||
|
||||
def _compute_cash_journal_id(self, cr, uid, ids, fieldnames, args, context=None):
|
||||
result = dict.fromkeys(ids, False)
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
for st in record.statement_ids:
|
||||
if st.journal_id.type == 'cash':
|
||||
result[record.id] = st.journal_id.id
|
||||
break
|
||||
return result
|
||||
|
||||
def _compute_cash_register_id(self, cr, uid, ids, fieldnames, args, context=None):
|
||||
result = dict.fromkeys(ids, False)
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
for st in record.statement_ids:
|
||||
if st.journal_id.type == 'cash':
|
||||
result[record.id] = st.id
|
||||
break
|
||||
return result
|
||||
|
||||
def _compute_controls(self, cr, uid, ids, fieldnames, args, context=None):
|
||||
result = {}
|
||||
def _compute_cash_all(self, cr, uid, ids, fieldnames, args, context=None):
|
||||
result = dict()
|
||||
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
has_opening_control = False
|
||||
has_closing_control = False
|
||||
|
||||
for journal in record.config_id.journal_ids:
|
||||
if journal.opening_control == True:
|
||||
has_opening_control = True
|
||||
if journal.closing_control == True:
|
||||
has_closing_control = True
|
||||
|
||||
if has_opening_control and has_closing_control:
|
||||
break
|
||||
|
||||
values = {
|
||||
'has_opening_control': has_opening_control,
|
||||
'has_closing_control': has_closing_control,
|
||||
result[record.id] = {
|
||||
'cash_journal_id' : False,
|
||||
'cash_register_id' : False,
|
||||
'cash_control' : False,
|
||||
}
|
||||
result[record.id] = values
|
||||
for st in record.statement_ids:
|
||||
if st.journal_id.cash_control == True:
|
||||
result[record.id]['cash_control'] = True
|
||||
result[record.id]['cash_journal_id'] = st.journal_id.id
|
||||
result[record.id]['cash_register_id'] = st.id
|
||||
|
||||
return result
|
||||
|
||||
|
@ -212,12 +201,17 @@ class pos_session(osv.osv):
|
|||
required=True, readonly=True,
|
||||
select=1),
|
||||
|
||||
'cash_journal_id' : fields.function(_compute_cash_journal_id, method=True,
|
||||
type='many2one', relation='account.journal',
|
||||
string='Cash Journal', store=True),
|
||||
'cash_register_id' : fields.function(_compute_cash_register_id, method=True,
|
||||
type='many2one', relation='account.bank.statement',
|
||||
string='Cash Register', store=True),
|
||||
'cash_control' : fields.function(_compute_cash_all,
|
||||
multi='cash',
|
||||
type='boolean', string='Has Cash Control'),
|
||||
'cash_journal_id' : fields.function(_compute_cash_all,
|
||||
multi='cash',
|
||||
type='many2one', relation='account.journal',
|
||||
string='Cash Journal', store=True),
|
||||
'cash_register_id' : fields.function(_compute_cash_all,
|
||||
multi='cash',
|
||||
type='many2one', relation='account.bank.statement',
|
||||
string='Cash Register', store=True),
|
||||
|
||||
'opening_details_ids' : fields.related('cash_register_id', 'opening_details_ids',
|
||||
type='one2many', relation='account.cashbox.line',
|
||||
|
@ -261,8 +255,6 @@ class pos_session(osv.osv):
|
|||
'order_ids' : fields.one2many('pos.order', 'session_id', 'Orders'),
|
||||
|
||||
'statement_ids' : fields.one2many('account.bank.statement', 'pos_session_id', 'Bank Statement', readonly=True),
|
||||
'has_opening_control' : fields.function(_compute_controls, string='Has Opening Control', multi='control', type='boolean'),
|
||||
'has_closing_control' : fields.function(_compute_controls, string='Has Closing Control', multi='control', type='boolean'),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
|
@ -372,10 +364,8 @@ class pos_session(osv.osv):
|
|||
def wkf_action_closing_control(self, cr, uid, ids, context=None):
|
||||
for session in self.browse(cr, uid, ids, context=context):
|
||||
for statement in session.statement_ids:
|
||||
if statement.id <> session.cash_register_id.id:
|
||||
if statement.balance_end<>statement.balance_end_real:
|
||||
self.pool.get('account.bank.statement').write(cr, uid,
|
||||
[statement.id], {'balance_end_real': statement.balance_end})
|
||||
if statement != session.cash_register_id and statement.balance_end != statement.balance_end_real:
|
||||
self.pool.get('account.bank.statement').write(cr, uid, [statement.id], {'balance_end_real': statement.balance_end})
|
||||
return self.write(cr, uid, ids, {'state' : 'closing_control', 'stop_at' : time.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
|
||||
|
||||
def wkf_action_close(self, cr, uid, ids, context=None):
|
||||
|
@ -388,7 +378,7 @@ class pos_session(osv.osv):
|
|||
if not self.pool.get('ir.model.access').check_groups(cr, uid, "point_of_sale.group_pos_manager"):
|
||||
raise osv.except_osv( _('Error!'),
|
||||
_("Your ending balance is too different from the theorical cash closing (%.2f), the maximum allowed is: %.2f. You can contact your manager to force it.") % (st.difference, st.journal_id.amount_authorized_diff))
|
||||
if st.difference:
|
||||
if st.difference and st.journal_id.cash_control == True:
|
||||
if st.difference > 0.0:
|
||||
name= _('Point of Sale Profit')
|
||||
account_id = st.journal_id.profit_account_id.id
|
||||
|
@ -406,6 +396,9 @@ class pos_session(osv.osv):
|
|||
'account_id': account_id
|
||||
}, context=context)
|
||||
|
||||
if st.journal_id.type == 'bank':
|
||||
st.write({'balance_end_real' : st.balance_end})
|
||||
|
||||
getattr(st, 'button_confirm_%s' % st.journal_id.type)(context=context)
|
||||
self._confirm_orders(cr, uid, ids, context=context)
|
||||
self.write(cr, uid, ids, {'state' : 'closed'}, context=context)
|
||||
|
@ -731,7 +724,7 @@ class pos_order(osv.osv):
|
|||
'pos_statement_id' : order_id,
|
||||
'journal_id' : journal_id,
|
||||
'type' : 'customer',
|
||||
'ref' : order.name,
|
||||
'ref' : order.session_id.name,
|
||||
})
|
||||
|
||||
statement_line_obj.create(cr, uid, args, context=context)
|
||||
|
@ -1084,6 +1077,7 @@ class account_bank_statement_line(osv.osv):
|
|||
_columns= {
|
||||
'pos_statement_id': fields.many2one('pos.order', ondelete='cascade'),
|
||||
}
|
||||
|
||||
account_bank_statement_line()
|
||||
|
||||
class pos_order_line(osv.osv):
|
||||
|
@ -1284,8 +1278,30 @@ class product_product(osv.osv):
|
|||
help="If you want to sell this product through the point of sale, select the category it belongs to."),
|
||||
'to_weight' : fields.boolean('To Weight', help="This category contains products that should be weighted, mainly used for the self-checkout interface"),
|
||||
}
|
||||
|
||||
def _default_pos_categ_id(self, cr, uid, context=None):
|
||||
proxy = self.pool.get('ir.model.data')
|
||||
|
||||
try:
|
||||
category_id = proxy.get_object_reference(cr, uid, 'point_of_sale', 'categ_others')[1]
|
||||
except ValueError:
|
||||
values = {
|
||||
'name' : 'Others',
|
||||
}
|
||||
category_id = self.pool.get('pos.category').create(cr, uid, values, context=context)
|
||||
values = {
|
||||
'name' : 'categ_others',
|
||||
'model' : 'pos.category',
|
||||
'module' : 'point_of_sale',
|
||||
'res_id' : category_id,
|
||||
}
|
||||
proxy.create(cr, uid, values, context=context)
|
||||
|
||||
return category_id
|
||||
|
||||
_defaults = {
|
||||
'to_weight' : False,
|
||||
'pos_categ_id' : _default_pos_categ_id,
|
||||
}
|
||||
|
||||
def edit_ean(self, cr, uid, ids, context):
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<field name="groups_id" eval="[(4,ref('group_pos_user'))]"/>
|
||||
<field name="ean13">0410200000005</field>
|
||||
</record>
|
||||
<record id="account.cash_journal" model="account.journal">
|
||||
<record id="account.cash_journal" model="account.journal">
|
||||
<field eval="True" name="journal_user"/>
|
||||
</record>
|
||||
<record id="base.user_jsmith" model="res.users">
|
||||
|
@ -36,6 +36,10 @@
|
|||
<field name="groups_id" eval="[(4,ref('group_pos_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record model="pos.config" id="pos_config_main">
|
||||
<field name="journal_ids" eval="[(6, 0, [ref('account.cash_journal'), ref('account.bank_journal')])]" />
|
||||
</record>
|
||||
|
||||
<!-- Resource: pos.category -->
|
||||
|
||||
<record id="beverage" model="pos.category">
|
||||
|
|
|
@ -126,7 +126,7 @@
|
|||
</field>
|
||||
</record>
|
||||
<record model="ir.ui.view" id="view_pos_order_tree">
|
||||
<field name="name">Sales</field>
|
||||
<field name="name">Orders</field>
|
||||
<field name="model">pos.order</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="POS Orders" colors="blue:state == 'draft';gray:state in ('done','cancel');black:state not in('done','cancel')">
|
||||
|
@ -138,6 +138,7 @@
|
|||
<field name="amount_total" sum="Amount total"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="state"/>
|
||||
<field name="session_id" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
@ -791,8 +792,7 @@
|
|||
<field name="code" />
|
||||
<field name="name" />
|
||||
<field name="type" />
|
||||
<field name="opening_control" />
|
||||
<field name="closing_control" />
|
||||
<field name="cash_control" />
|
||||
</tree>
|
||||
</field>
|
||||
<group string="Material Interfaces" >
|
||||
|
@ -878,10 +878,10 @@
|
|||
<header>
|
||||
<button name="open" type="workflow" string="Validate & Open Session" states="opening_control" class="oe_highlight"/>
|
||||
<button name="cashbox_control" type="workflow" string="End of Session"
|
||||
attrs="{'invisible' : [('has_closing_control', '=', False),('state', '=', 'opened')]}"
|
||||
attrs="{'invisible' : ['|', ('cash_control', '=', False),('state', '!=', 'opened')]}"
|
||||
class="oe_highlight" />
|
||||
<button name="close" type="workflow" string="Validate Closing & Post Entries"
|
||||
attrs="{'invisible' : [('has_closing_control', '=', True),('state', '=', 'opened')]}"
|
||||
attrs="{'invisible' : ['|', ('cash_control', '=', True),('state', '!=', 'opened')]}"
|
||||
class="oe_highlight" />
|
||||
<button name="close" type="workflow" string="Validate Closing & Post Entries" states="closing_control"
|
||||
class="oe_highlight" />
|
||||
|
@ -900,8 +900,7 @@
|
|||
<field name="name" attrs="{'invisible': [('name','=','/')]}" class="oe_inline"/>
|
||||
</h1>
|
||||
<group>
|
||||
<field name="has_opening_control" invisible="1" />
|
||||
<field name="has_closing_control" invisible="1" />
|
||||
<field name="cash_control" invisible="1" />
|
||||
<group>
|
||||
<field name="user_id"/>
|
||||
<field name="config_id" attrs="{'invisible' : [('config_id', '<>', False)]}"/>
|
||||
|
@ -912,26 +911,26 @@
|
|||
</group>
|
||||
<newline/>
|
||||
|
||||
<group string="Opening Cash Control">
|
||||
<group string="Opening Cash Control" attrs="{'invisible' : ['|', ('cash_control', '=', False),('state', '=', 'closed')]}">
|
||||
<field name="opening_details_ids" nolabel="1" colspan="2" attrs="{'readonly' : [('state', 'not in', ('opening_control',))]}">
|
||||
<tree string="Opening Cashbox Lines" editable="bottom">
|
||||
<field name="pieces" readonly="1" />
|
||||
<field name="number_opening" string="Opening Unit Numbers" on_change="on_change_sub_opening(pieces, number_opening)" />
|
||||
<field name="number_opening" on_change="on_change_sub_opening(pieces, number_opening)" />
|
||||
<field name="subtotal_opening" string="Opening Subtotal" sum="Total"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
<group string="Closing Cash Control" attrs="{'invisible': [('state', '=', 'opening_control')]}">
|
||||
<group string="Closing Cash Control" attrs="{'invisible': ['|', ('cash_control', '=', False), ('state', '!=', 'closing_control')]}">
|
||||
<field name="details_ids" nolabel="1" colspan="2">
|
||||
<tree string="Cashbox Lines" editable="bottom">
|
||||
<field name="pieces" readonly="1" />
|
||||
<field name="number_closing"/>
|
||||
<field name="number_closing" />
|
||||
<field name="subtotal_closing"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
|
||||
<div>
|
||||
<div attrs="{'invisible': [('state', '=', 'closed')]}">
|
||||
<group class="oe_subtotal_footer oe_right">
|
||||
<field name="cash_register_balance_start" readonly="1" string="Opening Balance" class="oe_subtotal_footer_separator"/>
|
||||
<field name="cash_register_total_entry_encoding" attrs="{'invisible' : [('state', '=', 'opening_control')]}" string="+ Transactions"/>
|
||||
|
@ -948,7 +947,7 @@
|
|||
</div>
|
||||
|
||||
|
||||
<group class="oe_subtotal_footer oe_right" attrs="{'invisible' : [('state', '=', 'opening_control')]}">
|
||||
<group class="oe_subtotal_footer oe_right" attrs="{'invisible' : [('state', 'in', ('opening_control', 'closed'))]}">
|
||||
<field name="cash_register_balance_end_real" class="oe_subtotal_footer_separator"/>
|
||||
<field name="cash_register_difference" class="oe_subtotal_footer_separator"/>
|
||||
</group>
|
||||
|
|
|
@ -126,14 +126,14 @@
|
|||
<field name="act_from" ref="act_start" />
|
||||
<field name="act_to" ref="act_opening_control" />
|
||||
<field name="signal" eval="False" /> <!-- >start_to_opening_control</field> -->
|
||||
<field name="condition">has_opening_control == True</field>
|
||||
<field name="condition">cash_control == True</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="trans_start_to_open">
|
||||
<field name="act_from" ref="act_start" />
|
||||
<field name="act_to" ref="act_open" />
|
||||
<field name="signal" eval="False" />
|
||||
<field name="condition">has_opening_control == False</field>
|
||||
<field name="condition">cash_control == False</field>
|
||||
</record>
|
||||
<!-- state:opening_control -> signal:open -> state:opened -> signal:cashbox_control -> state:closing_control -> signal:close -> state:close -->
|
||||
|
||||
|
@ -147,14 +147,14 @@
|
|||
<field name="act_from" ref="act_open" />
|
||||
<field name="act_to" ref="act_closing_control" />
|
||||
<field name="signal">cashbox_control</field>
|
||||
<field name="condition">has_closing_control == True</field>
|
||||
<field name="condition">cash_control == True</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="trans_open_to_close">
|
||||
<field name="act_from" ref="act_open" />
|
||||
<field name="act_to" ref="act_close" />
|
||||
<field name="signal">close</field>
|
||||
<field name="condition">has_closing_control == False</field>
|
||||
<field name="condition">cash_control == False</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="trans_closing_control_to_close">
|
||||
|
|
|
@ -65,7 +65,7 @@ class pos_open_statement(osv.osv_memory):
|
|||
statement_id = statement_obj.create(cr, uid, data, context=context)
|
||||
st_ids.append(int(statement_id))
|
||||
|
||||
if journal.opening_control:
|
||||
if journal.cash_control:
|
||||
statement_obj.button_open(cr, uid, [statement_id], context)
|
||||
|
||||
tree_res = mod_obj.get_object_reference(cr, uid, 'point_of_sale', 'view_cash_statement_pos_tree')
|
||||
|
|
Loading…
Reference in New Issue