@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -103,7 +103,7 @@ class account_payment_term_line(osv.osv):
|
||||
_constraints = [
|
||||
(_check_percent, _('Percentages for Payment Term Line must be between 0 and 1, Example: 0.02 for 2% '), ['value_amount']),
|
||||
]
|
||||
|
||||
|
||||
account_payment_term_line()
|
||||
|
||||
|
||||
@@ -418,7 +418,7 @@ class account_account(osv.osv):
|
||||
line_obj = self.pool.get('account.move.line')
|
||||
account_ids = self.search(cr, uid, [('id', 'child_of', ids)])
|
||||
if line_obj.search(cr, uid, [('account_id', 'in', account_ids)]):
|
||||
raise osv.except_osv(_('Error !'), _('You can not deactivate an account that contains account moves.'))
|
||||
raise osv.except_osv(_('Error !'), _('You can not deactivate an account that contains Ledger Postings.'))
|
||||
return super(account_account, self).write(cr, uid, ids, vals, context=context)
|
||||
account_account()
|
||||
|
||||
@@ -1426,11 +1426,11 @@ class account_tax(osv.osv):
|
||||
for tax in taxes:
|
||||
if (tax.type=='percent') and not tax.include_base_amount:
|
||||
tax_parent_tot += tax.amount
|
||||
|
||||
|
||||
for tax in taxes:
|
||||
if (tax.type=='fixed') and not tax.include_base_amount:
|
||||
cur_price_unit -= tax.amount
|
||||
|
||||
|
||||
for tax in taxes:
|
||||
if tax.type=='percent':
|
||||
if tax.include_base_amount:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<assert model="account.move" search="[]" string="For all account moves, the state is valid implies that the sum of credits equals the sum of debits">
|
||||
<assert model="account.move" search="[]" string="For all Ledger Postings, the state is valid implies that the sum of credits equals the sum of debits">
|
||||
<test expr="not len(line_id) or line_id[0].state != 'valid' or (sum([l.debit - l.credit for l in line_id]) <= 0.00001)"/>
|
||||
</assert>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -213,7 +213,7 @@ class account_bank_statement(osv.osv):
|
||||
'period_id': st.period_id.id,
|
||||
'currency_id': st.currency.id,
|
||||
}
|
||||
|
||||
|
||||
amount = res_currency_obj.compute(cr, uid, st.currency.id,
|
||||
company_currency_id, move.amount, context=context,
|
||||
account=acc_cur)
|
||||
@@ -249,7 +249,7 @@ class account_bank_statement(osv.osv):
|
||||
'statement_id': st.id,
|
||||
'journal_id': st.journal_id.id,
|
||||
'period_id': st.period_id.id,
|
||||
'analytic_account_id':newline.analytic_id and newline.analytic_id.id or False,
|
||||
'analytic_account_id':newline.analytic_id and newline.analytic_id.id or False,
|
||||
|
||||
}, context=context)
|
||||
|
||||
@@ -282,7 +282,7 @@ class account_bank_statement(osv.osv):
|
||||
context=context):
|
||||
if line.state <> 'valid':
|
||||
raise osv.except_osv(_('Error !'),
|
||||
_('Account move line "%s" is not valid') % line.name)
|
||||
_('Ledger Posting line "%s" is not valid') % line.name)
|
||||
|
||||
if move.reconcile_id and move.reconcile_id.line_ids:
|
||||
torec += map(lambda x: x.id, move.reconcile_id.line_ids)
|
||||
@@ -501,7 +501,7 @@ class account_bank_statement_reconcile_line(osv.osv):
|
||||
'account_id': fields.many2one('account.account', 'Account', required=True),
|
||||
'line_id': fields.many2one('account.bank.statement.reconcile', 'Reconcile'),
|
||||
'amount': fields.float('Amount', required=True),
|
||||
'analytic_id': fields.many2one('account.analytic.account',"Analytic Account")
|
||||
'analytic_id': fields.many2one('account.analytic.account',"Analytic Account")
|
||||
}
|
||||
_defaults = {
|
||||
'name': lambda *a: 'Write-Off',
|
||||
@@ -588,13 +588,13 @@ class account_bank_statement_line(osv.osv):
|
||||
'note': fields.text('Notes'),
|
||||
'reconcile_amount': fields.function(_reconcile_amount,
|
||||
string='Amount reconciled', method=True, type='float'),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
'sequence': fields.integer('Sequence'),
|
||||
}
|
||||
_defaults = {
|
||||
'name': lambda self,cr,uid,context={}: self.pool.get('ir.sequence').get(cr, uid, 'account.bank.statement.line'),
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
'type': lambda *a: 'general',
|
||||
'sequence': lambda *a: 10,
|
||||
'sequence': lambda *a: 10,
|
||||
}
|
||||
|
||||
account_bank_statement_line()
|
||||
|
||||
@@ -346,7 +346,7 @@
|
||||
<field name="view_mode">tree,form,calendar,graph</field>
|
||||
<field name="view_id" ref="invoice_tree"/>
|
||||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -369,7 +369,7 @@
|
||||
<field eval="False" name="view_id"/>
|
||||
<field name="domain">[('type','=','out_invoice')]</field>
|
||||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree1_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -401,7 +401,7 @@
|
||||
<field eval="False" name="view_id"/>
|
||||
<field name="domain">[('type','=','in_invoice')]</field>
|
||||
<field name="context">{'type':'in_invoice'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<menuitem action="action_invoice_tree2" id="menu_action_invoice_tree2" parent="account.menu_finance_invoice"/>
|
||||
<record id="action_invoice_tree2_new" model="ir.actions.act_window">
|
||||
@@ -422,7 +422,7 @@
|
||||
<field eval="False" name="view_id"/>
|
||||
<field name="domain">[('type','=','out_refund')]</field>
|
||||
<field name="context">{'type':'out_refund'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<menuitem action="action_invoice_tree3" id="menu_action_invoice_tree3" parent="account.menu_finance_invoice"/>
|
||||
|
||||
@@ -444,7 +444,7 @@
|
||||
<field eval="False" name="view_id"/>
|
||||
<field name="domain">[('type','=','in_refund')]</field>
|
||||
<field name="context">{'type':'in_refund'}</field>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<menuitem action="action_invoice_tree4" id="menu_action_invoice_tree4" parent="account.menu_finance_invoice"/>
|
||||
|
||||
@@ -467,7 +467,7 @@
|
||||
<field name="domain">[('state','=','draft'),('type','=','out_invoice')]</field>
|
||||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -489,7 +489,7 @@
|
||||
<field name="domain">[('state','=','proforma2'),('type','=','out_invoice')]</field>
|
||||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree6_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -511,7 +511,7 @@
|
||||
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','out_invoice')]</field>
|
||||
<field name="context">{'type':'out_invoice'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree7_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -533,7 +533,7 @@
|
||||
<field name="domain">[('state','=','draft'),('type','=','in_invoice')]</field>
|
||||
<field name="context">{'type':'in_invoice'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree8_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -555,7 +555,7 @@
|
||||
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','in_invoice')]</field>
|
||||
<field name="context">{'type':'in_invoice'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree9_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -577,7 +577,7 @@
|
||||
<field name="domain">[('state','=','draft'),('type','=','out_refund')]</field>
|
||||
<field name="context">{'type':'out_refund'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree10_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -599,7 +599,7 @@
|
||||
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','out_refund')]</field>
|
||||
<field name="context">{'type':'out_refund'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree11_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -621,7 +621,7 @@
|
||||
<field name="domain">[('state','=','draft'),('type','=','in_refund')]</field>
|
||||
<field name="context">{'type':'in_refund'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree12_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -643,7 +643,7 @@
|
||||
<field name="domain">[('state','not in',['draft','cancel']),('reconciled','=',False),('type','=','in_refund')]</field>
|
||||
<field name="context">{'type':'in_refund'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
<field name="search_view_id" ref="view_account_invoice_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree13_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<menuitem id="menu_finance_legal_statement" name="Legal Statements" parent="account.menu_finance" sequence="8"/>
|
||||
<menuitem id="menu_generic_report" name="Generic Reports" parent="account.menu_finance_legal_statement" sequence="8"/>
|
||||
|
||||
<menuitem id="menu_finance_entries" name="Entries Encoding" parent="account.menu_finance" sequence="2"
|
||||
<menuitem id="menu_finance_entries" name="Making Entries" parent="account.menu_finance" sequence="2"
|
||||
groups="group_account_user"/>
|
||||
<menuitem id="account.menu_finance_recurrent_entries" name="Recurrent Entries" parent="account.menu_finance_entries" sequence="15"/>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -46,12 +46,12 @@ class account_move_line(osv.osv):
|
||||
|
||||
if context.get('date_from', False) and context.get('date_to', False):
|
||||
where_move_lines_by_date = " AND " +obj+".move_id in ( select id from account_move where date >= '" +context['date_from']+"' AND date <= '"+context['date_to']+"')"
|
||||
|
||||
|
||||
if state:
|
||||
if state.lower() not in ['all']:
|
||||
where_move_state= " AND "+obj+".move_id in (select id from account_move where account_move.state = '"+state+"')"
|
||||
|
||||
|
||||
|
||||
|
||||
if context.get('periods', False):
|
||||
ids = ','.join([str(x) for x in context['periods']])
|
||||
return obj+".state<>'draft' AND "+obj+".period_id in (SELECT id from account_period WHERE fiscalyear_id in (%s) AND id in (%s)) %s %s" % (fiscalyear_clause, ids,where_move_state,where_move_lines_by_date)
|
||||
@@ -292,7 +292,7 @@ class account_move_line(osv.osv):
|
||||
if not len(res):
|
||||
return [('id', '=', '0')]
|
||||
return [('id', 'in', [x[0] for x in res])]
|
||||
|
||||
|
||||
def _invoice_search(self, cursor, user, obj, name, args):
|
||||
if not len(args):
|
||||
return []
|
||||
@@ -553,7 +553,7 @@ class account_move_line(osv.osv):
|
||||
|
||||
def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context={}):
|
||||
id_set = ','.join(map(str, ids))
|
||||
|
||||
|
||||
lines = self.browse(cr, uid, ids, context=context)
|
||||
unrec_lines = filter(lambda x: not x['reconcile_id'], lines)
|
||||
credit = debit = 0.0
|
||||
@@ -829,7 +829,7 @@ class account_move_line(osv.osv):
|
||||
if res:
|
||||
if res[1] != 'draft':
|
||||
raise osv.except_osv(_('UserError'),
|
||||
_('The account move (%s) for centralisation ' \
|
||||
_('The Ledger Posting (%s) for centralisation ' \
|
||||
'has been confirmed!') % res[2])
|
||||
vals['move_id'] = res[0]
|
||||
|
||||
|
||||
@@ -336,7 +336,7 @@
|
||||
<page string="Entry encoding">
|
||||
<field colspan="4" name="line_ids" nolabel="1">
|
||||
<tree editable="bottom" string="Statement lines">
|
||||
<field name="sequence"/>
|
||||
<field name="sequence"/>
|
||||
<field name="date"/>
|
||||
<field name="ref"/>
|
||||
<field name="name"/>
|
||||
@@ -358,7 +358,7 @@
|
||||
<field name="amount"/>
|
||||
<field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
|
||||
<field name="ref"/>
|
||||
<field name="sequence"/>
|
||||
<field name="sequence"/>
|
||||
<separator colspan="4" string="Notes"/>
|
||||
<field colspan="4" name="note" nolabel="1"/>
|
||||
</form>
|
||||
@@ -392,7 +392,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_bank_statement_tree2" model="ir.actions.act_window">
|
||||
@@ -458,7 +458,6 @@
|
||||
<field name="code" select="1"/>
|
||||
<field name="sequence"/>
|
||||
<field name="sign"/>
|
||||
|
||||
<field name="close_method"/>
|
||||
<field name="partner_account"/>
|
||||
</form>
|
||||
@@ -657,7 +656,7 @@
|
||||
<field eval="True" name="object"/>
|
||||
</record>
|
||||
|
||||
<wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Entries Encoding by Line"/>
|
||||
<wizard id="action_move_journal_line_form" menu="False" model="account.move.line" name="account.move.journal" string="Making Entries by Line"/>
|
||||
<menuitem icon="STOCK_JUSTIFY_FILL" action="action_move_journal_line_form" id="menu_action_move_journal_line_form" parent="account.menu_finance_entries" type="wizard" sequence="5"/>
|
||||
|
||||
<!--
|
||||
@@ -793,13 +792,13 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_account_move_line_filter" model="ir.ui.view">
|
||||
<field name="name">account.move.line.select</field>
|
||||
<field name="model">account.move.line</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Move Lines">
|
||||
<search string="Search Entry Lines">
|
||||
<group col='10' colspan='4'>
|
||||
<filter icon="terp-account" string="Draft" domain="[('state','=','draft')]" help="Draft Move Lines"/>
|
||||
<filter icon="terp-account" string="Posted" domain="[('state','=','valid')]" help="Posted Move Lines"/>
|
||||
@@ -819,9 +818,9 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_move_line_tree"/>
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_view_move_line" model="ir.actions.act_window">
|
||||
<field name="name">Lines to reconcile</field>
|
||||
<field name="res_model">account.move.line</field>
|
||||
@@ -830,7 +829,7 @@
|
||||
<field name="domain">[('account_id.reconcile', '=', True),('reconcile_id','=',False)]</field>
|
||||
<field eval="False" name="view_id"/>
|
||||
<field eval="True" name="filter"/>
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
<field name="search_view_id" ref="view_account_move_line_filter"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
@@ -886,7 +885,7 @@
|
||||
<field name="debit" select="1"/>
|
||||
<field name="credit" select="1"/>
|
||||
<field name="date" select="1"/>
|
||||
|
||||
|
||||
<separator colspan="4" string="Optional Information"/>
|
||||
<field name="currency_id"/>
|
||||
<field name="amount_currency"/>
|
||||
@@ -962,12 +961,12 @@
|
||||
<menuitem action="action_move_line_form" id="menu_action_move_line_form" parent="next_id_29"/>
|
||||
|
||||
<record id="action_move_line_form_encode_by_move" model="ir.actions.act_window">
|
||||
<field name="name">Entries Encoding by Move</field>
|
||||
<field name="name">Making Entries by Move</field>
|
||||
<field name="res_model">account.move</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" ref="view_move_tree"/>
|
||||
<field name="search_view_id" ref="view_account_move_filter"/>
|
||||
<field name="search_view_id" ref="view_account_move_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem action="action_move_line_form_encode_by_move" id="menu_encode_entries_by_move" parent="menu_finance_entries"/>
|
||||
@@ -1092,7 +1091,7 @@
|
||||
<!--
|
||||
TODO:
|
||||
Print Journal (and change state)
|
||||
Close Journal (and verify that there is no draft move lines)
|
||||
Close Journal (and verify that there is no draft Entry Lines)
|
||||
-->
|
||||
|
||||
<record id="view_journal_period_tree" model="ir.ui.view">
|
||||
@@ -1346,7 +1345,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','running')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_subscription_form_new" model="ir.actions.act_window">
|
||||
|
||||
@@ -85,10 +85,10 @@
|
||||
|
||||
|
||||
<!-- account.move validate -->
|
||||
<wizard id="wizard_validate_account_moves" menu="False" model="account.move" name="account.move.validate" string="Validate Account Moves"/>
|
||||
<wizard id="wizard_validate_account_moves" menu="False" model="account.move" name="account.move.validate" string="Validate Ledger Postings"/>
|
||||
<menuitem action="wizard_validate_account_moves" id="menu_validate_account_moves" parent="account.menu_finance_periodical_processing" type="wizard"/>
|
||||
|
||||
<wizard id="wizard_validate_account_moves_line" menu="True" model="account.move.line" name="account.move_line.validate" string="Validate Account Moves"/>
|
||||
<wizard id="wizard_validate_account_moves_line" menu="True" model="account.move.line" name="account.move_line.validate" string="Validate Ledger Postings"/>
|
||||
|
||||
<!-- Use Models -->
|
||||
<wizard string="Create Entries From Models" model="account.model" name="account_use_models" menu="False" id="wizard_account_use_model"/>
|
||||
|
||||
+16
-16
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -128,7 +128,7 @@ class account_invoice(osv.osv):
|
||||
else:
|
||||
debit+=debit_tmp
|
||||
credit+=credit_tmp
|
||||
|
||||
|
||||
if not inv.amount_total:
|
||||
result = 0.0
|
||||
elif inv.type in ('out_invoice','in_refund'):
|
||||
@@ -139,7 +139,7 @@ class account_invoice(osv.osv):
|
||||
result = inv.amount_total - amount
|
||||
# Use is_zero function to avoid rounding trouble => should be fixed into ORM
|
||||
res[inv.id] = not self.pool.get('res.currency').is_zero(cr, uid, inv.company_id.currency_id,result) and result or 0.0
|
||||
|
||||
|
||||
return res
|
||||
|
||||
def _get_lines(self, cr, uid, ids, name, arg, context=None):
|
||||
@@ -209,7 +209,7 @@ class account_invoice(osv.osv):
|
||||
move[line.move_id.id] = True
|
||||
for line in r.line_id:
|
||||
move[line.move_id.id] = True
|
||||
|
||||
|
||||
invoice_ids = []
|
||||
if move:
|
||||
invoice_ids = self.pool.get('account.invoice').search(cr, uid, [('move_id','in',move.keys())], context=context)
|
||||
@@ -260,7 +260,7 @@ class account_invoice(osv.osv):
|
||||
'invoice_line': fields.one2many('account.invoice.line', 'invoice_id', 'Invoice Lines', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'tax_line': fields.one2many('account.invoice.tax', 'invoice_id', 'Tax Lines', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
|
||||
'move_id': fields.many2one('account.move', 'Invoice Movement', readonly=True, help="Link to the automatically generated account moves."),
|
||||
'move_id': fields.many2one('account.move', 'Invoice Movement', readonly=True, help="Link to the automatically generated Ledger Postings."),
|
||||
'amount_untaxed': fields.function(_amount_all, method=True, digits=(16, int(config['price_accuracy'])),string='Untaxed',
|
||||
store={
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 20),
|
||||
@@ -291,10 +291,10 @@ class account_invoice(osv.osv):
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, None, 50), # Check if we can remove ?
|
||||
'account.move.line': (_get_invoice_from_line, None, 50),
|
||||
'account.move.reconcile': (_get_invoice_from_reconcile, None, 50),
|
||||
}, help="The account moves of the invoice have been reconciled with account moves of the payment(s)."),
|
||||
}, help="The Ledger Postings of the invoice have been reconciled with Ledger Postings of the payment(s)."),
|
||||
'partner_bank': fields.many2one('res.partner.bank', 'Bank Account',
|
||||
help='The bank account to pay to or to be paid from'),
|
||||
'move_lines':fields.function(_get_lines , method=True,type='many2many' , relation='account.move.line',string='Move Lines'),
|
||||
'move_lines':fields.function(_get_lines , method=True,type='many2many' , relation='account.move.line',string='Entry Lines'),
|
||||
'residual': fields.function(_amount_residual, method=True, digits=(16, int(config['price_accuracy'])),string='Residual',
|
||||
store={
|
||||
'account.invoice': (lambda self, cr, uid, ids, c={}: ids, ['invoice_line'], 50),
|
||||
@@ -305,7 +305,7 @@ class account_invoice(osv.osv):
|
||||
},
|
||||
help="Remaining amount due."),
|
||||
'payment_ids': fields.function(_compute_lines, method=True, relation='account.move.line', type="many2many", string='Payments'),
|
||||
'move_name': fields.char('Account Move', size=64),
|
||||
'move_name': fields.char('Ledger Posting', size=64),
|
||||
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position')
|
||||
}
|
||||
_defaults = {
|
||||
@@ -545,7 +545,7 @@ class account_invoice(osv.osv):
|
||||
for taxe in ait_obj.compute(cr, uid, id, context=context).values():
|
||||
ait_obj.create(cr, uid, taxe)
|
||||
# Update the stored value (fields.function), so we write to trigger recompute
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {'invoice_line':[]}, context=context)
|
||||
# self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
|
||||
return True
|
||||
|
||||
@@ -730,7 +730,7 @@ class account_invoice(osv.osv):
|
||||
tmp += '-'+str(l.get('product_id',"False"))
|
||||
tmp += '-'+str(l.get('analytic_account_id',"False"))
|
||||
tmp += '-'+str(l.get('date_maturity',"False"))
|
||||
|
||||
|
||||
if tmp in line2:
|
||||
am = line2[tmp]['debit'] - line2[tmp]['credit'] + (l['debit'] - l['credit'])
|
||||
line2[tmp]['debit'] = (am > 0) and am or 0.0
|
||||
@@ -971,7 +971,7 @@ class account_invoice(osv.osv):
|
||||
date=context['date_p']
|
||||
else:
|
||||
date=time.strftime('%Y-%m-%d')
|
||||
|
||||
|
||||
# Take the amount in currency and the currency of the payment
|
||||
if 'amount_currency' in context and context['amount_currency'] and 'currency_id' in context and context['currency_id']:
|
||||
amount_currency = context['amount_currency']
|
||||
@@ -979,7 +979,7 @@ class account_invoice(osv.osv):
|
||||
else:
|
||||
amount_currency = False
|
||||
currency_id = False
|
||||
|
||||
|
||||
# Pay attention to the sign for both debit/credit AND amount_currency
|
||||
l1 = {
|
||||
'debit': direction * pay_amount>0 and direction * pay_amount,
|
||||
@@ -1294,12 +1294,12 @@ class account_invoice_tax(osv.osv):
|
||||
'tax_code_id': fields.many2one('account.tax.code', 'Tax Code', help="The tax basis of the tax declaration."),
|
||||
'tax_amount': fields.float('Tax Code Amount', digits=(16,int(config['price_accuracy']))),
|
||||
}
|
||||
|
||||
|
||||
def base_change(self, cr, uid, ids, base,currency_id=False,company_id=False,date_invoice=False):
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
company_obj = self.pool.get('res.company')
|
||||
company_currency=False
|
||||
if company_id:
|
||||
if company_id:
|
||||
company_currency = company_obj.read(cr,uid,[company_id],['currency_id'])[0]['currency_id'][0]
|
||||
if currency_id and company_currency:
|
||||
base = cur_obj.compute(cr, uid, currency_id, company_currency, base, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
|
||||
@@ -1314,7 +1314,7 @@ class account_invoice_tax(osv.osv):
|
||||
if currency_id and company_currency:
|
||||
amount = cur_obj.compute(cr, uid, currency_id, company_currency, amount, context={'date': date_invoice or time.strftime('%Y-%m-%d')}, round=False)
|
||||
return {'value': {'tax_amount':amount}}
|
||||
|
||||
|
||||
_order = 'sequence'
|
||||
_defaults = {
|
||||
'manual': lambda *a: 1,
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_process_statementprocess0" model="process.process">
|
||||
<field eval="1" name="active"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
<field eval=""""Statement"""" name="name"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_electronicfile0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
@@ -26,7 +26,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_manually0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
@@ -37,7 +37,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_importinvoice0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
@@ -48,7 +48,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_draftstatement0" model="process.node">
|
||||
<field name="menu_id" ref="account.menu_bank_statement_tree"/>
|
||||
<field name="model_id" ref="account.model_account_bank_statement"/>
|
||||
@@ -63,7 +63,7 @@
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_filestatement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -72,16 +72,17 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_electronicfile0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_invoicemanually0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Manual entry"""" name="name"/>
|
||||
<field eval=""""Encode the statement manually in the system."""" name="note"/>
|
||||
<field eval=""""A statement with manual entries becomes a draft statement."""" name="note"/>
|
||||
|
||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_manually0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_invoiceimport0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -90,6 +91,6 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_draftstatement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_importinvoice0"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -80,7 +80,7 @@
|
||||
</record>
|
||||
<!--<menuitem id="menu_analytic_account" name="Analytic Accounts" parent="account.menu_analytic_accounting"/>-->
|
||||
<menuitem action="action_account_analytic_account_form" id="account_analytic_def_account" parent="account.menu_analytic_accounting"/>
|
||||
|
||||
|
||||
<record id="act_account_renew_view" model="ir.actions.act_window">
|
||||
<field name="name">Accounts to Renew</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
@@ -88,7 +88,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('date','<',time.strftime('%Y-%m-%d %H:%M:%S'))]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_account_analytic_account_tree2" model="ir.actions.act_window">
|
||||
@@ -105,10 +105,10 @@
|
||||
id="account_analytic_def_chart"
|
||||
parent="account_analytic_def_account"/>
|
||||
<!-- <menuitem action="action_account_analytic_account_tree2" id="account_analytic_chart" parent="account.menu_finance_charts"/>-->
|
||||
|
||||
|
||||
<wizard id="wizard_analytic_account_chart" menu="False" model="account.analytic.account" name="account.analytic.account.chart" string="Analytic Chart of Accounts"/>
|
||||
<menuitem icon="STOCK_INDENT" action="wizard_analytic_account_chart" id="menu_action_analytic_account_tree2" parent="account.menu_finance_charts" type="wizard"/>
|
||||
|
||||
|
||||
<record id="analytic_account_form" model="ir.actions.act_window">
|
||||
<field name="name">New Analytic Account</field>
|
||||
<field name="res_model">account.analytic.account</field>
|
||||
@@ -182,7 +182,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="view_account_analytic_line_tree"/>
|
||||
</record>
|
||||
<wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Entries Encoding by Line"/>
|
||||
<wizard id="action_account_analytic_line" menu="False" model="account.analytic.line" name="account.analytic.line" string="Making Entries by Line"/>
|
||||
<menuitem id="next_id_41" name="Analytic Entries" parent="account.menu_finance_entries"/>
|
||||
<menuitem type="wizard" icon="STOCK_JUSTIFY_FILL" action="action_account_analytic_line" id="account_entries_analytic_entries" parent="next_id_41"/>
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
<record id="account_move_comp_rule_group" model="ir.rule.group">
|
||||
<field name="name">Account Entry</field>
|
||||
<field ref="model_account_move"/>
|
||||
<field ref="model_account_move" name="model_id"/>
|
||||
<field eval="True" name="global"/>
|
||||
</record>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
<record id="account_move_line_comp_rule_group" model="ir.rule.group">
|
||||
<field name="name">Entry lines</field>
|
||||
<field model="ir.model" ref="model_account_move_line"/>
|
||||
<field model="ir.model" name="model_id" ref="model_account_move_line"/>
|
||||
<field eval="True" name="global"/>
|
||||
</record>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -36,7 +36,7 @@ model_fields = {
|
||||
|
||||
form = """<?xml version="1.0"?>
|
||||
<form string="Use Model">
|
||||
<label string="Move Lines Created."/>
|
||||
<label string="Entry Lines Created."/>
|
||||
</form>
|
||||
"""
|
||||
fields = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -72,7 +72,7 @@ def _validate_move_lines(self, cr, uid, data, context={}):
|
||||
move_ids.append(line.move_id.id)
|
||||
move_ids = list(set(move_ids))
|
||||
if not move_ids:
|
||||
raise wizard.except_wizard(_('Warning'), _('Selected Move lines does not have any account move enties in draft state'))
|
||||
raise wizard.except_wizard(_('Warning'), _('Selected Entry Lines does not have any account move enties in draft state'))
|
||||
res = move_obj.button_validate(cr, uid, move_ids, context)
|
||||
return {}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><openerp><data noupdate="0">
|
||||
<record id="budget_post_comp_rule_group" model="ir.rule.group">
|
||||
<field name="name">Budget post multi-company</field>
|
||||
<field name="model_id" model="model_account_budget_post"/>
|
||||
<field name="model_id" ref="model_account_budget_post"/>
|
||||
<field eval="True" name="global"/>
|
||||
</record>
|
||||
<record id="budget_post_comp_rule" model="ir.rule">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -41,7 +41,7 @@ class wizard_report(wizard.interface):
|
||||
pool_obj = pooler.get_pool(cr.dbname)
|
||||
data_model = pool_obj.get(data['model']).browse(cr,uid,data['id'])
|
||||
if not data_model.dotation_ids:
|
||||
raise wizard.except_wizard(_('Insufficient Data!'),_('No Dotations or Master Budget Expenses Found on Budget %s!') % data_model.name)
|
||||
raise wizard.except_wizard(_('Insufficient Data!'),_('No Depreciation or Master Budget Expenses Found on Budget %s!') % data_model.name)
|
||||
return data['form']
|
||||
|
||||
states = {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -64,7 +64,7 @@ class account_move_line(osv.osv):
|
||||
if not journal.allow_date:
|
||||
period=self.pool.get('account.period').browse(cr,uid,[period_id])[0]
|
||||
if not time.strptime(vals['date'],'%Y-%m-%d')>=time.strptime(period.date_start,'%Y-%m-%d') and time.strptime(vals['date'],'%Y-%m-%d')<=time.strptime(period.date_stop,'%Y-%m-%d'):
|
||||
raise osv.except_osv(_('Error'),_('The date of your account move is not in the defined period !'))
|
||||
raise osv.except_osv(_('Error'),_('The date of your Ledger Posting is not in the defined period !'))
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -72,7 +72,7 @@ _followup_wizard_all_form = """<?xml version="1.0"?>
|
||||
<label string="%(company_name)s: User's Company name" colspan="2"/>
|
||||
<label string="%(company_currency)s: User's Company Currency" colspan="2"/>
|
||||
<label string="%(heading)s: Move line header" colspan="2"/>
|
||||
<label string="%(line)s: Account Move lines" colspan="2"/>
|
||||
<label string="%(line)s: Ledger Posting lines" colspan="2"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>"""
|
||||
@@ -168,7 +168,7 @@ class followup_all_print(wizard.interface):
|
||||
cxt = context.copy()
|
||||
cxt['lang'] = partner.lang
|
||||
body = pool.get('res.users').browse(cr, uid, uid, context=cxt).company_id.follow_up_msg
|
||||
|
||||
|
||||
total_amt = followup_data.debit - followup_data.credit
|
||||
move_line = ''
|
||||
subtotal_due = 0.0
|
||||
@@ -268,9 +268,9 @@ class followup_all_print(wizard.interface):
|
||||
if partner_id not in partner_list:
|
||||
partner_list.append(partner_id)
|
||||
to_update[str(id)] = fups[followup_line_id][1]
|
||||
|
||||
|
||||
message = pool.get('res.users').browse(cr, uid, uid, context=context).company_id.follow_up_msg
|
||||
|
||||
|
||||
return {'partner_ids': partner_list, 'to_update': to_update, 'email_body':message}
|
||||
|
||||
def _get_screen1_values(self, cr, uid, data, context):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -77,7 +77,7 @@ class account_move_line(osv.osv):
|
||||
|
||||
def line2bank(self, cr, uid, ids, payment_type=None, context=None):
|
||||
"""
|
||||
Try to return for each account move line a corresponding bank
|
||||
Try to return for each Ledger Posting line a corresponding bank
|
||||
account according to the payment type. This work using one of
|
||||
the bank of the partner defined on the invoice eventually
|
||||
associated to the line.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -108,7 +108,7 @@ class wizard_payment_order(wizard.interface):
|
||||
- Small number of non-reconcilied move line , payment mode and bank account type,
|
||||
- Big number of partner and bank account.
|
||||
|
||||
If a type is given, unsuitable account move lines are ignored.
|
||||
If a type is given, unsuitable account Entry lines are ignored.
|
||||
"""
|
||||
states = {
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<record id="note_sale_type" model="board.note.type">
|
||||
<field name="name">Production</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="board_mrp_manager_form" model="ir.ui.view">
|
||||
<field name="name">board.mrp.manager.form</field>
|
||||
<field name="model">board.board</field>
|
||||
@@ -14,21 +14,21 @@
|
||||
<hpaned position="100">
|
||||
<child1>
|
||||
<action colspan="4" height="200" name="%(mrp.mrp_production_action2)d" string="Next production orders" width="510"/>
|
||||
<action colspan="4" name="%(stock.action_picking_tree2)d" string="Deliveries (Out packing)"/>
|
||||
<action colspan="4" name="%(mrp.mrp_procurement_action4)d" string="Procurement in Exception"/>
|
||||
<action colspan="4" name="%(stock.action_picking_tree2)d" string="Deliveries (Out picking)"/>
|
||||
<action colspan="4" name="%(mrp.mrp_procurement_action4)d" string=" Requisition in Exception"/>
|
||||
</child1>
|
||||
|
||||
|
||||
|
||||
|
||||
<child2>
|
||||
<action colspan="4" name="%(report_mrp.action_report_workcenter_load_tree)d" string="Workcenter futur load"/>
|
||||
|
||||
<action colspan="4" name="%(report_mrp.action_report_workcenter_load_tree)d" string="Workcenter future load"/>
|
||||
|
||||
<action colspan="4" name="%(report_mrp.action_report_in_out_picking_tree)d" string="Stock value variation"/>
|
||||
</child2>
|
||||
</hpaned>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="open_board_manufacturing" model="ir.actions.act_window">
|
||||
<field name="name">Production Dashboard</field>
|
||||
<field name="res_model">board.board</field>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -75,7 +75,7 @@ class crm_cases(osv.osv):
|
||||
'partner_name2': fields.char('Employee Email', size=64),
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
'child_ids': fields.one2many('crm.case', 'case_id', 'Events'),
|
||||
'child_ids': fields.one2many('crm.case', 'case_id', 'Events'),
|
||||
}
|
||||
|
||||
def stage_next(self, cr, uid, ids, context={}):
|
||||
@@ -125,11 +125,11 @@ class crm_menu_config_wizard(osv.osv_memory):
|
||||
'opportunity': fields.boolean('Business Opportunities', help="Tracks identified business opportunities for your sales pipeline."),
|
||||
'jobs': fields.boolean('Jobs Hiring Process', help="Help you to organise the jobs hiring process: evaluation, meetings, email integration..."),
|
||||
'document_ics': fields.boolean('Shared Calendar', help=" Will allow you to synchronise your Open ERP calendars with your phone, outlook, Sunbird, ical, ..."),
|
||||
'bugs': fields.boolean('Bug Tracking', help="Used by companies to track bugs and support requests on softwares"),
|
||||
'bugs': fields.boolean('Bug Tracking', help="Used by companies to track bugs and support requests on software"),
|
||||
'helpdesk': fields.boolean('Helpdesk', help="Manages an Helpdesk service."),
|
||||
'fund': fields.boolean('Fund Raising Operations', help="This may help associations in their fund raising process and tracking."),
|
||||
'claims': fields.boolean('Claims', help="Manages the supplier and customers claims, including your corrective or preventive actions."),
|
||||
'phonecall': fields.boolean('Phone Calls', help="Help you to encode the result of a phone call or to planify a list of phone calls to process."),
|
||||
'phonecall': fields.boolean('Phone Calls', help="Help you to encode the result of a phone call or to plan a list of phone calls to process."),
|
||||
}
|
||||
_defaults = {
|
||||
'meeting': lambda *args: True,
|
||||
@@ -190,42 +190,42 @@ crm_menu_config_wizard()
|
||||
|
||||
class crm_generic_wizard(osv.osv_memory):
|
||||
_name = 'crm.generic_wizard'
|
||||
|
||||
_columns = {
|
||||
|
||||
_columns = {
|
||||
'section_id': fields.many2one('crm.case.section', 'Section', required=True),
|
||||
'user_id': fields.many2one('res.users', 'Responsible'),
|
||||
}
|
||||
|
||||
|
||||
def _get_default_section(self, cr, uid, context):
|
||||
case_id = context.get('active_id',False)
|
||||
if not case_id:
|
||||
return False
|
||||
case_obj = self.pool.get('crm.case')
|
||||
case_obj = self.pool.get('crm.case')
|
||||
case = case_obj.read(cr, uid, case_id, ['state','section_id'])
|
||||
if case['state'] in ('done'):
|
||||
raise osv.except_osv(_('Error !'), _('You can not assign Closed Case.'))
|
||||
raise osv.except_osv(_('Error !'), _('You can not assign Closed Case.'))
|
||||
return case['section_id']
|
||||
|
||||
|
||||
|
||||
|
||||
_defaults = {
|
||||
'section_id': _get_default_section
|
||||
}
|
||||
}
|
||||
def action_create(self, cr, uid, ids, context=None):
|
||||
case_obj = self.pool.get('crm.case')
|
||||
case_obj = self.pool.get('crm.case')
|
||||
case_id = context.get('active_id',[])
|
||||
res = self.read(cr, uid, ids)[0]
|
||||
case = case_obj.read(cr, uid, case_id, ['state'])
|
||||
if case['state'] in ('done'):
|
||||
raise osv.except_osv(_('Error !'), _('You can not assign Closed Case.'))
|
||||
raise osv.except_osv(_('Error !'), _('You can not assign Closed Case.'))
|
||||
new_case_id = case_obj.copy(cr, uid, case_id, default=
|
||||
{
|
||||
'section_id':res.get('section_id',False),
|
||||
'user_id':res.get('user_id',False)
|
||||
}, context=context)
|
||||
case_obj.write(cr, uid, case_id, {'case_id':new_case_id}, context=context)
|
||||
case_obj.case_close(cr, uid, [case_id])
|
||||
return {}
|
||||
|
||||
case_obj.write(cr, uid, case_id, {'case_id':new_case_id}, context=context)
|
||||
case_obj.case_close(cr, uid, [case_id])
|
||||
return {}
|
||||
|
||||
crm_generic_wizard()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -29,7 +29,7 @@ import pooler
|
||||
from tools.translate import _
|
||||
|
||||
case_form = """<?xml version="1.0"?>
|
||||
<form string="Planify Meeting">
|
||||
<form string="Plan Meeting">
|
||||
<field name="date"/>
|
||||
<field name="duration" widget="float_time"/>
|
||||
<label string="Note that you can also use the calendar view to graphically schedule your next meeting." colspan="4"/>
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
# Czech translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Vítězslav Kotrla <vitezslav.kotrla@gmail.com>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 11:37+0000\n"
|
||||
"Last-Translator: Vitezslav Kotrla <Unknown>\n"
|
||||
"Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Vyhrazený systémový účet, pod kterým bude běžet Open ERP server:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Pokud by byl Open ERP server spuštěn se superuživatelskými oprávněními, "
|
||||
"mohlo by dojít ke kompromitaci zabezpečení systému. Proto musí Open ERP "
|
||||
"server pro svoji činnost používat vyhrazený neprivilegovaný účet."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Zvolte prosím název totoho účtu."
|
||||
@@ -1,42 +0,0 @@
|
||||
# German translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Kai Wasserbäch <debian@carbon-project.org>
|
||||
# Copyright (C) 2009 Helge Kreutzmann <debian@helgefjell.de>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 11:48+0000\n"
|
||||
"Last-Translator: Helge Kreutzmann <Unknown>\n"
|
||||
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Eigenes Systemkonto für den Open ERP-Server:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Der Open ERP-Server muss ein eigenes Konto für den Betrieb verwenden, um die "
|
||||
"Sicherheit des Systems nicht durch das Betreiben mit Superuser-Rechten zu "
|
||||
"kompromittieren."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Bitte wählen Sie den Benutzernamen dieses Kontos."
|
||||
@@ -1,42 +0,0 @@
|
||||
# Spanish translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Software in the Public Interest
|
||||
# 2009 Fernando González de Requena <fgrequena@gmail.com>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:21+0000\n"
|
||||
"Last-Translator: Fernando González de Requena <Unknown>\n"
|
||||
"Language-Team: Spanish <debian-l10n-spanish@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Cuenta del sistema dedicada para el servidor Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"El servidor de Open ERP debe utilizar una cuenta dedicada para su "
|
||||
"funcionamiento, de tal modo que la seguridad del sistema no se vea "
|
||||
"comprometida por su utilización con privilegios de administración."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Elija un nombre de usuario para esa cuenta."
|
||||
@@ -1,41 +0,0 @@
|
||||
# Finnish translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Esko Arajärvi
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:22+0000\n"
|
||||
"Last-Translator: Esko Arajärvi <Unknown>\n"
|
||||
"Language-Team: Finnish <debian-l10n-finnish@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Dedikoitu järjestelmätunnus Open ERP-taustaohjelman ajamiseen:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Open ERP-palvelimen tulee käyttää dedikoitua tunnusta toiminnoissaan, jotta "
|
||||
"järjestelmän turvallisuus ei vaarannu kuten käytettäessä "
|
||||
"pääkäyttäjäoikeuksia."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Valitse kyseisen tunnuksen nimi."
|
||||
@@ -1,41 +0,0 @@
|
||||
# French translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Steve Petruzzello <dlist@bluewin.ch>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:24+0000\n"
|
||||
"Last-Translator: Steve Petruzzello <Unknown>\n"
|
||||
"Language-Team: French <debian-l10n-french@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Identifiant dédié pour le serveur Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Le serveur Open ERP doit être exécuté avec un identifiant spécifique, "
|
||||
"différent du superutilisateur, afin de ne pas compromettre la sécurité du "
|
||||
"système."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Veuillez choisir cet identifiant."
|
||||
@@ -1,41 +0,0 @@
|
||||
# Galizian translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Marce Villarino <mvillarino@gmail.com>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:29+0000\n"
|
||||
"Last-Translator: mvillarino <mvillarino@users.sourceforge.net>\n"
|
||||
"Language-Team: Galician <proxecto@trasno.ent>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Conta de usuario do sistema adicada ao servidor Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"O servidor Open ERP debe empregar unha conta adicada a el para que a "
|
||||
"seguridade do sistema non se poña en perigo ao executalo con privilexios de "
|
||||
"administrador."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Escolla o nome de usuario desa conta."
|
||||
@@ -1,41 +0,0 @@
|
||||
# Italian translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Vincenzo Campanella <vinz65@gmail.com>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:39+0000\n"
|
||||
"Last-Translator: vinz65 <vinz65@gmail.com>\n"
|
||||
"Language-Team: Italian <tp@lists.linux.it>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Account di sistema dedicato per il server di Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Il server Open ERP deve utilizzare un account dedicato per eseguire le "
|
||||
"proprie operazioni, in modo che la sicurezza del sistema non rischi di "
|
||||
"essere compromessa eseguendolo con privilegi di superutente."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Scegliere il nome utente di tale account."
|
||||
@@ -1,39 +0,0 @@
|
||||
# Japanese translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Hideki Yamane <henrich@debian.or.jp>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:46+0000\n"
|
||||
"Last-Translator: Hideki Yamane (Debian-JP) <henrich@debian.or.jp>\n"
|
||||
"Language-Team: Japanese <debian-japanese@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Open ERP デーモン専用のシステムアカウント:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Open ERP サーバはその動作について専用のアカウントを使うようになっているため、管理者特権で動作していてもシステムのセキュリティは侵害されません。"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "アカウントのユーザ名を選んでください。"
|
||||
@@ -1,41 +0,0 @@
|
||||
# Portuguese translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Américo Monteiro <a_monteiro@netcabo.pt>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:56+0000\n"
|
||||
"Last-Translator: Américo Monteiro <Unknown>\n"
|
||||
"Language-Team: Portuguese <traduz@debianpt.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Conta dedicada do sistema para o servidor Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"O servidor Open ERP tem que usar uma conta dedicada para as suas operações, "
|
||||
"isto para que a segurança do sistema não seja comprometida ao corrê-lo com "
|
||||
"privilégios de superutilizador."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Por favor escolha o nome dessa conta."
|
||||
@@ -1,42 +0,0 @@
|
||||
# German translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Sergey Alyoshin <alyoshin.s@gmail.com>
|
||||
# Copyright (C) 2009 Yuri Kozlov <yuray@komyakino.ru>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server 5.0.1-0-2\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 13:01+0000\n"
|
||||
"Last-Translator: Yuri Kozlov <Unknown>\n"
|
||||
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Специально выделенная системная учётная запись для Open ERP службы:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Для улучшения безопасности системы Open ERP сервер должен использовать "
|
||||
"специально выделенную учётную запись, а не запускаться с правами "
|
||||
"суперпользователя."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Укажите имя такой учётной записи."
|
||||
@@ -1,39 +0,0 @@
|
||||
# Slovak translation for openobject-addons
|
||||
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 12:00+0000\n"
|
||||
"Last-Translator: Radoslav Sloboda <rado.sloboda@gmail.com>\n"
|
||||
"Language-Team: Slovak <sk@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Dedikovaný systém, účet pre server Open ERP:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr ""
|
||||
@@ -1,41 +0,0 @@
|
||||
# Swedish translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Martin Bagge <brother@bsnet.se>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server\n"
|
||||
"Report-Msgid-Bugs-To: openerp-serverpackages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 13:03+0000\n"
|
||||
"Last-Translator: brother <martin@bagge.nu>\n"
|
||||
"Language-Team: swedish <debian-l10n-swedish@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"X-Poedit-Language: Swedish\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "Dedikerat systemkonto för Open ERP server:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr ""
|
||||
"Open ERP servern måste ha ett dedikerat konto för att fungera på ett säkert "
|
||||
"sätt, att använda privilegier från en superanvändare är inte säkert."
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "Ange kontots användarnamn."
|
||||
@@ -1,38 +0,0 @@
|
||||
# Simplified Chinese translation of openerp-server debconf templates.
|
||||
# Copyright (C) 2009 Deng Xiyue <manphiz-guest@users.alioth.debian.org>
|
||||
# This file is distributed under the same license as the openerp-server package.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openerp-server\n"
|
||||
"Report-Msgid-Bugs-To: openerp-server@packages.debian.org\n"
|
||||
"POT-Creation-Date: 2009-08-24 22:41+0300\n"
|
||||
"PO-Revision-Date: 2009-11-24 13:10+0000\n"
|
||||
"Last-Translator: Deng Xiyue <Unknown>\n"
|
||||
"Language-Team: Debian Chinese GB <debian-chinese-gb@lists.debian.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2009-11-25 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Dedicated system account for the Open ERP server:"
|
||||
msgstr "指定操作 Open ERP 守护进程的专用系统帐户:"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid ""
|
||||
"The Open ERP server must use a dedicated account for its operation so that "
|
||||
"the system's security is not compromised by running it with superuser "
|
||||
"privileges."
|
||||
msgstr "Open ERP 服务器必须使用一个专用的账户来进行操作,这样就不会因为使用超级用户权限运行而破坏系统的安全。"
|
||||
|
||||
#. Type: string
|
||||
#. Description
|
||||
#: ../openerp-server.templates:1001
|
||||
msgid "Please choose that account's username."
|
||||
msgstr "请选择账户的用户名。"
|
||||
@@ -158,7 +158,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree4" model="ir.actions.act_window">
|
||||
<field name="name">Packing to be invoiced</field>
|
||||
<field name="name">Picking to be invoiced</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -178,7 +178,7 @@
|
||||
<field name="domain">[('invoice_state','=','2binvoiced'),('state','=','done'),('type','=','in')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="search_view_id" ref="stock.view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="stock.view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<menuitem action="action_picking_tree5" id="menu_action_picking_tree5" parent="stock.menu_action_picking_tree4" groups="base.group_extended"/>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -26,12 +26,12 @@ class res_partner(osv.osv):
|
||||
_columns = {
|
||||
'property_delivery_carrier': fields.property(
|
||||
'delivery.carrier',
|
||||
type='many2one',
|
||||
relation='delivery.carrier',
|
||||
string="Delivery Method",
|
||||
type='many2one',
|
||||
relation='delivery.carrier',
|
||||
string="Delivery Method",
|
||||
method=True,
|
||||
view_load=True,
|
||||
help="This delivery method will be used when invoicing from packing."),
|
||||
help="This delivery method will be used when invoicing from picking."),
|
||||
}
|
||||
res_partner()
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import netsvc
|
||||
@@ -24,9 +24,9 @@ from osv import fields,osv
|
||||
|
||||
# Overloaded sale_order to manage carriers :
|
||||
class sale_order(osv.osv):
|
||||
_inherit = 'sale.order'
|
||||
_inherit = 'sale.order'
|
||||
_columns = {
|
||||
'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on packing."),
|
||||
'carrier_id':fields.many2one("delivery.carrier","Delivery method", help="Complete this field if you plan to invoice the shipping based on picking."),
|
||||
'id': fields.integer('ID', readonly=True,invisible=True),
|
||||
}
|
||||
|
||||
|
||||
@@ -28,47 +28,47 @@ import base64
|
||||
import pooler
|
||||
|
||||
SECTION_NAME = {
|
||||
'meeting' : 'Meetings',
|
||||
'lead':'Prospects',
|
||||
'opportunity':'Opportunities',
|
||||
'jobs':'Jobs',
|
||||
'bugs':'Bug Tracking',
|
||||
'fund':'Fund Raising',
|
||||
'helpdesk':'HelpDesk',
|
||||
'claims':'Claims',
|
||||
'phonecall':'Phone Calls',
|
||||
'meeting' : 'Meetings',
|
||||
'lead':'Prospects',
|
||||
'opportunity':'Opportunities',
|
||||
'jobs':'Jobs',
|
||||
'bugs':'Bug Tracking',
|
||||
'fund':'Fund Raising',
|
||||
'helpdesk':'HelpDesk',
|
||||
'claims':'Claims',
|
||||
'phonecall':'Phone Calls',
|
||||
}
|
||||
|
||||
ICS_TAGS = {
|
||||
'summary':'Description',
|
||||
'uid':'Calendar Code' ,
|
||||
'dtstart':'Date' ,
|
||||
'dtend':'Deadline' ,
|
||||
'url':'Partner Email' ,
|
||||
'description':'Your action',
|
||||
'summary':'Description',
|
||||
'uid':'Calendar Code' ,
|
||||
'dtstart':'Date' ,
|
||||
'dtend':'Deadline' ,
|
||||
'url':'Partner Email' ,
|
||||
'description':'Your action',
|
||||
}
|
||||
|
||||
class document_ics_crm_wizard(osv.osv_memory):
|
||||
_name='document.ics.crm.wizard'
|
||||
_columns = {
|
||||
'name':fields.char('Name', size=64),
|
||||
'meeting' : fields.boolean('Calendar of Meetings', help="Manages the calendar of meetings of the users."),
|
||||
'lead' : fields.boolean('Prospect', help="Allows you to track and manage prospects which are pre-sales requests or contacts, the very first contact with a customer request."),
|
||||
'opportunity' : fields.boolean('Business Opportunities', help="Tracks identified business opportunities for your sales pipeline."),
|
||||
'jobs' : fields.boolean('Jobs Hiring Process', help="Help you to organise the jobs hiring process: evaluation, meetings, email integration..."),
|
||||
'document_ics':fields.boolean('Shared Calendar', help=" Will allow you to synchronise your Open ERP calendars with your phone, outlook, Sunbird, ical, ..."),
|
||||
'bugs' : fields.boolean('Bug Tracking', help="Used by companies to track bugs and support requests on softwares"),
|
||||
'helpdesk': fields.boolean('Helpdesk', help="Manages an Helpdesk service."),
|
||||
'fund' : fields.boolean('Fund Raising Operations', help="This may help associations in their fund raising process and tracking."),
|
||||
'claims' : fields.boolean('Claims', help="Manages the supplier and customers claims, including your corrective or preventive actions."),
|
||||
'phonecall' : fields.boolean('Phone Calls', help="Help you to encode the result of a phone call or to planify a list of phone calls to process."),
|
||||
'name':fields.char('Name', size=64),
|
||||
'meeting' : fields.boolean('Calendar of Meetings', help="Manages the calendar of meetings of the users."),
|
||||
'lead' : fields.boolean('Prospect', help="Allows you to track and manage prospects which are pre-sales requests or contacts, the very first contact with a customer request."),
|
||||
'opportunity' : fields.boolean('Business Opportunities', help="Tracks identified business opportunities for your sales pipeline."),
|
||||
'jobs' : fields.boolean('Jobs Hiring Process', help="Help you to organise the jobs hiring process: evaluation, meetings, email integration..."),
|
||||
'document_ics':fields.boolean('Shared Calendar', help=" Will allow you to synchronise your Open ERP calendars with your phone, outlook, Sunbird, ical, ..."),
|
||||
'bugs' : fields.boolean('Bug Tracking', help="Used by companies to track bugs and support requests on software"),
|
||||
'helpdesk': fields.boolean('Helpdesk', help="Manages an Helpdesk service."),
|
||||
'fund' : fields.boolean('Fund Raising Operations', help="This may help associations in their fund raising process and tracking."),
|
||||
'claims' : fields.boolean('Claims', help="Manages the supplier and customers claims, including your corrective or preventive actions."),
|
||||
'phonecall' : fields.boolean('Phone Calls', help="Help you to encode the result of a phone call or to plan a list of phone calls to process."),
|
||||
}
|
||||
_defaults = {
|
||||
'meeting': lambda *args: True,
|
||||
'opportunity': lambda *args: True,
|
||||
'phonecall': lambda *args: True,
|
||||
'meeting': lambda *args: True,
|
||||
'opportunity': lambda *args: True,
|
||||
'phonecall': lambda *args: True,
|
||||
}
|
||||
|
||||
|
||||
def action_create(self, cr, uid, ids, context=None):
|
||||
data=self.read(cr, uid, ids, [])[0]
|
||||
dir_obj = self.pool.get('document.directory')
|
||||
@@ -85,46 +85,46 @@ class document_ics_crm_wizard(osv.osv_memory):
|
||||
section_id=self.pool.get('crm.case.section').search(cr, uid, [('name', '=', SECTION_NAME[section])])
|
||||
if not section_id:
|
||||
continue
|
||||
else:
|
||||
else:
|
||||
object_id=self.pool.get('ir.model').search(cr, uid, [('name', '=', 'Case')])[0]
|
||||
|
||||
|
||||
vals_cont={
|
||||
'name': SECTION_NAME[section],
|
||||
'sequence': 1,
|
||||
'directory_id': dir_id,
|
||||
'suffix': section,
|
||||
'extension': '.ics',
|
||||
'ics_object_id': object_id,
|
||||
'ics_domain': [('section_id', '=', section_id[0])],
|
||||
'name': SECTION_NAME[section],
|
||||
'sequence': 1,
|
||||
'directory_id': dir_id,
|
||||
'suffix': section,
|
||||
'extension': '.ics',
|
||||
'ics_object_id': object_id,
|
||||
'ics_domain': [('section_id', '=', section_id[0])],
|
||||
'include_name' : False
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
content_id = dir_cont_obj.create(cr, uid, vals_cont)
|
||||
|
||||
|
||||
ics_obj=self.pool.get('document.directory.ics.fields')
|
||||
for tag in ['description', 'url', 'summary', 'dtstart', 'dtend', 'uid']:
|
||||
field_id = self.pool.get('ir.model.fields').search(cr, uid, [('model_id.name', '=', 'Case'), ('field_description', '=', ICS_TAGS[tag])])[0]
|
||||
vals_ics={
|
||||
'field_id': field_id ,
|
||||
'name': tag ,
|
||||
'content_id': content_id ,
|
||||
vals_ics={
|
||||
'field_id': field_id ,
|
||||
'name': tag ,
|
||||
'content_id': content_id ,
|
||||
}
|
||||
ics_obj.create(cr, uid, vals_ics)
|
||||
|
||||
return {
|
||||
'view_type': 'form',
|
||||
"view_mode": 'form',
|
||||
'res_model': 'ir.actions.configuration.wizard',
|
||||
'type': 'ir.actions.act_window',
|
||||
'target':'new',
|
||||
'view_type': 'form',
|
||||
"view_mode": 'form',
|
||||
'res_model': 'ir.actions.configuration.wizard',
|
||||
'type': 'ir.actions.act_window',
|
||||
'target':'new',
|
||||
}
|
||||
def action_cancel(self, cr, uid, ids, conect=None):
|
||||
return {
|
||||
'view_type': 'form',
|
||||
"view_mode": 'form',
|
||||
'res_model': 'ir.actions.configuration.wizard',
|
||||
'type': 'ir.actions.act_window',
|
||||
'target':'new',
|
||||
'view_type': 'form',
|
||||
"view_mode": 'form',
|
||||
'res_model': 'ir.actions.configuration.wizard',
|
||||
'type': 'ir.actions.act_window',
|
||||
'target':'new',
|
||||
}
|
||||
|
||||
document_ics_crm_wizard()
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -63,7 +63,7 @@ class hr_expense_expense(osv.osv):
|
||||
'date_confirm': fields.date('Date Confirmed'),
|
||||
'date_valid': fields.date('Date Validated'),
|
||||
'user_valid': fields.many2one('res.users', 'Validation User'),
|
||||
'account_move_id': fields.many2one('account.move', 'Account Move'),
|
||||
'account_move_id': fields.many2one('account.move', 'Ledger Posting'),
|
||||
'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ),
|
||||
'note': fields.text('Note'),
|
||||
'amount': fields.function(_amount, method=True, string='Total Amount'),
|
||||
@@ -127,7 +127,7 @@ class hr_expense_expense(osv.osv):
|
||||
acc = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category')
|
||||
if not acc:
|
||||
raise osv.except_osv(_('Error !'), _('Please configure Default Expanse account for Product purchase, `property_account_expense_categ`'))
|
||||
|
||||
|
||||
lines.append((0, False, {
|
||||
'name': l.name,
|
||||
'account_id': acc,
|
||||
@@ -174,11 +174,11 @@ hr_expense_expense()
|
||||
|
||||
class product_product(osv.osv):
|
||||
_inherit = "product.product"
|
||||
|
||||
|
||||
_columns = {
|
||||
'hr_expense_ok': fields.boolean('Can be Expensed', help="Determine if the product can be visible in the list of product within a selection from an HR expense sheet line."),
|
||||
}
|
||||
|
||||
|
||||
product_product()
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
-->
|
||||
|
||||
<record id="process_node_holidaysdefinition0" model="process.node">
|
||||
<field name="menu_id" ref="hr_holidays.menu_action_my_holiday_available"/>
|
||||
<field name="menu_id" ref="hr_holidays.menu_open_ask_holidays_new"/>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays_per_user"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Encoding of annual available holidays."""" name="note"/>
|
||||
@@ -27,7 +27,7 @@
|
||||
</record>
|
||||
|
||||
<record id="process_node_holidaysrequest0" model="process.node">
|
||||
<field name="menu_id" ref="hr_holidays.menu_action_my_holiday"/>
|
||||
<field name="menu_id" ref="hr_holidays.menu_open_ask_holidays_new"/>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Employee fills in a request for holidays"""" name="note"/>
|
||||
@@ -38,7 +38,7 @@
|
||||
</record>
|
||||
|
||||
<record id="process_node_refused0" model="process.node">
|
||||
<field name="menu_id" ref="hr_holidays.menu_action_my_holiday_refuse"/>
|
||||
<field name="menu_id" ref="hr_holidays.menu_open_ask_holidays_new"/>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""His manager refuses the request"""" name="note"/>
|
||||
@@ -49,7 +49,7 @@
|
||||
</record>
|
||||
|
||||
<record id="process_node_approved0" model="process.node">
|
||||
<field name="menu_id" ref="hr_holidays.menu_action_my_holiday_validate"/>
|
||||
<field name="menu_id" ref="hr_holidays.menu_open_ask_holidays_new"/>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""His manager approves the request"""" name="note"/>
|
||||
@@ -60,7 +60,7 @@
|
||||
</record>
|
||||
|
||||
<record id="process_node_calendar0" model="process.node">
|
||||
<field name="menu_id" ref="hr_holidays.menu_action_my_holiday_validate"/>
|
||||
<field name="menu_id" ref="hr_holidays.menu_open_ask_holidays_new"/>
|
||||
<field name="model_id" ref="hr_holidays.model_hr_holidays"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""The holiday is set in the calendar"""" name="note"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -26,14 +26,14 @@ class company(osv.osv):
|
||||
_columns = {
|
||||
'schedule_range': fields.float('Scheduler Range', required=True,
|
||||
help="This is the time frame analysed by the scheduler when "\
|
||||
"computing procurements. All procurement that are not between "\
|
||||
"computing Requisitions. All Requisition that are not between "\
|
||||
"today and today+range are skipped for futur computation."),
|
||||
'po_lead': fields.float('Purchase Lead Time', required=True,
|
||||
help="This is the leads/security time for each purchase order."),
|
||||
'security_lead': fields.float('Security Days', required=True,
|
||||
help="This is the days added to what you promise to customers "\
|
||||
"for security purpose"),
|
||||
'manufacturing_lead': fields.float('Manufacturity Lead Time', required=True,
|
||||
'manufacturing_lead': fields.float('Manufacturing Lead Time', required=True,
|
||||
help="Security days for each manufacturing operation."),
|
||||
}
|
||||
_defaults = {
|
||||
|
||||
+22
-23
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -53,7 +53,7 @@ class mrp_workcenter(osv.osv):
|
||||
'time_cycle': fields.float('Time for 1 cycle (hour)', help="Time in hours for doing one cycle."),
|
||||
'time_start': fields.float('Time before prod.', help="Time in hours for the setup."),
|
||||
'time_stop': fields.float('Time after prod.', help="Time in hours for the cleaning."),
|
||||
'time_efficiency': fields.float('Time Efficiency', help="Factor that multiplies all times expressed in the workcenter."),
|
||||
'time_efficiency': fields.float('Time Efficiency', help="Factor to adjust the work center cycle and before and after production durations"),
|
||||
|
||||
'costs_hour': fields.float('Cost per hour'),
|
||||
'costs_hour_account_id': fields.many2one('account.analytic.account', 'Hour Account', domain=[('type','<>','view')],
|
||||
@@ -191,15 +191,15 @@ class mrp_bom(osv.osv):
|
||||
'product_qty': fields.float('Product Qty', required=True),
|
||||
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True, help="UoM (Unit of Measure) is the unit of measurement for the inventory control"),
|
||||
'product_rounding': fields.float('Product Rounding', help="Rounding applied on the product quantity. For integer only values, put 1.0"),
|
||||
'product_efficiency': fields.float('Product Efficiency', required=True, help="Efficiency on the production. A factor of 0.9 means a loss of 10% in the production."),
|
||||
'product_efficiency': fields.float('Product Efficiency', required=True, help="Material efficiency. A factor of 0.9 means a loss of 10% in the production."),
|
||||
'bom_lines': fields.one2many('mrp.bom', 'bom_id', 'BoM Lines'),
|
||||
'bom_id': fields.many2one('mrp.bom', 'Parent BoM', ondelete='cascade', select=True),
|
||||
'routing_id': fields.many2one('mrp.routing', 'Routing', help="The list of operations (list of workcenters) to produce the finished product. The routing is mainly used to compute workcenter costs during operations and to plan futur loads on workcenters based on production plannification."),
|
||||
'property_ids': fields.many2many('mrp.property', 'mrp_bom_property_rel', 'bom_id','property_id', 'Properties'),
|
||||
'revision_ids': fields.one2many('mrp.bom.revision', 'bom_id', 'BoM Revisions'),
|
||||
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'indice type'),
|
||||
'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hyerarchy", type='many2many'),
|
||||
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hyerarchy", type='many2many')
|
||||
'revision_type': fields.selection([('numeric','numeric indices'),('alpha','alphabetical indices')], 'Index type'),
|
||||
'child_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many'),
|
||||
'child_complete_ids': fields.function(_child_compute,relation='mrp.bom', method=True, string="BoM Hierarchy", type='many2many')
|
||||
}
|
||||
_defaults = {
|
||||
'active': lambda *a: 1,
|
||||
@@ -363,7 +363,7 @@ class mrp_production(osv.osv):
|
||||
parent_move_line=get_parent_move(production['move_prod_id'][0])
|
||||
if parent_move_line:
|
||||
move = move_obj.browse(cr,uid,parent_move_line)
|
||||
#TODO: fix me sale module can not be used here,
|
||||
#TODO: fix me sale module can not be used here,
|
||||
#as may be mrp can be installed without sale module
|
||||
if field_name=='name':
|
||||
res[production['id']]=move.sale_line_id and move.sale_line_id.order_id.name or False
|
||||
@@ -426,19 +426,18 @@ class mrp_production(osv.osv):
|
||||
'bom_id': fields.many2one('mrp.bom', 'Bill of Material', domain=[('bom_id','=',False)]),
|
||||
'routing_id': fields.many2one('mrp.routing', string='Routing', on_delete='set null', help="The list of operations (list of workcenters) to produce the finished product. The routing is mainly used to compute workcenter costs during operations and to plan futur loads on workcenters based on production plannification."),
|
||||
|
||||
'picking_id': fields.many2one('stock.picking', 'Packing list', readonly=True,
|
||||
help="This is the internal picking list take bring the raw materials to the production plan."),
|
||||
'picking_id': fields.many2one('stock.picking', 'Picking list', readonly=True,
|
||||
help="This is the internal picking list of the raw material needed for the production plan"),
|
||||
'move_prod_id': fields.many2one('stock.move', 'Move product', readonly=True),
|
||||
'move_lines': fields.many2many('stock.move', 'mrp_production_move_ids', 'production_id', 'move_id', 'Products Consummed'),
|
||||
|
||||
'move_created_ids': fields.one2many('stock.move', 'production_id', 'Moves Created'),
|
||||
'product_lines': fields.one2many('mrp.production.product.line', 'production_id', 'Scheduled goods'),
|
||||
'workcenter_lines': fields.one2many('mrp.production.workcenter.line', 'production_id', 'Workcenters Utilisation'),
|
||||
|
||||
'state': fields.selection([('draft','Draft'),('picking_except', 'Packing Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
|
||||
'state': fields.selection([('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Cancelled'),('done','Done')],'State', readonly=True,
|
||||
help='When the production order is created the state is set to \'Draft\'.\n If the order is confirmed the state is set to \'Waiting Goods\'.\n If any exceptions are there, the state is set to \'Packing Exception\'.\
|
||||
\nIf the stock is available then the state is set to \'Ready to Produce\'.\n When the production get started then the state is set to \'In Production\'.\n When the production is over, the state is set to \'Done\'.'),
|
||||
'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder'),
|
||||
'hour_total': fields.function(_production_calc, method=True, type='float', string='Total Hours', multi='workorder'),
|
||||
'cycle_total': fields.function(_production_calc, method=True, type='float', string='Total Cycles', multi='workorder'),
|
||||
|
||||
'sale_name': fields.function(_sale_name_calc, method=True, type='char', string='Sale Name'),
|
||||
@@ -784,11 +783,11 @@ mrp_production_product_line()
|
||||
class mrp_procurement(osv.osv):
|
||||
_name = "mrp.procurement"
|
||||
_description = "Procurement"
|
||||
_order = 'priority,date_planned'
|
||||
_order = 'priority,date_planned'
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True),
|
||||
'origin': fields.char('Origin', size=64,
|
||||
help="Reference of the document that created this procurement.\n"
|
||||
help="Reference of the document that created this Requisition.\n"
|
||||
"This is automatically completed by Open ERP."),
|
||||
'priority': fields.selection([('0','Not urgent'),('1','Normal'),('2','Urgent'),('3','Very Urgent')], 'Priority', required=True),
|
||||
'date_planned': fields.datetime('Scheduled date', required=True),
|
||||
@@ -804,8 +803,8 @@ class mrp_procurement(osv.osv):
|
||||
|
||||
'close_move': fields.boolean('Close Move at end', required=True),
|
||||
'location_id': fields.many2one('stock.location', 'Location', required=True),
|
||||
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Procurement Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
|
||||
readonly=True, required=True, help="If you encode manually a procurement, you probably want to use" \
|
||||
'procure_method': fields.selection([('make_to_stock','from stock'),('make_to_order','on order')], 'Requisition Method', states={'draft':[('readonly',False)], 'confirmed':[('readonly',False)]},
|
||||
readonly=True, required=True, help="If you encode manually a Requisition, you probably want to use" \
|
||||
" a make to order method."),
|
||||
|
||||
'purchase_id': fields.many2one('purchase.order', 'Purchase Order'),
|
||||
@@ -842,7 +841,7 @@ class mrp_procurement(osv.osv):
|
||||
if s['state'] in ['draft','cancel']:
|
||||
unlink_ids.append(s['id'])
|
||||
else:
|
||||
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Procurement Order(s) which are in %s State!' % s['state']))
|
||||
raise osv.except_osv(_('Invalid action !'), _('Cannot delete Requisition Order(s) which are in %s State!' % s['state']))
|
||||
return osv.osv.unlink(self, cr, uid, unlink_ids, context=context)
|
||||
|
||||
def onchange_product_id(self, cr, uid, ids, product_id, context={}):
|
||||
@@ -985,7 +984,7 @@ class mrp_procurement(osv.osv):
|
||||
def action_confirm(self, cr, uid, ids, context={}):
|
||||
for procurement in self.browse(cr, uid, ids):
|
||||
if procurement.product_qty <= 0.00:
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Procurement Order(s), it should not be less than 1!'))
|
||||
raise osv.except_osv(_('Data Insufficient !'), _('Please check the Quantity of Requisition Order(s), it should not be less than 1!'))
|
||||
if procurement.product_id.type in ('product', 'consu'):
|
||||
if not procurement.move_id:
|
||||
source = procurement.location_id.id
|
||||
@@ -1186,12 +1185,12 @@ class stock_warehouse_orderpoint(osv.osv):
|
||||
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True ),
|
||||
'product_min_qty': fields.float('Min Quantity', required=True,
|
||||
help="When the virtual stock goes belong the Min Quantity, Open ERP generates "\
|
||||
"a procurement to bring the virtual stock to the Max Quantity."),
|
||||
"a requisition to bring the virtual stock to the Max Quantity."),
|
||||
'product_max_qty': fields.float('Max Quantity', required=True,
|
||||
help="When the virtual stock goes belong the Min Quantity, Open ERP generates "\
|
||||
"a procurement to bring the virtual stock to the Max Quantity."),
|
||||
"a requisition to bring the virtual stock to the Max Quantity."),
|
||||
'qty_multiple': fields.integer('Qty Multiple', required=True,
|
||||
help="The procurement quantity will by rounded up to this multiple."),
|
||||
help="The requisition quantity will by rounded up to this multiple."),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Purchase Order')
|
||||
}
|
||||
_defaults = {
|
||||
@@ -1226,7 +1225,7 @@ stock_warehouse_orderpoint()
|
||||
class StockMove(osv.osv):
|
||||
_inherit = 'stock.move'
|
||||
_columns = {
|
||||
'procurements': fields.one2many('mrp.procurement', 'move_id', 'Procurements'),
|
||||
'procurements': fields.one2many('mrp.procurement', 'move_id', 'Requisitions'),
|
||||
}
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
default = default or {}
|
||||
|
||||
+15
-15
@@ -4,7 +4,7 @@
|
||||
|
||||
<menuitem icon="terp-mrp" id="menu_mrp_root" name="Manufacturing"
|
||||
groups="group_mrp_user,group_mrp_manager"/>
|
||||
<menuitem id="menu_mrp_reordering" name="Automatic Procurements" parent="stock.menu_stock_root" sequence="4"/>
|
||||
<menuitem id="menu_mrp_reordering" name="Automatic Requisitions" parent="stock.menu_stock_root" sequence="4"/>
|
||||
|
||||
<!--
|
||||
Property / Property Group
|
||||
@@ -666,7 +666,7 @@
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Procurement
|
||||
Requisition
|
||||
-->
|
||||
|
||||
<record id="mrp_procurement_tree_view" model="ir.ui.view">
|
||||
@@ -674,7 +674,7 @@
|
||||
<field name="model">mrp.procurement</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Procurement Lines">
|
||||
<tree string="Requisition Lines">
|
||||
<field name="name"/>
|
||||
<field name="product_id"/>
|
||||
<field name="product_qty"/>
|
||||
@@ -692,10 +692,10 @@
|
||||
<field name="model">mrp.procurement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Procurement">
|
||||
<form string="Requisition">
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="References"/>
|
||||
<field name="name" select="1" string="Procurement Reason"/>
|
||||
<field name="name" select="1" string="Requisition Reason"/>
|
||||
<field name="origin" select="2"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
@@ -705,7 +705,7 @@
|
||||
<field name="priority" groups="base.group_extended"/>
|
||||
</group>
|
||||
<notebook colspan="4">
|
||||
<page string="Procurement Details">
|
||||
<page string="Requisition Details">
|
||||
<separator colspan="4" string="Product & Location"/>
|
||||
<field name="product_id" select="1" on_change="onchange_product_id(product_id)"/>
|
||||
<field name="location_id" select="2"/>
|
||||
@@ -722,7 +722,7 @@
|
||||
<button name="button_confirm" states="draft" string="Confirm" icon="gtk-apply"/>
|
||||
<button name="button_restart" states="exception" string="Retry" icon="gtk-convert"/>
|
||||
<button name="button_cancel" states="exception,waiting" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="button_check" states="confirmed" string="Run procurement" icon="gtk-media-play"/>
|
||||
<button name="button_check" states="confirmed" string="Run Requisition" icon="gtk-media-play"/>
|
||||
<button name="button_cancel" states="draft,running" string="Cancel" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
@@ -749,9 +749,9 @@
|
||||
<field name="model">mrp.procurement</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Procurement">
|
||||
<search string="Search Requisition">
|
||||
<group col='8' colspan='4'>
|
||||
<filter icon="terp-mrp" string="Exceptions" domain="[('state','=','exception')]" help="Procurement orders with exceptions"/>
|
||||
<filter icon="terp-mrp" string="Exceptions" domain="[('state','=','exception')]" help="Requisition orders with exceptions"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select='1'/>
|
||||
<field name="product_id" select='1'/>
|
||||
@@ -762,7 +762,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="mrp_procurement_action" model="ir.actions.act_window">
|
||||
<field name="name">Procurement Orders</field>
|
||||
<field name="name">Requisition Orders</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -773,7 +773,7 @@
|
||||
sequence="-40" />
|
||||
|
||||
<record id="mrp_procurement_action3" model="ir.actions.act_window">
|
||||
<field name="name">Unscheduled procurements</field>
|
||||
<field name="name">Unscheduled Requisitions</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -782,7 +782,7 @@
|
||||
</record>
|
||||
|
||||
<record id="mrp_procurement_action5" model="ir.actions.act_window">
|
||||
<field name="name">Exceptions Procurements</field>
|
||||
<field name="name">Requisition Exceptions</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -791,7 +791,7 @@
|
||||
</record>
|
||||
|
||||
<record id="mrp_procurement_action4" model="ir.actions.act_window">
|
||||
<field name="name">Exceptions Procurements to Fix</field>
|
||||
<field name="name">Requisition Exceptions to Fix</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -801,7 +801,7 @@
|
||||
</record>
|
||||
|
||||
<record id="mrp_procurement_action11" model="ir.actions.act_window">
|
||||
<field name="name">Temporary Procurement Exceptions</field>
|
||||
<field name="name">Temporary Requisition Exceptions</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -810,7 +810,7 @@
|
||||
</record>
|
||||
|
||||
<record id="mrp_procurement_new" model="ir.actions.act_window">
|
||||
<field name="name">New Procurement</field>
|
||||
<field name="name">New Requisition</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">mrp.procurement</field>
|
||||
<field name="view_type">form</field>
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
<data>
|
||||
<wizard id="wiz_mrp_proc0" model="mrp.procurement" string="Compute All Schedulers" name="mrp.procurement.compute.all"/>
|
||||
<menuitem action="wiz_mrp_proc0" id="mrp_Sched_all" parent="mrp.menu_mrp_root" type="wizard" sequence="-49"/>
|
||||
|
||||
<wizard id="wiz_mrp_proc1" model="mrp.procurement" string="Compute Procurements Only" name="mrp.procurement.compute"/>
|
||||
<wizard id="wiz_mrp_proc1" model="mrp.procurement" string="Compute Requisitions Only" name="mrp.procurement.compute"/>
|
||||
<menuitem action="wiz_mrp_proc1" id="menu_wiz_mrp_proc1" parent="mrp.mrp_Sched_all" type="wizard"/>
|
||||
|
||||
<wizard id="wiz_mrp_proc2" model="mrp.procurement" string="Compute Stock Minimum Rules Only" name="mrp.procurement.orderpoint.compute"/>
|
||||
@@ -22,7 +21,7 @@
|
||||
</record>
|
||||
|
||||
<wizard
|
||||
string="Procurement Request"
|
||||
string="Requisition Request"
|
||||
model="product.product"
|
||||
name="product.product.procurement"
|
||||
keyword="client_action_multi"
|
||||
|
||||
@@ -2,13 +2,13 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<!-- Production -->
|
||||
|
||||
|
||||
<record id="wkf_prod" model="workflow">
|
||||
<field name="name">mrp.production.basic</field>
|
||||
<field name="osv">mrp.production</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="prod_act_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_prod"/>
|
||||
<field name="flow_start">True</field>
|
||||
@@ -53,7 +53,7 @@
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_cancel()</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="prod_trans_draft_ready" model="workflow.transition">
|
||||
<field name="act_from" ref="prod_act_draft"/>
|
||||
<field name="act_to" ref="prod_act_ready"/>
|
||||
@@ -112,15 +112,15 @@
|
||||
<field name="act_to" ref="prod_act_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Procurement -->
|
||||
|
||||
|
||||
<record id="wkf" model="workflow">
|
||||
<field name="name">mrp.procurement.basic</field>
|
||||
<field name="osv">mrp.procurement</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="act_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf"/>
|
||||
<field name="flow_start">True</field>
|
||||
@@ -203,7 +203,7 @@
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_done()</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_draft_confirm" model="workflow.transition">
|
||||
<field name="act_from" ref="act_draft"/>
|
||||
<field name="act_to" ref="act_confirm"/>
|
||||
@@ -322,13 +322,13 @@
|
||||
<field name="act_to" ref="act_cancel"/>
|
||||
<field name="signal">subflow.cancel</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_produce_make_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_produce"/>
|
||||
<field name="act_to" ref="act_make_done"/>
|
||||
<field name="signal">subflow.done</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_produce_service_make_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_produce_service"/>
|
||||
<field name="act_to" ref="act_make_done"/>
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_process_procurementprocess0" model="process.process">
|
||||
<field eval=""""Procurement"""" name="name"/>
|
||||
<field eval=""""Requisition"""" name="name"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_stockproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -27,7 +27,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_serviceproduct1" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -39,18 +39,18 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_productionorder0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_production"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Drives the procurement orders for raw material."""" name="note"/>
|
||||
<field eval=""""Drives the requisition orders for raw material."""" name="note"/>
|
||||
<field eval=""""Production Order"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'picking_except', 'confirmed', 'ready', 'in_production', 'cancel', 'done')"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_minimumstockrule0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_action_orderpoint_form"/>
|
||||
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
|
||||
@@ -60,18 +60,18 @@
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_procureproducts0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""The way to procure depends on the product type."""" name="note"/>
|
||||
<field eval=""""The way to requisition depends on the product type."""" name="note"/>
|
||||
<field eval=""""Procure Products"""" name="name"/>
|
||||
<field name="process_id" ref="process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_stockproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -83,7 +83,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_serviceproduct0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -95,7 +95,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_purchaseprocure0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -106,7 +106,7 @@
|
||||
<field name="process_id" ref="purchase.process_process_purchaseprocess0"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_productminimumstockrule0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_action_orderpoint_form"/>
|
||||
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
|
||||
@@ -116,7 +116,7 @@
|
||||
<field name="process_id" ref="product.process_process_productprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_routing0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_routing_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_routing"/>
|
||||
@@ -126,7 +126,7 @@
|
||||
<field name="process_id" ref="product.process_process_productprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_billofmaterial0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_bom_form_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_bom"/>
|
||||
@@ -136,11 +136,11 @@
|
||||
<field name="process_id" ref="product.process_process_productprocess0"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_servicemto0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -149,7 +149,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_serviceonorder0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_servicemts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -158,7 +158,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_servicemts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceproduct1"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_stockmts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -167,7 +167,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_mts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stockproduct1"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_stockproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -180,12 +180,12 @@
|
||||
<record id="process_transition_productionprocureproducts0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of raw material"""" name="name"/>
|
||||
<field eval=""""In order to supply raw material (to be purchased or produced), the production order creates as much procurement orders as components listed in the BOM, through a run of the schedulers (MRP)."""" name="note"/>
|
||||
<field eval=""""Requisition of raw material"""" name="name"/>
|
||||
<field eval=""""In order to supply raw material (to be purchased or produced), the production order creates as much requisition orders as components listed in the BOM, through a run of the schedulers (MRP)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_productionorder0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_minimumstockprocure0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -194,7 +194,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_minimumstockrule0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_procurestockableproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -203,16 +203,16 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_stockproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_procureserviceproduct0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of services"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to 'supply' the service, the procurement order creates a RFQ for a subcontracting purchase order or waits until the service is done (= the delivery of the products)."""" name="note"/>
|
||||
<field eval=""""Requisition of services"""" name="name"/>
|
||||
<field eval=""""Depending on the chosen method to 'supply' the service, the requisition order creates a RFQ for a subcontracting purchase order or waits until the service is done (= the delivery of the products)."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_serviceproduct0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_procureproducts0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_purchaseprocure0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -221,7 +221,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="purchase.process_node_draftpurchaseorder0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_purchaseprocure0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_producttostockrules0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -230,7 +230,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_productminimumstockrule0"/>
|
||||
<field model="process.node" name="source_node_id" ref="product.process_node_product0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_billofmaterialrouting0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -239,7 +239,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_routing0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_billofmaterial0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_bom0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -248,6 +248,6 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_billofmaterial0"/>
|
||||
<field model="process.node" name="source_node_id" ref="product.process_node_product0"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_process_serviceproductprocess0" model="process.process">
|
||||
<field eval=""""Service Product"""" name="name"/>
|
||||
<field eval=""""Service"""" name="name"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_serviceonorder0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -26,7 +26,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_servicemts0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -37,7 +37,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_orderrfq0" model="process.node">
|
||||
<field name="menu_id" ref="purchase.menu_purchase_form_action"/>
|
||||
<field name="model_id" ref="purchase.model_purchase_order"/>
|
||||
@@ -49,11 +49,11 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_servicerfq0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -62,6 +62,6 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_orderrfq0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_serviceonorder0"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -1,21 +1,21 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
Process
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_process_stockableproductprocess0" model="process.process">
|
||||
<field eval=""""Stockable Product"""" name="name"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval="1" name="active"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_mts0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -26,7 +26,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_stock0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
@@ -37,7 +37,7 @@
|
||||
<field eval=""""object.state in ('draft', 'confirmed', 'cancel', 'exception', 'running', 'done', 'waiting')"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_rfq0" model="process.node">
|
||||
<field name="menu_id" ref="purchase.menu_purchase_form_action"/>
|
||||
<field name="model_id" ref="purchase.model_purchase_order"/>
|
||||
@@ -49,7 +49,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_production0" model="process.node">
|
||||
<field name="menu_id" ref="mrp.menu_mrp_production_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_production"/>
|
||||
@@ -60,11 +60,11 @@
|
||||
<field eval=""""object.state=='confirmed'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_stockrfq0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -73,7 +73,7 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_rfq0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stock0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_stockproduction0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
@@ -82,6 +82,6 @@
|
||||
<field model="process.node" name="target_node_id" ref="process_node_production0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_stock0"/>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -31,7 +31,7 @@ from tools.translate import _
|
||||
class report_custom(report_rml):
|
||||
def create_xml(self, cr, uid, ids, datas, context={}):
|
||||
number = (datas.get('form', False) and datas['form']['number']) or 1
|
||||
|
||||
|
||||
def process_bom(bom, currency_id):
|
||||
xml = '<row>'
|
||||
sum = 0
|
||||
@@ -40,7 +40,7 @@ class report_custom(report_rml):
|
||||
|
||||
prod_name = bom['name']
|
||||
prod_qtty = bom['product_qty']
|
||||
prod_uom = prod.uom_id.name
|
||||
prod_uom = prod.uom_id.name
|
||||
level = 1
|
||||
main_sp_price = ''
|
||||
main_sp_name = ''
|
||||
@@ -136,7 +136,7 @@ class report_custom(report_rml):
|
||||
<col>%s</col>
|
||||
</row>
|
||||
</lines>
|
||||
""" % (_('Workcenter name'), _('Cycles Cost'), _('Hours Cost'))
|
||||
""" % (_('Workcenter name'), _('Cycles Cost'), _('Total hourly costs'))
|
||||
prod_header = """
|
||||
<lines style='header'>
|
||||
<row>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -115,7 +115,7 @@ class mrp_procurement(osv.osv):
|
||||
'''% (start_date, end_date, report_total, report_except, report_later)
|
||||
summary += '\n'.join(report)
|
||||
request.create(cr, uid,
|
||||
{'name': "Procurement calculation report.",
|
||||
{'name': "Requisition calculation report.",
|
||||
'act_from': uid,
|
||||
'act_to': uid,
|
||||
'body': summary,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -53,12 +53,12 @@ class MakeProcurement(wizard.interface):
|
||||
'''Wizard that create a procurement from a product form'''
|
||||
|
||||
done_form = """<?xml version="1.0"?>
|
||||
<form string="Make Procurement">
|
||||
<form string="Make Requisition">
|
||||
<label string="Your procurement request has been sent !"/>
|
||||
</form>"""
|
||||
procurement_form = """<?xml version="1.0"?>
|
||||
<form string="Internal Procurement Request">
|
||||
<label string="This wizard will planify the procurement for this product. This procurement may generate task, production orders or purchase orders." align="0.0" colspan="4"/>
|
||||
<form string="Internal Requisition Request">
|
||||
<label string="This wizard will plan the procurement for this product. This procurement may generate task, production orders or purchase orders." align="0.0" colspan="4"/>
|
||||
<field name="product_id"/>
|
||||
<field name="warehouse_id"/>
|
||||
<field name="qty"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -58,7 +58,7 @@ class procurement_compute(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Procurements')]}
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Requisitions')]}
|
||||
},
|
||||
'compute': {
|
||||
'actions': [_procure_calculation],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -50,7 +50,7 @@ class procurement_compute(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Procurements') ]}
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Requisitions') ]}
|
||||
},
|
||||
'compute': {
|
||||
'actions': [_procure_calculation],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -51,7 +51,7 @@ class procurement_compute(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [],
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Procurements') ]}
|
||||
'result': {'type': 'form', 'arch':parameter_form, 'fields': parameter_fields, 'state':[('end','Cancel'),('compute','Compute Requisitions') ]}
|
||||
},
|
||||
'compute': {
|
||||
'actions': [_procure_calculation],
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data>
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# Procurement - Automatic schedule
|
||||
# Requisition - Automatic schedule
|
||||
# -----------------------------------------------------------
|
||||
|
||||
<record model="workflow.transition" id="mrp.trans_confirm_confirm_wait">
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -77,7 +77,7 @@ class mrp_production_workcenter_line(osv.osv):
|
||||
'delay': fields.float('Working Hours',help="This is delay between operation start and stop in this workcenter",readonly=True),
|
||||
'production_state':fields.related('production_id','state',
|
||||
type='selection',
|
||||
selection=[('draft','Draft'),('picking_except', 'Packing Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Canceled'),('done','Done')],
|
||||
selection=[('draft','Draft'),('picking_except', 'Picking Exception'),('confirmed','Waiting Goods'),('ready','Ready to Produce'),('in_production','In Production'),('cancel','Canceled'),('done','Done')],
|
||||
string='Prod.State', readonly=True),
|
||||
'product':fields.related('production_id','product_id',type='many2one',relation='product.product',string='Product',
|
||||
readonly=True),
|
||||
@@ -230,9 +230,9 @@ class mrp_production(osv.osv):
|
||||
if l.production_id.state not in ('done','cancel'):
|
||||
for wc in l.production_id.workcenter_lines:
|
||||
i = self.pool.get('hr.timesheet.group').interval_min_get(
|
||||
cr,
|
||||
uid,
|
||||
wc.workcenter_id.timesheet_id.id or False,
|
||||
cr,
|
||||
uid,
|
||||
wc.workcenter_id.timesheet_id.id or False,
|
||||
dt, wc.hour or 0.0
|
||||
)
|
||||
dt = i[0][0]
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -102,11 +102,11 @@ class mrp_repair(osv.osv):
|
||||
], "Invoice Method",
|
||||
select=True, required=True, states={'draft':[('readonly',False)]}, readonly=True, help='This field allow you to change the workflow of the repair order. If value selected is different from \'No Invoice\', it also allow you to select the pricelist and invoicing address.'),
|
||||
'invoice_id': fields.many2one('account.invoice', 'Invoice', readonly=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Packing',readonly=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Picking',readonly=True),
|
||||
'fees_lines' : fields.one2many('mrp.repair.fee', 'repair_id', 'Fees Lines', readonly=True, states={'draft':[('readonly',False)]}),
|
||||
'internal_notes' : fields.text('Internal Notes'),
|
||||
'quotation_notes' : fields.text('Quotation Notes'),
|
||||
'deliver_bool': fields.boolean('Deliver', help="Check this box if you want to manage the delivery once the product is repaired. If cheked, it will create a packing with selected product. Note that you can select the locations in the Info tab, if you have the extended view."),
|
||||
'deliver_bool': fields.boolean('Deliver', help="Check this box if you want to manage the delivery once the product is repaired. If cheked, it will create a picking with selected product. Note that you can select the locations in the Info tab, if you have the extended view."),
|
||||
'invoiced': fields.boolean('Invoiced', readonly=True),
|
||||
'repaired' : fields.boolean('Repaired', readonly=True),
|
||||
'amount_untaxed': fields.function(_amount_untaxed, method=True, string='Untaxed Amount'),
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
</record>
|
||||
|
||||
<record id="node_packing" model="process.node">
|
||||
<field name="name">Packing List</field>
|
||||
<field name="name">Picking List</field>
|
||||
<field name="note">The workers pack the requested items</field>
|
||||
<field name="model_id" model="ir.model" search="[('name', '=', 'Packing list')]"></field>
|
||||
<field name="menu_id" model="ir.ui.menu" search="[('name', '=', 'Packing to Process')]"></field>
|
||||
@@ -69,7 +69,7 @@
|
||||
<field name="kind">state</field>
|
||||
<field name="model_states"></field>
|
||||
<field name="process_id" ref="sales_workflow"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record id="node_invoice_on_delivery" model="process.node">
|
||||
<field name="name">Invoice</field>
|
||||
@@ -79,7 +79,7 @@
|
||||
<field name="kind">subflow</field>
|
||||
<field name="model_states"></field>
|
||||
<field name="process_id" ref="sales_workflow"/>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<!-- Node conditions (Gray nodes) -->
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
</record>
|
||||
|
||||
<record id="transition_packing" model="process.transition">
|
||||
<field name="name">Packing</field>
|
||||
<field name="name">Picking</field>
|
||||
<field name="source_node_id" ref="node_sale_order"></field>
|
||||
<field name="target_node_id" ref="node_packing"></field>
|
||||
</record>
|
||||
|
||||
+11
-11
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -272,11 +272,11 @@ class product_template(osv.osv):
|
||||
'description': fields.text('Description',translate=True),
|
||||
'description_purchase': fields.text('Purchase Description',translate=True),
|
||||
'description_sale': fields.text('Sale Description',translate=True),
|
||||
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way procurements are processed. Consumables are stockable products with infinite stock, or for use when you have no stock management in the system."),
|
||||
'type': fields.selection([('product','Stockable Product'),('consu', 'Consumable'),('service','Service')], 'Product Type', required=True, help="Will change the way requisitions are processed. Consumables are stockable products with infinite stock, or for use when you have no stock management in the system."),
|
||||
'supply_method': fields.selection([('produce','Produce'),('buy','Buy')], 'Supply method', required=True, help="Produce will generate production order or tasks, according to the product type. Purchase will trigger purchase orders when requested."),
|
||||
'sale_delay': fields.float('Customer Lead Time', help="This is the average time between the confirmation of the customer order and the delivery of the finished products. It's the time you promise to your customers."),
|
||||
'produce_delay': fields.float('Manufacturing Lead Time', help="Average time to produce this product. This is only for the production order and, if it is a multi-level bill of material, it's only for the level of this product. Different delays will be summed for all levels and purchase orders."),
|
||||
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Procure Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the procurement request."),
|
||||
'procure_method': fields.selection([('make_to_stock','Make to Stock'),('make_to_order','Make to Order')], 'Requisition Method', required=True, help="'Make to Stock': When needed, take from the stock or wait until re-supplying. 'Make to Order': When needed, purchase or produce for the requisition request."),
|
||||
'rental': fields.boolean('Can be Rent'),
|
||||
'categ_id': fields.many2one('product.category','Category', required=True, change_default=True),
|
||||
'list_price': fields.float('Sale Price', digits=(16, int(config['price_accuracy'])), help="Base price for computing the customer price. Sometimes called the catalog price."),
|
||||
@@ -499,8 +499,8 @@ class product_product(osv.osv):
|
||||
product = self.browse(cr, uid, [product_id], context)[0]
|
||||
for supinfo in product.seller_ids:
|
||||
if supinfo.name.id == partner_id:
|
||||
return {'code': supinfo.product_code, 'name': supinfo.product_name, 'variants': ''}
|
||||
return {'code' : product.default_code, 'name' : product.name, 'variants': product.variants}
|
||||
return {'code': supinfo.product_code, 'name': supinfo.product_name, 'variants': ''}
|
||||
return {'code' : product.default_code, 'name' : product.name, 'variants': product.variants}
|
||||
|
||||
def _product_code(self, cr, uid, ids, name, arg, context={}):
|
||||
res = {}
|
||||
@@ -513,7 +513,7 @@ class product_product(osv.osv):
|
||||
for p in self.browse(cr, uid, ids, context):
|
||||
data = self._get_partner_code_name(cr, uid, [], p.id, context.get('partner_id', None), context)
|
||||
if not data['variants']:
|
||||
data['variants'] = p.variants
|
||||
data['variants'] = p.variants
|
||||
if not data['code']:
|
||||
data['code'] = p.code
|
||||
if not data['name']:
|
||||
@@ -546,10 +546,10 @@ class product_product(osv.osv):
|
||||
'variants': fields.char('Variants', size=64),
|
||||
'product_tmpl_id': fields.many2one('product.template', 'Product Template', required=True),
|
||||
'ean13': fields.char('EAN13', size=13),
|
||||
'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the packing order and is mainly used if you use the EDI module."),
|
||||
'packaging' : fields.one2many('product.packaging', 'product_id', 'Logistical Units', help="Gives the different ways to package the same product. This has no impact on the picking order and is mainly used if you use the EDI module."),
|
||||
'price_extra': fields.float('Variant Price Extra', digits=(16, int(config['price_accuracy']))),
|
||||
'price_margin': fields.float('Variant Price Margin', digits=(16, int(config['price_accuracy']))),
|
||||
'pricelist_id': fields.dummy(string='Pricelist',relation='product.pricelist', type='many2one'),
|
||||
'pricelist_id': fields.dummy(string='Pricelist',relation='product.pricelist', type='many2one'),
|
||||
}
|
||||
|
||||
def onchange_uom(self, cursor, user, ids, uom_id,uom_po_id):
|
||||
@@ -647,7 +647,7 @@ class product_product(osv.osv):
|
||||
default = {}
|
||||
default = default.copy()
|
||||
default['name'] = product['name'] + _(' (copy)')
|
||||
|
||||
|
||||
if context.get('variant',False):
|
||||
fields = ['product_tmpl_id', 'active', 'variants', 'default_code',
|
||||
'price_margin', 'price_extra']
|
||||
@@ -692,7 +692,7 @@ class product_packaging(osv.osv):
|
||||
}
|
||||
|
||||
_order = 'sequence'
|
||||
|
||||
|
||||
def name_get(self, cr, uid, ids, context={}):
|
||||
if not len(ids):
|
||||
return []
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
<notebook colspan="4">
|
||||
<page string="Information">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Procurement" colspan="2"/>
|
||||
<separator string=" Requisition" colspan="2"/>
|
||||
<field name="type" select="2"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="supply_method"/>
|
||||
@@ -113,7 +113,7 @@
|
||||
</group>
|
||||
|
||||
</page>
|
||||
<page string="Procurement & Locations">
|
||||
<page string="Requisition & Locations">
|
||||
<group colspan="2" col="2" name="delay">
|
||||
<separator string="Delays" colspan="2"/>
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
@@ -510,7 +510,7 @@
|
||||
<notebook colspan="4">
|
||||
<page string="Information">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Procurement" colspan="2"/>
|
||||
<separator string="Requisition" colspan="2"/>
|
||||
<field name="type" select="2"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="supply_method"/>
|
||||
@@ -544,7 +544,7 @@
|
||||
</group>
|
||||
|
||||
</page>
|
||||
<page string="Procurement & Locations">
|
||||
<page string="Requisition & Locations">
|
||||
<group colspan="2" col="2" name="delay">
|
||||
<separator string="Delays" colspan="2"/>
|
||||
<field name="sale_delay" attrs="{'readonly':[('sale_ok','=',0)]}"/>
|
||||
@@ -607,7 +607,7 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="company_wise_cost_price_tree_view" model="ir.ui.view">
|
||||
<field name="name">company.wise.cost.price.tree</field>
|
||||
<field name="model">company.wise.cost.price</field>
|
||||
@@ -620,7 +620,7 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="company_wise_sale_price_form_view" model="ir.ui.view">
|
||||
<field name="name">company.wise.sale.price.form</field>
|
||||
<field name="model">company.wise.sale.price</field>
|
||||
@@ -633,7 +633,7 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="company_wise_sale_price_tree_view" model="ir.ui.view">
|
||||
<field name="name">company.wise.sale.price.tree</field>
|
||||
<field name="model">company.wise.sale.price</field>
|
||||
@@ -646,6 +646,6 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -30,7 +30,7 @@ class profile_manufacturing_config_install_modules_wizard(osv.osv_memory):
|
||||
help="The JIT module allows you to not run the scheduler "\
|
||||
"periodically. It's easier and faster for real time "\
|
||||
"stock computation but, in counter-part, it manages less "\
|
||||
"efficiently priorities in procurements."
|
||||
"efficiently priorities in requisitions."
|
||||
),
|
||||
'sale_margin':fields.boolean('Margins on Sales Order',
|
||||
help="Display margins on the sale order form."),
|
||||
@@ -46,7 +46,7 @@ class profile_manufacturing_config_install_modules_wizard(osv.osv_memory):
|
||||
),
|
||||
'mrp_operation': fields.boolean('Manufacturing Operations',
|
||||
help="This module allows you to not only manage by production order "\
|
||||
"but also by work order/operation. You will be able to planify, "\
|
||||
"but also by work order/operation. You will be able to plan, "\
|
||||
"analyse the cost, check times, ... on all operations of each "\
|
||||
"manufacturing order"),
|
||||
'stock_location': fields.boolean('Advanced Locations',
|
||||
@@ -70,9 +70,9 @@ class profile_manufacturing_config_install_modules_wizard(osv.osv_memory):
|
||||
help="This module allows you to add sub poducts in mrp bom."),
|
||||
'warning': fields.boolean('Warning',
|
||||
help="Able you to set warnings on products and partners."),
|
||||
'board_document':fields.boolean('Document Management',
|
||||
'board_document':fields.boolean('Document Management',
|
||||
help= "The Document Management System of Open ERP allows you to store, browse, automatically index, search and preview all kind of documents (internal documents, printed reports, calendar system). It opens an FTP access for the users to easily browse association's document."),
|
||||
'mrp_repair': fields.boolean('Repair',
|
||||
'mrp_repair': fields.boolean('Repair',
|
||||
help="Allow to manage product repairs. Handle the guarantee limit date and the invoicing of products and services."),
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" ?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
Process Node
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_node_procuretasktask0" model="process.node">
|
||||
<field name="menu_id" ref="project.menu_action_view_task"/>
|
||||
<field name="model_id" ref="project.model_project_task"/>
|
||||
@@ -17,7 +17,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_saleordertask0" model="process.node">
|
||||
<field name="menu_id" ref="sale.menu_sale_order"/>
|
||||
<field name="model_id" ref="sale.model_sale_order"/>
|
||||
@@ -29,7 +29,7 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="1" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_node_mrptask0" model="process.node">
|
||||
<field name="menu_id" ref="project.menu_action_view_task"/>
|
||||
<field name="model_id" ref="project.model_project_task"/>
|
||||
@@ -41,19 +41,19 @@
|
||||
<field eval=""""object.state=='draft'"""" name="model_states"/>
|
||||
<field eval="0" name="flow_start"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
Process Transition
|
||||
-->
|
||||
|
||||
|
||||
<record id="process_transition_procuretask0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procure Task"""" name="name"/>
|
||||
<field eval="""" Requisition Task"""" name="name"/>
|
||||
<field eval=""""if product type is 'service' then it creates the task."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_procuretasktask0"/>
|
||||
<field model="process.node" name="source_node_id" ref="sale.process_node_saleprocurement0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_createtask0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Create Task"""" name="name"/>
|
||||
@@ -61,19 +61,19 @@
|
||||
<field model="process.node" name="target_node_id" ref="project.process_node_drafttask0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleordertask0"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="process_transition_ordertask0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Order Task"""" name="name"/>
|
||||
<field eval=""""If procure method is Make to order and supply method is produce"""" name="note"/>
|
||||
<field eval=""""If Requisition method is Make to order and supply method is produce"""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_mrptask0"/>
|
||||
<field model="process.node" name="source_node_id" ref="mrp.process_node_serviceonorder0"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
|
||||
<!--
|
||||
Process Action
|
||||
-->
|
||||
|
||||
|
||||
<!-- <record id="process_transition_action_orderconfirmtask0" model="process.transition.action">-->
|
||||
<!-- <field eval=""""action_confirm"""" name="action"/>-->
|
||||
<!-- <field eval=""""object"""" name="state"/>-->
|
||||
@@ -91,9 +91,9 @@
|
||||
<!-- <record id="process_transition_action_taskrunprocurement0" model="process.transition.action">-->
|
||||
<!-- <field eval=""""write({'state':'exception'})"""" name="action"/>-->
|
||||
<!-- <field eval=""""object"""" name="state"/>-->
|
||||
<!-- <field eval=""""Run Procurement"""" name="name"/>-->
|
||||
<!-- <field eval=""""Run Requisition"""" name="name"/>-->
|
||||
<!-- <field name="transition_id" ref="process_transition_ordertask0"/>-->
|
||||
<!-- </record>-->
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -26,7 +26,7 @@ class project_task(osv.osv):
|
||||
_name = "project.task"
|
||||
_inherit = "project.task"
|
||||
_columns = {
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Procurement', ondelete='set null')
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Requisition', ondelete='set null')
|
||||
}
|
||||
def do_close(self, cr, uid, ids, *args):
|
||||
res = super(project_task, self).do_close(cr, uid, ids, *args)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
-->
|
||||
|
||||
<record id="process_node_timesheettask0" model="process.node">
|
||||
<field name="menu_id" ref="hr_timesheet.menu_act_hr_timesheet_line_evry1_today_form"/>
|
||||
<field name="menu_id" ref="hr_timesheet.menu_act_hr_timesheet_line_me_all_form"/>
|
||||
<field name="model_id" ref="hr_timesheet.model_hr_analytic_timesheet"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Timesheet task"""" name="name"/>
|
||||
@@ -17,7 +17,7 @@
|
||||
</record>
|
||||
|
||||
<record id="process_node_taskwork0" model="process.node">
|
||||
<field name="menu_id" ref="project.menu_action_view_task6_prog"/>
|
||||
<field name="menu_id" ref="project.menu_action_view_task"/>
|
||||
<field name="model_id" ref="project.model_project_task_work"/>
|
||||
<field eval=""""state"""" name="kind"/>
|
||||
<field eval=""""Task Work"""" name="name"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -194,8 +194,8 @@ class purchase_order(osv.osv):
|
||||
}, multi="sums"),
|
||||
'fiscal_position': fields.many2one('account.fiscal.position', 'Fiscal Position'),
|
||||
'product_id': fields.related('order_line','product_id', type='many2one', relation='product.product', string='Product'),
|
||||
'create_uid': fields.many2one('res.users', 'Responsible'),
|
||||
'company_id': fields.many2one('res.company','Company',required=True),
|
||||
'create_uid': fields.many2one('res.users', 'Responsible'),
|
||||
'company_id': fields.many2one('res.company','Company',required=True),
|
||||
}
|
||||
_defaults = {
|
||||
'date_order': lambda *a: time.strftime('%Y-%m-%d'),
|
||||
@@ -357,7 +357,7 @@ class purchase_order(osv.osv):
|
||||
if pick.state not in ('draft','cancel'):
|
||||
raise osv.except_osv(
|
||||
_('Could not cancel purchase order !'),
|
||||
_('You must first cancel all packing attached to this purchase order.'))
|
||||
_('You must first cancel all picking attached to this purchase order.'))
|
||||
for pick in purchase.picking_ids:
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
wf_service.trg_validate(uid, 'stock.picking', pick.id, 'button_cancel', cr)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
'dest_address_id':fields.many2one('res.partner.address', 'Destination Address', states={'posted':[('readonly',True)]}),
|
||||
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', states={'posted':[('readonly',True)]}),
|
||||
'invoice_method': fields.selection([('manual','Manual'),('order','From order'),('picking','From picking')], 'Invoicing method', required=True),
|
||||
|
||||
|
||||
Mandatory fields:
|
||||
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}),
|
||||
'partner_id':fields.many2one('res.partner', 'Partner', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, change_default=True),
|
||||
@@ -39,7 +39,7 @@
|
||||
'product_uom': fields.many2one('product.uom', 'Product UOM', required=True),
|
||||
'notes': fields.text('Notes'),
|
||||
'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',),
|
||||
|
||||
|
||||
Mandatory fields:
|
||||
'date_planned': fields.date('Date Promised', required=True),
|
||||
'product_id': fields.many2one('product.product', 'Product', domain=[('purchase_ok','=',True)], change_default=True),
|
||||
@@ -64,38 +64,38 @@
|
||||
<field name="price_unit">88</field>
|
||||
<field name="product_qty">3</field>
|
||||
</record>
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="The amount of Test purchase is correctly computed" severity="error">
|
||||
<test expr="sum([l.price_subtotal for l in order_line]) == amount_untaxed" />
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow model="purchase.order" ref="test_purchase_1" action="purchase_confirm" />
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase is now confirmed">
|
||||
<test expr="state">confirmed</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow model="purchase.order" ref="test_purchase_1" action="purchase_approve" uid="base.user_root" />
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase is now in progress">
|
||||
<test expr="state">approved</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Treat generated invoice -->
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase has now a corresponding invoice" severity="fatal">
|
||||
<test expr="bool(invoice_id)" />
|
||||
</assert>
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's invoice has the same amount and is currently a draft" severity="error">
|
||||
<test expr="invoice_id.amount_untaxed == amount_untaxed" />
|
||||
<test expr="invoice_id.amount_total == amount_total" />
|
||||
<test expr="invoice_id.state">draft</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow model="account.invoice" action="invoice_open">
|
||||
<value model="purchase.order" eval="obj(ref('test_purchase_1')).invoice_id.id" />
|
||||
</workflow>
|
||||
|
||||
|
||||
<function model="account.invoice" name="pay_and_reconcile">
|
||||
<value model="purchase.order" eval="[obj(ref('test_purchase_1')).invoice_id.id]" />
|
||||
<value eval="1164" />
|
||||
@@ -106,36 +106,36 @@
|
||||
<value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
|
||||
<value eval="ref('account.bank_journal')" />
|
||||
</function>
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's invoice is now paid" severity="error">
|
||||
<test expr="invoice_id.state">paid</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Treat generated picking -->
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase has now a corresponding packing" severity="fatal">
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase has now a corresponding picking" severity="fatal">
|
||||
<test expr="len(picking_ids) == 1" />
|
||||
</assert>
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's packing will be sent to the good address" severity="error">
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's picking will be sent to the good address" severity="error">
|
||||
<test expr="picking_ids[0].address_id == partner_address_id" />
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Do the same as in wizard_partial_picking lines 143-144 -->
|
||||
<function model="stock.picking" name="action_move">
|
||||
<value model="purchase.order" eval="[obj(ref('test_purchase_1')).picking_ids[0].id]" />
|
||||
</function>
|
||||
|
||||
|
||||
<workflow model="stock.picking" action="button_done">
|
||||
<value model="purchase.order" eval="obj(ref('test_purchase_1')).picking_ids[0].id" />
|
||||
</workflow>
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's packing is now done" severity="error">
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase's picking is now done" severity="error">
|
||||
<test expr="picking_ids[0].state">done</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<assert model="purchase.order" id="test_purchase_1" string="Test purchase is now completed" severity="fatal">
|
||||
<test expr="state">done</test>
|
||||
</assert>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<record id="stock_picking_inherit_purchase" model="ir.ui.view">
|
||||
<field name="name">Packing list</field>
|
||||
<field name="name">Picking list</field>
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_form"/>
|
||||
@@ -13,13 +13,13 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<act_window
|
||||
domain="[('purchase_id', '=', active_id)]"
|
||||
id="act_purchase_order_2_stock_picking"
|
||||
name="Packing"
|
||||
res_model="stock.picking"
|
||||
domain="[('purchase_id', '=', active_id)]"
|
||||
id="act_purchase_order_2_stock_picking"
|
||||
name="Picking"
|
||||
res_model="stock.picking"
|
||||
src_model="purchase.order"/>
|
||||
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
<field name="menu_id" ref="sale.menu_sale_order"/>
|
||||
<field name="model_id" ref="sale.model_sale_order"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Sale Order Procurement"""" name="name"/>
|
||||
<field eval=""""Drives procurement orders for every sale order line."""" name="note"/>
|
||||
<field eval=""""Sale Order Requisition"""" name="name"/>
|
||||
<field eval=""""Drives requisition orders for every sale order line."""" name="note"/>
|
||||
<field name="subflow_id" ref="process_process_salesprocess0"/>
|
||||
<field name="process_id" ref="mrp.process_process_procurementprocess0"/>
|
||||
<field eval=""""object.state in ('draft', 'waiting_date', 'manual', 'progress', 'shipping_except', 'invoice_except', 'done', 'cancel')"""" name="model_states"/>
|
||||
@@ -66,8 +66,8 @@
|
||||
<field name="menu_id" ref="mrp.menu_mrp_procurement_action"/>
|
||||
<field name="model_id" ref="mrp.model_mrp_procurement"/>
|
||||
<field eval=""""subflow"""" name="kind"/>
|
||||
<field eval=""""Procurement Order"""" name="name"/>
|
||||
<field eval=""""One procurement order for each sale order line and for each of the components."""" name="note"/>
|
||||
<field eval=""""Requisition Order"""" name="name"/>
|
||||
<field eval=""""One requisition order for each sale order line and for each of the components."""" name="note"/>
|
||||
<field name="subflow_id" ref="mrp.process_process_procurementprocess0"/>
|
||||
<field name="process_id" ref="process_process_salesprocess0"/>
|
||||
<field eval=""""object.state=='confirmed'"""" name="model_states"/>
|
||||
@@ -158,8 +158,8 @@
|
||||
|
||||
<record id="process_transition_saleprocurement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Create Procurement Order"""" name="name"/>
|
||||
<field eval=""""A procurement order is automatically created as soon as a sale order is confirmed or as the invoice is paid. It drives the purchasing and the production of products regarding to the rules and to the sale order's parameters. """" name="note"/>
|
||||
<field eval=""""Create Requisition Order"""" name="name"/>
|
||||
<field eval=""""A requisition order is automatically created as soon as a sale order is confirmed or as the invoice is paid. It drives the purchasing and the production of products regarding to the rules and to the sale order's parameters. """" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_saleprocurement0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleorder0"/>
|
||||
</record>
|
||||
@@ -167,7 +167,7 @@
|
||||
<record id="process_transition_packing0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Create Pick List"""" name="name"/>
|
||||
<field eval=""""The Pick List form is created as soon as the sale order is confirmed, in the same time as the procurement order. It represents the assignment of parts to the sale order. There is 1 pick list by sale order line which evolves with the availability of parts."""" name="note"/>
|
||||
<field eval=""""The Pick List form is created as soon as the sale order is confirmed, in the same time as the requisition order. It represents the assignment of parts to the sale order. There is 1 pick list by sale order line which evolves with the availability of parts."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="process_node_packinglist0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleprocurement0"/>
|
||||
</record>
|
||||
@@ -200,8 +200,8 @@
|
||||
<record id="process_transition_saleorderprocurement0" model="process.transition">
|
||||
<field eval="[(6,0,[])]" name="role_ids"/>
|
||||
<field eval="[(6,0,[])]" name="transition_ids"/>
|
||||
<field eval=""""Procurement of sold material"""" name="name"/>
|
||||
<field eval=""""For every sale order line, a procurement order is created to supply the sold product."""" name="note"/>
|
||||
<field eval=""""Requisition of sold material"""" name="name"/>
|
||||
<field eval=""""For every sale order line, a requisition order is created to supply the sold product."""" name="note"/>
|
||||
<field model="process.node" name="target_node_id" ref="mrp.process_node_procureproducts0"/>
|
||||
<field model="process.node" name="source_node_id" ref="process_node_saleorderprocurement0"/>
|
||||
</record>
|
||||
|
||||
+18
-18
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -196,7 +196,7 @@ class sale_order(osv.osv):
|
||||
('invoice_except', 'Invoice Exception'),
|
||||
('done', 'Done'),
|
||||
('cancel', 'Cancelled')
|
||||
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the packing list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the date 'Date Ordered'.", select=True),
|
||||
], 'Order State', readonly=True, help="Gives the state of the quotation or sale order. The exception state is automatically set when a cancel operation occurs in the invoice validation (Invoice Exception) or in the picking list process (Shipping Exception). The 'Waiting Schedule' state is set when the invoice is confirmed but waiting for the scheduler to run on the date 'Date Ordered'.", select=True),
|
||||
'date_order': fields.date('Date Ordered', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
||||
'user_id': fields.many2one('res.users', 'Salesman', states={'draft': [('readonly', False)]}, select=True),
|
||||
@@ -207,24 +207,24 @@ class sale_order(osv.osv):
|
||||
|
||||
'incoterm': fields.selection(_incoterm_get, 'Incoterm', size=3),
|
||||
'picking_policy': fields.selection([('direct', 'Partial Delivery'), ('one', 'Complete Delivery')],
|
||||
'Packing Policy', required=True, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
|
||||
'Picking Policy', required=True, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
|
||||
'order_policy': fields.selection([
|
||||
('prepaid', 'Payment Before Delivery'),
|
||||
('manual', 'Shipping & Manual Invoice'),
|
||||
('postpaid', 'Invoice on Order After Delivery'),
|
||||
('picking', 'Invoice from the Packing'),
|
||||
('picking', 'Invoice from Picking'),
|
||||
], 'Shipping Policy', required=True, readonly=True, states={'draft': [('readonly', False)]},
|
||||
help="""The Shipping Policy is used to synchronise invoice and delivery operations.
|
||||
- The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.
|
||||
- The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.
|
||||
- The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.
|
||||
- The 'Invoice from the packing' choice is used to create an invoice during the packing process."""),
|
||||
- The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all picking lists have been finished.
|
||||
- The 'Invoice from the picking' choice is used to create an invoice during the packing process."""),
|
||||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'project_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
|
||||
'order_line': fields.one2many('sale.order.line', 'order_id', 'Order Lines', readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'invoice_ids': fields.many2many('account.invoice', 'sale_order_invoice_rel', 'order_id', 'invoice_id', 'Invoices', help="This is the list of invoices that have been generated for this sale order. The same sale order may have been invoiced in several times (by line for example)."),
|
||||
'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Packing', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
|
||||
'picking_ids': fields.one2many('stock.picking', 'sale_id', 'Related Picking', readonly=True, help="This is the list of picking list that have been generated for this invoice"),
|
||||
'shipped': fields.boolean('Picked', readonly=True),
|
||||
'picked_rate': fields.function(_picked_rate, method=True, string='Picked', type='float'),
|
||||
'invoiced_rate': fields.function(_invoiced_rate, method=True, string='Invoiced', type='float'),
|
||||
@@ -396,7 +396,7 @@ class sale_order(osv.osv):
|
||||
invoice_ids = []
|
||||
|
||||
context = {}
|
||||
# If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the
|
||||
# If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the
|
||||
# last day of the last month as invoice date
|
||||
if date_inv:
|
||||
context['date_inv'] = date_inv
|
||||
@@ -497,7 +497,7 @@ class sale_order(osv.osv):
|
||||
if line.procurement_id:
|
||||
res.append(line.procurement_id.id)
|
||||
return res
|
||||
|
||||
|
||||
# if mode == 'finished':
|
||||
# returns True if all lines are done, False otherwise
|
||||
# if mode == 'canceled':
|
||||
@@ -511,13 +511,13 @@ class sale_order(osv.osv):
|
||||
write_cancel_ids = []
|
||||
stock_move_obj = self.pool.get('stock.move')
|
||||
for order in self.browse(cr, uid, ids, context={}):
|
||||
|
||||
#check for pending deliveries
|
||||
|
||||
#check for pending deliveries
|
||||
pending_deliveries = False
|
||||
# check => if order_lines do not exist,don't proceed for any mode.
|
||||
if not order.order_line:
|
||||
return False
|
||||
for line in order.order_line:
|
||||
for line in order.order_line:
|
||||
move_ids = stock_move_obj.search(cr, uid, [('sale_line_id','=', line.id)])
|
||||
for move in stock_move_obj.browse( cr, uid, move_ids ):
|
||||
#if one of the related order lines is in state draft, auto or confirmed
|
||||
@@ -746,12 +746,12 @@ class sale_order_line(osv.osv):
|
||||
'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], change_default=True),
|
||||
'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
|
||||
'invoiced': fields.boolean('Invoiced', readonly=True),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Procurement'),
|
||||
'procurement_id': fields.many2one('mrp.procurement', 'Requisition'),
|
||||
'price_unit': fields.float('Unit Price', required=True, digits=(16, int(config['price_accuracy']))),
|
||||
'price_net': fields.function(_amount_line_net, method=True, string='Net Price', digits=(16, int(config['price_accuracy']))),
|
||||
'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal'),
|
||||
'tax_id': fields.many2many('account.tax', 'sale_order_tax', 'order_line_id', 'tax_id', 'Taxes'),
|
||||
'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Procure Method', required=True),
|
||||
'type': fields.selection([('make_to_stock', 'from stock'), ('make_to_order', 'on order')], 'Requisition Method', required=True),
|
||||
'property_ids': fields.many2many('mrp.property', 'sale_order_line_property_rel', 'order_id', 'property_id', 'Properties'),
|
||||
'address_allotment_id': fields.many2one('res.partner.address', 'Allotment Partner'),
|
||||
'product_uom_qty': fields.float('Quantity (UoM)', digits=(16, 2), required=True),
|
||||
@@ -936,7 +936,7 @@ class sale_order_line(osv.osv):
|
||||
warn_msg = _("You selected a quantity of %d Units.\nBut it's not compatible with the selected packaging.\nHere is a proposition of quantities according to the packaging: ") % (qty)
|
||||
warn_msg = warn_msg + "\n\n" + _("EAN: ") + str(ean) + _(" Quantity: ") + str(qty_pack) + _(" Type of ul: ") + str(type_ul.name)
|
||||
warning = {
|
||||
'title': _('Packing Information !'),
|
||||
'title': _('Picking Information !'),
|
||||
'message': warn_msg
|
||||
}
|
||||
result['product_uom_qty'] = qty
|
||||
@@ -1051,14 +1051,14 @@ class sale_config_picking_policy(osv.osv_memory):
|
||||
'picking_policy': fields.selection([
|
||||
('direct', 'Direct Delivery'),
|
||||
('one', 'All at Once')
|
||||
], 'Packing Default Policy', required=True),
|
||||
], 'Picking Default Policy', required=True),
|
||||
'order_policy': fields.selection([
|
||||
('manual', 'Invoice Based on Sales Orders'),
|
||||
('picking', 'Invoice Based on Deliveries'),
|
||||
], 'Shipping Default Policy', required=True),
|
||||
'step': fields.selection([
|
||||
('one', 'Delivery Order Only'),
|
||||
('two', 'Packing List & Delivery Order')
|
||||
('two', 'Picking List & Delivery Order')
|
||||
], 'Steps To Deliver a Sale Order', required=True,
|
||||
help="By default, Open ERP is able to manage complex routing and paths "\
|
||||
"of products in your warehouse and partner locations. This will configure "\
|
||||
|
||||
@@ -32,38 +32,38 @@
|
||||
<field name="product_uos_qty">3</field>
|
||||
<field name="type">make_to_stock</field>
|
||||
</record>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
|
||||
<test expr="sum([l.price_subtotal for l in order_line]) == amount_untaxed"/>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow action="order_confirm" model="sale.order" ref="test_order_1"/>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" string="the sale order is now in 'Manual in progress' state">
|
||||
<test expr="state">manual</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow action="manual_invoice" model="sale.order" ref="test_order_1" uid="base.user_root"/>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" string="the sale order is now in progress">
|
||||
<test expr="state">progress</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Treat generated invoice -->
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order has now a corresponding invoice">
|
||||
<test expr="len(invoice_ids) == 1"/>
|
||||
</assert>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order's has the same amount and is currently a draft">
|
||||
<test expr="invoice_ids[0].amount_untaxed == amount_untaxed"/>
|
||||
<test expr="invoice_ids[0].amount_total == amount_total"/>
|
||||
<test expr="invoice_ids[0].state">draft</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<workflow action="invoice_open" model="account.invoice">
|
||||
<value eval="obj(ref('test_order_1')).invoice_ids[0].id" model="sale.order"/>
|
||||
</workflow>
|
||||
|
||||
|
||||
<function model="account.invoice" name="pay_and_reconcile">
|
||||
<value eval="[obj(ref('test_order_1')).invoice_ids[0].id]" model="sale.order"/>
|
||||
<value eval="obj(ref('test_order_1')).amount_total" model="sale.order"/>
|
||||
@@ -74,46 +74,46 @@
|
||||
<value eval="ref('account.period_' + str(int(time.strftime('%m'))))"/>
|
||||
<value eval="ref('account.bank_journal')"/>
|
||||
</function>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order's invoice is now paid">
|
||||
<test expr="invoice_ids[0].state">paid</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Treat generated picking -->
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order has now a correspending packing">
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order has now a correspending picking">
|
||||
<test expr="len(picking_ids) == 1"/>
|
||||
</assert>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" severity="error" string="the sale order's picking will be sent to the good address and is already confirmed">
|
||||
<test expr="picking_ids[0].address_id == partner_shipping_id"/>
|
||||
<!-- test expr="picking_ids[0].state">confirmed</test # Desactivated because of MRP_JIT -->
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
|
||||
<function model="stock.picking" name="action_assign">
|
||||
<value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order"/>
|
||||
</function>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" severity="fatal" string="the sale order's picking is now assigned">
|
||||
<test expr="picking_ids[0].state">assigned</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Do the same as in wizard_partial_picking lines 143-144 -->
|
||||
<function model="stock.picking" name="action_move">
|
||||
<value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order"/>
|
||||
</function>
|
||||
|
||||
|
||||
<workflow action="button_done" model="stock.picking">
|
||||
<value eval="obj(ref('test_order_1')).picking_ids[0].id" model="sale.order"/>
|
||||
</workflow>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" string="the sale order's picking is now done">
|
||||
<test expr="picking_ids[0].state">done</test>
|
||||
</assert>
|
||||
|
||||
|
||||
<!-- Run all schedulers -->
|
||||
<function model="mrp.procurement" name="run_scheduler"/>
|
||||
|
||||
|
||||
<assert id="test_order_1" model="sale.order" string="the sale order is now done">
|
||||
<test expr="state">done</test>
|
||||
</assert>
|
||||
|
||||
@@ -187,8 +187,8 @@
|
||||
<button name="order_confirm" states="draft" string="Confirm Order" icon="gtk-apply"/>
|
||||
<button name="invoice_recreate" states="invoice_except" string="Recreate Invoice" icon="gtk-print"/>
|
||||
<button name="invoice_corrected" states="invoice_except" string="Invoice Corrected" icon="gtk-apply"/>
|
||||
<button name="ship_recreate" states="shipping_except" string="Recreate Procurement" icon="gtk-ok"/>
|
||||
<button name="ship_corrected" states="shipping_except" string="Procurement Corrected" icon="gtk-apply"/>
|
||||
<button name="ship_recreate" states="shipping_except" string="Recreate Requisition" icon="gtk-ok"/>
|
||||
<button name="ship_corrected" states="shipping_except" string="Requisition Corrected" icon="gtk-apply"/>
|
||||
<button name="manual_invoice" states="manual" string="Create Invoice" icon="gtk-print"/>
|
||||
<button name="ship_cancel" states="shipping_except" string="Cancel Order" icon="gtk-cancel"/>
|
||||
<button name="action_cancel_draft" states="cancel" string="Set to Draft" type="object" icon="gtk-convert"/>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -42,7 +42,7 @@ sale_fields = {
|
||||
'partner_id': {'string': 'Customer', 'type': 'many2one',
|
||||
'relation': 'res.partner',
|
||||
'help': 'Use this partner if there is no partner on the case'},
|
||||
'picking_policy': {'string': 'Packing Policy', 'type': 'selection',
|
||||
'picking_policy': {'string': 'Picking Policy', 'type': 'selection',
|
||||
'selection': [('direct','Direct Delivery'),('one','All at once')]},
|
||||
'products': {'string': 'Products', 'type': 'many2many',
|
||||
'relation': 'product.product'},
|
||||
@@ -62,9 +62,9 @@ class make_sale(wizard.interface):
|
||||
|
||||
def _makeOrder(self, cr, uid, data, context):
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
mod_obj = pool.get('ir.model.data')
|
||||
mod_obj = pool.get('ir.model.data')
|
||||
result = mod_obj._get_id(cr, uid, 'sale', 'view_sales_order_filter')
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
id = mod_obj.read(cr, uid, result, ['res_id'])
|
||||
case_obj = pool.get('crm.case')
|
||||
sale_obj = pool.get('sale.order')
|
||||
partner_obj = pool.get('res.partner')
|
||||
@@ -93,7 +93,7 @@ class make_sale(wizard.interface):
|
||||
|
||||
if False in partner_addr.values():
|
||||
raise wizard.except_wizard(_('Data Insufficient!'),_('Customer has no addresses defined!'))
|
||||
|
||||
|
||||
vals = {
|
||||
'origin': 'CRM:%s' % str(case.id),
|
||||
'picking_policy': data['form']['picking_policy'],
|
||||
@@ -131,7 +131,7 @@ class make_sale(wizard.interface):
|
||||
'res_model': 'sale.order',
|
||||
'view_id': False,
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': id['res_id']
|
||||
'search_view_id': id['res_id']
|
||||
}
|
||||
return value
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing Journal">
|
||||
<form string="Picking Journal">
|
||||
<notebook>
|
||||
<page string="Journal">
|
||||
<separator string="Journal Information" colspan="4"/>
|
||||
@@ -24,7 +24,7 @@
|
||||
<button name="button_draft" string="Set to Draft" states="close,open" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Packing">
|
||||
<page string="Picking">
|
||||
<button string="Cancel Packing" name="button_picking_cancel" states="draft,open" type="object" icon="gtk-cancel"/>
|
||||
<newline/>
|
||||
<field name="picking_stats_ids" colspan="4" nolabel="1"/>
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="model">sale_journal.picking.journal</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packing Journal">
|
||||
<tree string="Picking Journal">
|
||||
<field name="name" select="1"/>
|
||||
<field name="code" select="1"/>
|
||||
<field name="user_id" select="1"/>
|
||||
@@ -50,25 +50,25 @@
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal">
|
||||
<field name="name">Packing journals</field>
|
||||
<field name="name">Picking journals</field>
|
||||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Packing Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
|
||||
|
||||
|
||||
<menuitem name="Picking Journals" id="menu_definition_journal_picking" parent="stock.menu_stock_configuration" action="action_definition_picking_journal"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree">
|
||||
<field name="name">Packing by journal</field>
|
||||
<field name="name">Picking by journal</field>
|
||||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[]</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Packing by Journal" id="menu_definition_journal_picking_byjournal" parent="stock.menu_stock_root" action="action_definition_picking_journal_tree"/>
|
||||
|
||||
|
||||
<menuitem name="Picking by Journal" id="menu_definition_journal_picking_byjournal" parent="stock.menu_stock_root" action="action_definition_picking_journal_tree"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree_my">
|
||||
<field name="name">My open packing journals</field>
|
||||
@@ -76,36 +76,36 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('user_id','=',uid),('state','=','open')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="My Open Journals" id="menu_definition_journal_picking_byjournal_my" parent="menu_definition_journal_picking_byjournal" action="action_definition_picking_journal_tree_my" groups="base.group_extended"/>
|
||||
|
||||
|
||||
<record model="ir.actions.act_window" id="action_definition_picking_journal_tree_all">
|
||||
<field name="name">Packing by journal</field>
|
||||
<field name="name">Picking by journal</field>
|
||||
<field name="res_model">sale_journal.picking.journal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('state','=','open')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="All Open Journals" id="menu_definition_journal_picking_byjournal_all" parent="menu_definition_journal_picking_byjournal" action="action_definition_picking_journal_tree_all" groups="base.group_extended"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_tree">
|
||||
<field name="name">Packing by invoice_method</field>
|
||||
<field name="name">Picking by invoice_method</field>
|
||||
<field name="name">sale_journal.invoice.type.tree</field>
|
||||
<field name="res_model">sale_journal.invoice.type</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">tree</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="Packing to Invoice" id="menu_definition_journal_picking_invoice" parent="stock.menu_action_picking_tree"/>
|
||||
<menuitem name="Packing by Invoice Method" id="menu_definition_journal_picking_invoice_method" parent="menu_definition_journal_picking_invoice" action="action_invoice_type_tree"/>
|
||||
|
||||
|
||||
|
||||
<menuitem name="Picking to Invoice" id="menu_definition_journal_picking_invoice" parent="stock.menu_action_picking_tree"/>
|
||||
<menuitem name="Picking by Invoice Method" id="menu_definition_journal_picking_invoice_method" parent="menu_definition_journal_picking_invoice" action="action_invoice_type_tree"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_open">
|
||||
<field name="name">Packing to invoice</field>
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -115,7 +115,7 @@
|
||||
<record model="ir.values" id="ir_open_invoice_type">
|
||||
<field name="key2">tree_but_open</field>
|
||||
<field name="model">sale_journal.invoice.type</field>
|
||||
<field name="name">Packing to invoice</field>
|
||||
<field name="name">Picking to invoice</field>
|
||||
<field name="value" eval="'ir.actions.act_window,%d'%action_invoice_type_picking_open"/>
|
||||
<field name="object" eval="True"/>
|
||||
</record>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<data>
|
||||
|
||||
#
|
||||
# Packings by invoice type
|
||||
# Pickings by invoice type
|
||||
#
|
||||
|
||||
<record model="ir.ui.view" id="view_picking_invoice_type_stats_form">
|
||||
@@ -10,7 +10,7 @@
|
||||
<field name="model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing by invoice method">
|
||||
<form string="Picking by invoice method">
|
||||
<field name="name" select="1"/>
|
||||
<field name="invoice_state" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
@@ -40,7 +40,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open">
|
||||
<field name="name">Statistics on packing to invoice</field>
|
||||
<field name="name">Statistics on picking to invoice</field>
|
||||
<field name="res_model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -49,28 +49,28 @@
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_month">
|
||||
<field name="name">Packing by invoice method</field>
|
||||
<field name="name">Picking by invoice method</field>
|
||||
<field name="res_model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Packing Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
|
||||
|
||||
<menuitem name="Picking Journal" id="menu_definition_journal_reporting" parent="stock.next_id_61"/>
|
||||
<menuitem name="This Month" id="menu_definition_journal_reporting_this" parent="menu_definition_journal_reporting"/>
|
||||
<menuitem name="Packing by Invoice Method" id="menu_invoice_type_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_invoice_type_picking_stats_open_menu_month"/>
|
||||
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_invoice_type_picking_stats_open_menu_month"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_invoice_type_picking_stats_open_menu_all">
|
||||
<field name="name">Packing by invoice method</field>
|
||||
<field name="name">Picking by invoice method</field>
|
||||
<field name="res_model">sale_journal.invoice.type.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<menuitem name="All Months" id="menu_definition_journal_reporting_all" parent="menu_definition_journal_reporting"/>
|
||||
<menuitem name="Packing by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_invoice_type_picking_stats_open_menu_all"/>
|
||||
<menuitem name="Picking by Invoice Method" id="menu_invoice_type_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_invoice_type_picking_stats_open_menu_all"/>
|
||||
|
||||
#
|
||||
# Packing by journal
|
||||
@@ -81,7 +81,7 @@
|
||||
<field name="model">sale_journal.picking.stats</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing by journals">
|
||||
<form string="Picking by journals">
|
||||
<field name="name" select="1"/>
|
||||
<field name="state" select="1"/>
|
||||
<field name="journal_id" select="1"/>
|
||||
@@ -97,7 +97,7 @@
|
||||
<field name="model">sale_journal.picking.stats</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Packing by journals">
|
||||
<tree string="Picking by journals">
|
||||
<field name="name"/>
|
||||
<field name="state"/>
|
||||
<field name="journal_id"/>
|
||||
@@ -110,25 +110,25 @@
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_month">
|
||||
<field name="name">Packing by journal</field>
|
||||
<field name="name">Picking by journal</field>
|
||||
<field name="res_model">sale_journal.picking.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('name','=',time.strftime('%Y-%m-01'))]</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Packing by Journal" id="menu_picking_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_picking_picking_stats_open_menu_month"/>
|
||||
|
||||
|
||||
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_menu" parent="menu_definition_journal_reporting_this" action="action_picking_picking_stats_open_menu_month"/>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_picking_picking_stats_open_menu_all">
|
||||
<field name="name">Packing by journal</field>
|
||||
<field name="name">Picking by journal</field>
|
||||
<field name="res_model">sale_journal.picking.stats</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Packing by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_picking_picking_stats_open_menu_all"/>
|
||||
|
||||
<menuitem name="Picking by Journal" id="menu_picking_picking_stats_open_all" parent="menu_definition_journal_reporting_all" action="action_picking_picking_stats_open_menu_all"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -90,7 +90,7 @@ sale_journal()
|
||||
|
||||
class picking_journal(osv.osv):
|
||||
_name = 'sale_journal.picking.journal'
|
||||
_description = 'Packing Journal'
|
||||
_description = 'Picking Journal'
|
||||
_columns = {
|
||||
'name': fields.char('Journal', size=64, required=True),
|
||||
'code': fields.char('Code', size=16, required=True),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -71,7 +71,7 @@ report_sale_journal_invoice_type_stats()
|
||||
|
||||
class report_sale_journal_picking(osv.osv):
|
||||
_name = "sale_journal.picking.stats"
|
||||
_description = "Packing lists by Journal"
|
||||
_description = "Picking lists by Journal"
|
||||
_auto = False
|
||||
_columns = {
|
||||
'name': fields.date('Month', readonly=True),
|
||||
|
||||
@@ -331,25 +331,25 @@
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_sale_journal_sale_stats"/>
|
||||
|
||||
<act_window name="Assigned packing"
|
||||
<act_window name="Assigned picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'assigned')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_assigned"/>
|
||||
|
||||
<act_window name="Confirmed packing"
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.picking.journal"
|
||||
id="act_sale_journal_picking_journal_2_stock_picking_confirmed"/>
|
||||
|
||||
<act_window name="Assigned packing"
|
||||
<act_window name="Assigned picking"
|
||||
domain="[('sale_journal_id', '=', active_id),('state', '=', 'assigned')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.sale.journal"
|
||||
id="act_sale_journal_sale_journal_2_stock_picking_assigned"/>
|
||||
|
||||
<act_window name="Confirmed packing"
|
||||
<act_window name="Confirmed picking"
|
||||
domain="[('sale_journal_id', '=', active_id),('state', '=', 'confirmed')]"
|
||||
res_model="stock.picking"
|
||||
src_model="sale_journal.sale.journal"
|
||||
|
||||
@@ -163,7 +163,7 @@ class product_product(osv.osv):
|
||||
|
||||
_columns = {
|
||||
'qty_available': fields.function(_product_available, method=True, type='float', string='Real Stock', help="Current quantities of products in selected locations or all internal if none have been selected.", multi='qty_available'),
|
||||
'virtual_available': fields.function(_product_available, method=True, type='float', string='Virtual Stock', help="Futur stock for this product according to the selected location or all internal if none have been selected. Computed as: Real Stock - Outgoing + Incoming.", multi='qty_available'),
|
||||
'virtual_available': fields.function(_product_available, method=True, type='float', string='Virtual Stock', help="Future stock for this product according to the selected location or all internal if none have been selected. Computed as: Real Stock - Outgoing + Incoming.", multi='qty_available'),
|
||||
'incoming_qty': fields.function(_product_available, method=True, type='float', string='Incoming', help="Quantities of products that are planned to arrive in selected locations or all internal if none have been selected.", multi='qty_available'),
|
||||
'outgoing_qty': fields.function(_product_available, method=True, type='float', string='Outgoing', help="Quantities of products that are planned to leave in selected locations or all internal if none have been selected.", multi='qty_available'),
|
||||
'track_production': fields.boolean('Track Production Lots' , help="Force to use a Production Lot during production order"),
|
||||
@@ -179,34 +179,34 @@ class product_product(osv.osv):
|
||||
if fields:
|
||||
if location_info.usage == 'supplier':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur Receptions')
|
||||
res['fields']['virtual_available']['string'] = _('Future Receptions')
|
||||
if fields.get('qty_available'):
|
||||
res['fields']['qty_available']['string'] = _('Received Qty')
|
||||
|
||||
if location_info.usage == 'internal':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur Stock')
|
||||
res['fields']['virtual_available']['string'] = _('Future Stock')
|
||||
|
||||
if location_info.usage == 'customer':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur Deliveries')
|
||||
res['fields']['virtual_available']['string'] = _('Future Deliveries')
|
||||
if fields.get('qty_available'):
|
||||
res['fields']['qty_available']['string'] = _('Delivered Qty')
|
||||
|
||||
if location_info.usage == 'inventory':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur P&L')
|
||||
res['fields']['virtual_available']['string'] = _('Future P&L')
|
||||
res['fields']['qty_available']['string'] = _('P&L Qty')
|
||||
|
||||
if location_info.usage == 'procurement':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur Qty')
|
||||
res['fields']['virtual_available']['string'] = _('Future Qty')
|
||||
if fields.get('qty_available'):
|
||||
res['fields']['qty_available']['string'] = _('Unplanned Qty')
|
||||
|
||||
if location_info.usage == 'production':
|
||||
if fields.get('virtual_available'):
|
||||
res['fields']['virtual_available']['string'] = _('Futur Productions')
|
||||
res['fields']['virtual_available']['string'] = _('Future Productions')
|
||||
if fields.get('qty_available'):
|
||||
res['fields']['qty_available']['string'] = _('Produced Qty')
|
||||
|
||||
@@ -222,7 +222,7 @@ class product_template(osv.osv):
|
||||
'stock.location',
|
||||
type='many2one',
|
||||
relation='stock.location',
|
||||
string="Procurement Location",
|
||||
string="Requisition Location",
|
||||
method=True,
|
||||
view_load=True,
|
||||
domain=[('usage','like','procurement')],
|
||||
|
||||
+16
-16
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -130,7 +130,7 @@ class stock_location(osv.osv):
|
||||
_columns = {
|
||||
'name': fields.char('Location Name', size=64, required=True, translate=True),
|
||||
'active': fields.boolean('Active'),
|
||||
'usage': fields.selection([('supplier', 'Supplier Location'), ('view', 'View'), ('internal', 'Internal Location'), ('customer', 'Customer Location'), ('inventory', 'Inventory'), ('procurement', 'Procurement'), ('production', 'Production')], 'Location Type', required=True),
|
||||
'usage': fields.selection([('supplier', 'Supplier Location'), ('view', 'View'), ('internal', 'Internal Location'), ('customer', 'Customer Location'), ('inventory', 'Inventory'), ('procurement', 'Requisition'), ('production', 'Production')], 'Location Type', required=True),
|
||||
'allocation_method': fields.selection([('fifo', 'FIFO'), ('lifo', 'LIFO'), ('nearest', 'Nearest')], 'Allocation Method', required=True),
|
||||
|
||||
'complete_name': fields.function(_complete_name, method=True, type='char', size=100, string="Location Name"),
|
||||
@@ -373,7 +373,7 @@ stock_tracking()
|
||||
#----------------------------------------------------------
|
||||
class stock_picking(osv.osv):
|
||||
_name = "stock.picking"
|
||||
_description = "Packing List"
|
||||
_description = "Picking List"
|
||||
|
||||
def _set_maximum_date(self, cr, uid, ids, name, value, arg, context):
|
||||
if not value:
|
||||
@@ -459,18 +459,18 @@ class stock_picking(osv.osv):
|
||||
\n* The \'Available\' state is set automatically when the products are ready to be moved.\
|
||||
\n* The \'Waiting\' state is used in MTO moves when a movement is waiting for another one.'),
|
||||
'min_date': fields.function(get_min_max_date, fnct_inv=_set_minimum_date, multi="min_max_date",
|
||||
method=True, store=True, type='datetime', string='Planned Date', select=1, help="Planned date for Packing. Default it takes current date"),
|
||||
method=True, store=True, type='datetime', string='Planned Date', select=1, help="Planned date for Picking. Default it takes current date"),
|
||||
'date': fields.datetime('Date Order', help="Date of Order"),
|
||||
'date_done': fields.datetime('Date Done', help="Date of completion"),
|
||||
'max_date': fields.function(get_min_max_date, fnct_inv=_set_maximum_date, multi="min_max_date",
|
||||
method=True, store=True, type='datetime', string='Max. Planned Date', select=2),
|
||||
'move_lines': fields.one2many('stock.move', 'picking_id', 'Move lines', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
|
||||
'auto_picking': fields.boolean('Auto-Packing'),
|
||||
'move_lines': fields.one2many('stock.move', 'picking_id', 'Entry lines', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
|
||||
'auto_picking': fields.boolean('Auto-Picking'),
|
||||
'address_id': fields.many2one('res.partner.address', 'Partner', help="Address of partner"),
|
||||
'invoice_state': fields.selection([
|
||||
("invoiced", "Invoiced"),
|
||||
("2binvoiced", "To Be Invoiced"),
|
||||
("none", "Not from Packing")], "Invoice Status",
|
||||
("none", "Not from Picking")], "Invoice Status",
|
||||
select=True, required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
}
|
||||
_defaults = {
|
||||
@@ -711,7 +711,7 @@ class stock_picking(osv.osv):
|
||||
'name': (invoice.name or '') + ', ' + (picking.name or ''),
|
||||
'origin': (invoice.origin or '') + ', ' + (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
|
||||
'comment': (comment and (invoice.comment and invoice.comment+"\n"+comment or comment)) or (invoice.comment and invoice.comment or ''),
|
||||
'date_invoice':context.get('date_inv',False)
|
||||
'date_invoice':context.get('date_inv',False)
|
||||
}
|
||||
invoice_obj.write(cursor, user, [invoice_id], invoice_vals, context=context)
|
||||
else:
|
||||
@@ -772,7 +772,7 @@ class stock_picking(osv.osv):
|
||||
notes = move_line.sale_line_id.notes
|
||||
elif move_line.purchase_line_id:
|
||||
notes = move_line.purchase_line_id.notes
|
||||
|
||||
|
||||
invoice_line_id = invoice_line_obj.create(cursor, user, {
|
||||
'name': name,
|
||||
'origin': origin,
|
||||
@@ -785,7 +785,7 @@ class stock_picking(osv.osv):
|
||||
'quantity': move_line.product_uos_qty or move_line.product_qty,
|
||||
'invoice_line_tax_id': [(6, 0, tax_ids)],
|
||||
'account_analytic_id': account_analytic_id,
|
||||
'note': notes,
|
||||
'note': notes,
|
||||
}, context=context)
|
||||
self._invoice_line_hook(cursor, user, move_line, invoice_line_id)
|
||||
|
||||
@@ -979,7 +979,7 @@ class stock_move(osv.osv):
|
||||
'move_dest_id': fields.many2one('stock.move', 'Dest. Move'),
|
||||
'move_history_ids': fields.many2many('stock.move', 'stock_move_history_ids', 'parent_id', 'child_id', 'Move History'),
|
||||
'move_history_ids2': fields.many2many('stock.move', 'stock_move_history_ids', 'child_id', 'parent_id', 'Move History'),
|
||||
'picking_id': fields.many2one('stock.picking', 'Packing List', select=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Picking List', select=True),
|
||||
|
||||
'note': fields.text('Notes'),
|
||||
|
||||
@@ -1169,8 +1169,8 @@ class stock_move(osv.osv):
|
||||
if res:
|
||||
#_product_available_test depends on the next status for correct functioning
|
||||
#the test does not work correctly if the same product occurs multiple times
|
||||
#in the same order. This is e.g. the case when using the button 'split in two' of
|
||||
#the stock outgoing form
|
||||
#in the same order. This is e.g. the case when using the button 'split in two' of
|
||||
#the stock outgoing form
|
||||
self.write(cr, uid, move.id, {'state':'assigned'})
|
||||
done.append(move.id)
|
||||
pickings[move.picking_id.id] = 1
|
||||
@@ -1471,9 +1471,9 @@ class stock_picking_move_wizard(osv.osv_memory):
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, invisible=True),
|
||||
#'move_lines': fields.one2many('stock.move', 'picking_id', 'Move lines',readonly=True),
|
||||
'move_ids': fields.many2many('stock.move', 'picking_move_wizard_rel', 'picking_move_wizard_id', 'move_id', 'Move lines', required=True),
|
||||
'move_ids': fields.many2many('stock.move', 'picking_move_wizard_rel', 'picking_move_wizard_id', 'move_id', 'Entry lines', required=True),
|
||||
'address_id': fields.many2one('res.partner.address', 'Dest. Address', invisible=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Packing list', select=True, invisible=True),
|
||||
'picking_id': fields.many2one('stock.picking', 'Picking list', select=True, invisible=True),
|
||||
}
|
||||
_defaults = {
|
||||
'picking_id': _get_picking,
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
<report auto="False" id="report_product_history" model="product.product" name="stock.product.history" string="Future Stock Forecast"/>
|
||||
|
||||
|
||||
<!-- <report id="report_picking_list" model="stock.picking" name="stock.picking.list" string="Packing list" xml="stock/report/picking.xml" xsl="stock/report/picking.xsl"/>-->
|
||||
<report id="report_picking_list" model="stock.picking" name="stock.picking.list" string="Packing list" rml="stock/report/picking.rml"/>
|
||||
<!-- <report id="report_picking_list" model="stock.picking" name="stock.picking.list" string="Picking list" xml="stock/report/picking.xml" xsl="stock/report/picking.xsl"/>-->
|
||||
<report id="report_picking_list" model="stock.picking" name="stock.picking.list" string="Picking list" rml="stock/report/picking.rml"/>
|
||||
<report id="report_move_labels" model="stock.move" name="stock.move.label" string="Print Item Labels" xml="stock/report/lot_move_label.xml" xsl="stock/report/lot_move_label.xsl"/>
|
||||
|
||||
<report auto="False" id="report_location_overview" model="stock.location" name="lot.stock.overview" string="Location Overview" rml="stock/report/lot_overview.rml"/>
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<!--
|
||||
Sequences for packings
|
||||
Sequences for pickings
|
||||
-->
|
||||
|
||||
|
||||
<record id="seq_type_picking" model="ir.sequence.type">
|
||||
<field name="name">Packing</field>
|
||||
<field name="name">Picking</field>
|
||||
<field name="code">stock.picking</field>
|
||||
</record>
|
||||
|
||||
<record id="seq_picking" model="ir.sequence">
|
||||
<field name="name">Packing</field>
|
||||
<field name="name">Picking</field>
|
||||
<field name="code">stock.picking</field>
|
||||
<field name="prefix">PACK</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Sequences from tracking numbers
|
||||
-->
|
||||
@@ -31,12 +31,12 @@
|
||||
<field name="number_next">1</field>
|
||||
<field name="number_increment">1</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="sequence_type_tracking" model="ir.sequence.type">
|
||||
<field name="name">Stock Tracking Lots</field>
|
||||
<field name="code">stock.lot.tracking</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="sequence_tracking" model="ir.sequence">
|
||||
<field name="name">Stock Tracking Lots</field>
|
||||
<field name="code">stock.lot.tracking</field>
|
||||
|
||||
+43
-43
@@ -79,7 +79,7 @@
|
||||
<field name="res_model">stock.inventory</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="view_inventory_tree"/>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
</record>
|
||||
<menuitem action="action_inventory_form" id="menu_action_inventory_form" parent="menu_stock_root"/>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<field name="res_model">stock.inventory</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_inventory_form_new" model="ir.actions.act_window">
|
||||
@@ -98,7 +98,7 @@
|
||||
<field name="res_model">stock.inventory</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form,tree</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
</record>
|
||||
|
||||
=============================
|
||||
@@ -223,7 +223,7 @@
|
||||
<field name="res_model">stock.production.lot</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="view_production_lot_tree"/>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
</record>
|
||||
<menuitem action="action_production_lot_form" id="menu_action_production_lot_form" parent="menu_traceability"/>
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_id" ref="view_location_tree2"/>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
<field name="context">{'full':'1'}</field>
|
||||
</record>
|
||||
<menuitem action="action_location_form" id="menu_action_location_form" parent="menu_stock_configuration"/>
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
<field name="view_id" ref="view_location_tree"/>
|
||||
</record>
|
||||
<menuitem action="action_location_tree" id="menu_action_location_tree" parent="menu_stock_root"/>
|
||||
|
||||
|
||||
=============================
|
||||
Warehouse
|
||||
=============================
|
||||
@@ -460,7 +460,7 @@
|
||||
<field name="model">stock.picking.move.wizard</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Move Lines">
|
||||
<form string="Entry Lines">
|
||||
<field name="address_id" invisible="True" context="{'contact_display':'partner'}"/>
|
||||
<field name="picking_id" invisible="True"/>
|
||||
<field domain="[('picking_id','<>',picking_id),('state','in',['confirmed','assigned']),('picking_id.address_id','=',address_id)]" name="move_ids" nolabel="1"/><newline/>
|
||||
@@ -485,7 +485,7 @@
|
||||
|
||||
|
||||
=============================
|
||||
Packing
|
||||
Picking
|
||||
=============================
|
||||
<record model="ir.ui.view" id="stock_picking_calendar">
|
||||
<field name="name">stock.picking.calendar</field>
|
||||
@@ -505,7 +505,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree color="red:state=='cancel'" string="Packing list">
|
||||
<tree color="red:state=='cancel'" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="address_id" select="1"/>
|
||||
@@ -522,7 +522,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing list">
|
||||
<form string="Picking list">
|
||||
<group colspan="4" col="6">
|
||||
<field name="address_id" select="2" context="{'contact_display':'partner'}"/>
|
||||
<field name="type"/>
|
||||
@@ -566,7 +566,7 @@
|
||||
</field>
|
||||
<group col="7" colspan="4">
|
||||
<label colspan="6"/>
|
||||
<button name="%(move_split)d" string="Split move lines in two" type="action" icon="gtk-justify-fill"/>
|
||||
<button name="%(move_split)d" string="Split Entry Lines in two" type="action" icon="gtk-justify-fill"/>
|
||||
</group>
|
||||
<group col="10" colspan="4">
|
||||
<field name="state" readonly="1"/>
|
||||
@@ -604,7 +604,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree color="red:state=='cancel'" string="Packing list">
|
||||
<tree color="red:state=='cancel'" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="address_id" select="1"/>
|
||||
@@ -620,7 +620,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing list">
|
||||
<form string="Picking list">
|
||||
<group col="6" colspan="4">
|
||||
<field name="address_id" select="1"/>
|
||||
<field name="type"/>
|
||||
@@ -715,7 +715,7 @@
|
||||
<field name="view_mode">tree,form,calendar</field>
|
||||
<field name="domain">[('type','=','delivery')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_delivery_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -746,7 +746,7 @@
|
||||
<field name="domain">[('state','=','assigned'),('type','=','delivery')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_delivery_view1_toproc" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -775,7 +775,7 @@
|
||||
<field name="domain">[('state','=','confirmed'),('type','=','delivery')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_delivery_view1_waiting" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -814,7 +814,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree colors="red:state=='cancel';grey:state=='confirmed';blue:state=='done'" string="Packing list">
|
||||
<tree colors="red:state=='cancel';grey:state=='confirmed';blue:state=='done'" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="address_id"/>
|
||||
@@ -831,7 +831,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Packing list">
|
||||
<form string="Picking list">
|
||||
<group col="6" colspan="4">
|
||||
<field name="address_id" select="2"/>
|
||||
<field name="type"/>
|
||||
@@ -883,7 +883,7 @@
|
||||
<button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-yes"/>
|
||||
<button name="action_assign" states="confirmed" string="Check Availability" type="object" groups="base.group_extended" icon="gtk-apply"/>
|
||||
<button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
|
||||
<button name="%(partial_picking)d" states="assigned" string="Packing Done" type="action" icon="gtk-execute"/>
|
||||
<button name="%(partial_picking)d" states="assigned" string="Picking Done" type="action" icon="gtk-execute"/>
|
||||
<button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
|
||||
</group>
|
||||
</page>
|
||||
@@ -912,7 +912,7 @@
|
||||
<field name="domain">[('type','=','out')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree_out_view1_waiting" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -934,7 +934,7 @@
|
||||
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_root" sequence="19"/>
|
||||
|
||||
<record id="action_picking_tree2" model="ir.actions.act_window">
|
||||
<field name="name">Available Packing</field>
|
||||
<field name="name">Available Picking</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -942,7 +942,7 @@
|
||||
<field name="domain">[('state','=','assigned'),('type','=','out')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree2_out_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -963,7 +963,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree3" model="ir.actions.act_window">
|
||||
<field name="name">Confirmed Packing Waiting Availability</field>
|
||||
<field name="name">Confirmed Picking Waiting Availability</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -971,7 +971,7 @@
|
||||
<field name="domain">[('state','=','confirmed'),('type','=','out')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_picking_tree3_out_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -999,7 +999,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree color="red:state=='cancel'" string="Packing list">
|
||||
<tree color="red:state=='cancel'" string="Picking list">
|
||||
<field name="name"/>
|
||||
<field name="origin"/>
|
||||
<field name="address_id"/>
|
||||
@@ -1016,7 +1016,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Input Packing List">
|
||||
<form string="Input Picking List">
|
||||
<group colspan="4" col="6">
|
||||
<field name="address_id" on_change="onchange_partner_in(address_id)" select="2" context="{'contact_display':'partner'}"/>
|
||||
<field name="type"/>
|
||||
@@ -1051,7 +1051,7 @@
|
||||
<newline/>
|
||||
<newline/>
|
||||
<field groups="base.group_extended" name="product_packaging"/>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<field name="prodlot_id" select="1"
|
||||
context="{'location_id':location_id, 'product_id':product_id}"
|
||||
domain="[('product_id','=',product_id)]"
|
||||
@@ -1100,7 +1100,7 @@
|
||||
<field name="domain">[('type','=','in')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree5_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -1122,7 +1122,7 @@
|
||||
<menuitem action="action_picking_tree4" id="menu_action_picking_tree4" parent="menu_stock_root" sequence="17"/>
|
||||
|
||||
<record id="action_picking_tree5" model="ir.actions.act_window">
|
||||
<field name="name">Packing to Process</field>
|
||||
<field name="name">Picking to Process</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1130,7 +1130,7 @@
|
||||
<field name="domain">[('state','=','assigned'),('type','=','in')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<record id="action_invoice_tree6_view1" model="ir.actions.act_window.view">
|
||||
<field eval="1" name="sequence"/>
|
||||
@@ -1152,7 +1152,7 @@
|
||||
<menuitem action="action_picking_tree5" id="menu_action_picking_tree5" parent="menu_action_picking_tree4" groups="base.group_extended"/>
|
||||
|
||||
<record id="action_picking_form" model="ir.actions.act_window">
|
||||
<field name="name">New Reception Packing</field>
|
||||
<field name="name">New Reception Picking</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1188,13 +1188,13 @@
|
||||
<field name="domain">[('type','=','internal')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
<menuitem action="action_picking_tree6" id="menu_action_picking_tree6" parent="menu_stock_root" sequence="18"/>
|
||||
|
||||
|
||||
<record id="action_picking_tree7" model="ir.actions.act_window">
|
||||
<field name="name">Available Packing</field>
|
||||
<field name="name">Available Picking</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1202,11 +1202,11 @@
|
||||
<field name="domain">[('state','=','assigned'),('type','=','internal')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree8" model="ir.actions.act_window">
|
||||
<field name="name">Confirmed Packing Waiting Availability</field>
|
||||
<field name="name">Confirmed Picking Waiting Availability</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1214,11 +1214,11 @@
|
||||
<field name="domain">[('state','=','confirmed'),('type','=','internal')]</field>
|
||||
<field name="context">{'contact_display': 'partner'}</field>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
<field name="search_view_id" ref="view_stock_delivery_filter"/>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_tree9" model="ir.actions.act_window">
|
||||
<field name="name">New Internal Packing</field>
|
||||
<field name="name">New Internal Picking</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1316,7 +1316,7 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','draft')]</field>
|
||||
<field name="view_id" ref="view_move_tree"/>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_move_form4" model="ir.actions.act_window">
|
||||
@@ -1326,11 +1326,11 @@
|
||||
<field name="view_type">form</field>
|
||||
<field name="domain">[('state','=','assigned')]</field>
|
||||
<field name="view_id" ref="view_move_tree"/>
|
||||
<field name="filter" eval="True"/>
|
||||
<field name="filter" eval="True"/>
|
||||
</record>
|
||||
|
||||
<record id="action_picking_all" model="ir.actions.act_window">
|
||||
<field name="name">Packing</field>
|
||||
<field name="name">Picking</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
@@ -1388,14 +1388,14 @@
|
||||
domain="[('product_id','=',active_id)]"
|
||||
id="act_product_stock_move_open"
|
||||
name="All Stock Moves"
|
||||
res_model="stock.move"
|
||||
res_model="stock.move"
|
||||
src_model="product.product"/>
|
||||
|
||||
<act_window
|
||||
domain="[('move_lines','in',[active_id])]"
|
||||
id="act_relate_picking"
|
||||
name="Related Picking"
|
||||
res_model="stock.picking"
|
||||
res_model="stock.picking"
|
||||
src_model="stock.move"/>
|
||||
|
||||
<act_window
|
||||
@@ -1403,7 +1403,7 @@
|
||||
domain="[('product_id','=',active_id),('state','in',('waiting','confirmed','assigned'))]"
|
||||
id="act_product_stock_move_futur_open"
|
||||
name="Future Stock Moves"
|
||||
res_model="stock.move"
|
||||
res_model="stock.move"
|
||||
src_model="product.product"/>
|
||||
|
||||
<record id="ir_act_product_location_open" model="ir.values">
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<!--
|
||||
<wizard string="UPS xml file" model="stock.move.lot" name="stock.ups_xml" />
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
<wizard
|
||||
id="move_split"
|
||||
model="stock.picking"
|
||||
@@ -19,7 +19,7 @@
|
||||
model="stock.picking"
|
||||
multi="True"
|
||||
name="stock.partial_picking"
|
||||
string="Partial packing"/>
|
||||
string="Partial picking"/>
|
||||
|
||||
<wizard
|
||||
id="track_line"
|
||||
@@ -28,13 +28,13 @@
|
||||
name="stock.move.track"
|
||||
string="Track line"/>
|
||||
|
||||
<wizard id="make_picking" model="stock.picking" multi="True" name="stock.picking.make" string="Make packing"/>
|
||||
<wizard id="make_picking" model="stock.picking" multi="True" name="stock.picking.make" string="Make picking"/>
|
||||
|
||||
<wizard
|
||||
id="return_picking"
|
||||
model="stock.picking"
|
||||
name="stock.return.picking"
|
||||
string="Return packing"/>
|
||||
string="Return picking"/>
|
||||
|
||||
<wizard
|
||||
id="wizard_invoice_onshipping"
|
||||
@@ -70,6 +70,6 @@
|
||||
id="location_product"
|
||||
model="stock.location"
|
||||
name="stock.location.products"
|
||||
string="Products by Location"/>
|
||||
string="Products by Location"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -32,7 +32,7 @@ invoice_form = """<?xml version="1.0"?>
|
||||
<newline/>
|
||||
<field name="type"/>
|
||||
<newline/>
|
||||
<field name="invoice_date" />
|
||||
<field name="invoice_date" />
|
||||
</form>
|
||||
"""
|
||||
|
||||
@@ -53,7 +53,7 @@ invoice_fields = {
|
||||
'selection': [],
|
||||
'required': True
|
||||
},
|
||||
'invoice_date': {'string': 'Invoiced date', 'type':'date' }
|
||||
'invoice_date': {'string': 'Invoiced date', 'type':'date' }
|
||||
}
|
||||
|
||||
def _get_type(obj, cr, uid, data, context):
|
||||
@@ -63,7 +63,7 @@ def _get_type(obj, cr, uid, data, context):
|
||||
if pick.invoice_state == 'invoiced':
|
||||
raise wizard.except_wizard(_('UserError'), _('Invoice is already created.'))
|
||||
if pick.invoice_state == 'none':
|
||||
raise wizard.except_wizard(_('UserError'), _('Invoice cannot be created from Packing.'))
|
||||
raise wizard.except_wizard(_('UserError'), _('Invoice cannot be created from Picking.'))
|
||||
|
||||
if pick.move_lines:
|
||||
usage = pick.move_lines[0].location_id.usage
|
||||
@@ -85,7 +85,7 @@ def _get_type(obj, cr, uid, data, context):
|
||||
('out_refund', 'Customer Refund'),
|
||||
('in_refund', 'Supplier Refund'),
|
||||
]
|
||||
|
||||
|
||||
if pick.type == 'out' and usage == 'supplier':
|
||||
type = 'in_refund'
|
||||
elif pick.type == 'out' and usage == 'customer':
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -32,8 +32,8 @@ _moves_arch = UpdateableStr()
|
||||
_moves_fields = UpdateableDict()
|
||||
|
||||
_moves_arch_end = '''<?xml version="1.0"?>
|
||||
<form string="Packing result">
|
||||
<label string="The packing has been successfully made !" colspan="4"/>
|
||||
<form string="Picking result">
|
||||
<label string="The picking has been successfully made !" colspan="4"/>
|
||||
<field name="back_order_notification" colspan="4" nolabel="1"/>
|
||||
</form>'''
|
||||
_moves_fields_end = {
|
||||
@@ -54,7 +54,7 @@ def _get_moves(self, cr, uid, data, context):
|
||||
res = {}
|
||||
|
||||
_moves_fields.clear()
|
||||
_moves_arch_lst = ['<?xml version="1.0"?>', '<form string="Make packing">']
|
||||
_moves_arch_lst = ['<?xml version="1.0"?>', '<form string="Make picking">']
|
||||
|
||||
for m in pick.move_lines:
|
||||
quantity = m.product_qty
|
||||
@@ -208,7 +208,7 @@ def _do_split(self, cr, uid, data, context):
|
||||
|
||||
def _get_default(self, cr, uid, data, context):
|
||||
if data['form']['back_order']:
|
||||
data['form']['back_order_notification'] = _('Back Order %s Assigned to this Packing.') % (tools.ustr(data['form']['back_order']),)
|
||||
data['form']['back_order_notification'] = _('Back Order %s Assigned to this Picking.') % (tools.ustr(data['form']['back_order']),)
|
||||
return data['form']
|
||||
|
||||
class partial_picking(wizard.interface):
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -24,14 +24,14 @@ import pooler
|
||||
import netsvc
|
||||
|
||||
ARCH = '''<?xml version="1.0"?>
|
||||
<form string="Make packing">
|
||||
<form string="Make picking">
|
||||
<field name="pickings" nolabel="1" colspan="4"
|
||||
width="600" height="300"/>
|
||||
</form>'''
|
||||
|
||||
FIELDS = {
|
||||
'pickings': {
|
||||
'string': 'Packing',
|
||||
'string': 'Picking',
|
||||
'type': 'one2many',
|
||||
'relation': 'stock.picking',
|
||||
'readonly': True,
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
@@ -15,7 +15,7 @@
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
@@ -77,7 +77,7 @@ def _create_returns(self, cr, uid, data, context):
|
||||
else:
|
||||
new_type='internal'
|
||||
new_picking=pick_obj.copy(cr, uid, pick.id, {'name':'%s (return)' % pick.name,
|
||||
'move_lines':[], 'state':'draft', 'type':new_type,
|
||||
'move_lines':[], 'state':'draft', 'type':new_type,
|
||||
'date':date_cur, 'invoice_state':data['form']['invoice_state'],})
|
||||
new_location=move.location_dest_id.id
|
||||
|
||||
@@ -101,7 +101,7 @@ def _action_open_window(self, cr, uid, data, context):
|
||||
return {}
|
||||
return {
|
||||
'domain': "[('id', 'in', ["+str(res)+"])]",
|
||||
'name': 'Packing List',
|
||||
'name': 'Picking List',
|
||||
'view_type':'form',
|
||||
'view_mode':'tree,form',
|
||||
'res_model':'stock.picking',
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<page string="Procurement & Locations">
|
||||
<page string="Requisition & Locations">
|
||||
<field name="path_ids" editable="bottom" colspan="4" nolabel="1">
|
||||
<tree string="Location Paths" editable="bottom">
|
||||
<field name="location_from_id"/>
|
||||
|
||||
Reference in New Issue
Block a user