bzr revid: pap@tinyerp.co.in-20100614053307-26j0lpbx7e6t4bt5
This commit is contained in:
pap (openerp)
2010-06-14 11:03:07 +05:30
168 changed files with 3435 additions and 5324 deletions
+19 -19
View File
@@ -19,26 +19,26 @@
position="attributes">
<attribute name="string">You can enhance OpenERP's basic accounting support with a few additional OpenERP applications.</attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Configure</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>23</attribute>
<attribute name='string'></attribute>
</xpath>
<group colspan="8">
<group colspan="4" height="450" width="600">
</xpath>
<group colspan="8">
<group colspan="4" height="450" width="600">
<field name="charts"/>
<group colspan="4">
<separator col="4" colspan="4" string="Configure Fiscal Year"/>
<separator col="4" colspan="4" string="Configure Fiscal Year"/>
<field name="date_start" on_change="on_change_start_date(date_start)"/>
<field name="date_stop"/>
<field name="period" colspan="4"/>
</group>
<group colspan="4" attrs="{'invisible':[('charts','!=','configurable')]}">
<separator col="4" colspan="4" string="Bank and Cost Account"/>
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list">
<form string="">
<separator col="4" colspan="4" string="Bank and Cost Account"/>
<field colspan="4" mode="tree" name="bank_accounts_id" nolabel="1" widget="one2many_list">
<form string="">
<field name="acc_name"/>
<field name="account_type"/>
<field name="currency_id" widget="selection"/>
@@ -51,15 +51,15 @@
</field>
</group>
<group colspan="4" attrs="{'invisible':[('charts','!=','configurable')]}">
<field name="sale_tax" colspan="2" on_change="on_change_tax(sale_tax)"/>
<field name="purchase_tax" colspan="2" />
<field name="sale_tax" colspan="2" on_change="on_change_tax(sale_tax)"/>
<field name="purchase_tax" colspan="2" />
</group>
<group colspan="4" groups="base.group_extended">
<separator col="4" colspan="4" string="Install Extra Account Module"/>
<field name="account_analytic_plans"/>
<field name="account_payment"/>
<field name="account_followup"/>
<field name="account_asset"/>
<separator col="4" colspan="4" string="Install Extra Account Module"/>
<field name="account_analytic_plans"/>
<field name="account_payment"/>
<field name="account_followup"/>
<field name="account_asset"/>
</group>
</group>
</group>
@@ -88,12 +88,12 @@
<field name="name">account_installer_action_replace</field>
<field name="type">tree</field>
<field name="inherit_id" ref="base.ir_actions_todo_tree"/>
<field name="arch" type="xml">
<xpath expr="//button[@string='Launch']" position="replace">
<button name="%(action_account_installer)d" states="open,skip" string="Launch" type="action" icon="gtk-execute" help="Launch Configuration Wizard"/>
<field name="arch" type="xml">
<xpath expr="//button[@string='Launch']" position="replace">
<button name="%(action_account_installer)d" states="open,skip" string="Launch" type="action" icon="gtk-execute" help="Launch Configuration Wizard"/>
</xpath>
</field>
</record>
</record>
</data>
</openerp>
-15
View File
@@ -488,20 +488,5 @@
<act_window domain="[('partner_id', '=', partner_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_invoice_account_move_unreconciled" name="Unreconciled Receivables &amp; Payables" res_model="account.move.line" src_model="account.invoice"/>
<!-- Partners inherited form -->
<record id="view_invoice_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.invoice.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Account Info">
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>
+7 -2
View File
@@ -577,13 +577,16 @@ class account_move_line(osv.osv):
# writeoff; entry generated for the difference between the lines
#
def reconcile_partial(self, cr, uid, ids, type='auto', context={}):
def reconcile_partial(self, cr, uid, ids, type='auto', context=None):
merges = []
unmerge = []
total = 0.0
merges_rec = []
company_list = []
if context is None:
context = {}
for line in self.browse(cr, uid, ids, context=context):
if company_list and not line.company_id.id in company_list:
raise osv.except_osv(_('Warning !'), _('To reconcile the entries company should be the same for all entries'))
@@ -613,13 +616,15 @@ class account_move_line(osv.osv):
self.pool.get('account.move.reconcile').reconcile_partial_check(cr, uid, [r_id] + merges_rec, context=context)
return True
def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context={}):
def reconcile(self, cr, uid, ids, type='auto', writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False, context=None):
lines = self.browse(cr, uid, ids, context=context)
unrec_lines = filter(lambda x: not x['reconcile_id'], lines)
credit = debit = 0.0
currency = 0.0
account_id = False
partner_id = False
if context is None:
context = {}
company_list = []
for line in self.browse(cr, uid, ids, context=context):
+12 -12
View File
@@ -1554,7 +1554,7 @@
<act_window domain="[('partner_id', '=', active_id), ('account_id.type', 'in', ['receivable', 'payable'])]" id="act_account_partner_account_move_all" name="Receivables &amp; Payables" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="All Account Entries" res_model="account.move.line" src_model="res.partner"/>
<act_window domain="[('partner_id', '=', active_id)]" id="act_account_partner_account_move" name="All Account Entries" res_model="account.move.line" src_model="res.partner"/>
<record id="view_account_addtmpl_wizard_form" model="ir.ui.view">
<field name="name">Account Add wizard</field>
@@ -1577,7 +1577,7 @@
res_model="account.addtmpl.wizard"
context="{'tmpl_ids': active_id}"
src_model="account.account.template"
view_type="form" view_mode="form"/>
view_type="form" view_mode="form"/>
<!-- Account Templates -->
<menuitem
@@ -1820,17 +1820,17 @@
<attribute name="string">Generate Chart of Accounts from a Chart Template</attribute>
</form>
<separator string="title" position="attributes">
<attribute name="string"
<attribute name="string"
>Generate Chart of Accounts from a Chart Template</attribute>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">This will automatically configure your chart of accounts, bank accounts, taxes and journals according to the selected template</attribute>
<attribute name="width">150</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>15</attribute>
<attribute name='string'></attribute>
</xpath>
</separator>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">This will automatically configure your chart of accounts, bank accounts, taxes and journals according to the selected template</attribute>
<attribute name="width">150</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>15</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<field name="company_id" widget="selection"
/>
+1 -1
View File
@@ -89,7 +89,7 @@ class res_partner(osv.osv):
_inherit = 'res.partner'
_description = 'Partner'
def _credit_debit_get(self, cr, uid, ids, field_names, arg, context):
query = self.pool.get('account.move.line')._query_get(cr, uid, context=context)
query = self.pool.get('account.move.line')._query_get(cr, 1, context=context)
cr.execute("""select
l.partner_id, a.type, sum(l.debit-l.credit)
from
+9 -17
View File
@@ -118,7 +118,6 @@
<field name="acc_number"/>
</tree>
</field>
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
</page>
</notebook>
</field>
@@ -126,21 +125,14 @@
<!-- Partners info tab view-->
<record id="view_account_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.account.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook[last()]" position="after">
<notebook colspan="4">
<page string="Project">
<field name="contract_ids" colspan="4" nolabel="1" />
</page>
</notebook>
</xpath>
</field>
</record>
<act_window
id="action_analytic_open"
name="Analytic Accounts"
res_model="account.analytic.account"
domain="[('partner_id','=',active_id)]"
src_model="res.partner"
view_type="form"
view_mode="tree,form,graph,calendar"/>
</data>
</openerp>
+12 -12
View File
@@ -44,77 +44,77 @@
</record>
<record id="account_move_line_comp_rule" model="ir.rule">
<field name="name">Entry lines</field>
<field name="name">Entry lines</field>
<field model="ir.model" name="model_id" ref="model_account_move_line"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="journal_period_comp_rule" model="ir.rule">
<field name="name">Journal Period</field>
<field name="name">Journal Period</field>
<field model="ir.model" name="model_id" ref="model_account_journal_period"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="journal_comp_rule" model="ir.rule">
<field name="name">Journal multi-company</field>
<field name="name">Journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_journal"/>
<field eval="True" name="global"/>
<field name="domain_force">['|','|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="analytic_journal_comp_rule" model="ir.rule">
<field name="name">Analytic journal multi-company</field>
<field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="analytic_journal_comp_rule_false" model="ir.rule">
<field name="name">Analytic journal multi-company</field>
<field name="name">Analytic journal multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_analytic_journal"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="period_comp_rule" model="ir.rule">
<field name="name">Period multi-company</field>
<field name="name">Period multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_period"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="fiscal_year_comp_rule" model="ir.rule">
<field name="name">Fiscal year multi-company</field>
<field name="name">Fiscal year multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_fiscalyear"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="account_comp_rule" model="ir.rule">
<field name="name">Account multi-company</field>
<field name="name">Account multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_account"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="tax_comp_rule" model="ir.rule">
<field name="name">Tax multi-company</field>
<field name="name">Tax multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="tax_code_comp_rule" model="ir.rule">
<field name="name">Tax code multi-company</field>
<field name="name">Tax code multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_tax_code"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="invoice_comp_rule" model="ir.rule">
<field name="name">Invoice multi-company</field>
<field name="name">Invoice multi-company</field>
<field model="ir.model" name="model_id" ref="model_account_invoice"/>
<field eval="True" name="global"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+1 -2
View File
@@ -70,7 +70,6 @@
"access_account_add_tmpl_wizard_system_manager","account.addtmpl.wizard system manager","model_account_addtmpl_wizard","base.group_system",1,1,1,1
"access_account_invoice_user","account.invoice user","model_account_invoice","base.group_user",1,0,0,0
"access_account_invoice_user","account.invoice.line user","model_account_invoice_line","base.group_user",1,0,0,0
"access_account_invoice_user","account.invoice.tax user","model_account_invoice_tax","base.group_user",1,0,0,0
"access_account_payment_term_partner_manager","account.payment.term partner manager","model_account_payment_term","base.group_user",1,0,0,0
"access_account_payment_term_line_partner_manager","account.payment.term.line partner manager","model_account_payment_term_line","base.group_user",1,0,0,0
"access_account_account_product_manager","account.account product manager","model_account_account","product.group_product_manager",1,0,0,0
@@ -86,7 +85,7 @@
"access_account_fiscal_position_account_template","account.fiscal.position.account.template","model_account_fiscal_position_account_template","account.group_account_manager",1,1,1,1
"access_account_sequence_fiscal_year","account.sequence.fiscalyear","model_account_sequence_fiscalyear","account.group_account_user",1,1,1,1
"access_account_sequence_fiscal_year_user","account.sequence.fiscalyear user","model_account_sequence_fiscalyear","base.group_user",1,0,0,0
"access_account_installer","account.installer","model_account_installer","base.group_user",1,0,0,0
"access_account_installer","account.installer","model_account_installer","base.group_system",1,1,1,1
"access_report_account_receivable","report.account.receivable","model_report_account_receivable","account.group_account_manager",1,0,0,0
"access_temp_range","temp.range","model_temp_range","account.group_account_manager",1,0,0,0
"access_report_aged_receivable","report.aged.receivable","model_report_aged_receivable","account.group_account_manager",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
70 access_account_add_tmpl_wizard_system_manager account.addtmpl.wizard system manager model_account_addtmpl_wizard base.group_system 1 1 1 1
71 access_account_invoice_user account.invoice user model_account_invoice base.group_user 1 0 0 0
72 access_account_invoice_user account.invoice.line user model_account_invoice_line base.group_user 1 0 0 0
access_account_invoice_user account.invoice.tax user model_account_invoice_tax base.group_user 1 0 0 0
73 access_account_payment_term_partner_manager account.payment.term partner manager model_account_payment_term base.group_user 1 0 0 0
74 access_account_payment_term_line_partner_manager account.payment.term.line partner manager model_account_payment_term_line base.group_user 1 0 0 0
75 access_account_account_product_manager account.account product manager model_account_account product.group_product_manager 1 0 0 0
85 access_account_fiscal_position_account_template account.fiscal.position.account.template model_account_fiscal_position_account_template account.group_account_manager 1 1 1 1
86 access_account_sequence_fiscal_year account.sequence.fiscalyear model_account_sequence_fiscalyear account.group_account_user 1 1 1 1
87 access_account_sequence_fiscal_year_user account.sequence.fiscalyear user model_account_sequence_fiscalyear base.group_user 1 0 0 0
88 access_account_installer account.installer model_account_installer base.group_user base.group_system 1 0 1 0 1 0 1
89 access_report_account_receivable report.account.receivable model_report_account_receivable account.group_account_manager 1 0 0 0
90 access_temp_range temp.range model_temp_range account.group_account_manager 1 0 0 0
91 access_report_aged_receivable report.aged.receivable model_report_aged_receivable account.group_account_manager 1 0 0 0
@@ -136,7 +136,6 @@ class account_automatic_reconcile(osv.osv_memory):
return (reconciled, len(credits)+len(debits))
def reconcile(self, cr, uid, ids, context=None):
service = netsvc.LocalService("object_proxy")
move_line_obj = self.pool.get('account.move.line')
obj_model = self.pool.get('ir.model.data')
if context is None:
@@ -254,4 +253,4 @@ class account_automatic_reconcile(osv.osv_memory):
account_automatic_reconcile()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -32,13 +32,12 @@ class account_budget_spread(osv.osv_memory):
}
def check_spread(self, cr, uid, ids, context=None):
service = netsvc.LocalService("object_proxy")
if context is None:
context = {}
data = self.read(cr, uid, ids, [])[0]
res = service.execute(cr.dbname, uid, 'account.budget.post', 'spread', context['active_ids'], data['fiscalyear'], data['amount'])
data = self.browse(cr, uid, ids, context=context)[0]
res = self.pool.get('account.budget.post').spread(cr, uid, context['active_ids'], data.fiscalyear.id, data.amount)
return {}
account_budget_spread()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+6 -2
View File
@@ -37,7 +37,7 @@
"category" : "Generic Modules/Accounting",
"website" : "http://tinyerp.com",
"depends" : [
"base",
"base",
"account"
],
"init_xml" : [
@@ -54,8 +54,12 @@
"voucher_view.xml",
"voucher_wizard.xml",
"wizard/account_voucher_open_view.xml",
],
"test" : [
"test/account_voucher.yml",
],
'certificate': '0037580727101',
"active": False,
"installable": True,
@@ -0,0 +1,116 @@
-
In order to check account voucher module in OpenERP I create a customer voucher
-
!record {model: account.voucher, id: account_voucher_voucherforaxelor0}:
account_id: account.cash
company_id: base.main_company
currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher for Axelor
narration: Basic Pc
payment_ids:
- account_id: account.a_recv
amount: 1000.0
name: Voucher for Axelor
partner_id: base.res_partner_desertic_hispafuentes
period_id: account.period_6
reference_type: none
-
I check that Initially customer voucher is in the "Draft" state
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'draft'
-
I change the state of voucher to "proforma" by clicking PRO-FORMA button
-
!workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucherforaxelor0}
-
I check that the voucher state is now "proforma"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'proforma'
-
I create voucher by clicking on Create button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor0}
-
I check that the voucher state is "Waiting for re-checking"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'recheck'
-
I clicked on Validate Button
-
!workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucherforaxelor0}
-
I check that the voucher state is "posted"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor0}:
- state == 'posted'
-
I check that Moves get created for this voucher
-
!python {model: account.voucher}: |
acc_id=self.browse(cr, uid, ref("account_voucher_voucherforaxelor0"))
assert(acc_id.move_id)
-
Now I create a Vendor Voucher
-
!record {model: account.voucher, id: account_voucher_voucheraxelor0}:
account_id: account.cash
company_id: base.main_company
currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher Axelor
narration: Basic PC
payment_ids:
- account_id: account.cash
amount: 1000.0
name: Voucher Axelor
period_id: account.period_6
reference_type: none
-
I check that Initially vendor voucher is in the "Draft" state
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'draft'
-
I change the state of voucher to "proforma" by clicking PRO-FORMA button
-
!workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is now "proforma"
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'proforma'
-
I create voucher by clicking on Create button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is "Waiting for re-checking"
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'recheck'
-
I clicked on Validate Button
-
!workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucheraxelor0}
-
I check that the voucher state is "posted"
-
!assert {model: account.voucher, id: account_voucher_voucheraxelor0}:
- state == 'posted'
-
I check that moves get created for this voucher
-
!python {model: account.voucher}: |
acc_id=self.browse(cr, uid, ref("account_voucher_voucheraxelor0"))
assert(acc_id.move_id)
@@ -1,6 +1,6 @@
# -*- encoding: 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/>.
#
##############################################################################
{
@@ -23,24 +23,29 @@
"version" : "1.0",
"author" : 'Tiny & Axelor',
"description": """This module includes :
* It reconcile the invoice (supplier, customer) while paying through
* It reconcile the invoice (supplier, customer) while paying through
Accounting Vouchers
""",
"category" : "Generic Modules/Indian Accounting",
"website" : "http://tinyerpindia.com",
"depends" : [
"base",
"base",
"account",
"account_voucher",
],
"init_xml" : [
],
"demo_xml" : [],
"update_xml" : [
"account_voucher_payment_view.xml",
"account_voucher_payment_wizard.xml"
],
"test" : [
# "test/account_voucher.yml",
"test/account_voucher_payment.yml",
],
"active": False,
"installable": True,
}
@@ -1,6 +1,6 @@
# -*- encoding: 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/>.
#
##############################################################################
@@ -35,9 +35,9 @@ class account_voucher(osv.osv):
_columns = {
'voucher_line_ids':fields.one2many('account.voucher.line','voucher_id','Voucher Lines', readonly=False, states={'proforma':[('readonly',True)]}),
}
def action_move_line_create(self, cr, uid, ids, *args):
for inv in self.browse(cr, uid, ids):
if inv.move_id:
continue
@@ -55,12 +55,12 @@ class account_voucher(osv.osv):
ref = inv.reference
else:
ref = self._convert_ref(cr, uid, inv.number)
date = inv.date
total_currency = 0
for i in iml:
partner_id=i['partner_id']
acc_id = i['account_id']
acc_id = i['account_id']
if inv.currency_id.id != company_currency:
i['currency_id'] = inv.currency_id.id
i['amount_currency'] = i['amount']
@@ -97,19 +97,19 @@ class account_voucher(osv.osv):
line = map(lambda x:(0,0,self.line_get_convert(cr, uid, x,date, context={})) ,iml)
an_journal_id=inv.journal_id.analytic_journal_id.id
journal_id = inv.journal_id.id
journal = self.pool.get('account.journal').browse(cr, uid, journal_id)
if journal.sequence_id:
name = self.pool.get('ir.sequence').get_id(cr, uid, journal.sequence_id.id)
move = {
'name': name,
'journal_id': journal_id,
'name': name,
'journal_id': journal_id,
'voucher_type':inv.type,
'narration' : inv.narration,
'data':date
}
if inv.period_id:
move['period_id'] = inv.period_id.id
for i in line:
@@ -128,7 +128,7 @@ class account_voucher(osv.osv):
'journal_id':journal_id ,
'period_id':inv.period_id.id,
'partner_id': False,
'ref': ref,
'ref': ref,
'date': date
}
if inv.type in ('rec_voucher', 'bank_rec_voucher', 'journal_pur_voucher', 'journal_voucher'):
@@ -144,15 +144,15 @@ class account_voucher(osv.osv):
'voucher_invoice' : iml and iml[0]['invoice'] and iml[0]['invoice'].id or False,
'debit':False,
'credit':False,
'move_id':move_id,
'move_id':move_id,
'account_id':line.account_id.id or False,
'journal_id':journal_id ,
'period_id':inv.period_id.id,
'partner_id':line.partner_id.id or False,
'ref':ref,
'ref':ref,
'date':date
}
if line.type == 'dr':
move_line['debit'] = line.amount or False
amount=line.amount
@@ -161,7 +161,7 @@ class account_voucher(osv.osv):
amount=line.amount * (-1)
ml_id=self.pool.get('account.move.line').create(cr, uid, move_line)
id_mapping_dict[line.id] = ml_id
total = 0.0
mline = self.pool.get('account.move.line')
if line.invoice_id.id:
@@ -180,7 +180,7 @@ class account_voucher(osv.osv):
line.name=inv.narration
else:
line.name=line.name
if line.account_analytic_id:
an_line = {
'name':line.name,
@@ -197,22 +197,22 @@ class account_voucher(osv.osv):
self.pool.get('account.move.line').reconcile_partial(cr, uid, mline_ids, 'manual', context={})
self.write(cr, uid, [inv.id], {'move_id': move_id})
obj=self.pool.get('account.move').browse(cr, uid, move_id)
for line in obj.line_id :
cr.execute('insert into voucher_id (account_id,rel_account_move) values (%d, %d)',(int(ids[0]),int(line.id)))
return True
account_voucher()
class account_voucher_line(osv.osv):
_inherit = 'account.voucher.line'
def default_get(self, cr, uid, fields, context={}):
data = super(account_voucher_line, self).default_get(cr, uid, fields, context)
self.voucher_context = context
return data
_columns = {
'invoice_id' : fields.many2one('account.invoice','Invoice'),
}
@@ -220,8 +220,8 @@ class account_voucher_line(osv.osv):
def move_line_get_item(self, cr, uid, line, context={}):
res = super(account_voucher_line, self).move_line_get_item(cr, uid, line, context)
res['invoice'] = line.invoice_id or False
return res
return res
def onchange_invoice_id(self, cr, uid, ids, invoice_id, context={}):
lines = []
if 'lines' in self.voucher_context:
@@ -233,27 +233,27 @@ class account_voucher_line(osv.osv):
residual = invoice_obj.residual
same_invoice_amounts = [x['amount'] for x in lines if x['invoice_id']==invoice_id]
residual -= sum(same_invoice_amounts)
return {'value' : {'amount':residual}}
return {'value' : {'amount':residual}}
def onchange_line_account(self, cr, uid, ids, account_id, type, type1):
if not account_id:
return {'value' : {'account_id' : False, 'type' : False ,'amount':False}}
obj = self.pool.get('account.account')
acc_id = False
if type1 in ('rec_voucher','bank_rec_voucher', 'journal_voucher'):
acc_id = obj.browse(cr, uid, account_id)
balance = acc_id.credit
type = 'cr'
elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
elif type1 in ('pay_voucher','bank_pay_voucher','cont_voucher') :
acc_id = obj.browse(cr, uid, account_id)
balance = acc_id.debit
type = 'dr'
elif type1 in ('journal_sale_vou') :
elif type1 in ('journal_sale_vou') :
acc_id = obj.browse(cr, uid, account_id)
balance = acc_id.credit
type = 'dr'
elif type1 in ('journal_pur_voucher') :
elif type1 in ('journal_pur_voucher') :
acc_id = obj.browse(cr, uid, account_id)
balance = acc_id.debit
type = 'cr'
@@ -265,7 +265,7 @@ account_voucher_line()
class account_invoice(osv.osv):
_inherit = "account.invoice"
def action_cancel(self, cr, uid, ids, *args):
res = super(account_invoice, self).action_cancel(cr, uid, ids, *args)
invoices = self.read(cr, uid, ids, ['move_id'])
@@ -276,7 +276,7 @@ class account_invoice(osv.osv):
move_ids = move_db.search(cr, uid, [])
move_obj = move_db.browse(cr, uid, move_ids)
return res
account_invoice()
@@ -1,6 +1,6 @@
# -*- encoding: 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,11 +32,11 @@ _info_form = '''<?xml version="1.0"?>
def _trans_unrec(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)
voucher = pool.get('account.voucher').browse(cr, uid, data.get('id'))
recs = None
recs = []
for line in voucher.move_ids:
if line.reconcile_id:
recs = [line.reconcile_id.id]
for rec in recs:
pool.get('account.move.reconcile').unlink(cr, uid, rec)
return {}
@@ -0,0 +1,118 @@
-
In order to test account_voucher_payment module in OpenERP I create an invoice and paid it through voucher
-
I create a customer invoice record
-
!record {model: account.invoice, id: account_invoice_voucher_payment}:
account_id: account.a_recv
address_contact_id: base.res_partner_address_3000
address_invoice_id: base.res_partner_address_3000
company_id: base.main_company
currency_id: base.EUR
invoice_line:
- account_id: account.a_sale
name: '[PC1] Basic PC'
price_unit: 450.0
quantity: 1.0
product_id: product.product_product_pc1
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_desertic_hispafuentes
reference_type: none
-
I check that Initially customer invoice is in the "Draft" state
-
!assert {model: account.invoice, id: account_invoice_voucher_payment}:
- state == 'draft'
-
I change the state of invoice to "Proforma2" by clicking PRO-FORMA button
-
!workflow {model: account.invoice, action: invoice_proforma2, ref: account_invoice_voucher_payment}
-
I check that the invoice state is now "Proforma2"
-
!assert {model: account.invoice, id: account_invoice_voucher_payment}:
- state == 'proforma2'
-
I create invoice by clicking on Create button
-
!workflow {model: account.invoice, action: invoice_open, ref: account_invoice_voucher_payment}
-
I check that the invoice state is "Open"
-
!assert {model: account.invoice, id: account_invoice_voucher_payment}:
- state == 'open'
-
I create a voucher record for above invoice
-
!record {model: account.voucher, id: account_voucher_voucherforaxelor1}:
account_id: account.cash
company_id: base.main_company
currency_id: base.EUR
journal_id: account.bank_journal
name: Voucher for Axelor
narration: Basic Pc
payment_ids:
- account_id: account.a_recv
amount: 450.0
name: Voucher for Axelor
partner_id: base.res_partner_desertic_hispafuentes
invoice_id: account_invoice_voucher_payment
type: cr
period_id: account.period_6
reference_type: none
-
I check that Initially customer voucher is in the "Draft" state
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- state == 'draft'
-
I change the state of voucher to "proforma" by clicking PRO-FORMA button
-
!workflow {model: account.voucher, action: open_voucher, ref: account_voucher_voucherforaxelor1}
-
I check that the voucher state is now "proforma"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- state == 'proforma'
-
I create voucher by clicking on Create button
-
!workflow {model: account.voucher, action: proforma_voucher, ref: account_voucher_voucherforaxelor1}
-
I check that the voucher state is "Waiting for re-checking"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- state == 'recheck'
-
I clicked on Validate Button
-
!workflow {model: account.voucher, action: recheck_voucher, ref: account_voucher_voucherforaxelor1}
-
I check that the voucher state is "posted"
-
!assert {model: account.voucher, id: account_voucher_voucherforaxelor1}:
- state == 'posted'
-
I check that Moves get created for this voucher
-
!python {model: account.voucher}: |
acc_id=self.browse(cr, uid, ref("account_voucher_voucherforaxelor1"))
assert(acc_id.move_id)
-
I check that the invoice state is now Done
-
!assert {model: account.invoice, id: account_invoice_voucher_payment}:
- state == 'paid'
+1 -2
View File
@@ -27,8 +27,7 @@ class auction_invoice(report_int):
report_int.__init__(self, name)
def create(self,cr, uid, ids, datas, context):
service = netsvc.LocalService("object_proxy")
lots = service.execute(cr.dbname,uid, 'auction.lots', 'read', ids, ['ach_inv_id'])
lots = self.pool.get('auction.lots').read(cr,uid, ids, ['ach_inv_id'], context=context)
invoices = {}
for l in lots:
+2 -2
View File
@@ -103,7 +103,7 @@
separator="1" help="Declined Invitations" />
<separator orientation="vertical"/>
<field name="email" select='1'/>
<field name="sent_by_uid" select="1" widget="selection"/>
<field name="sent_by_uid" select="1"/>
<separator orientation="vertical"/>
<field name="cutype" string="Invitation type" select="1"/>
<field name="event_date" select="1"/>
@@ -391,7 +391,7 @@
<field name="name" select="1" string="Summary"/>
<field name="location" select="1" string="Location"/>
<separator orientation="vertical"/>
<field name="user_id" select="1" widget="selection"/>
<field name="user_id" select="1"/>
<separator orientation="vertical"/>
<field name="show_as" select="1"/>
<field name="class" select="1"/>
+11 -11
View File
@@ -18,10 +18,10 @@
If you don't think you need any of these right now, you can easily install them later on.</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='string'></attribute>
<attribute name='rowspan'>15</attribute>
</xpath>
<separator string="title" position="attributes">
<attribute name='string'></attribute>
<attribute name='rowspan'>15</attribute>
</xpath>
<separator string="title" position="attributes">
<attribute name="string">Install Generic Modules</attribute>
</separator>
<group colspan="8">
@@ -29,7 +29,7 @@ If you don't think you need any of these right now, you can easily install them
<field name="project" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="knowledge" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="stock" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="mrp" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="account" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="purchase" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="hr" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="point_of_sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)" groups="base.group_extended"/>
<field name="hr" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/> <field name="point_of_sale" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="marketing" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)" groups="base.group_extended"/> <field name="misc_tools" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<field name="report_designer" groups="base.group_extended" on_change="onchange_moduleselection(crm,sale,project,knowledge,stock,mrp,account,purchase,hr,point_of_sale,marketing,misc_tools,report_designer,profile_association,profile_auction,profile_bookstore)"/>
<separator string="Install Specific Business Modules" colspan="4"/>
@@ -60,11 +60,11 @@ If you don't think you need any of these right now, you can easily install them
<field name="name">base_setup_installer_action_replace</field>
<field name="type">tree</field>
<field name="inherit_id" ref="base.ir_actions_todo_tree"/>
<field name="arch" type="xml">
<xpath expr="//button[@string='Launch']" position="replace">
<button name="%(action_base_setup_installer)d" states="open,skip" string="Launch" type="action" icon="gtk-execute" help="Launch Configuration Wizard"/>
</xpath>
</field>
</record>
<field name="arch" type="xml">
<xpath expr="//button[@string='Launch']" position="replace">
<button name="%(action_base_setup_installer)d" states="open,skip" string="Launch" type="action" icon="gtk-execute" help="Launch Configuration Wizard"/>
</xpath>
</field>
</record>
</data>
</openerp>
+37 -37
View File
@@ -10,45 +10,45 @@
<form position="attributes">
<attribute name="string">Main Company Setup</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders,...</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Configure Your Company</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>25</attribute>
<attribute name='string'></attribute>
</xpath>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Information of your company will be used to custiomise your documents like Invoices, Sale Orders,...</attribute>
</xpath>
<xpath expr='//separator[@string="title"]' position='attributes'>
<attribute name='string'>Configure Your Company</attribute>
</xpath>
<xpath expr='//separator[@string="vsep"]' position='attributes'>
<attribute name='rowspan'>25</attribute>
<attribute name='string'></attribute>
</xpath>
<group string="res_config_contents" position="replace">
<group colspan="5">
<group colspan="2">
<field name="company_id" invisible="1"/>
<field name="name" required="True"/><field name="account_no"/>
<field name="currency" widget="selection"/><field name="street"/>
<field name="zip"/>
<field name="street2"/>
<field name="country_id"/>
<field name="state_id"/>
<field name="city"/>
<field name="email"/>
<field name="phone"/>
<field name="website"/>
</group>
<newline/>
<group colspan="2" groups="base.group_extended">
<separator string="Report Information" colspan="4"/>
<field name="rml_header1" colspan="5"/>
<field name="rml_footer1" colspan="5"/>
<field name="rml_footer2" colspan="5"/>
<group colspan="5">
<group colspan="2">
<field name="company_id" invisible="1"/>
<field name="name" required="True"/><field name="account_no"/>
<field name="currency" widget="selection"/><field name="street"/>
<field name="zip"/>
<field name="street2"/>
<field name="country_id"/>
<field name="state_id"/>
<field name="city"/>
<field name="email"/>
<field name="phone"/>
<field name="website"/>
</group>
<newline/>
<group colspan="2" groups="base.group_extended">
<separator string="Report Information" colspan="4"/>
<field name="rml_header1" colspan="5"/>
<field name="rml_footer1" colspan="5"/>
<field name="rml_footer2" colspan="5"/>
<separator colspan="4"
string="Your Logo - Use a size of about 450x150 pixels."/>
<field colspan="5" name="logo" widget="image"
nolabel="1"/>
</group>
</group>
</group>
<separator colspan="4"
string="Your Logo - Use a size of about 450x150 pixels."/>
<field colspan="5" name="logo" widget="image"
nolabel="1"/>
</group>
</group>
</group>
<xpath expr='//button[@name="action_skip"]' position='replace'/>
</data>
@@ -1,4 +1,4 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
"access_base_setup_installer","base.setup.installer","model_base_setup_installer",,1,0,0,0
"access_base_setup_company","base.setup.company","model_base_setup_company",,1,0,0,0
"access_base_setup_config","base.setup.config","model_base_setup_config",,1,0,0,0
"access_base_setup_installer","base.setup.installer","model_base_setup_installer",base.group_system,1,1,1,1
"access_base_setup_company","base.setup.company","model_base_setup_company",base.group_system,1,1,1,1
"access_base_setup_config","base.setup.config","model_base_setup_config",base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_base_setup_installer base.setup.installer model_base_setup_installer base.group_system 1 0 1 0 1 0 1
3 access_base_setup_company base.setup.company model_base_setup_company base.group_system 1 0 1 0 1 0 1
4 access_base_setup_config base.setup.config model_base_setup_config base.group_system 1 0 1 0 1 0 1
-1
View File
@@ -29,7 +29,6 @@
<menuitem id="base.menu_sales" name="Sales"
parent="base.menu_base_partner" sequence="1" />
<menuitem parent="base.menu_sales" name="Leads"
groups="base.group_extended"
+2 -2
View File
@@ -66,7 +66,7 @@
states="open,pending" type="object"
icon="gtk-go-forward" />
</group>
<field name="type" readonly="1"/>
<field name="type" invisible="1"/>
</group>
<notebook colspan="4">
<page string="Lead">
@@ -298,7 +298,7 @@
<separator orientation="vertical"/>
<field name="partner_name"/>
<field name="email_from"/>
<field name="user_id" widget="selection">
<field name="user_id">
<filter icon="terp-personal-"
domain="[('user_id','=', False)]"
help="Unassigned Leads" />
+20 -11
View File
@@ -32,11 +32,12 @@ from tools.translate import _
import tools
from osv import fields,osv,orm
from osv.orm import except_orm
import collections
from tools import command_re
class crm_cases(osv.osv):
""" crm cases """
class mailgate_thread(osv.osv):
""" mailgate_thread """
_name = "mailgate.thread"
_inherit = "mailgate.thread"
@@ -127,7 +128,7 @@ class crm_cases(osv.osv):
#getattr(self, act)(cr, uid, select)
return res
def emails_get(self, cr, uid, ids, context={}):
def emails_get(self, cr, uid, ids, context=None):
"""
Get Emails
@@ -137,16 +138,24 @@ class crm_cases(osv.osv):
@param ids: List of email’s IDs
@param context: A standard dictionary for contextual values
"""
res = []
res = {}
if isinstance(ids, (str, int, long)):
select = [ids]
select = [long(ids)]
else:
select = ids
for case in self.browse(cr, uid, select):
user_email = (case.user_id and case.user_id.address_id and case.user_id.address_id.email) or False
res += [(user_email, case.email_from, case.email_cc or False, getattr(case,'priority') and case.priority or False)]
if isinstance(ids, (str, int, long)):
return len(res) and res[0] or False
for thread in self.browse(cr, uid, select, context=context):
values = collections.defaultdict(set)
for message in thread.message_ids:
user_email = (message.user_id and message.user_id.address_id and message.user_id.address_id.email) or False
values['user_email'].add(user_email)
values['email_from'].add(message.email_from)
values['email_cc'].add(message.email_cc or False)
res[str(thread.id)] = dict((key,list(values[key])) for key, value in values.iteritems())
return res
def msg_send(self, cr, uid, id, *args, **argv):
@@ -161,4 +170,4 @@ class crm_cases(osv.osv):
"""
return True
crm_cases()
mailgate_thread()
+17 -17
View File
@@ -38,7 +38,7 @@
<field name="act_window_id" ref="crm_case_categ_meet_create_partner"/>
</record>
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_partner">
<record model="ir.actions.act_window.view" id="action_crm_tag_gantt_meet_partner">
<field name="sequence" eval="3"/>
<field name="view_mode">gantt</field>
<field name="view_id" ref="crm_case_gantt_view_meet"/>
@@ -85,33 +85,33 @@
<!-- ALL MEETINGS -->
<menuitem name="Meetings" id="menu_meeting_sale"
parent="base.menu_base_partner" sequence="3" />
parent="base.menu_base_partner" sequence="3" />
<menuitem name="Meetings" id="menu_crm_case_categ_meet"
action="crm_case_categ_meet" parent="menu_meeting_sale"
sequence="1" />
action="crm_case_categ_meet" parent="menu_meeting_sale"
sequence="1" />
<record id="ir_ui_view_sc_calendar0" model="ir.ui.view_sc">
<record id="ir_ui_view_sc_calendar0" model="ir.ui.view_sc">
<field name="name">Calendar</field>
<field name="resource">ir.ui.menu</field>
<field name="user_id" ref="base.user_root"/>
<field name="res_id" ref="crm.menu_crm_case_categ_meet"/>
</record>
</record>
<record id="action_view_attendee_form" model="ir.actions.act_window">
<field name="name">Meeting Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
<field name="name">Meeting Invitations</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">calendar.attendee</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="base_calendar.base_calendar_attendee_tree_view" />
<field name="domain">[('ref','like','crm.meeting,')]</field>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<field name="context">{'default_sent_by_uid': uid}</field>
</record>
<menuitem id="menu_attendee_invitations"
name="Meeting Invitations" parent="crm.menu_meeting_sale"
sequence="10" action="action_view_attendee_form"
groups="base.group_extended" />
name="Meeting Invitations" parent="crm.menu_meeting_sale"
sequence="10" action="action_view_attendee_form"
groups="base.group_extended" />
</data>
</openerp>
+29 -29
View File
@@ -2,7 +2,7 @@
<openerp>
<data>
<!-- CRM Meetings Categories Form View -->
<!-- CRM Meetings Categories Form View -->
<record id="crm_meeting_categ_action" model="ir.actions.act_window">
<field name="name">Meeting Categories</field>
@@ -16,7 +16,7 @@
<menuitem action="crm_meeting_categ_action" name="Categories"
id="menu_crm_case_meeting-act" parent="menu_crm_config_meeting" />
<!-- CRM Meetings Form View -->
<!-- CRM Meetings Form View -->
<record model="ir.ui.view" id="crm_case_form_view_meet">
<field name="name">CRM - Meetings Form</field>
@@ -26,7 +26,7 @@
<form string="Meetings">
<group col="6" colspan="4">
<field name="name" select="1" string="Summary"
required="1" colspan="2" />
required="1" colspan="2" />
<field name="categ_id" widget="selection"
string="Meeting Type"
groups="base.group_extended"
@@ -51,9 +51,9 @@
name="open_meeting" icon="gtk-edit"
type="object" />
<button string="ExRule"
name="%(base_calendar.action_base_calendar_set_exrule)d" icon="gtk-zoom-out" type="action"
context="{'model' : 'crm.meeting'}"
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"/>
name="%(base_calendar.action_base_calendar_set_exrule)d" icon="gtk-zoom-out" type="action"
context="{'model' : 'crm.meeting'}"
attrs="{'invisible':[('rrule_type','in', ('none', False))]}"/>
</group>
</group>
<group col="4" colspan="4" name="rrule" attrs="{'invisible': [('rrule_type','!=','custom')]}">
@@ -133,7 +133,7 @@
<button name="case_close" string="Done"
states="open" type="object"
icon="gtk-jump-to" />
<button name="case_reset" string="Reset to Unconfirmed"
<button name="case_reset" string="Reset to Unconfirmed"
states="open,done,cancel" type="object"
icon="gtk-convert" />
<button name="case_open" string="Confirm"
@@ -204,7 +204,7 @@
</field>
</record>
<!-- CRM Meeting Tree View -->
<!-- CRM Meeting Tree View -->
<record model="ir.ui.view" id="crm_case_tree_view_meet">
<field name="name">CRM - Meetings Tree</field>
@@ -222,7 +222,7 @@
</field>
</record>
<!-- CRM Meeting Calendar -->
<!-- CRM Meeting Calendar -->
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
<field name="name">CRM - Meetings Calendar</field>
@@ -238,7 +238,7 @@
</field>
</record>
<!-- CRM Meeting Gantt -->
<!-- CRM Meeting Gantt -->
<record id="crm_case_gantt_view_meet" model="ir.ui.view">
<field name="name">CRM - Meetings Gantt</field>
@@ -254,7 +254,7 @@
</field>
</record>
<!-- CRM Meeting Search View -->
<!-- CRM Meeting Search View -->
<record id="view_crm_case_meetings_filter" model="ir.ui.view">
<field name="name">CRM - Meetings Search</field>
@@ -274,29 +274,29 @@
domain="[('section_id','=',context.get('section_id',False))]"
help="My Sale Team" />
</field>
<field name="user_id" select="1" widget="selection"/>
<field name="user_id" select="1"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Date" icon="terp-go-month"
domain="[]" context="{'group_by':'date'}" />
<filter string="Privacy" icon="terp-locked"
domain="[]" context="{'group_by':'class'}" />
<separator orientation="vertical" />
<filter string="Responsible" icon="terp-personal" domain="[]"
context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-personal" domain="[]"
context="{'group_by':'partner_id'}" />
<separator orientation="vertical" />
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]"
context="{'group_by':'state'}" />
<separator orientation="vertical" />
</group>
<group expand="0" string="Group By...">
<filter string="Date" icon="terp-go-month"
domain="[]" context="{'group_by':'date'}" />
<filter string="Privacy" icon="terp-locked"
domain="[]" context="{'group_by':'class'}" />
<separator orientation="vertical" />
<filter string="Responsible" icon="terp-personal" domain="[]"
context="{'group_by':'user_id'}" />
<filter string="Partner" icon="terp-personal" domain="[]"
context="{'group_by':'partner_id'}" />
<separator orientation="vertical" />
<filter string="State" icon="terp-stock_effects-object-colorize" domain="[]"
context="{'group_by':'state'}" />
<separator orientation="vertical" />
</group>
</search>
</field>
</record>
<!-- Calendar Attendee Form View -->
<!-- Calendar Attendee Form View -->
<record id="attendee_form_view_inherit" model="ir.ui.view">
<field name="name">calendar.attendee.form.inherit</field>
@@ -310,7 +310,7 @@
</field>
</record>
<!-- Calendar Attendee Tree View -->
<!-- Calendar Attendee Tree View -->
<record id="attendee_tree_view_inherit" model="ir.ui.view">
<field name="name">calendar.attendee.tree.inherit</field>
+3 -2
View File
@@ -52,8 +52,9 @@ class crm_opportunity(osv.osv):
'ref2': fields.reference('Reference 2', selection=crm._links_get, size=128),
'phone': fields.char("Phone", size=64),
'date_deadline': fields.date('Expected Closing'),
'date_action': fields.date('Next Action'),
}
'date_action': fields.date('Next Action Date'),
'title_action': fields.char('Next Action', size=64),
}
def case_close(self, cr, uid, ids, *args):
"""Overrides close for crm_case for setting probability and close date
@param self: The object pointer
+8 -9
View File
@@ -2,7 +2,7 @@
<openerp>
<data noupdate="1">
<act_window
<act_window
id="act_crm_opportunity_crm_phonecall_new"
name="Phone calls"
res_model="crm.phonecall"
@@ -12,7 +12,7 @@
domain="[('user_id','=',uid),('opportunity_id', '=', active_id)]"
view_type="form"/>
<act_window
<act_window
id="act_crm_opportunity_crm_meeting_new"
name="Meetings"
res_model="crm.meeting"
@@ -25,11 +25,10 @@
<record model="ir.actions.act_window" id="crm_case_category_act_oppor11">
<field name="name">Opportunities</field>
<field name="res_model">crm.lead</field>
<field name="view_mode">tree,form,graph</field>
<field name="domain">['|',('type','=','opportunity'),('state','=','draft')]</field>
<field name="context">{'search_default_user_id':uid,'search_default_current':1}</field>
<field name="view_mode">tree,form,graph,calendar</field>
<field name="domain">[('type','=','opportunity')]</field>
<field name="context">{'search_default_user_id':uid,'search_default_current':1, 'default_type': 'opportunity'}</field>
<field name="view_id" ref="crm_case_tree_view_oppor"/>
<field name="context">{'search_default_current':1, 'default_type': 'opportunity'}</field>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
</record>
@@ -55,11 +54,11 @@
</record>
<menuitem id="base.menu_sales" name="Sales"
parent="base.menu_base_partner" sequence="1" />
parent="base.menu_base_partner" sequence="1" />
<menuitem name="Opportunities" id="menu_crm_case_opp"
parent="base.menu_sales" action="crm_case_category_act_oppor11"
sequence="2" />
parent="base.menu_sales" action="crm_case_category_act_oppor11"
sequence="2" />
</data>
</openerp>
+41 -13
View File
@@ -32,7 +32,7 @@
id="menu_crm_opportunity_stage_act" name="Stages"
parent="menu_crm_config_opportunity" />
<!-- Opportunity Resource Type Form View -->
<!-- Opportunity Resource Type Form View -->
<record id="crm_opportunity_resource_act" model="ir.actions.act_window">
<field name="name">Opportunity Resource Type</field>
@@ -81,8 +81,10 @@
name="%(opportunity2phonecall_act)d" icon="gtk-redo" type="action" />
<newline/>
<field name="date_action"/>
<field name="title_action"/>
<field name="priority" string="Priority"/>
<field name="type" readonly="1"/>
<newline/>
<field name="type" invisible="1"/>
</group>
<notebook colspan="4">
<page string="Opportunity">
@@ -133,6 +135,27 @@
icon="gtk-convert" />
</group>
</page>
<page string="Lead">
<group colspan="2" col="4">
<separator string="Contact" colspan="4" col="4"/>
<field name="partner_name" string="Partner Name" colspan="4"/>
<newline/>
<field domain="[('domain', '=', 'contact')]" name="title"/>
<field name="function" />
<field name="street" colspan="4"/>
<field name="street2" colspan="4"/>
<field name="zip"/>
<field name="city"/>
<field name="country_id"/>
<field name="state_id"/>
</group>
<group colspan="2" col="3">
<separator string="Communication" colspan="4" col="3"/>
<field name="fax"/>
<newline/>
<field name="mobile"/>
</group>
</page>
<page string="Emails" groups="base.group_extended">
<group colspan="4">
@@ -160,10 +183,10 @@
icon="gtk-undo" type="action" />
</form>
<tree string="Communication history">
<field name="date"/>
<field name="email_from" />
<field name="email_to"/>
<field name="description"/>
<field name="date"/>
<field name="email_from" />
<field name="email_to"/>
<field name="description"/>
</tree>
</field>
<button colspan="2" string="Send New Email"
@@ -223,8 +246,8 @@
<field name="create_date"/>
<field name="name" string="Opportunity"/>
<field name="partner_id"/>
<field name="date_action"/>
<field name="stage_id"/>
<field name="categ_id" invisible="1" groups="base.group_extended"/>
<button name="stage_previous" string="Previous"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
@@ -232,10 +255,9 @@
icon="gtk-go-forward" />
<field name="planned_revenue" sum="Total of Planned Revenue"/>
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
<field name="date_action"/>
<field name="section_id" groups="base.group_extended"/>
<field name="section_id"
invisible="context.get('invisible_section', True)" />
<field name="user_id"/>
<field name="priority"/>
<field name="state"/>
<button name="case_open" string="Open"
states="draft,pending" type="object"
@@ -297,17 +319,23 @@
/>
<separator orientation="vertical"/>
<field name="name" string="Opportunity"/>
<field name="user_id" widget="selection">
<field name="user_id">
<filter icon="terp-personal-"
domain="[('user_id','=', False)]"
help="Unassigned Opportunities" />
</field>
<field name="section_id"
default="context.get('section_id', False)" select="1"
default="context.get('section_id', False)"
context="{'invisible_section': False}"
widget="selection">
<filter icon="terp-personal+"
domain="[('section_id','=',context.get('section_id',False))]"
domain="[('section_id.user_id','=',uid)]"
context="{'invisible_section': False}"
help="My Sale Team" />
<filter icon="terp-personal+"
context="{'invisible_section': False}"
domain="[]"
help="Show Sales Team"/>
</field>
<newline/>
<group expand="0" string="Group By..." colspan="16">
+1 -1
View File
@@ -261,7 +261,7 @@
<separator orientation="vertical"/>
<field name="name" string="Call Summary"/>
<field name="partner_id"/>
<field name="user_id" widget="selection">
<field name="user_id">
<filter icon="terp-personal-"
domain="[('user_id','=',False)]"
help="Unassigned Phonecalls" />
@@ -187,7 +187,7 @@
<field name="act_window_id" ref="action_report_crm_phonecall"/>
</record>
<menuitem name="Phone Calls"
<menuitem name="Phone Calls Analysis"
action="action_report_crm_phonecall"
id="menu_report_crm_phonecalls_tree" parent="base.next_id_64" />
+1 -1
View File
@@ -34,5 +34,5 @@
"access_res_partner","res.partner.crm.user","base.model_res_partner","crm.group_crm_user",1,0,0,0
"access_res_partner_address","res.partner.address.crm.user","base.model_res_partner_address","crm.group_crm_user",1,0,0,0
"access_res_partner_category","res.partner.category.crm.user","base.model_res_partner_category","crm.group_crm_user",1,0,0,0
"mail_gateway_mailgate_message","mail_gateway.mailgate.message","model_mailgate_message","crm.group_crm_user",1,1,1,1
"mail_gateway_mailgate_message","mail_gateway.mailgate.message","mail_gateway.model_mailgate_message","crm.group_crm_user",1,1,1,1
"mail_gateway_mailgate_thread","mail_gateway.mailgate.thread","model_mailgate_thread","crm.group_crm_user",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
34 access_res_partner res.partner.crm.user base.model_res_partner crm.group_crm_user 1 0 0 0
35 access_res_partner_address res.partner.address.crm.user base.model_res_partner_address crm.group_crm_user 1 0 0 0
36 access_res_partner_category res.partner.category.crm.user base.model_res_partner_category crm.group_crm_user 1 0 0 0
37 mail_gateway_mailgate_message mail_gateway.mailgate.message model_mailgate_message mail_gateway.model_mailgate_message crm.group_crm_user 1 1 1 1
38 mail_gateway_mailgate_thread mail_gateway.mailgate.thread model_mailgate_thread crm.group_crm_user 1 1 1 1
+3 -27
View File
@@ -67,7 +67,7 @@
<field colspan="4" name="line_ids" nolabel="1" select="1"/>
</page>
<page string="Destination">
<separator colspan="4" string="Countries"/>
<separator colspan="4" string="Countries"/>
<field colspan="4" name="country_ids" nolabel="1"/>
<separator colspan="4" string="States"/>
<field colspan="4" name="state_ids" nolabel="1"/>
@@ -243,18 +243,6 @@
</field>
</record>
<record id="view_move_withweight_tree" model="ir.ui.view">
<field name="name">stock.move.tree.weight</field>
<field name="type">tree</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_tree"/>
<field name="arch" type="xml">
<field name="product_uom" position="after">
<field name="weight"/>
</field>
</field>
</record>
<record id="view_move_withweight_form" model="ir.ui.view">
<field name="name">stock.move.form.weight</field>
<field name="type">form</field>
@@ -267,18 +255,6 @@
</field>
</record>
<record id="view_move_reception_picking_withweight_tree" model="ir.ui.view">
<field name="name">stock.move.reception.packing.tree.weight</field>
<field name="type">tree</field>
<field name="model">stock.move</field>
<field name="inherit_id" ref="stock.view_move_tree_reception_picking"/>
<field name="arch" type="xml">
<field name="product_uom" position="after">
<field name="weight"/>
</field>
</field>
</record>
<record id="view_move_reception_picking_withweight_form" model="ir.ui.view">
<field name="name">stock.move.reception.packing.form.weight</field>
<field name="type">form</field>
@@ -297,8 +273,8 @@
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page[@string='Sale Order']/group[1]/button[@name='button_dummy']" position="after">
<button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-execute" context="{'order_id':id}"/>
</xpath>
<button name="%(action_delivery_cost)d" states="draft" string="Delivery Costs" type="action" icon="gtk-execute" context="{'order_id':id}"/>
</xpath>
</field>
</record>
+3 -3
View File
@@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-04-23 09:08+0000\n"
"Last-Translator: grisha <Unknown>\n"
"PO-Revision-Date: 2010-06-11 16:12+0000\n"
"Last-Translator: Sios <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-24 03:52+0000\n"
"X-Launchpad-Export-Date: 2010-06-12 03:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: delivery
+8 -8
View File
@@ -3,7 +3,7 @@
<!--<menuitem name="Document Management" icon="terp-stock" id="menu_document"/>
<menuitem name="Document Configuration" id="menu_document_configuration" parent="menu_document"/>-->
<menuitem name="Knowledge Management" icon="terp-stock" id="base.menu_document" sequence="4" groups="base.group_user"/>
<menuitem name="Knowledge" icon="terp-stock" id="base.menu_document" sequence="4" groups="base.group_user"/>
<menuitem name="Configuration" id="base.menu_document_configuration" parent="base.menu_document" sequence="50"/>
<menuitem name="Document Management" id="menu_document_management_configuration" parent="base.menu_document_configuration" sequence="1"/>
@@ -238,19 +238,19 @@
help="less 1 month modified/created attachments"
domain="[('create_date','&lt;=', time.strftime('%%Y-%%m-%%d')),('create_date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
/>
<separator orientation="vertical"/>
<field name="user_id" widget="selection">
<separator orientation="vertical"/>
<field name="user_id">
<filter icon="terp-personal"
domain="[('user_id','=', False)]"
help="Filter on my Attachment" />
</field>
<field name="partner_id" widget="selection"/>
<newline/>
<group expand="0" string="Group By...">
</field>
<field name="partner_id"/>
<newline/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-personal" domain="[]"
context="{'group_by':'partner_id'}" />
<filter string="Directory" icon="terp-folder-green" domain="[]" context="{'group_by':'parent_id'}"/>
</group>
</group>
</search>
</field>
</record>
+1
View File
@@ -16,6 +16,7 @@
'email_template_view.xml',
'email_template_mailbox_view.xml',
'wizard/email_template_send_wizard_view.xml',
'security/ir.model.access.csv'
],
"installable": True,
"active": False,
@@ -1,69 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<data>
<menuitem name="Tools" id="base.menu_tools" icon="STOCK_PREFERENCES" sequence="15"/>
<menuitem name="Email Template" id="menu_email_template" parent="base.menu_tools"/>
<record model="ir.ui.view" id="email_template_account_form">
<field name="name">email_template.account.form</field>
<field name="model">email_template.account</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Account Configuration">
<group colspan="2">
<field name="name" select="1" />
</group>
<notebook colspan="4">
<page string="Outgoing">
<separator string="Server Information" colspan="4" />
<group colspan="4">
<field name="smtpserver" select="1" colspan="2" />
<field name="smtpport" select="2" colspan="2" />
<field name="smtpssl" select="2" colspan="2" />
<field name="smtptls" select="2" colspan="2" />
</group>
<button name="check_outgoing_connection" type="object" string="Check Outgoing Connection" />
<separator string="User Information" colspan="4" />
<group col="2" colspan="2">
<field name="email_id" select="1" on_change="on_change_emailid(name,email_id)" colspan="2" />
<field name="smtppass" password="True" colspan="2" />
<field name="company" select="2" colspan="2" />
</group>
<group col="2" colspan="2">
<field name="smtpuname" select="1" colspan="2" />
<field name="user" select="2" colspan="2" />
<field name="send_pref" colspan="2" />
</group>
</page>
</notebook>
<group colspan="4" col="10">
<field name="state" select="1"/>
<button string="Approve Account" name="button_approval" states="draft" type="workflow"/>
<button string="Suspend Account" name="button_suspended" states="approved" type="workflow" />
<button string="Request Re-activation" name="get_reapprove" states="suspended" type="workflow" />
<button string="Send/Receive" name="send_receive" states="approved" type="object" />
</group>
</form>
</field>
</record>
<record model="ir.ui.view" id="email_template_account_form">
<field name="name">email_template.account.form</field>
<field name="model">email_template.account</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Account Configuration">
<group colspan="2">
<field name="name" select="1" />
</group>
<notebook colspan="4">
<page string="Outgoing">
<separator string="Server Information" colspan="4" />
<group colspan="4">
<field name="smtpserver" select="1" colspan="2" />
<field name="smtpport" select="2" colspan="2" />
<field name="smtpssl" select="2" colspan="2" />
<field name="smtptls" select="2" colspan="2" />
</group>
<button name="check_outgoing_connection" type="object" string="Check Outgoing Connection" />
<separator string="User Information" colspan="4" />
<group col="2" colspan="2">
<field name="email_id" select="1" on_change="on_change_emailid(name,email_id)" colspan="2" />
<field name="smtppass" password="True" colspan="2" />
<field name="company" select="2" colspan="2" />
</group>
<group col="2" colspan="2">
<field name="smtpuname" select="1" colspan="2" />
<field name="user" select="2" colspan="2" />
<field name="send_pref" colspan="2" />
</group>
</page>
</notebook>
<group colspan="4" col="10">
<field name="state" select="1"/>
<button string="Approve Account" name="button_approval" states="draft" type="workflow"/>
<button string="Suspend Account" name="button_suspended" states="approved" type="workflow" />
<button string="Request Re-activation" name="get_reapprove" states="suspended" type="workflow" />
<button string="Send/Receive" name="send_receive" states="approved" type="object" />
</group>
</form>
</field>
</record>
<record model="ir.ui.view" id="email_template_account_tree">
<field name="name">email_template.account.tree</field>
<field name="model">email_template.account</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SMTP Server">
<field name="name" select="2" />
<field name="email_id" select="2" />
<field name="smtpuname" select="2" />
<field name="user" select="2" />
<field name="smtpserver" select="2" />
<field name="smtpport" select="2" />
<field name="state" select="2" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="email_template_account_tree">
<field name="name">email_template.account.tree</field>
<field name="model">email_template.account</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="SMTP Server">
<field name="name" select="2" />
<field name="email_id" select="2" />
<field name="smtpuname" select="2" />
<field name="user" select="2" />
<field name="smtpserver" select="2" />
<field name="smtpport" select="2" />
<field name="state" select="2" />
</tree>
</field>
</record>
<record id="view_email_template_account_search" model="ir.ui.view">
<field name="name">email_template.account.search</field>
@@ -85,21 +85,21 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_email_template_account_tree_all">
<field name="name">Accounts</field>
<field name="res_model">email_template.account</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_template_account_tree" />
<record model="ir.actions.act_window" id="action_email_template_account_tree_all">
<field name="name">Accounts</field>
<field name="res_model">email_template.account</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_template_account_tree" />
<field name="context">{'group_by': [], 'search_default_draft': 1, 'search_default_my': 1}</field>
<field name="search_view_id" ref="view_email_template_account_search"/>
</record>
</record>
<menuitem name="Configuration" id="menu_email_template_configuration" parent="menu_email_template" />
<menuitem name="Configuration" id="menu_email_template_configuration" parent="menu_email_template" />
<menuitem name="All Accounts" id="menu_email_template_account_all" parent="menu_email_template_configuration" action="action_email_template_account_tree_all" groups="res_groups_email_template_manager" />
<menuitem name="Email Accounts" id="menu_email_template_account_all" parent="menu_email_template_configuration" action="action_email_template_account_tree_all"/>
</data>
</data>
</openerp>
@@ -1,81 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<!-- Email Template-->
<record model="ir.ui.view" id="email_template_mailbox_form">
<field name="name">email_template.mailbox.form</field>
<field name="model">email_template.mailbox</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Outbox">
<group col="4" colspan="2">
<field name="email_from" colspan="4" select="1"/>
<field name="email_cc" colspan="4" select="1"/>
<field name="date_mail" colspan="4" select="2"/>
</group>
<group col="4" colspan="2">
<field name="email_to" colspan="4" required="1" select="1" />
<field name="email_bcc" colspan="4" select="2"/>
<field name="subject" colspan="4" select="1"/>
</group>
<notebook colspan="4">
<page string="Standard Body">
<separator colspan="4" string="Standard Body" />
<notebook colspan="4">
<page string="Standard Body (Text)">
<field name="body_text" nolabel="1" colspan="4" select="1"/>
</page>
<page string="Body (HTML-Web Client Only)">
<field name="body_html" nolabel="1" colspan="4" />
<!--<label string="Note: HTML body can't be edited with GTK desktop client." colspan="4"/>
--></page>
<data>
<!-- Email Template-->
<record model="ir.ui.view" id="email_template_mailbox_form">
<field name="name">email_template.mailbox.form</field>
<field name="model">email_template.mailbox</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Outbox">
<group col="4" colspan="2">
<field name="email_from" colspan="4" select="1"/>
<field name="email_cc" colspan="4" select="1"/>
<field name="date_mail" colspan="4" select="2"/>
</group>
<group col="4" colspan="2">
<field name="email_to" colspan="4" required="1" select="1" />
<field name="email_bcc" colspan="4" select="2"/>
<field name="subject" colspan="4" select="1"/>
</group>
<notebook colspan="4">
<page string="Standard Body">
<separator colspan="4" string="Standard Body" />
<notebook colspan="4">
<page string="Standard Body (Text)">
<field name="body_text" nolabel="1" colspan="4" select="1"/>
</page>
<page string="Body (HTML-Web Client Only)">
<field name="body_html" nolabel="1" colspan="4" />
<!--<label string="Note: HTML body can't be edited with GTK desktop client." colspan="4"/>
--></page>
</notebook>
</page>
</notebook>
</page>
<page string="Attachments">
<group col="4">
<separator colspan="4" string="Attachments" />
<field name="attachments_ids" colspan="4" nolabel="1" />
</group>
</page>
<page string="Advanced">
<group col="4">
<field name="account_id" colspan="2" />
<field name="server_ref" colspan="2" />
<field name="mail_type" colspan="2" />
<field name="folder" colspan="2" select="2"/>
<separator string="History" colspan="4" />
<field name="history" nolabel="1" colspan="4"/>
</group>
</page>
</notebook>
<separator colspan="4" string="" />
<group col="4" colspan="4">
<field name="state" readonly="1" />
<button name="complete_mail" type="object" string="Download Full Mail" states="read,unread" />
<button name="send_this_mail" type="object" string="Send Mail" />
</group>
</form>
</field>
</record>
<page string="Attachments">
<group col="4">
<separator colspan="4" string="Attachments" />
<field name="attachments_ids" colspan="4" nolabel="1" />
</group>
</page>
<page string="Advanced">
<group col="4">
<field name="account_id" colspan="2" />
<field name="server_ref" colspan="2" />
<field name="mail_type" colspan="2" />
<field name="folder" colspan="2" select="2"/>
<separator string="History" colspan="4" />
<field name="history" nolabel="1" colspan="4"/>
</group>
</page>
</notebook>
<separator colspan="4" string="" />
<group col="4" colspan="4">
<field name="state" readonly="1" />
<button name="complete_mail" type="object" string="Download Full Mail" states="read,unread" />
<button name="send_this_mail" type="object" string="Send Mail" />
</group>
</form>
</field>
</record>
<!--============================================= TREE VIEWS =============================================-->
<record id="view_email_template_mailbox_tree" model="ir.ui.view">
<field name="name">email_template.mailbox.tree</field>
<field name="model">email_template.mailbox</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Drafts">
<field name="user" />
<field name="email_from" select="1" />
<field name="subject" select="1" />
<field name="attachments_ids" select="2" />
<field name="date_mail" select="2" />
</tree>
</field>
</record>
<!--============================================= TREE VIEWS =============================================-->
<record id="view_email_template_mailbox_tree" model="ir.ui.view">
<field name="name">email_template.mailbox.tree</field>
<field name="model">email_template.mailbox</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Drafts">
<field name="user" />
<field name="email_from" select="1" />
<field name="subject" select="1" />
<field name="attachments_ids" select="2" />
<field name="date_mail" select="2" />
</tree>
</field>
</record>
<record id="view_email_template_mailbox_search" model="ir.ui.view">
<field name="name">email_template.mailbox.search</field>
@@ -109,14 +109,14 @@
<field name="search_view_id" ref="view_email_template_mailbox_search"/>
</record>
<!--======================================== MENUS ========================================-->
<menuitem name="MailBox" id="menu_email_template_mailbox_all_main2" parent="menu_email_template" />
<menuitem name="Personal" id="menu_email_template_personal" parent="menu_email_template_mailbox_all_main2" />
<!--======================================== MENUS ========================================-->
<menuitem name="MailBox" id="menu_email_template_mailbox_all_main2" parent="menu_email_template" />
<menuitem name="Personal" id="menu_email_template_personal" parent="menu_email_template_mailbox_all_main2" />
<menuitem name="Mails" id="menu_email_template_personal_mails" parent="menu_email_template_personal" action="action_email_template_mailbox"/>
<menuitem name="Company" id="menu_email_template_company" parent="menu_email_template_mailbox_all_main2" />
<menuitem name="Company" id="menu_email_template_company" parent="menu_email_template_mailbox_all_main2" />
<menuitem name="Mails" id="menu_email_template_company_mails" parent="menu_email_template_company" action="action_email_template_mailbox"/>
</data>
</data>
</openerp>
+147 -147
View File
@@ -1,147 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<!-- Email Template PReview -->
<record model="ir.ui.view" id="email_template_preview_form">
<field name="name">email_template.preview.form</field>
<field name="model">email_template.preview</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Preview">
<field name="rel_model" />
<newline />
<field name="rel_model_ref" on_change="on_change_ref(rel_model_ref, context)" />
<newline />
<field name="to" />
<newline />
<field name="cc" />
<newline />
<field name="bcc" />
<newline />
<field name="subject" />
<newline />
<field name="body_text" />
<newline />
<!-- <field name="body_html" widget="text_html" />-->
<!--
Removed text_html because it doesnt work in GTK
And TinyMCE messes up the HTML in Web Client
-->
<field name="body_html"/>
<newline />
<field name="report" />
<group>
<button icon="gtk-ok" special="cancel" string="OK" />
</group>
</form>
</field>
</record>
<data>
<!-- Email Template PReview -->
<record model="ir.ui.view" id="email_template_preview_form">
<field name="name">email_template.preview.form</field>
<field name="model">email_template.preview</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Preview">
<field name="rel_model" />
<newline />
<field name="rel_model_ref" on_change="on_change_ref(rel_model_ref, context)" />
<newline />
<field name="to" />
<newline />
<field name="cc" />
<newline />
<field name="bcc" />
<newline />
<field name="subject" />
<newline />
<field name="body_text" />
<newline />
<!-- <field name="body_html" widget="text_html" />-->
<!--
Removed text_html because it doesnt work in GTK
And TinyMCE messes up the HTML in Web Client
-->
<field name="body_html"/>
<newline />
<field name="report" />
<group>
<button icon="gtk-ok" special="cancel" string="OK" />
</group>
</form>
</field>
</record>
<record id="wizard_email_template_preview" model="ir.actions.act_window">
<field name="name">Template Preview</field>
<field name="res_model">email_template.preview</field>
<field name="src_model">email_template.preview</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="auto_refresh" eval="1" />
<field name="target">new</field>
<field name="context">{'ids':active_id}</field>
</record>
<!--EMail client Form view -->
<record id="wizard_email_template_preview" model="ir.actions.act_window">
<field name="name">Template Preview</field>
<field name="res_model">email_template.preview</field>
<field name="src_model">email_template.preview</field>
<field name="type">ir.actions.act_window</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="auto_refresh" eval="1" />
<field name="target">new</field>
<field name="context">{'ids':active_id}</field>
</record>
<!--EMail client Form view -->
<record model="ir.ui.view" id="email_template_form">
<field name="name">email.template.form</field>
<field name="model">email.template</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Templates">
<field name="name" />
<field name="object_name" required="1"
on_change="change_model(object_name)" />
<field name="model_int_name" invisible="1" />
<notebook colspan="4">
<page string="Mail Details">
<field name="enforce_from_account" required= "1"/>
<group col="4" colspan="2">
<field name="from_email"/>
<field name="def_to" colspan="4" required="1" />
<field name="def_cc" colspan="4" />
<field name="def_bcc" colspan="4" />
</group>
<group col="2" colspan="2">
<field name="def_subject" colspan="4" required="1" />
<field name="use_sign" colspan="4" />
<field name="lang" colspan="4" />
</group>
<separator colspan="3" string="Standard Body" />
<separator colspan="1" string="Expression Builder" />
<record model="ir.ui.view" id="email_template_form">
<field name="name">email.template.form</field>
<field name="model">email.template</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Email Templates">
<field name="name" />
<field name="object_name" required="1"
on_change="change_model(object_name)" />
<field name="model_int_name" invisible="1" />
<notebook colspan="4">
<page string="Mail Details">
<field name="enforce_from_account" required= "1"/>
<group col="4" colspan="2">
<field name="from_email"/>
<field name="def_to" colspan="4" required="1" />
<field name="def_cc" colspan="4" />
<field name="def_bcc" colspan="4" />
</group>
<group col="2" colspan="2">
<field name="def_subject" colspan="4" required="1" />
<field name="use_sign" colspan="4" />
<field name="lang" colspan="4" />
</group>
<separator colspan="3" string="Standard Body" />
<separator colspan="1" string="Expression Builder" />
<notebook>
<page string="Body (Text)">
<field name="def_body_text" colspan="4" nolabel="1" />
</page>
<page string="Body (Raw HTML)">
<field name="def_body_html" colspan="4" nolabel="1" />
<label string="Note: This is Raw HTML." colspan="4" />
</page>
</notebook>
<group col="4">
<field name="template_language"
on_change="onchange_null_value(model_object_field,sub_model_object_field,null_value,template_language,context)" />
<notebook>
<page string="Insert Simple Field">
<notebook>
<page string="Body (Text)">
<field name="def_body_text" colspan="4" nolabel="1" />
</page>
<page string="Body (Raw HTML)">
<field name="def_body_html" colspan="4" nolabel="1" />
<label string="Note: This is Raw HTML." colspan="4" />
</page>
</notebook>
<group col="4">
<field name="template_language"
on_change="onchange_null_value(model_object_field,sub_model_object_field,null_value,template_language,context)" />
<notebook>
<page string="Insert Simple Field">
<field name="model_object_field"
domain="[('model_id','=',object_name),('ttype','!=','one2many'),('ttype','!=','many2many')]"
on_change="onchange_model_object_field(model_object_field, template_language,context)"
colspan="4" />
<field name="sub_object" readonly="1" colspan="4" />
<field name="sub_model_object_field"
domain="[('model_id','=',sub_object),('ttype','!=','one2many'),('ttype','!=','many2many')]"
colspan="4"
attrs="{'readonly':[('sub_object','=',False)],'required':[('sub_object','!=',False)]}"
on_change="onchange_sub_model_object_field(model_object_field,sub_model_object_field,template_language,context)" />
<field name="null_value" colspan="4"
on_change="onchange_null_value(model_object_field,sub_model_object_field,null_value,template_language,context)" />
<field name="copyvalue" colspan="4" />
</page>
</notebook>
<button name="%(wizard_email_template_preview)d" string="Preview Template"
type="action" colspan="4" target="new" />
</group>
</page>
<page string="Advanced">
<field name="ref_ir_act_window" />
<field name="ref_ir_value" />
<separator string="Attachments (Report to attach)" colspan="4"/>
<field name="file_name" colspan="2" />
<field name="report_template" colspan="2"
domain="[('model','=',model_int_name)]" />
</page>
</notebook>
</form>
</field>
</record>
<field name="model_object_field"
domain="[('model_id','=',object_name),('ttype','!=','one2many'),('ttype','!=','many2many')]"
on_change="onchange_model_object_field(model_object_field, template_language,context)"
colspan="4" />
<field name="sub_object" readonly="1" colspan="4" />
<field name="sub_model_object_field"
domain="[('model_id','=',sub_object),('ttype','!=','one2many'),('ttype','!=','many2many')]"
colspan="4"
attrs="{'readonly':[('sub_object','=',False)],'required':[('sub_object','!=',False)]}"
on_change="onchange_sub_model_object_field(model_object_field,sub_model_object_field,template_language,context)" />
<field name="null_value" colspan="4"
on_change="onchange_null_value(model_object_field,sub_model_object_field,null_value,template_language,context)" />
<field name="copyvalue" colspan="4" />
</page>
</notebook>
<button name="%(wizard_email_template_preview)d" string="Preview Template"
type="action" colspan="4" target="new" />
</group>
</page>
<page string="Advanced">
<field name="ref_ir_act_window" />
<field name="ref_ir_value" />
<separator string="Attachments (Report to attach)" colspan="4"/>
<field name="file_name" colspan="2" />
<field name="report_template" colspan="2"
domain="[('model','=',model_int_name)]" />
</page>
</notebook>
</form>
</field>
</record>
<record model="ir.ui.view" id="email_template_tree">
<field name="name">email.template.tree</field>
<field name="model">email.template</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Email Templates">
<field name="name" select="1" />
<field name="object_name" required="1" select="1" />
<field name="def_to" colspan="4" select="2" />
<field name="def_cc" colspan="4" select="2" />
<field name="def_bcc" colspan="4" select="2" />
<field name="def_subject" colspan="4" select="2" />
<field name="use_sign" colspan="4" select="2" />
<field name="file_name" colspan="4" />
<field name="enforce_from_account" />
</tree>
</field>
</record>
<record model="ir.ui.view" id="email_template_tree">
<field name="name">email.template.tree</field>
<field name="model">email.template</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Email Templates">
<field name="name" select="1" />
<field name="object_name" required="1" select="1" />
<field name="def_to" colspan="4" select="2" />
<field name="def_cc" colspan="4" select="2" />
<field name="def_bcc" colspan="4" select="2" />
<field name="def_subject" colspan="4" select="2" />
<field name="use_sign" colspan="4" select="2" />
<field name="file_name" colspan="4" />
<field name="enforce_from_account" />
</tree>
</field>
</record>
<record id="view_email_template_search" model="ir.ui.view">
<field name="name">email.template.search</field>
@@ -161,19 +161,19 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_email_template_tree_all">
<field name="name">Email Templates</field>
<field name="res_model">email.template</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_template_tree" />
<record model="ir.actions.act_window" id="action_email_template_tree_all">
<field name="name">Email Templates</field>
<field name="res_model">email.template</field>
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="view_id" ref="email_template_tree" />
<field name="search_view_id" ref="view_email_template_search"/>
</record>
</record>
<menuitem name="E-MAIL Templates" id="menu_email_template_all"
parent="menu_email_template_configuration" action="action_email_template_tree_all" />
<menuitem name="E-MAIL Templates" id="menu_email_template_all"
parent="menu_email_template_configuration" action="action_email_template_tree_all" />
</data>
</data>
</openerp>
@@ -11,24 +11,24 @@
<field name="osv">email_template.account</field>
<field name="on_create">True</field>
</record>
<!--Activity -->
<record id="act_draft" model="workflow.activity">
<field name="wkf_id" ref="wkf_email_template_setting"/>
<field name="flow_start">True</field>
<field name="name">draft</field>
<field name="kind">function</field>
<field name="kind">function</field>
<field name="action">write({'state':'draft'})</field>
</record>
<record id="act_approved" model="workflow.activity">
<field name="name">approval</field>
<field name="wkf_id" ref="wkf_email_template_setting"/>
<field name="kind">function</field>
<field name="action">do_approval()</field>
</record>
<record id="act_suspended" model="workflow.activity">
<field name="name">suspended</field>
<field name="wkf_id" ref="wkf_email_template_setting"/>
@@ -40,16 +40,16 @@
<field name="wkf_id" ref="wkf_email_template_setting"/>
<field name="flow_stop">True</field>
</record>
<!-- Transition -->
<record id="trans_awaiting_approved" model="workflow.transition">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_approved"/>
<field name="signal">button_approval</field>
<field name="role_id" ref="PE_ADMIN"/>
</record>
<record id="trans_approved_suspended" model="workflow.transition">
<field name="act_from" ref="act_approved"/>
<field name="act_to" ref="act_suspended"/>
@@ -67,6 +67,6 @@
<field name="act_to" ref="act_dummy"/>
<field name="signal">get_never</field>
<field name="role_id" ref="PE_ADMIN"/>
</record>
</record>
</data>
</openerp>
@@ -1,19 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<data noupdate="0">
<record id="res_groups_email_template_manager" model="res.groups">
<field name="name">Email Template / Settings_Manager</field>
</record>
<record id="res_groups_email_template_admin" model="res.groups">
<field name="name">Marketing / Email Template</field>
</record>
<record id="res_groups_email_template_userse" model="res.groups">
<field name="name">Email Template / External_users</field>
</record>
<record id="res_groups_email_template_usersi" model="res.groups">
<field name="name">Email Template / Internal_users</field>
</record>
</data>
</data>
</openerp>
@@ -0,0 +1,7 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_email_template_engines","email_template.engines","model_email_template_engines","email_template.res_groups_email_template_admin",1,1,1,1
"access_email_template_account","email_template.account","model_email_template_account","email_template.res_groups_email_template_admin",1,1,1,1
"access_email_template","email.template","model_email_template","email_template.res_groups_email_template_admin",1,1,1,1
"access_email_template_preview","email_template.preview","model_email_template_preview","email_template.res_groups_email_template_admin",1,1,1,1
"access_email_template_mailbox","email_template.mailbox","model_email_template_mailbox","email_template.res_groups_email_template_admin",1,1,1,1
"access_email_template_send_wizard","email_template.send.wizard","model_email_template_send_wizard","email_template.res_groups_email_template_admin",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_email_template_engines email_template.engines model_email_template_engines email_template.res_groups_email_template_admin 1 1 1 1
3 access_email_template_account email_template.account model_email_template_account email_template.res_groups_email_template_admin 1 1 1 1
4 access_email_template email.template model_email_template email_template.res_groups_email_template_admin 1 1 1 1
5 access_email_template_preview email_template.preview model_email_template_preview email_template.res_groups_email_template_admin 1 1 1 1
6 access_email_template_mailbox email_template.mailbox model_email_template_mailbox email_template.res_groups_email_template_admin 1 1 1 1
7 access_email_template_send_wizard email_template.send.wizard model_email_template_send_wizard email_template.res_groups_email_template_admin 1 1 1 1
+7 -4
View File
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-10-09 07:48+0000\n"
"Last-Translator: Sardorbek Pulatov (pROCKrammer) <prockrammer@ya.ru>\n"
"PO-Revision-Date: 2010-06-13 13:02+0000\n"
"Last-Translator: Alex L. <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 03:55+0000\n"
"X-Launchpad-Export-Date: 2010-06-14 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: google_map
#: model:ir.actions.wizard,name:google_map.wizard_google_map
msgid "Launch Google Map"
msgstr ""
msgstr "Запустить Google Map"
#. module: google_map
#: constraint:ir.ui.view:0
@@ -39,6 +39,9 @@ msgid ""
"so that we can directly open google map from the\n"
"url widget."
msgstr ""
"Модуль добавляет поле с Google картой в адрес партнера\n"
"поэтому мы можем открыть карту Google непосредственно из\n"
"адреса виджета."
#. module: google_map
#: view:res.partner:0
+2 -2
View File
@@ -51,7 +51,7 @@
<search string="Departments">
<group col='4' colspan='2'>
<field name="name" />
<field name="manager_id" widget="selection"/>
<field name="manager_id"/>
</group>
</search>
</field>
@@ -73,7 +73,7 @@
</record>
<menuitem action="open_module_tree_department" id="menu_department_def" parent="hr.menu_department_tree"/>
<menuitem action="open_module_tree_department" id="menu_hr_department_tree" parent="menu_hr_root" sequence="5"/>
<menuitem action="open_module_tree_department" id="menu_hr_department_tree" parent="menu_hr_main" sequence="5"/>
<record model="ir.ui.view" id="view_users_form_inherit">
<field name="name">res.users.form</field>
+17 -12
View File
@@ -6,6 +6,11 @@
icon="terp-hr"
name="Human Resources"
sequence="6"/>
<menuitem
id="menu_hr_main"
parent="menu_hr_root"
name="Human Resources"
sequence="0"/>
<menuitem
id="menu_hr_configuration"
name="Configuration"
@@ -30,18 +35,18 @@
<field name="arch" type="xml">
<form string="Employee">
<group colspan="4" col="8">
<group colspan="6" col="6">
<field colspan="6" name="name" select="1"/>
<field name="user_id"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="active" groups="base.group_extended"/>
<newline/>
<group colspan="6" col="6">
<field colspan="6" name="name" select="1"/>
<field name="user_id"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="active" groups="base.group_extended"/>
<newline/>
<field name="parent_id" />
<field name="coach_id" />
</group>
<group colspan="2" col="1">
<field name="photo" widget='image' nolabel="1"/>
</group>
</group>
<group colspan="2" col="1">
<field name="photo" widget='image' nolabel="1"/>
</group>
</group>
<notebook colspan="6">
<page string="Personal Information">
@@ -113,7 +118,7 @@
<field name="name"/>
<field name="department_id" widget="selection"/>
<field name="job_id" widget="selection"/>
<field name="parent_id" widget="selection" />
<field name="parent_id"/>
<newline />
<group expand="0" string="Group By...">
<filter string="Manager" icon="terp-personal" domain="[]" context="{'group_by':'parent_id'}"/>
@@ -156,7 +161,7 @@
action="open_view_employee_list_my"
id="menu_open_view_employee_list_my"
sequence="3"
parent="menu_hr_root"/>
parent="menu_hr_main"/>
<!--
+2 -1
View File
@@ -1,9 +1,10 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_employee_category","hr.employee.category","model_hr_employee_category","hr.group_hr_user",1,0,0,0
"access_hr_employee","hr.employee","model_hr_employee","hr.group_hr_user",1,1,1,1
"access_hr_employee_resource","resource.resource","resource.model_resource_resource","hr.group_hr_user",1,1,1,1
"access_hr_department","hr.department","model_hr_department","hr.group_hr_user",1,0,0,0
"access_hr_employee_category_manager","hr.employee.category.manager","model_hr_employee_category","hr.group_hr_manager",1,1,1,1
"access_hr_department_manager","hr.department.manager","model_hr_department","hr.group_hr_manager",1,1,1,1
"access_hr_employee_marital_status","hr.employee.marital.status","model_hr_employee_marital_status","hr.group_hr_user",1,1,1,1
"access_hr_job","hr.job","model_hr_job","hr.group_hr_user",1,0,0,0
"access_hr_installer","hr.installer","model_hr_installer","hr.group_hr_user",1,0,0,0
"access_hr_installer","hr.installer","model_hr_installer","base.group_system",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_employee_category hr.employee.category model_hr_employee_category hr.group_hr_user 1 0 0 0
3 access_hr_employee hr.employee model_hr_employee hr.group_hr_user 1 1 1 1
4 access_hr_employee_resource resource.resource resource.model_resource_resource hr.group_hr_user 1 1 1 1
5 access_hr_department hr.department model_hr_department hr.group_hr_user 1 0 0 0
6 access_hr_employee_category_manager hr.employee.category.manager model_hr_employee_category hr.group_hr_manager 1 1 1 1
7 access_hr_department_manager hr.department.manager model_hr_department hr.group_hr_manager 1 1 1 1
8 access_hr_employee_marital_status hr.employee.marital.status model_hr_employee_marital_status hr.group_hr_user 1 1 1 1
9 access_hr_job hr.job model_hr_job hr.group_hr_user 1 0 0 0
10 access_hr_installer hr.installer model_hr_installer hr.group_hr_user base.group_system 1 0 1 0 1 0 1
+1 -5
View File
@@ -39,14 +39,10 @@ def hour2str(h):
class report_custom(report_rml):
def create_xml(self, cr, uid, ids, datas, context):
service = netsvc.LocalService('object_proxy')
month = DateTime.DateTime(datas['form']['year'], datas['form']['month'], 1)
user_xml = ['<month>%s</month>' % month2name[month.month], '<year>%s</year>' % month.year]
for employee_id in ids:
emp = service.execute(cr.dbname, uid, 'hr.employee', 'read', [employee_id])[0]
emp = self.pool.get('hr.employee').read(cr, uid, 'read', [employee_id], ['name'])[0]
stop, days_xml = False, []
user_repr = '''
<user>
+67 -68
View File
@@ -32,81 +32,80 @@ one_week = DateTime.RelativeDateTime(days=7)
num2day = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
def to_hour(h):
return int(h), int(round((h - int(h)) * 60, 0))
return int(h), int(round((h - int(h)) * 60, 0))
class report_custom(report_rml):
def create_xml(self, cr, uid, ids, datas, context):
service = netsvc.LocalService('object_proxy')
def create_xml(self, cr, uid, ids, datas, context):
start_date = DateTime.strptime(datas['form']['init_date'], '%Y-%m-%d')
end_date = DateTime.strptime(datas['form']['end_date'], '%Y-%m-%d')
first_monday = start_date - DateTime.RelativeDateTime(days=start_date.day_of_week)
last_monday = end_date + DateTime.RelativeDateTime(days=7 - end_date.day_of_week)
start_date = DateTime.strptime(datas['form']['init_date'], '%Y-%m-%d')
end_date = DateTime.strptime(datas['form']['end_date'], '%Y-%m-%d')
first_monday = start_date - DateTime.RelativeDateTime(days=start_date.day_of_week)
last_monday = end_date + DateTime.RelativeDateTime(days=7 - end_date.day_of_week)
if last_monday < first_monday:
first_monday, last_monday = last_monday, first_monday
if last_monday < first_monday:
first_monday, last_monday = last_monday, first_monday
user_xml = []
user_xml = []
for employee_id in ids:
emp = service.execute(cr.dbname, uid, 'hr.employee', 'read', [employee_id], ['id', 'name'])[0]
monday, n_monday = first_monday, first_monday + one_week
stop, week_xml = False, []
user_repr = '''
<user>
<name>%s</name>
%%s
</user>
''' % toxml(emp['name'])
while monday != last_monday:
#### Work hour calculation
sql = '''
select action, att.name
from hr_employee as emp inner join hr_attendance as att
on emp.id = att.employee_id
where att.name between %s and %s and emp.id = %s
order by att.name
'''
for idx in range(7):
cr.execute(sql, (monday.strftime('%Y-%m-%d %H:%M:%S'), (monday + DateTime.RelativeDateTime(days=idx+1)).strftime('%Y-%m-%d %H:%M:%S'), employee_id))
attendances = cr.dictfetchall()
week_wh = {}
# Fake sign ins/outs at week ends, to take attendances across week ends into account
# XXX this is wrong for the first sign-in ever and the last sign out to this date
if attendances and attendances[0]['action'] == 'sign_out':
attendances.insert(0, {'name': monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_in'})
if attendances and attendances[-1]['action'] == 'sign_in':
attendances.append({'name' : n_monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_out'})
# sum up the attendances' durations
for att in attendances:
dt = DateTime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
if att['action'] == 'sign_out':
week_wh[ldt.day_of_week] = week_wh.get(ldt.day_of_week, 0) + (dt - ldt).hours
ldt = dt
for employee_id in ids:
emp = self.pool.get('hr.employee').read(cr, uid, [employee_id], ['id', 'name'])[0]
monday, n_monday = first_monday, first_monday + one_week
stop, week_xml = False, []
user_repr = '''
<user>
<name>%s</name>
%%s
</user>
''' % toxml(emp['name'])
while monday != last_monday:
#### Work hour calculation
sql = '''
select action, att.name
from hr_employee as emp inner join hr_attendance as att
on emp.id = att.employee_id
where att.name between %s and %s and emp.id = %s
order by att.name
'''
for idx in range(7):
cr.execute(sql, (monday.strftime('%Y-%m-%d %H:%M:%S'), (monday + DateTime.RelativeDateTime(days=idx+1)).strftime('%Y-%m-%d %H:%M:%S'), employee_id))
attendances = cr.dictfetchall()
week_wh = {}
# Fake sign ins/outs at week ends, to take attendances across week ends into account
# XXX this is wrong for the first sign-in ever and the last sign out to this date
if attendances and attendances[0]['action'] == 'sign_out':
attendances.insert(0, {'name': monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_in'})
if attendances and attendances[-1]['action'] == 'sign_in':
attendances.append({'name' : n_monday.strftime('%Y-%m-%d %H:%M:%S'), 'action':'sign_out'})
# sum up the attendances' durations
for att in attendances:
dt = DateTime.strptime(att['name'], '%Y-%m-%d %H:%M:%S')
if att['action'] == 'sign_out':
week_wh[ldt.day_of_week] = week_wh.get(ldt.day_of_week, 0) + (dt - ldt).hours
ldt = dt
# Week xml representation
week_repr = ['<week>', '<weekstart>%s</weekstart>' % monday.strftime('%Y-%m-%d'), '<weekend>%s</weekend>' % n_monday.strftime('%Y-%m-%d')]
for idx in range(7):
week_repr.append('<%s>' % num2day[idx])
if idx in week_wh:
week_repr.append('<workhours>%sh%02d</workhours>' % to_hour(week_wh[idx]))
week_repr.append('</%s>' % num2day[idx])
week_repr.append('<total>')
week_repr.append('<worked>%sh%02d</worked>' % to_hour(reduce(lambda x,y:x+y, week_wh.values(), 0)))
week_repr.append('</total>')
week_repr.append('</week>')
if len(week_repr) > 21: # 21 = minimal length of week_repr
week_xml.append('\n'.join(week_repr))
monday, n_monday = n_monday, n_monday + one_week
user_xml.append(user_repr % '\n'.join(week_xml))
xml = '''<?xml version="1.0" encoding="UTF-8" ?>
<report>
%s
</report>
''' % '\n'.join(user_xml)
return self.post_process_xml_data(cr, uid, xml, context)
# Week xml representation
week_repr = ['<week>', '<weekstart>%s</weekstart>' % monday.strftime('%Y-%m-%d'), '<weekend>%s</weekend>' % n_monday.strftime('%Y-%m-%d')]
for idx in range(7):
week_repr.append('<%s>' % num2day[idx])
if idx in week_wh:
week_repr.append('<workhours>%sh%02d</workhours>' % to_hour(week_wh[idx]))
week_repr.append('</%s>' % num2day[idx])
week_repr.append('<total>')
week_repr.append('<worked>%sh%02d</worked>' % to_hour(reduce(lambda x,y:x+y, week_wh.values(), 0)))
week_repr.append('</total>')
week_repr.append('</week>')
if len(week_repr) > 21: # 21 = minimal length of week_repr
week_xml.append('\n'.join(week_repr))
monday, n_monday = n_monday, n_monday + one_week
user_xml.append(user_repr % '\n'.join(week_xml))
xml = '''<?xml version="1.0" encoding="UTF-8" ?>
<report>
%s
</report>
''' % '\n'.join(user_xml)
return self.post_process_xml_data(cr, uid, xml, context)
report_custom('report.hr.attendance.allweeks', 'hr.employee', '', 'addons/hr_attendance/report/timesheet.xsl')
# vim:noexpandtab:tw=0
@@ -1,3 +1,7 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr.group_hr_user",1,1,1,1
"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","hr.group_hr_user",1,1,1,1
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_action_reason_employee","hr action reason employee","model_hr_action_reason","hr.group_hr_manager",1,1,1,1
"access_hr_attendance_employee","hr attendance employee","model_hr_attendance","hr_attendance.group_hr_attendance",1,1,1,1
"access_hr_sign_in_out","hr attendance sign in out","model_hr_sign_in_out","hr_attendance.group_hr_attendance",1,1,1,1
"access_hr_attendance_employee","hr employee attendance sign in out","hr.model_hr_employee","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_attendance_resource","hr resource attendance sign in out","resource.model_resource_resource","hr_attendance.group_hr_attendance",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_action_reason_employee hr action reason employee model_hr_action_reason hr.group_hr_user hr_attendance.group_hr_attendance 1 1 0 1 0 1 0
3 access_hr_attendance_employee access_hr_action_reason_employee hr attendance employee hr action reason employee model_hr_attendance model_hr_action_reason hr.group_hr_user hr.group_hr_manager 1 1 1 1
4 access_hr_attendance_employee hr attendance employee model_hr_attendance hr_attendance.group_hr_attendance 1 1 1 1
5 access_hr_sign_in_out hr attendance sign in out model_hr_sign_in_out hr_attendance.group_hr_attendance 1 1 1 1
6 access_hr_attendance_employee hr employee attendance sign in out hr.model_hr_employee hr_attendance.group_hr_attendance 1 0 0 0
7 access_hr_attendance_resource hr resource attendance sign in out resource.model_resource_resource hr_attendance.group_hr_attendance 1 0 0 0
@@ -33,16 +33,14 @@ class hr_si_so_ask(osv.osv_memory):
'emp_id': fields.char('Empoyee ID', size=32, required=True, readonly=True),
}
def _get_empname(self, cr, uid, context=None):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', uid)])
emp_id = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
if emp_id:
employee = emp_obj.read(cr, uid, emp_id)[0]
employee = self.pool.get('hr.employee').browse(cr, uid, emp_id, context=context)[0].name
return employee['name']
return ''
def _get_empid(self, cr, uid, context=None):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', uid)])
emp_id = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
if emp_id:
return emp_id[0]
return False
@@ -74,11 +72,10 @@ class hr_sign_in_out(osv.osv_memory):
}
def _get_empid(self, cr, uid, context=None):
emp_obj = self.pool.get('hr.employee')
emp_id = emp_obj.search(cr, uid, [('user_id', '=', uid)])
emp_id = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
if emp_id:
employee = emp_obj.read(cr, uid, emp_id)[0]
return {'name': employee['name'], 'state': employee['state'], 'emp_id': emp_id[0]}
employee = self.pool.get('hr.employee').browse(cr, uid, emp_id, context=context)[0]
return {'name': employee.name, 'state': employee.state, 'emp_id': emp_id[0]}
return {}
def default_get(self, cr, uid, fields_list, context=None):
@@ -88,16 +85,15 @@ class hr_sign_in_out(osv.osv_memory):
return res
def si_check(self, cr, uid, ids, context=None):
att_obj = self.pool.get('hr.attendance')
obj_model = self.pool.get('ir.model.data')
att_obj = self.pool.get('hr.attendance')
data = self.read(cr, uid, ids, [])[0]
emp_id = data['emp_id']
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id)], limit=1, order='name desc')
last_att = att_obj.read(cr, uid, att_id)
last_att = att_obj.browse(cr, uid, att_id)
if last_att:
last_att = last_att[0]
cond = not last_att or last_att['action'] == 'sign_out'
cond = not last_att or last_att.action == 'sign_out'
if cond:
return self.sign_in(cr, uid, data, context)
else:
@@ -114,13 +110,12 @@ class hr_sign_in_out(osv.osv_memory):
}
def so_check(self, cr, uid, ids, context=None):
att_obj = self.pool.get('hr.attendance')
obj_model = self.pool.get('ir.model.data')
data = self.read(cr, uid, ids, [])[0]
att_obj = self.pool.get('hr.attendance')
emp_id = data['emp_id']
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action','!=','action')], limit=1, order='name desc')
last_att = att_obj.read(cr, uid, att_id)
last_att = att_obj.browse(cr, uid, att_id, context=context)
if last_att:
last_att = last_att[0]
if not att_id and not last_att:
@@ -153,12 +148,11 @@ class hr_sign_in_out(osv.osv_memory):
}
def sign_in(self, cr, uid, data, context=None):
att_obj = self.pool.get('hr.attendance')
emp_id = data['emp_id']
if 'last_time' in data:
if data['last_time'] > time.strftime('%Y-%m-%d %H:%M:%S'):
raise osv.except_osv(_('UserError'), _('The sign-out date must be in the past'))
att_obj.create(cr, uid, {
self.pool.get('hr.attendance').create(cr, uid, {
'name': data['last_time'],
'action': 'sign_out',
'employee_id': emp_id
@@ -170,12 +164,11 @@ class hr_sign_in_out(osv.osv_memory):
return {} # To do: Return Success message
def sign_out(self, cr, uid, data, context=None):
att_obj = self.pool.get('hr_attendance')
emp_id = data['emp_id']
if 'last_time' in data:
if data['last_time'] > time.strftime('%Y-%m-%d %H:%M:%S'):
raise osv.except_osv(_('UserError'), _('The Sign-in date must be in the past'))
att_obj.create(cr, uid, {'name':data['last_time'], 'action':'sign_in', 'employee_id':emp_id})
self.pool.get('hr.attendance').create(cr, uid, {'name':data['last_time'], 'action':'sign_in', 'employee_id':emp_id})
try:
success = self.pool.get('hr.employee').attendance_action_change(cr, uid, [emp_id], 'sign_out')
except:
@@ -184,4 +177,4 @@ class hr_sign_in_out(osv.osv_memory):
hr_sign_in_out()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,21 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_hr_attendance_sigh_in_out" model="ir.ui.view">
<record id="view_hr_attendance_sigh_in_out" model="ir.ui.view">
<field name="name">hr.sign.in.out.form</field>
<field name="model">hr.sign.in.out</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Sign in / Sign out">
<group colspan="4" >
<separator string="You are now ready to sign in or out of the attendance follow up" colspan="4" />
<field name="name" />
<field name="state" />
</group>
<group colspan="4" >
<separator string="You are now ready to sign in or out of the attendance follow up" colspan="4" />
<field name="name" />
<field name="state" />
</group>
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign in" name="si_check" type="object"/>
<button icon="gtk-go-forward" string="Sign out" name="so_check" type="object"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign in" name="si_check" type="object"/>
<button icon="gtk-go-forward" string="Sign out" name="so_check" type="object"/>
</group>
</form>
</field>
@@ -27,15 +27,15 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Sign in / Sign out">
<label string="Sign-Out Entry must follow Sign-In." colspan="4" />
<label string="Sign-Out Entry must follow Sign-In." colspan="4" />
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Ok"/>
<button icon="gtk-cancel" special="cancel" string="Ok"/>
</group>
</form>
</field>
</record>
<record id="action_hr_attendance_sigh_in_out" model="ir.actions.act_window">
<record id="action_hr_attendance_sigh_in_out" model="ir.actions.act_window">
<field name="name">Sign in / Sign out</field>
<field name="res_model">hr.sign.in.out</field>
<field name="view_type">form</field>
@@ -45,8 +45,8 @@
</record>
<menuitem action="action_hr_attendance_sigh_in_out"
id="menu_hr_attendance_sigh_in_out"
parent="menu_hr_time_tracking" groups="base.group_extended" />
id="menu_hr_attendance_sigh_in_out"
parent="menu_hr_time_tracking"/>
<record id="view_hr_attendance_so_ask" model="ir.ui.view">
<field name="name">hr.sign.in.out.ask.form</field>
@@ -54,14 +54,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="hr.sign.out.ask">
<group colspan="4" >
<separator string="You did not sign out the last time. Please enter the date and time you signed out." colspan="4" />
<field name="name" />
<field name="last_time" string="Your last sign out" />
</group>
<group colspan="4" >
<separator string="You did not sign out the last time. Please enter the date and time you signed out." colspan="4" />
<field name="name" />
<field name="last_time" string="Your last sign out" />
</group>
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign in" name="sign_in" type="object"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign in" name="sign_in" type="object"/>
</group>
</form>
</field>
@@ -73,14 +73,14 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="hr.sign.in.out.ask">
<group colspan="4" >
<separator string="You did not sign in the last time. Please enter the date and time you signed in." colspan="4" />
<field name="name" />
<field name="last_time" string="Your last sign in" />
</group>
<group colspan="4" >
<separator string="You did not sign in the last time. Please enter the date and time you signed in." colspan="4" />
<field name="name" />
<field name="last_time" string="Your last sign in" />
</group>
<group colspan="4" col="6">
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign out" name="sign_out" type="object"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-go-back" string="Sign out" name="sign_out" type="object"/>
</group>
</form>
</field>
+2 -2
View File
@@ -27,11 +27,11 @@ class hr_employee(osv.osv):
_description = "Employee"
_inherit = "hr.employee"
_columns = {
'manager': fields.boolean('Manager'),
'manager': fields.boolean('Is a Manager'),
'medic_exam': fields.date('Medical Examination Date'),
'place_of_birth': fields.char('Place of Birth', size=30),
'children': fields.integer('Number of Children'),
'vehicle': fields.integer('Company Vehicle'),
'vehicle': fields.char('Company Vehicle', size=64),
'vehicle_distance': fields.integer('Home-Work Distance', help="In kilometers"),
'contract_ids': fields.one2many('hr.contract', 'employee_id', 'Contracts'),
}
+7 -50
View File
@@ -69,47 +69,6 @@
<field name="inherit_id" ref="hr.view_employee_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Contracts">
<field colspan="4" mode="form,tree" name="contract_ids" nolabel="1">
<tree string="Contracts">
<field name="name"/>
<field name="job_id"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="working_hours"/>
<field name="wage_type_id"/>
<field name="wage"/>
</tree>
<form string="Contract">
<group colspan="3" col="6">
<field name="name" select="1"/>
<field name="job_id"/>
<newline/>
<field name="wage"/>
<field name="wage_type_id" widget="selection"/>
<field name="type_id" widget="selection"/>
</group>
<notebook>
<page string="Main Data">
<group col="2" colspan="2">
<separator colspan="2" string="Duration"/>
<field name="date_start" select="1"/>
<field name="date_end" select="1"/>
<field name="working_hours"/>
</group>
<group col="2" colspan="2">
<separator colspan="2" string="Advantages"/>
<field name="advantages_net"/>
<field name="advantages_gross"/>
<field name="advantages" nolabel="1" colspan="2"/>
</group>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="notes" nolabel="1"/>
</page>
</notebook>
</form>
</field>
</page>
<page string="Miscelleanous">
<group colspan="2" col="2">
<separator string="Personal Info" colspan="2"/>
@@ -122,7 +81,6 @@
<field name="manager" select="1"/>
<field name="vehicle" select="1"/>
<field name="vehicle_distance" select="1"/>
<field name="medic_exam" select="1"/>
</group>
<group colspan="2" col="2">
<separator string="Others Info" colspan="2"/>
@@ -140,15 +98,15 @@
<field name="arch" type="xml">
<search string="Search Contract">
<group col='15' colspan='4'>
<field name="name"/>
<field name="employee_id"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="name"/>
<field name="employee_id"/>
<field name="date_start"/>
<field name="date_end"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="4" col="20">
<filter string="Wage Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'wage_type_id'}"/>
</group>
<filter string="Wage Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'wage_type_id'}"/>
</group>
</search>
</field>
</record>
@@ -246,8 +204,7 @@
</record>
<menuitem action="action_hr_contract_type" id="hr_menu_contract_type" parent="next_id_56"/>
<!--<menuitem id="hr_menu_contract_main" parent="hr.menu_hr_root" name="Contracts" sequence="3"/> -->
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr.menu_hr_root" name="Contracts" sequence="4"/>
<menuitem action="action_hr_contract" id="hr_menu_contract" parent="hr.menu_hr_main" name="Contracts" sequence="4"/>
<!-- Contracts Button on Employee Form -->
<act_window domain="[('employee_id', '=', active_id)]" id="act_hr_employee_2_hr_contract" name="Contracts" res_model="hr.contract" src_model="hr.employee"/>
@@ -8,5 +8,8 @@
"access_hr_contract_user","hr.contract user","model_hr_contract","hr.group_hr_user",1,0,0,0
"access_hr_contract","hr.contract","model_hr_contract","group_hr_contract",1,1,1,1
"access_hr_employee_contract","hr.employee contract","hr.model_hr_employee","group_hr_contract",1,0,0,0
"access_hr_resource_contract","hr.employee.resource contract","resource.model_resource_resource","group_hr_contract",1,0,0,0
"access_hr_resource_calendar_contract","hr.employee.resource.calendar contract","resource.model_resource_calendar","group_hr_contract",1,0,0,0
"access_hr_job_contract","hr.employee.job contract","hr.model_hr_job","group_hr_contract",1,0,0,0
"access_hr_contract_type_user","hr.contract.type user","model_hr_contract_type","hr.group_hr_user",1,0,0,0
"access_hr_contract_type","hr.contract.type","model_hr_contract_type","group_hr_contract",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
8 access_hr_contract_user hr.contract user model_hr_contract hr.group_hr_user 1 0 0 0
9 access_hr_contract hr.contract model_hr_contract group_hr_contract 1 1 1 1
10 access_hr_employee_contract hr.employee contract hr.model_hr_employee group_hr_contract 1 0 0 0
11 access_hr_resource_contract hr.employee.resource contract resource.model_resource_resource group_hr_contract 1 0 0 0
12 access_hr_resource_calendar_contract hr.employee.resource.calendar contract resource.model_resource_calendar group_hr_contract 1 0 0 0
13 access_hr_job_contract hr.employee.job contract hr.model_hr_job group_hr_contract 1 0 0 0
14 access_hr_contract_type_user hr.contract.type user model_hr_contract_type hr.group_hr_user 1 0 0 0
15 access_hr_contract_type hr.contract.type model_hr_contract_type group_hr_contract 1 1 1 1
+3 -3
View File
@@ -257,7 +257,7 @@
/>
<separator orientation="vertical"/>
<field name="employee_id" widget="selection" select="1"/>
<field name="employee_id" select="1"/>
<field name="plan_id" widget="selection" select="1"/>
</group>
<newline/>
@@ -349,8 +349,8 @@
<separator orientation="vertical"/>
<filter icon="terp-gnome-cpu-frequency-applet+" string="Late" domain="[('date_deadline','&lt;',current_date)]"/>
<separator orientation="vertical"/>
<field name="user_to_review_id" widget="selection"/>
<field name="user_id" string="Interviewer" widget="selection"/>
<field name="user_to_review_id"/>
<field name="user_id" string="Interviewer"/>
</group>
</search>
</field>
+3 -3
View File
@@ -145,8 +145,8 @@
<separator orientation="vertical"/>
<field name="name" select='1'/>
<field name="date" select='1'/>
<field name="user_id" select="1" widget="selection" string="User">
<filter icon="terp-personal+"
<field name="user_id" select="1" string="User">
<filter icon="terp-personal+"
domain="[('department_id','=',context.get('department_id',False))]"
string="Expenses of My Department"/>
</field>
@@ -183,7 +183,7 @@
<field name="inherit_id" ref="product.product_normal_form_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<field groups="base.group_extended" name="rental" position="after">
<field name="purchase_ok" position="after">
<field name="hr_expense_ok"/>
</field>
</field>
+1 -1
View File
@@ -13,7 +13,7 @@
<filter icon="terp-camera_test" domain="[('state','=','validate')]" string="Validated"
default="context.get('report', False)"/>
<separator orientation="vertical"/>
<field name="user_id" widget="selection"/>
<field name="user_id"/>
<field name="department_id" widget="selection">
<filter icon="terp-personal+" help="My Department Holidays"
domain="[('department_id.manager_id','=',uid)]"
@@ -9,3 +9,4 @@
"access_available_holidays_report","hr.available.holidays.report","model_available_holidays_report","hr.group_hr_manager",1,1,1,1
"access_hr_holidays_report_user","hr.holidays.report","model_hr_holidays_report","hr.group_hr_user",1,0,0,0
"access_available_holidays_report_user","hr.available.holidays.report","model_available_holidays_report","hr.group_hr_user",1,0,0,0
"access_hr_holidays_summary_dept","hr.holidays.summary.dept","model_hr_holidays_summary_dept","hr.group_hr_manager",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 access_available_holidays_report hr.available.holidays.report model_available_holidays_report hr.group_hr_manager 1 1 1 1
10 access_hr_holidays_report_user hr.holidays.report model_hr_holidays_report hr.group_hr_user 1 0 0 0
11 access_available_holidays_report_user hr.available.holidays.report model_available_holidays_report hr.group_hr_user 1 0 0 0
12 access_hr_holidays_summary_dept hr.holidays.summary.dept model_hr_holidays_summary_dept hr.group_hr_manager 1 1 1 1
+3 -2
View File
@@ -80,6 +80,9 @@ class hr_applicant(osv.osv, crm.crm_case):
# 'stage_id': fields.many2one ('crm.case.stage', 'Stage', \
# domain="[('section_id','=',section_id),\
# ('object_id.model', '=', 'crm.opportunity')]"),
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage', \
domain="[('section_id','=',section_id),\
('object_id.model', '=', 'crm.opportunity')]"),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True,
help='The state is set to \'Draft\', when a case is created.\
\nIf the case is in progress the state is set to \'Open\'.\
@@ -98,8 +101,6 @@ class hr_applicant(osv.osv, crm.crm_case):
'partner_name': fields.char("Applicant's Name", size=64),
'partner_phone': fields.char('Phone', size=32),
'partner_mobile': fields.char('Mobile', size=32),
# 'stage_id': fields.many2one ('crm.case.stage', 'Stage', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'stage_id': fields.many2one ('hr.recruitment.stage', 'Stage'),
'type_id': fields.many2one('crm.case.resource.type', 'Degree', domain="[('section_id','=',section_id),('object_id.model', '=', 'hr.applicant')]"),
'department_id':fields.many2one('hr.department', 'Department'),
'state': fields.selection(AVAILABLE_STATES, 'State', size=16, readonly=True),
@@ -30,8 +30,6 @@
<field name="object_id" search="[('model','=','hr.applicant')]" model="ir.model"/>
</record>
<!-- STAGE(stage_id) -->
<record model="hr.recruitment.stage" id="stage_job1">
<field name="name">Initial Jobs Demand</field>
<field name="sequence">1</field>
+68 -59
View File
@@ -13,23 +13,22 @@
# ------------------------------------------------------
<record id="hr_job_categ_action" model="ir.actions.act_window">
<field name="name">Applicant Categories</field>
<field name="res_model">crm.case.categ</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
<field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
<field name="context">{'object_id':'hr.applicant'}</field>
<field name="name">Applicant Categories</field>
<field name="res_model">crm.case.categ</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm.crm_case_categ_tree-view"/>
<field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
<field name="context">{'object_id':'hr.applicant'}</field>
</record>
# ------------------------------------------------------
# Stage
# ------------------------------------------------------
<record id="hr_job_stage_act" model="ir.actions.act_window">
<field name="name">Applicant Stages</field>
<field name="res_model">crm.case.stage</field>
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_id" ref="crm.crm_case_stage_tree"/>
<field name="domain">[('object_id.model', '=', 'hr.applicant')]</field>
<field name="context">{'object_id':'hr.applicant'}</field>
<field name="domain">[]</field>
<field name="context">{}</field>
</record>
<menuitem action="hr_job_stage_act" id="menu_hr_job_stage_act" name="Stages" parent="menu_hr_config_applicant"/>
@@ -87,11 +86,21 @@
<button name="stage_previous" string="" type="object" icon="gtk-go-back"/>
<button icon="gtk-go-forward" string="" name="stage_next" type="object"/>
</group>
<newline/>
<group colspan="3" col="6">
<field name="partner_name"/>
<field name="job_id" on_change="onchange_job(job_id)"/>
<button string="Schedule a Phone Call" name="%(action_hr_recruitment_phonecall)d" icon="gtk-redo" type="action"/>
</group>
<newline/>
<group colspan="3" col="6">
<field name="user_id"/>
<field name="department_id" widget="selection"/>
<button name="action_print_survey" string="Print Interview" type="object" icon="gtk-print" attrs="{'readonly':[('survey','=',False)]}"/>
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}" groups="base.group_extended"/>
</group>
<button name="action_makeMeeting" type="object" string="Schedule Meeting" icon="terp-hr"/>
</group>
<button name="action_print_survey" string="Print Interview" type="object" icon="gtk-print" attrs="{'readonly':[('survey','=',False)]}" groups="base.group_extended"/>
<button name="%(survey.action_view_survey_question_message)d" string="Interview Question" type="action" icon="gtk-execute" context="{'survey_id': survey, 'response_id': [response], 'response_no':0 ,'active' : response, 'object' : 'hr.applicant', 'cur_id' :active_id}" attrs="{'readonly':[('survey','=',False)]}" groups="base.group_extended"/>
</group>
<notebook colspan="4">
<page string="Job Info">
<group col="2" colspan="2">
@@ -183,9 +192,9 @@
</tree>
</field>
<button colspan="4" string="Send New Email"
name="%(crm.action_crm_send_mail)d"
context="{'mail':'new', 'model': 'hr.applicant'}"
icon="gtk-go-forward" type="action" />
name="%(crm.action_crm_send_mail)d"
context="{'mail':'new', 'model': 'hr.applicant'}"
icon="gtk-go-forward" type="action" />
</page>
</notebook>
</form>
@@ -233,7 +242,7 @@
<field name="partner_name"/>
<field name="email_from"/>
<field name="job_id" widget="selection"/>
<field name="user_id" widget="selection">
<field name="user_id">
<filter domain="[('user_id','=',False)]" help="Unassigned Recruitements" icon="terp-personal-" separator="1"/>
</field>
<field name="department_id" widget="selection" string="Department" context="{'invisible_department': False}">
@@ -278,56 +287,56 @@
<!-- Stage Tree View -->
<record model="ir.ui.view" id="hr_recruitment_stage_tree">
<field name="name">hr.recruitment.stage.tree</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Stages">
<field name="sequence"/>
<field name="name"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="hr_recruitment_stage_tree">
<field name="name">hr.recruitment.stage.tree</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Stages">
<field name="sequence"/>
<field name="name"/>
</tree>
</field>
</record>
<!-- Stage Form View -->
<record model="ir.ui.view" id="hr_recruitment_stage_form">
<field name="name">hr.recruitment.stage.form</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Stage">
<separator string="Stage Definition" colspan="4"/>
<field name="name" select="1"/>
<field name="sequence"/>
<separator string="Requirements" colspan="4"/>
<field name="requirements" nolabel="1" colspan="4"/>
</form>
</field>
</record>
<record model="ir.ui.view" id="hr_recruitment_stage_form">
<field name="name">hr.recruitment.stage.form</field>
<field name="model">hr.recruitment.stage</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Stage">
<separator string="Stage Definition" colspan="4"/>
<field name="name" select="1"/>
<field name="sequence"/>
<separator string="Requirements" colspan="4"/>
<field name="requirements" nolabel="1" colspan="4"/>
</form>
</field>
</record>
<!-- Stage Action -->
<record id="hr_recruitment_stage_act" model="ir.actions.act_window">
<field name="name">Stages</field>
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_recruitment_stage_tree"/>
</record>
<record id="hr_recruitment_stage_act" model="ir.actions.act_window">
<field name="name">Stages</field>
<field name="res_model">hr.recruitment.stage</field>
<field name="view_type">form</field>
<field name="view_id" ref="hr_recruitment_stage_tree"/>
</record>
<menuitem
id="menu_hr_recruitment_recruitment"
name="Recruitment"
parent="hr.menu_hr_configuration"
/>
<menuitem
id="menu_hr_recruitment_recruitment"
name="Recruitment"
parent="hr.menu_hr_configuration"
/>
<menuitem
id="menu_hr_recruitment_stage"
name="Stages"
parent="menu_hr_recruitment_recruitment"
action="hr_recruitment_stage_act"
sequence="1"/>
<menuitem
id="menu_hr_recruitment_stage"
name="Stages"
parent="menu_hr_recruitment_recruitment"
action="hr_recruitment_stage_act"
sequence="1"/>
</data>
</openerp>
@@ -1,4 +1,7 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_hr_analytic_timesheet","hr.analytic.timesheet","model_hr_analytic_timesheet","hr.group_hr_user",1,1,1,1
"access_hr_account_analytic_line","account.account.analytic.line","account.model_account_analytic_line","hr.group_hr_user",1,1,1,0
"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","hr.group_hr_user",1,0,0,0
"access_account_analytic_journal","account.account.analytic.journal","account.model_account_analytic_journal","hr.group_hr_user",1,0,0,0
"access_hr_sign_in_project","hr.sign.in.project attendance","model_hr_sign_in_project","hr_attendance.group_hr_attendance",1,0,0,0
"access_hr_analytal_timesheet_employee","hr.analytical.timesheet.employee","model_hr_analytical_timesheet_employee","hr.group_hr_manager",1,1,1,1
"access_hr_analytal_timesheet_user","hr.analytical.timesheet.user","model_hr_analytical_timesheet_users","hr.group_hr_user",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_hr_analytic_timesheet hr.analytic.timesheet model_hr_analytic_timesheet hr.group_hr_user 1 1 1 1
3 access_hr_account_analytic_line account.account.analytic.line account.model_account_analytic_line hr.group_hr_user 1 1 1 0
4 access_account_analytic_journal account.account.analytic.journal account.model_account_analytic_journal hr.group_hr_user 1 0 0 0
5 access_hr_sign_in_project hr.sign.in.project attendance model_hr_sign_in_project hr_attendance.group_hr_attendance 1 0 0 0
6 access_hr_analytal_timesheet_employee hr.analytical.timesheet.employee model_hr_analytical_timesheet_employee hr.group_hr_manager 1 1 1 1
7 access_hr_analytal_timesheet_user hr.analytical.timesheet.user model_hr_analytical_timesheet_users hr.group_hr_user 1 1 1 1
@@ -20,7 +20,7 @@
</field>
</field>
</record>
<record id="view_account_analytic_account_form" model="ir.ui.view">
<field name="name">account.analytic.account.form</field>
<field name="model">account.analytic.account</field>
@@ -32,7 +32,7 @@
</field>
</field>
</record>
<record id="hr_timesheet_line_form" model="ir.ui.view">
<field name="name">hr.analytic.timesheet.form</field>
<field name="model">hr.analytic.timesheet</field>
@@ -117,9 +117,9 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('to_invoice','&lt;&gt;',False)]</field>
</record>
<menuitem
action="action_hr_analytic_timesheet_open_tree"
id="menu_hr_analytic_timesheet_tree"
<menuitem
action="action_hr_analytic_timesheet_open_tree"
id="menu_hr_analytic_timesheet_tree"
parent="account.menu_finance_periodical_processing"/>
<record id="action_hr_analytic_timesheet_tree_invoiced" model="ir.actions.act_window">
@@ -178,9 +178,9 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_hr_timesheet_invoice_factor_tree"/>
</record>
<menuitem
action="action_hr_timesheet_invoice_factor_form"
id="hr_timesheet_invoice_factor_view"
<menuitem
action="action_hr_timesheet_invoice_factor_form"
id="hr_timesheet_invoice_factor_view"
parent="account.account_analytic_def_account"/>
</data>
@@ -9,3 +9,4 @@
"access_report_timesheet_invoice","report_timesheet.invoice","model_report_timesheet_invoice","hr.group_hr_manager",1,0,0,0
"access_report_random_timesheet","report_random_timesheet","model_report_random_timesheet","hr.group_hr_manager",1,0,0,0
"access_report_random_timesheet_lines","random_timesheet_lines","model_random_timesheet_lines","hr.group_hr_manager",1,0,0,0
"access_hr_timesheet_analytic_profit","hr_timesheet_analytic_profit","model_hr_timesheet_analytic_profit","account.group_account_invoice",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
9 access_report_timesheet_invoice report_timesheet.invoice model_report_timesheet_invoice hr.group_hr_manager 1 0 0 0
10 access_report_random_timesheet report_random_timesheet model_report_random_timesheet hr.group_hr_manager 1 0 0 0
11 access_report_random_timesheet_lines random_timesheet_lines model_random_timesheet_lines hr.group_hr_manager 1 0 0 0
12 access_hr_timesheet_analytic_profit hr_timesheet_analytic_profit model_hr_timesheet_analytic_profit account.group_account_invoice 1 1 1 1
@@ -195,7 +195,7 @@
<filter icon="terp-document-new" string="In Draft" domain="[('state','in',('draft', 'new'))]" help="Unvalidated Timesheets"/>
<filter icon="terp-gtk-go-back-rtl" string="To Validate" domain="[('state','=','confirm')]" help="Confirmed Timesheets"/>
<separator orientation="vertical"/>
<field name="user_id" select="1" widget="selection"/>
<field name="user_id" select="1"/>
<field name="date_from"/>
<field name="department_id" widget="selection">
<filter icon="terp-personal+"
+20 -20
View File
@@ -68,8 +68,8 @@
action="action_idea_category_tree"/>
<menuitem name="Give Vote" parent="menu_ideas1"
id="menu_give_vote"
action="action_idea_select"/>
id="menu_give_vote"
action="action_idea_select"/>
<!-- Open Ideas Action -->
@@ -128,11 +128,11 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Votes">
<group colspan="4">
<field name="user_id" select="1" />
<field name="date"/>
<newline/>
<field name="score"/>
<group colspan="4">
<field name="user_id" select="1" />
<field name="date"/>
<newline/>
<field name="score"/>
</group>
<separator string="Comments:" colspan="4"/>
<field name="comment" colspan="4" nolabel="1"/>
@@ -147,18 +147,18 @@
<field name="model">idea.vote</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Ideas vote">
<group col="10" colspan="4">
<field name="idea_id" widget="selection"/>
<field name="user_id" widget="selection"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="14">
<filter string="Vote date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
<filter string="Idea" icon="terp-idea" domain="[]" context="{'group_by':'idea_id'}"/>
<filter string="User" name="user" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
</group>
</search>
<search string="Ideas vote">
<group col="10" colspan="4">
<field name="idea_id" widget="selection"/>
<field name="user_id"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="14">
<filter string="Vote date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
<filter string="Idea" icon="terp-idea" domain="[]" context="{'group_by':'idea_id'}"/>
<filter string="User" name="user" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
</group>
</search>
</field>
</record>
@@ -270,7 +270,7 @@
<separator orientation="vertical"/>
<field name="title" select="1"/>
<field name="category_id" select="1"/>
<field name="user_id" select="1" widget="selection"/>
<field name="user_id" select="1"/>
</group>
<newline/>
<group expand="0" string="Group By..." colspan="12" col="10">
@@ -1,2 +1,2 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_knowledge_installer","knowledge.installer","model_knowledge_installer",base.group_user,1,0,0,0
"access_knowledge_installer","knowledge.installer","model_knowledge_installer",base.group_system,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_knowledge_installer knowledge.installer model_knowledge_installer base.group_user base.group_system 1 0 1 0 1 0 1
+5 -5
View File
@@ -1,6 +1,6 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_vat_listing_clients","vat.listing.clients","model_vat_listing_clients",,1,1,1,1
"access_partner_vat_intra","partner.vat.intra","model_partner_vat_intra",,1,1,1,1
"access_partner_vat","partner.vat","model_partner_vat",,1,1,1,1
"access_partner_vat_list","partner.vat.list","model_partner_vat_list",,1,1,1,1
"access_l1on_be_vat_declaration","l1on_be.vat.declaration","model_l1on_be_vat_declaration",,1,1,1,1
"access_vat_listing_clients","vat.listing.clients","model_vat_listing_clients",account.group_account_user,1,1,1,1
"access_partner_vat_intra","partner.vat.intra","model_partner_vat_intra",account.group_account_user,1,1,1,1
"access_partner_vat","partner.vat","model_partner_vat",account.group_account_user,1,1,1,1
"access_partner_vat_list","partner.vat.list","model_partner_vat_list",account.group_account_user,1,1,1,1
"access_l1on_be_vat_declaration","l1on_be.vat.declaration","model_l1on_be_vat_declaration",account.group_account_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_vat_listing_clients vat.listing.clients model_vat_listing_clients account.group_account_user 1 1 1 1
3 access_partner_vat_intra partner.vat.intra model_partner_vat_intra account.group_account_user 1 1 1 1
4 access_partner_vat partner.vat model_partner_vat account.group_account_user 1 1 1 1
5 access_partner_vat_list partner.vat.list model_partner_vat_list account.group_account_user 1 1 1 1
6 access_l1on_be_vat_declaration l1on_be.vat.declaration model_l1on_be_vat_declaration account.group_account_user 1 1 1 1
+31 -46
View File
@@ -21,26 +21,8 @@
from osv import osv, fields
import time
import base64
import base64
class one2many_domain(fields.one2many):
def set(self, cr, obj, id, field, values, user=None, context=None):
if not values:
return
return super(one2many_domain, self).set(cr, obj, id, field, values,
user=user, context=context)
def get(self, cr, obj, ids, name, user=None, offset=0, context=None, values=None):
if context is None:
context = {}
res = {}
msg_obj = obj.pool.get('mailgate.message')
for thread in obj.browse(cr, user, ids, context=context):
final = msg_obj.search(cr, user, self._domain + [('thread_id', '=', thread.id)], context=context)
res[thread.id] = final
return res
class mailgate_thread(osv.osv):
'''
Mailgateway Thread
@@ -51,11 +33,11 @@ class mailgate_thread(osv.osv):
_columns = {
'thread': fields.char('Thread', size=32, required=False),
'message_ids': one2many_domain('mailgate.message', 'thread_id', 'Messages', domain=[('history', '=', True)], required=False),
'log_ids': one2many_domain('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
}
'message_ids': fields.one2many('mailgate.message', 'thread_id', 'Messages', domain=[('history', '=', True)], required=False),
'log_ids': fields.one2many('mailgate.message', 'thread_id', 'Logs', domain=[('history', '=', False)], required=False),
}
def __history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=[], context={}):
def _history(self, cr, uid, cases, keyword, history=False, subject=None, email=False, details=None, email_from=False, message_id=False, attach=None, context=None):
"""
@param self: The object pointer
@param cr: the current row, from the database cursor,
@@ -69,9 +51,13 @@ class mailgate_thread(osv.osv):
@param context: A standard dictionary for contextual values"""
if context is None:
context = {}
if attach is None:
attach = []
# The mailgate sends the ids of the cases and not the object list
if all(isinstance(case_id, (int, long)) for case_id in cases) and context.get('model'):
cases = self.pool.get(context['model']).browse(cr, uid, cases, context=context)
if all(isinstance(case_id, (int, long)) for case_id in cases):
cases = self.browse(cr, uid, cases, context=context)
model_obj = self.pool.get('ir.model')
att_obj = self.pool.get('ir.attachment')
@@ -84,7 +70,7 @@ class mailgate_thread(osv.osv):
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'thread_id': case.thread_id.id,
'thread_id': case.thread_id.id,
'message_id': message_id,
}
attachments = []
@@ -93,29 +79,28 @@ class mailgate_thread(osv.osv):
attachments.append(att_obj.create(cr, uid, {'name': att[0], 'datas': base64.encodestring(att[1])}))
data = {
'name': subject or 'History',
'history': True,
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'res_id': case.id,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'description': details or (hasattr(case, 'description') and case.description or False),
'email_to': email or \
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'email_from': email_from or \
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'partner_id': hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False,
'thread_id': case.thread_id.id,
'message_id': message_id,
'attachment_ids': [(6, 0, attachments)]
}
'name': subject or 'History',
'history': True,
'user_id': uid,
'model_id' : model_ids and model_ids[0] or False,
'res_id': case.id,
'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'description': details or (hasattr(case, 'description') and case.description or False),
'email_to': email or \
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'email_from': email_from or \
(hasattr(case, 'user_id') and case.user_id and case.user_id.address_id and \
case.user_id.address_id.email) or tools.config.get('email_from', False),
'partner_id': hasattr(case, 'partner_id') and (case.partner_id and case.partner_id.id or False) or False,
'thread_id': case.thread_id.id,
'message_id': message_id,
'attachment_ids': [(6, 0, attachments)]
}
res = obj.create(cr, uid, data, context)
return True
_history = __history
history = __history
__history = history = _history
mailgate_thread()
@@ -3,7 +3,8 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
# Copyright (C) 2010-TODAY OpenERP S.A. (http://www.openerp.com)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -22,14 +23,18 @@
import re
import smtplib
import email, mimetypes
import email
import mimetypes
from email.Header import decode_header
from email.MIMEText import MIMEText
import xmlrpclib
import os
import binascii
import time, socket
import time
import socket
import logging
import sys
import optparse
email_re = re.compile(r"([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6})")
case_re = re.compile(r"\[([0-9]+)\]", re.UNICODE)
@@ -89,7 +94,6 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
html = html.replace('<h2>', '**').replace('</h2>', '**')
html = html.replace('<h1>', '**').replace('</h1>', '**')
html = html.replace('<em>', '/').replace('</em>', '/')
# the only line breaks we respect is those of ending tags and
# breaks
@@ -101,14 +105,7 @@ def html2plaintext(html, body_id=None, encoding='utf-8'):
html = re.sub('<br\s*/>', '\n', html)
html = html.replace(' ' * 2, ' ')
# for all other tags we failed to clean up, just remove then and
# complain about them on the stderr
def desperate_fixer(g):
#print >>sys.stderr, "failed to clean up %s" % str(g.group())
return ' '
html = re.sub('<.*?>', desperate_fixer, html)
html = re.sub('<.*?>', ' ', html)
# lstrip all lines
html = '\n'.join([x.lstrip() for x in html.splitlines()])
@@ -166,10 +163,10 @@ class email_parser(object):
pass
return s.decode('latin1')
def _decode_header(self, s):
from email.Header import decode_header
s = decode_header(s.replace('\r', ''))
return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), s or []))
def _decode_header(self, text):
if text:
text = decode_header(text.replace('\r', ''))
return ''.join(map(lambda x:self._to_decode(x[0], [x[1]]), text or []))
def msg_new(self, msg):
message = self.msg_body_get(msg)
@@ -188,14 +185,25 @@ class email_parser(object):
}
data.update(self.partner_get(msg_from))
try:
id = self.rpc(self.model, 'create', data)
self.rpc(self.model, 'history', [id], 'Receive', True, msg_to, message['body'], msg_from, False, {'model' : self.model})
#self.rpc(self.model, 'case_open', [id])
except Exception, e:
if getattr(e, 'faultCode', '') and 'AccessError' in e.faultCode:
e = '\n\nThe Specified user does not have an access to the CRM case.'
print e
values = {
'message_ids' : [
(0, 0, {
'model_id' : self.rpc('ir.model', 'search', [('name', '=', self.model)])[0],
'date' : time.strftime('%Y-%m-%d %H:%M:%S'),
'description' : message['body'],
'email_from' : msg_from,
'email_to' : msg_to,
'name' : 'Receive',
'history' : True,
'user_id' : self.rpc.user_id,
}
)
]
}
thread_id = self.rpc('mailgate.thread', 'create', values)
data['thread_id'] = thread_id
oid = self.rpc(self.model, 'create', data)
attachments = message['attachment']
for attach in attachments or []:
data_attach = {
@@ -204,30 +212,19 @@ class email_parser(object):
'datas_fname': str(attach),
'description': 'Mail attachment',
'res_model': self.model,
'res_id': id
'res_id': oid
}
self.rpc('ir.attachment', 'create', data_attach)
return id
# #change the return type format to dictionary
# {
# 'body':'body part',
# 'attachment':{
# 'file_name':'file data',
# 'file_name':'file data',
# 'file_name':'file data',
# }
# }
return (oid, thread_id,)
def msg_body_get(self, msg):
message = {};
message['body'] = '';
message['attachment'] = {};
message = {
'body' : '',
'attachment' : {},
}
attachment = message['attachment'];
counter = 1;
def replace(match):
return ''
for part in msg.walk():
if part.get_content_maintype() == 'multipart':
@@ -237,27 +234,23 @@ class email_parser(object):
buf = part.get_payload(decode=True)
if buf:
txt = self._to_decode(buf, part.get_charsets())
txt = re.sub("<(\w)>", replace, txt)
txt = re.sub("<\/(\w)>", replace, txt)
txt = re.sub("<\/?(\w)>", '', txt)
if txt and part.get_content_subtype() == 'plain':
message['body'] += txt
elif txt and part.get_content_subtype() == 'html':
elif txt and part.get_content_subtype() == 'html':
message['body'] += html2plaintext(txt)
filename = part.get_filename();
if filename :
attachment[filename] = part.get_payload(decode=True);
elif part.get_content_maintype()=='application' or part.get_content_maintype()=='image' or part.get_content_maintype()=='text':
elif part.get_content_maintype() in ('application', 'image', 'text'):
filename = part.get_filename();
if filename :
attachment[filename] = part.get_payload(decode=True);
else:
if not filename :
filename = 'attach_file'+str(counter);
counter += 1;
attachment[filename] = part.get_payload(decode=True);
#end if
#end if
attachment[filename] = part.get_payload(decode=True);
message['attachment'] = attachment
#end for
return message
@@ -316,22 +309,42 @@ class email_parser(object):
}
self.rpc('ir.attachment', 'create', data_attach)
self.rpc(self.model, 'history', [id], 'Send', True, self._decode_header(msg['To']), body['body'], self._decode_header(msg['From']), False, {'model' : self.model})
self.create_message(id, msg['From'], msg['To'], 'Send', message['body'])
return id
def create_message(self, oid, email_from, email_to, name, body):
"""
This functions creates a message in the thread
> create_message(id, msg['From'], msg['To'], 'Send', message['body'])
"""
values = {
'thread_id' : self.rpc(self.model, 'read', [oid], ['thread_id'])[0]['thread_id'][0],
'model_id' : self.rpc('ir.model', 'search', [('name', '=', self.model)])[0],
'res_id' : oid,
'date' : time.strftime('%Y-%m-%d %H:%M:%S'),
'description' : body,
'email_from' : self._decode_header(email_from),
'email_to' : self._decode_header(email_to),
'name' : name,
'history' : True,
'user_id' : self.rpc.user_id,
}
return self.rpc('mailgate.message', 'create', values)
def msg_send(self, msg, emails, priority=None):
if not len(emails):
if not emails:
return False
del msg['To']
msg['To'] = emails[0]
if len(emails)>1:
if 'Cc' in msg:
del msg['Cc']
if len(emails) > 1:
msg['Cc'] = ','.join(emails[1:])
del msg['Reply-To']
msg['Reply-To'] = self.email
if priority:
msg['X-Priority'] = priorities.get(priority, '3 (Normal)')
s = smtplib.SMTP()
s.connect()
s.sendmail(self.email, emails, msg.as_string())
@@ -343,11 +356,6 @@ class email_parser(object):
body = message['body']
act = 'case_open'
self.rpc(self.model, act, [id])
#body2 = '\n'.join(map(lambda l: '> '+l, (body or '').split('\n')))
#data = {
# 'description':body,
#}
#self.rpc(self.model, 'write', [id], data)
attachments = message['attachment']
for attach in attachments or []:
data_attach = {
@@ -360,14 +368,16 @@ class email_parser(object):
}
self.rpc('ir.attachment', 'create', data_attach)
self.rpc(self.model, 'history', [id], 'Send', True, self._decode_header(msg['To']), message['body'], self._decode_header(msg['From']), False, {'model' : self.model})
self.create_message(id, msg['From'], msg['To'], 'Send', message['body'])
return id
def msg_test(self, msg, case_str):
if not case_str:
return (False, False)
emails = self.rpc(self.model, 'emails_get', int(case_str))
return (int(case_str), emails)
case_id = int(case_str)
emails = self.rpc(self.model, 'emails_get', [case_id])
return (case_id, emails)
def parse(self, msg):
case_str = reference_re.search(msg.get('References', ''))
@@ -377,23 +387,37 @@ class email_parser(object):
case_str = case_re.search(msg.get('Subject', ''))
if case_str:
case_str = case_str.group(1)
logging.info("email: %s -> %s -- %s", msg['From'], self.email, msg['Subject'])
(case_id, emails) = self.msg_test(msg, case_str)
thread_id = None
if case_id:
if emails[0] and self.email_get(emails[0])==self.email_get(self._decode_header(msg['From'])):
values = self.rpc(self.model, 'read', [case_id], ['thread_id'])
if values:
thread_id = values[0]['thread_id'][0]
emails = emails[str(thread_id)]
user_email = filter(None, emails['user_email'])[0]
if user_email and self.email_get(user_email) == self.email_get(self._decode_header(msg['From'])):
self.msg_user(msg, case_id)
else:
self.msg_partner(msg, case_id)
else:
case_id = self.msg_new(msg)
subject = self._decode_header(msg['subject'])
if msg.get('Subject', ''):
del msg['Subject']
msg['Subject'] = '['+str(case_id)+'] '+subject
msg['Message-Id'] = '<'+str(time.time())+'-openerpcrm-'+str(case_id)+'@'+socket.gethostname()+'>'
case_id, thread_id = self.msg_new(msg)
subject = self._decode_header(msg['Subject'])
msg['Subject'] = "[%s] %s" % (case_id, subject,)
msg['Message-Id'] = "<%s-openerpcrm-%s@%s>" % (time.time(), case_id, socket.gethostname(),)
emails = self.rpc(self.model, 'emails_get', case_id)
priority = emails[3]
em = [emails[0], emails[1]] + (emails[2] or '').split(',')
logging.info(" case: %r", case_id)
logging.info(" thread: %r", thread_id)
values = self.rpc(self.model, 'emails_get', [case_id])
emails = values[str(thread_id)]
priority = emails.get('piority', [3])[0]
em = emails['user_email'] + emails['email_from'] + emails['email_cc']
emails = map(self.email_get, filter(None, em))
mm = [self._decode_header(msg['From']), self._decode_header(msg['To'])]+self._decode_header(msg.get('Cc', '')).split(',')
@@ -405,13 +429,11 @@ class email_parser(object):
except:
if self.email_default:
a = self._decode_header(msg['Subject'])
del msg['Subject']
msg['Subject'] = '[OpenERP-CaseError] ' + a
self.msg_send(msg, self.email_default.split(','))
return case_id, emails
return case_id, thread_id, emails
if __name__ == '__main__':
import sys, optparse
parser = optparse.OptionParser(usage='usage: %prog [options]', version='%prog v1.0')
group = optparse.OptionGroup(parser, "Note",
"This program parse a mail from standard input and communicate "
@@ -426,8 +448,10 @@ if __name__ == '__main__':
parser.add_option("--host", dest="host", help="Hostname of the Open ERP Server", default="localhost")
parser.add_option("--port", dest="port", help="Port of the Open ERP Server", default="8069")
(options, args) = parser.parse_args()
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s")
parser = email_parser(options.userid, options.password, options.model, options.email, options.default, dbname=options.dbname, host=options.host, port=options.port)
msg_txt = email.message_from_file(sys.stdin)
+4 -1
View File
@@ -29,7 +29,10 @@
"description": "Menu for Marketing",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': ['marketing_view.xml'],
'update_xml': [
'marketing_view.xml',
'security/ir.model.access.csv'
],
'demo_xml': [],
'installable': True,
'active': False,
@@ -0,0 +1,3 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_marketing_installer","marketing.installer","model_marketing_installer","base.group_system",1,1,1,1
"access_res_config_installer","access_marketing_installer","base.model_res_config_installer","base.group_system",1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_marketing_installer marketing.installer model_marketing_installer base.group_system 1 1 1 1
3 access_res_config_installer access_marketing_installer base.model_res_config_installer base.group_system 1 1 1 1
+2
View File
@@ -39,6 +39,8 @@
'marketing_campaign_data.xml',
'marketing_campaign_workflow.xml',
'report/campaign_analysis_view.xml',
"security/marketing_campaign_security.xml",
"security/ir.model.access.csv"
],
'demo_xml': [
'marketing_campaign_demo.xml',
@@ -467,8 +467,8 @@ class marketing_campaign_workitem(osv.osv):
else:
# manual states are not processed automatically
workitem_ids = []
if workitem_ids:
self.process(cr, uid, workitem_ids, context)
if workitem_ids:
self.process(cr, uid, workitem_ids, context)
marketing_campaign_workitem()
@@ -0,0 +1,7 @@
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_marketing_campaign_admin","marketing.campaign","model_marketing_campaign","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_segment_campaignadmin","marketing.campaign.segment","model_marketing_campaign_segment","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_activity_campaignadmin","marketing.campaign.activity","model_marketing_campaign_activity","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_workitem_campaignadmin","marketing.campaign.workitem","model_marketing_campaign_workitem","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_transition_campaignadmin","marketing.campaign.transition","model_marketing_campaign_transition","marketing_campaign.res_groups_marketing_campaign",1,1,1,1
"access_marketing_campaign_analysis_campaignadmin","campaign.analysis","model_campaign_analysis","marketing_campaign.res_groups_marketing_campaign",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_marketing_campaign_admin marketing.campaign model_marketing_campaign marketing_campaign.res_groups_marketing_campaign 1 1 1 1
3 access_marketing_campaign_segment_campaignadmin marketing.campaign.segment model_marketing_campaign_segment marketing_campaign.res_groups_marketing_campaign 1 1 1 1
4 access_marketing_campaign_activity_campaignadmin marketing.campaign.activity model_marketing_campaign_activity marketing_campaign.res_groups_marketing_campaign 1 1 1 1
5 access_marketing_campaign_workitem_campaignadmin marketing.campaign.workitem model_marketing_campaign_workitem marketing_campaign.res_groups_marketing_campaign 1 1 1 1
6 access_marketing_campaign_transition_campaignadmin marketing.campaign.transition model_marketing_campaign_transition marketing_campaign.res_groups_marketing_campaign 1 1 1 1
7 access_marketing_campaign_analysis_campaignadmin campaign.analysis model_campaign_analysis marketing_campaign.res_groups_marketing_campaign 1 0 0 0
@@ -0,0 +1,10 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="res_groups_marketing_campaign" model="res.groups">
<field name="name">Marketing / Campaign</field>
</record>
</data>
</openerp>
+19 -19
View File
@@ -8,13 +8,13 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-06-10 09:51+0000\n"
"PO-Revision-Date: 2010-06-11 10:07+0000\n"
"Last-Translator: vir (Open ERP) <vir@tinyerp.com>\n"
"Language-Team: Hindi <hi@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: 2010-06-11 03:42+0000\n"
"X-Launchpad-Export-Date: 2010-06-12 03:44+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: mrp
@@ -460,7 +460,7 @@ msgstr ""
#. module: mrp
#: field:mrp.bom.revision,author_id:0
msgid "Author"
msgstr ""
msgstr "लेखक"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_stockproduct0
@@ -491,7 +491,7 @@ msgstr ""
#. module: mrp
#: field:mrp.procurement,message:0
msgid "Latest error"
msgstr ""
msgstr "नवीनतम त्रुटि"
#. module: mrp
#: field:mrp.bom,bom_lines:0
@@ -511,7 +511,7 @@ msgstr ""
#. module: mrp
#: view:mrp.production:0
msgid "Consumed Products"
msgstr ""
msgstr "खपत उत्पाद"
#. module: mrp
#: constraint:mrp.bom:0
@@ -538,12 +538,12 @@ msgstr ""
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Ready"
msgstr ""
msgstr "तैयार"
#. module: mrp
#: view:mrp.routing:0
msgid "Workcenter Operations"
msgstr ""
msgstr "Workcenter संचालन"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action2_gantt
@@ -564,7 +564,7 @@ msgstr ""
#. module: mrp
#: field:mrp.production,date_finnished:0
msgid "End Date"
msgstr ""
msgstr "समाप्ति तिथि"
#. module: mrp
#: help:mrp.production,picking_id:0
@@ -576,7 +576,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.production,state:0
msgid "In Production"
msgstr ""
msgstr "उत्पादन में"
#. module: mrp
#: field:stock.warehouse.orderpoint,qty_multiple:0
@@ -600,12 +600,12 @@ msgstr ""
#. module: mrp
#: wizard_button:mrp.workcenter.load,init,report:0
msgid "Print"
msgstr ""
msgstr "प्रिंट"
#. module: mrp
#: field:mrp.workcenter,type:0
msgid "Type"
msgstr ""
msgstr "प्रकार"
#. module: mrp
#: model:process.node,note:mrp.process_node_stockproduct0
@@ -616,7 +616,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.workcenter.load,init,time_unit:0
msgid "Per month"
msgstr ""
msgstr "प्रति माह"
#. module: mrp
#: field:mrp.procurement,product_uos_qty:0
@@ -626,18 +626,18 @@ msgstr ""
#. module: mrp
#: rml:bom.structure:0
msgid "Product Name"
msgstr ""
msgstr "वस्तु का नाम"
#. module: mrp
#: rml:mrp.production.order:0
msgid "Printing date"
msgstr ""
msgstr "मुद्रण तारीख"
#. module: mrp
#: model:process.node,name:mrp.process_node_orderrfq0
#: model:process.node,name:mrp.process_node_rfq0
msgid "RFQ"
msgstr ""
msgstr "कोटेशन के लिए अनुरोध"
#. module: mrp
#: field:mrp.bom,revision_type:0
@@ -657,7 +657,7 @@ msgstr ""
#. module: mrp
#: field:stock.warehouse.orderpoint,product_min_qty:0
msgid "Min Quantity"
msgstr ""
msgstr "न्यूनतम मात्रा"
#. module: mrp
#: view:mrp.production:0
@@ -678,7 +678,7 @@ msgstr ""
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicemts0
msgid "If Product type is service and procure method is Make to stock"
msgstr ""
msgstr "अगर उत्पाद प्रकार सेवा है और खरीद विधि है स्टॉक बनाने के लिए"
#. module: mrp
#: model:process.node,note:mrp.process_node_serviceproduct0
@@ -689,7 +689,7 @@ msgstr ""
#. module: mrp
#: field:res.company,security_lead:0
msgid "Security Days"
msgstr ""
msgstr "सुरक्षा दिवस"
#. module: mrp
#: view:mrp.production:0
@@ -715,7 +715,7 @@ msgstr ""
#. module: mrp
#: selection:mrp.procurement,state:0
msgid "Exception"
msgstr ""
msgstr "अपवाद"
#. module: mrp
#: wizard_view:product.product.procurement,init:0
+30 -30
View File
@@ -41,7 +41,7 @@
id="menu_mrp_configuration"
name="Configuration"
parent="base.menu_mrp_root"
groups="base.group_extended"
groups="group_mrp_manager"
sequence="50" />
<record id="mrp_property_tree_view" model="ir.ui.view">
@@ -250,7 +250,7 @@
<newline/>
<field name="product_uom"/>
<field name="product_qty"/>
<field name="routing_id" widget="selection" groups="base.group_extended"/>
<field name="routing_id" groups="base.group_extended"/>
<newline/>
<field name="product_uos" groups="product.group_uos,base.group_extended" widget="selection"/>
<field name="product_uos_qty" groups="product.group_uos,base.group_extended" />
@@ -283,7 +283,7 @@
</field>
</record>
<record id="view_mrp_bom_filter" model="ir.ui.view">
<record id="view_mrp_bom_filter" model="ir.ui.view">
<field name="name">mrp.bom.select</field>
<field name="model">mrp.bom</field>
<field name="type">search</field>
@@ -291,9 +291,9 @@
<search string="Search Bill Of Material">
<group col='4' colspan='4'>
<field name="name"/>
<field name="code" string="Reference"/>
<field name="product_id"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="code" string="Reference"/>
<field name="product_id"/>
<field name="company_id" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By" colspan="4" col="8" groups="base.group_extended">
@@ -402,26 +402,26 @@
</field>
</record>
<!--
<!--
Procurement
-->
<menuitem action="procurement.procurement_action" id="menu_mrp_procurement_action"
parent="mrp.menu_mrp_manufacturing" sequence="2" />
<menuitem action="procurement.procurement_action" id="menu_mrp_procurement_action"
parent="mrp.menu_mrp_manufacturing" sequence="2" />
<!-- <menuitem action="procurement.procurement_action5" id="menu_mrp_procurement_exception_action"-->
<!-- parent="mrp.menu_mrp_control" sequence="1" />-->
<!-- parent="mrp.menu_mrp_control" sequence="1" />-->
<menuitem id="menu_mrp_scheduler" name="Schedulers" parent="base.menu_mrp_root" sequence="4"/>
<menuitem id="menu_mrp_scheduler" name="Schedulers" parent="base.menu_mrp_root" sequence="4"/>
<menuitem action="procurement.action_compute_schedulers" id="mrp_Sched_all" parent="mrp.menu_mrp_scheduler" sequence="90"/>
<!--
Order Point
-->
<menuitem action="procurement.action_orderpoint_form" id="menu_action_orderpoint_form" parent="mrp.menu_mrp_reordering"/>
<!--
Order Point
-->
<menuitem action="procurement.action_orderpoint_form" id="menu_action_orderpoint_form" parent="mrp.menu_mrp_reordering"/>
<!--
Production Management
-->
Production Management
-->
<record id="mrp_production_tree_view" model="ir.ui.view">
<field name="name">mrp.production.tree</field>
@@ -515,9 +515,9 @@
<notebook colspan="4">
<page string="Consumed Products">
<field name="bom_id" domain="[('product_id','=',product_id),('bom_id','=',False)]" on_change="bom_id_change(bom_id)" />
<field name="routing_id" groups="base.group_extended" select="1" widget="selection"/>
<field name="location_src_id" domain="[('usage','=','internal')]" widget="selection" on_change="location_id_change(location_src_id,location_dest_id)"/>
<field name="location_dest_id" domain="[('usage','=','internal')]" widget="selection"/>
<field name="routing_id" groups="base.group_extended" select="1"/>
<field name="location_src_id" domain="[('usage','=','internal')]" on_change="location_id_change(location_src_id,location_dest_id)"/>
<field name="location_dest_id" domain="[('usage','=','internal')]"/>
<separator string="" colspan="4"/>
<field colspan="2" name="move_lines" nolabel="1" widget="one2many_list"
@@ -807,19 +807,19 @@
</record>
<!--
Procurements
Procurements
-->
<record id="view_procurement_form_inherit" model="ir.ui.view">
<field name="name">procurement.order.form.inherit</field>
<field name="model">procurement.order</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='move_id']" position="before">
<field name="bom_id" domain="[('product_id','=',product_id),('bom_id','=',False)]"/>
</xpath>
</field>
<field name="name">procurement.order.form.inherit</field>
<field name="model">procurement.order</field>
<field name="inherit_id" ref="procurement.procurement_form_view"/>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='move_id']" position="before">
<field name="bom_id" domain="[('product_id','=',product_id),('bom_id','=',False)]"/>
</xpath>
</field>
</record>
<act_window
+1 -1
View File
@@ -24,7 +24,7 @@
"access_hr_timesheet_group_mrp_worker","resource.calendar mrp_worker","resource.model_resource_calendar","mrp.group_mrp_user",1,0,0,0
"access_procurement_stock_worker","procurement.order stock_worker","model_procurement_order","stock.group_stock_user",1,1,1,1
"access_mrp_production_stock_worker","mrp.production stock_worker","model_mrp_production","stock.group_stock_user",1,0,0,0
"access_mrp_installer","mrp.installer","model_mrp_installer","mrp.group_mrp_user",1,0,0,0
"access_mrp_installer","mrp.installer","model_mrp_installer","base.group_system",1,1,1,1
"access_mrp_product_produce","mrp.product.produce","model_mrp_product_produce","mrp.group_mrp_user",1,0,0,0
"access_mrp_change_production_qty","change.production.qty","model_change_production_qty","mrp.group_mrp_user",1,0,0,0
"access_mrp_production_order","mrp.production.order","model_mrp_production_order","mrp.group_mrp_user",1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
24 access_hr_timesheet_group_mrp_worker resource.calendar mrp_worker resource.model_resource_calendar mrp.group_mrp_user 1 0 0 0
25 access_procurement_stock_worker procurement.order stock_worker model_procurement_order stock.group_stock_user 1 1 1 1
26 access_mrp_production_stock_worker mrp.production stock_worker model_mrp_production stock.group_stock_user 1 0 0 0
27 access_mrp_installer mrp.installer model_mrp_installer mrp.group_mrp_user base.group_system 1 0 1 0 1 0 1
28 access_mrp_product_produce mrp.product.produce model_mrp_product_produce mrp.group_mrp_user 1 0 0 0
29 access_mrp_change_production_qty change.production.qty model_change_production_qty mrp.group_mrp_user 1 0 0 0
30 access_mrp_production_order mrp.production.order model_mrp_production_order mrp.group_mrp_user 1 0 0 0
+22
View File
@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
import partner_geo_assign
+38
View File
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
{
'name': 'Partner Geo-Localisation',
'version': '1.0',
'category': 'Generic Modules/Production',
'description': """
This is the module used by OpenERP SA to redirect customers to his partners,
based on geolocalisation.
""",
'author': 'OpenERP SA',
'depends': ['crm'],
'update_xml': ['res_partner_view.xml'],
'demo_xml': [],
'installable': True,
'active': False,
'certificate': False,
}
@@ -0,0 +1,113 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# 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/>.
#
##############################################################################
from osv import osv
from osv import fields
import urllib,re
import random, time
def geo_find(addr):
import urllib,re
regex = '<coordinates>([+-]?[0-9\.]+),([+-]?[0-9\.]+),([+-]?[0-9\.]+)</coordinates>'
url = 'http://maps.google.com/maps/geo?q=' + urllib.quote(addr) + '&output=xml&oe=utf8&sensor=false'
xml = urllib.urlopen(url).read()
if '<error>' in xml:
print 'Error'
return None
result = re.search(regex, xml, re.M|re.I)
if not result:
print 'No Regex', xml
return None
return float(result.group(1)),float(result.group(2))
class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'partner_latitude': fields.float('Geo Latitude', digits=(16,2)),
'partner_longitude': fields.float('Geo Longitude', digits=(16,2)),
'partner_weight': fields.integer('Weight',
help="Gives the probability to assign a lead to this partner. (0 means no assignation.)"),
}
_defaults = {
'partner_weight': lambda *args: 0
}
def geo_localize(self, cr, uid, ids, context=None):
regex = '<coordinates>([+-]?[0-9\.]+),([+-]?[0-9\.]+),([+-]?[0-9\.]+)</coordinates>'
for partner in self.browse(cr, uid, ids, context=context):
part = partner.address[0]
addr = ', '.join(filter(None, [part.street, part.street2, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name]))
result = geo_find(addr)
if result:
print 'Write', {
'partner_latitude': result[0],
'partner_longitude': result[1]
}
self.write(cr, uid, [partner.id], {
'partner_latitude': result[0],
'partner_longitude': result[1]
}, context=context)
return True
res_partner()
class crm_lead(osv.osv):
_inherit = "crm.lead"
_columns = {
'partner_latitude': fields.float('Geo Latitude', digits=(16,2)),
'partner_longitude': fields.float('Geo Longitude', digits=(16,2)),
'partner_assigned_id': fields.many2one('res.partner','Assigned Partner')
'date_assign': fields.date('Assignation Date')
}
def assign_partner(self, cr, uid, ids, context=None):
for part in self.browse(cr, uid, ids, context=context):
if not part.country_id:
continue
addr = ', '.join(filter(None, [part.street, part.street2, (part.zip or '')+' '+(part.city or ''), part.state_id and part.state_id.name, part.country_id and part.country_id.name]))
result = geo_find(addr)
if result:
self.write(cr, uid, [part.id], {
'partner_latitude': result[0],
'partner_longitude': result[1]
}, context=context)
part_ids = self.pool.get('res.partner').search(cr, uid, [
('partner_weight','>',0),
('partner_latitude','>',result[0]-2), ('partner_latitude','<',result[0]+2),
('partner_longitude','>',result[1]-1.5), ('partner_longitude','<',result[1]+1.5)
], context=context)
if not part_ids:
part_ids = self.pool.get('res.partner').search(cr, uid, [
('partner_weight','>',0),
('partner_latitude','>',result[0]-4), ('partner_latitude','<',result[0]+4),
('partner_longitude','>',result[1]-3), ('partner_longitude','<',result[1]+3)
], context=context)
total = 0
toassign = []
for part2 in self.pool.get('res.partner').browse(cr, uid, part_ids, context=context):
total += part2.partner_weight
toassign.append( (part2.id, total) )
mypartner = random.randint(0,total)
for t in toassign:
if mypartner<=t[1]:
self.write(cr, uid, [part.id], {'partner_assigned_id': t[0], 'date_assign': time.strftime('%Y-%m-%d')}, context=context)
break
return True
crm_lead()
@@ -0,0 +1,45 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="view_crm_opportunity_geo_assign_form" model="ir.ui.view">
<field name="name">crm.lead.geo_assign.inherit</field>
<field name="model">crm.lead</field>
<field name="type">form</field>
<field name="inherit_id" ref="crm.crm_case_form_view_oppor"/>
<field name="arch" type="xml">
<xpath expr="//notebook[last()]" position="inside">
<page string="Partner Assignation">
<field name="partner_assigned_id"/>
<label string="" colspan="1"/>
<button string="Geo Assign" name="assign_partner" type="object"/>
<newline/>
<field name="partner_latitude"/>
<field name="partner_longitude"/>
</page>
</xpath>
</field>
</record>
<record id="view_crm_partner_geo_form" model="ir.ui.view">
<field name="name">res.partner.geo.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//notebook[last()]" position="inside">
<page string="Partner Association">
<field name="partner_weight"/>
<label string="" colspan="1"/>
<button string="Geo Localize" name="geo_localize" icon="gtk-apply" type="object"/>
<newline/>
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<field name="date_assign"/>
</page>
</xpath>
</field>
</record>
</data>
</openerp>
@@ -1,32 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="0">
<record id="second_partner" model="res.partner">
<field name="name">OpenERP Editor</field>
</record>
<record id="second_company" model="res.company">
<field name="name">OpenERP Editor</field>
<field name="partner_id" ref="base.main_partner"/>
<field name="parent_id" ref="base.main_company"/>
<field name="rml_header1">Free Business Solutions</field>
<field name="rml_footer1">Web: http://tiny.be - Tel: (+32).81.81.37.00 - Bank: CPH 126-2013269-07</field>
<field name="rml_footer2">IBAN: BE74 1262 0132 6907 - SWIFT: GKCCBEBB - VAT: BE0477.472.701</field>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="ter_partner" model="res.partner">
<field name="name">OpenERP Integrator</field>
</record>
<record id="ter_company" model="res.company">
<field name="name">OpenERP Integrator</field>
<field name="partner_id" ref="base.main_partner"/>
<field name="parent_id" ref="base.main_company"/>
<field name="rml_header1">Free Business Solutions</field>
<field name="rml_footer1">Web: http://tiny.be - Tel: (+32).81.81.37.00 - Bank: CPH 126-2013269-07</field>
<field name="rml_footer2">IBAN: BE74 1262 0132 6907 - SWIFT: GKCCBEBB - VAT: BE0477.472.701</field>
<field name="currency_id" ref="base.EUR"/>
</record>
</data>
</openerp>
@@ -1,41 +1,5 @@
<?xml version="1.0"?>
<openerp>
<data>
<record forcecreate="True" id="property_stock_account_output_prd_multi" model="ir.property">
<field name="name">property_stock_account_output</field>
<field name="fields_id" search="[('model','=','product.template'),('name','=','property_stock_account_output')]"/>
<field eval="False" name="value"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record forcecreate="True" id="property_stock_account_input_prd_multi" model="ir.property">
<field name="name">property_stock_account_input</field>
<field name="fields_id" search="[('model','=','product.template'),('name','=','property_stock_account_input')]"/>
<field eval="False" name="value"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record forcecreate="True" id="property_stock_account_output_categ_multi" model="ir.property">
<field name="name">property_stock_account_output_categ</field>
<field name="fields_id" search="[('model','=','product.category'),('name','=','property_stock_account_output_categ')]"/>
<field eval="False" name="value"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record forcecreate="True" id="property_stock_account_input_categ_multi" model="ir.property">
<field name="name">property_stock_account_input_categ</field>
<field name="fields_id" search="[('model','=','product.category'),('name','=','property_stock_account_input_categ')]"/>
<field eval="False" name="value"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="ir_property_propertystockjournal0" model="ir.property">
<field eval="&quot;&quot;&quot;property_stock_journal&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;account.journal,16&quot;&quot;&quot;" name="value"/>
<field name="fields_id" ref="stock.field_product_category_property_stock_journal"/>
</record>
</data>
<data>
<record id="stock.property_stock_journal" model="ir.property">
<field name="company_id" ref="base.main_company"/>
</record>
</data>
</openerp>
+6 -6
View File
@@ -193,10 +193,10 @@ class pos_order(osv.osv):
res[order.id]['amount_tax'])
else:
res[order.id]['amount_tax'] = reduce(lambda x, y: x+round(y['amount'], 2),
tax_obj.compute(cr, uid, line.product_id.taxes_id,
tax_obj.compute_all(cr, uid, line.product_id.taxes_id,
line.price_unit * \
(1-(line.discount or 0.0)/100.0), line.qty),
res[order.id]['amount_tax'])
(1-(line.discount or 0.0)/100.0), line.qty)['taxes'],
res[order.id]['amount_tax'])
return res
@@ -789,8 +789,8 @@ class pos_order(osv.osv):
tax_amount = 0
taxes = [t for t in line.product_id.taxes_id]
if order.price_type=='tax_excluded':
computed_taxes = account_tax_obj.compute(
cr, uid, taxes, line.price_unit, line.qty)
computed_taxes = account_tax_obj.compute_all(
cr, uid, taxes, line.price_unit, line.qty)['taxes']
else:
computed_taxes = account_tax_obj.compute_inv(
cr, uid, taxes, line.price_unit, line.qty)
@@ -1058,7 +1058,7 @@ class pos_order_line(osv.osv):
for line in self.browse(cr, uid, ids):
tax_amount = 0.0
taxes = [t for t in line.product_id.taxes_id]
computed_taxes = account_tax_obj.compute(cr, uid, taxes, line.price_unit, line.qty)
computed_taxes = account_tax_obj.compute_all(cr, uid, taxes, line.price_unit, line.qty)['taxes']
for tax in computed_taxes:
tax_amount += tax['amount']
price = self.price_by_product(cr, uid, ids, line.order_id.pricelist_id.id, line.product_id.id, line.qty, line.order_id.partner_id.id)
-52
View File
@@ -1,58 +1,6 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="cat1" model="product.category">
<field name="name">Paiement</field>
</record>
<record id="advance_product_pos" model="product.product">
<field name="name">Acompte</field>
<field name="categ_id" ref="cat1"/>
<field name="type">service</field>
<field name="list_price">0.0</field>
<field name="standard_price">0.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
</record>
<record id="advance_product_pos2" model="product.product">
<field name="name">Reparation</field>
<field name="categ_id" ref="cat1"/>
<field name="type">service</field>
<field name="list_price">100.0</field>
<field name="standard_price">100.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
</record>
<record id="product_category_voucher" model="product.category">
<field name="name">Bon</field>
</record>
<record id="product_product_giftvoucher" model="product.product">
<field name="default_code">GIFT</field>
<field name="supply_method">produce</field>
<field name="list_price">1.0</field>
<field name="standard_price">1.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
<field name="sale_delay">0.0</field>
<field name="name">Cheque cadeau</field>
<field name="categ_id" ref="product_category_voucher"/>
</record>
<record id="product_product_shipping_cost" model="product.product">
<field name="default_code">PORT01</field>
<field name="supply_method">produce</field>
<field name="list_price">1.0</field>
<field name="standard_price">1.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
<field name="sale_delay">0.0</field>
<field name="name">Shipping cost</field>
<field name="categ_id" ref="product_category_voucher"/>
<field name="type">service</field>
<field name="produce_delay">0</field>
<field name="purchase_ok" eval="False" />
</record>
</data>
</openerp>
+1 -185
View File
@@ -1,190 +1,6 @@
<?xml version="1.0"?>
<openerp>
<data>
<data >
<record id="res_partner_tinyshop1" model="res.partner">
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_company_tinyshop1" model="res.company">
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_company_tinyshop0" model="res.company">
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_company_shop0" model="res.company">
<field eval="5.0" name="security_lead"/>
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
</record>
</data>
<data noupdate="1">
<record id="res_users_sofia0" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_user'),ref('stock.group_stock_user')])]" name="groups_id"/>
<field eval="[(6,0,[])]" name="roles_id"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;shop3&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;en_US&quot;&quot;&quot;" name="context_lang"/>
<field eval="&quot;&quot;&quot;Shop 3&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field name="company_ids" eval="[(4, ref('res_company_shop0'))]"/>
<field eval="&quot;&quot;&quot;shop3&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
</data>
<data>
<record id="pos_order_pos0" model="pos.order">
<field name="sale_journal" ref="account.sales_journal"/>
<field eval="&quot;&quot;&quot;2009-11-29&quot;&quot;&quot;" name="date_validity"/>
<field name="shop_id" ref="sale.shop"/>
<field eval="&quot;&quot;&quot;2009-05-29&quot;&quot;&quot;" name="date_order"/>
<field name="partner_id" ref="base.res_partner_5"/>
<field name="user_salesman_id" ref="base.user_root"/>
<field name="sale_manager" ref="base.user_root"/>
<field eval="&quot;&quot;&quot;POS/001&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="0" name="invoice_wanted"/>
<field eval="&quot;&quot;&quot;tax_excluded&quot;&quot;&quot;" name="price_type"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field name="pricelist_id" ref="product.list0"/>
</record>
<record id="pos_order_line_orderline0" model="pos.order.line">
<field eval="0.5" name="discount"/>
<field name="product_id" ref="product.product_product_pc2"/>
<field eval="&quot;&quot;&quot;Order Line/01&quot;&quot;&quot;" name="name"/>
<field name="order_id" ref="pos_order_pos0"/>
<field eval="750.0" name="price_unit"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="5.0" name="qty"/>
</record>
<record id="pos_order_line_orderline1" model="pos.order.line">
<field eval="1.0" name="discount"/>
<field name="product_id" ref="product.product_product_cpu1"/>
<field eval="&quot;&quot;&quot;Order Line/02&quot;&quot;&quot;" name="name"/>
<field name="order_id" ref="pos_order_pos0"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="75.0" name="price_unit"/>
<field eval="1" name="qty"/>
</record>
</data>
<data>
<record id="pos_order_pos1" model="pos.order">
<field name="sale_journal" ref="account.sales_journal"/>
<field eval="&quot;&quot;&quot;2009-11-29&quot;&quot;&quot;" name="date_validity"/>
<field name="shop_id" ref="sale.shop"/>
<field eval="&quot;&quot;&quot;2009-05-29&quot;&quot;&quot;" name="date_order"/>
<field name="partner_id" ref="base.res_partner_3"/>
<field name="user_salesman_id" ref="res_users_sofia0"/>
<field name="sale_manager" ref="base.user_root"/>
<field eval="&quot;&quot;&quot;POS/002&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;tax_excluded&quot;&quot;&quot;" name="price_type"/>
<field eval="0" name="invoice_wanted"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field name="pricelist_id" ref="product.list0"/>
</record>
<!--
Resource: pos.order.line
-->
<record id="pos_order_line_orderline2" model="pos.order.line">
<field eval="1.0" name="discount"/>
<field name="product_id" ref="product.product_product_hdd1"/>
<field eval="&quot;&quot;&quot;Order Line/04&quot;&quot;&quot;" name="name"/>
<field name="order_id" ref="pos_order_pos1"/>
<field eval="50.0" name="price_unit"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="10.0" name="qty"/>
</record>
<function
eval="('default',False,'pricelist_id', [('pos.order', False)], ref('product.list0'), True, False, False, False, True)"
id="pos_pricelist_set"
model="ir.values"
name="set"/>
<function
eval="('default',False,'shop_id', [('pos.order', False)], ref('sale.shop'), True, False, False, False, True)"
id="pos_shop_set"
model="ir.values"
name="set"/>
<record id="pos_order_posadvance" model="pos.order">
<field eval="&quot;&quot;&quot;tax_excluded&quot;&quot;&quot;" name="price_type"/>
<field name="sale_journal" ref="account.sales_journal"/>
<field eval="&quot;&quot;&quot;2009-11-29&quot;&quot;&quot;" name="date_validity"/>
<field eval="&quot;&quot;&quot;2009-05-29&quot;&quot;&quot;" name="date_order"/>
<field name="partner_id" ref="base.res_partner_3"/>
<field name="user_salesman_id" ref="res_users_sofia0"/>
<field name="sale_manager" ref="base.user_root"/>
<field eval="&quot;&quot;&quot;POS/0012&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="0" name="invoice_wanted"/>
<field eval="&quot;&quot;&quot;draft&quot;&quot;&quot;" name="state"/>
<field name="pricelist_id" ref="product.list0"/>
<field name="shop_id" ref="sale.shop"/>
</record>
<record id="data_fiscalyear" model="account.fiscalyear">
<field eval="'Fiscal Year Shop '+time.strftime('%Y')" name="name"/>
<field eval="'FY'+time.strftime('%Y')" name="code"/>
<field eval="time.strftime('%Y')+'-01-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-12-31'" name="date_stop"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="period_j6" model="account.period">
<field eval="'Jun.'+time.strftime('%Y')" name="name"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="True" name="special"/>
<field eval="time.strftime('%Y')+'-06-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-06-30'" name="date_stop"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="period_j7" model="account.period">
<field eval="'Jul.'+time.strftime('%Y')" name="name"/>
<field eval="True" name="special"/>
<field name="fiscalyear_id" ref="data_fiscalyear"/>
<field eval="time.strftime('%Y')+'-07-01'" name="date_start"/>
<field eval="time.strftime('%Y')+'-07-31'" name="date_stop"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="a_recv" model="account.account">
<field name="name">Main Receivable</field>
<field name="code">x 40000</field>
<field name="type">receivable</field>
<field name="user_type" ref="account.account_type_asset"/>
<field eval="ref('account.minimal_0')" name="parent_id"/>
<field name="company_id" ref="base.main_company"/>
<field eval="True" name="reconcile"/>
<field name="company_id" ref="res_company_shop0"/>
<field name="user_type" ref="account.account_type_income"/>
<field name="note">
This chart of account is used for automated testing purpose. It is installed
only if you selected demo data during your database creation. Modules can
do black box testing on entries on this chart of account, without modifying
your own chart of account.
</field>
</record>
</data>
</openerp>
+99 -99
View File
@@ -1,112 +1,112 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<openerp>
<data>
<data>
<report
id="pos_invoice_report"
string="Invoice"
model="pos.order"
name="pos.invoice"
auto="False"
multi="True"
rml="account/report/invoice.rml"
/>
<report
id="pos_invoice_report"
string="Invoice"
model="pos.order"
name="pos.invoice"
auto="False"
multi="True"
rml="account/report/invoice.rml"
/>
<report
id="pos_lines_detail"
string="Details of Sales"
model="pos.order"
name="pos.details"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_details.rml"
/>
<report
id="pos_lines_detail"
string="Details of Sales"
model="pos.order"
name="pos.details"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_details.rml"
/>
<report
id="pos_details_summary"
string="Sales (summary)"
model="pos.order"
name="pos.details_summary"
auto="False"
multi="True"
rml="point_of_sale/report/pos_details_summary.rml"
/>
<report
id="pos_details_summary"
string="Sales (summary)"
model="pos.order"
name="pos.details_summary"
auto="False"
multi="True"
rml="point_of_sale/report/pos_details_summary.rml"
/>
<report
id="pos_lines_report"
string="Pos Lines"
model="pos.order"
name="pos.lines"
auto="False"
multi="True"
rml="point_of_sale/report/pos_lines.rml"
/>
<report
id="pos_lines_report"
string="Pos Lines"
model="pos.order"
name="pos.lines"
auto="False"
multi="True"
rml="point_of_sale/report/pos_lines.rml"
/>
<report
id="pos_payment_report"
string="Payment Report For Sale"
model="pos.order"
name="pos.payment.report"
auto="False"
multi="True"
menu="True"
rml="point_of_sale/report/pos_payment_report.rml"
/>
<report
id="pos_payment_report"
string="Payment Report For Sale"
model="pos.order"
name="pos.payment.report"
auto="False"
multi="True"
menu="True"
rml="point_of_sale/report/pos_payment_report.rml"
/>
<report
id="pos_sales_user"
string="Sales Report"
model="pos.order"
name="pos.sales.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user.rml"
/>
<report
id="pos_sales_user"
string="Sales Report"
model="pos.order"
name="pos.sales.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user.rml"
/>
<report
id="pos_sales_user_today"
string="Today's Sales"
model="pos.order"
name="pos.sales.user.today"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user_today.rml"
/>
<report
id="pos_sales_user_today"
string="Today's Sales"
model="pos.order"
name="pos.sales.user.today"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user_today.rml"
/>
<report
id="pos_payment_report_date"
string="Payment Report"
model="pos.order"
name="pos.payment.report.date"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_payment_report_date.rml"
/>
<report
id="pos_payment_report_user"
string="Today's Payment By User"
model="pos.order"
name="pos.payment.report.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_payment_report_user.rml"
/>
<report
id="pos_sales_user_today_current_user"
string="Today's Sales by Current User"
model="pos.order"
name="pos.sales.user.today.current.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user_today_current_user.rml"
/>
<report
id="pos_payment_report_date"
string="Payment Report"
model="pos.order"
name="pos.payment.report.date"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_payment_report_date.rml"
/>
<report
id="pos_payment_report_user"
string="Today's Payment By User"
model="pos.order"
name="pos.payment.report.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_payment_report_user.rml"
/>
<report
id="pos_sales_user_today_current_user"
string="Today's Sales by Current User"
model="pos.order"
name="pos.sales.user.today.current.user"
auto="False"
multi="True"
menu="False"
rml="point_of_sale/report/pos_sales_user_today_current_user.rml"
/>
</data>
</data>
</openerp>
+33 -33
View File
@@ -2,42 +2,42 @@
<openerp>
<data noupdate="1">
#
# Sequences for pos.order
#
#
# Sequences for pos.order
#
<record model="ir.sequence.type" id="seq_type_pos_order">
<field name="name">POS Order</field>
<field name="code">pos.order</field>
</record>
<record model="ir.sequence" id="seq_pos_order">
<field name="name">POS Order</field>
<field name="code">pos.order</field>
<field name="prefix">POS/</field>
<field name="padding">3</field>
</record>
<record model="ir.sequence.type" id="seq_type_pos_order">
<field name="name">POS Order</field>
<field name="code">pos.order</field>
</record>
<record model="ir.sequence" id="seq_pos_order">
<field name="name">POS Order</field>
<field name="code">pos.order</field>
<field name="prefix">POS/</field>
<field name="padding">3</field>
</record>
<record model="ir.sequence.type" id="seq_type_pos_payment">
<field name="name">POS Payment</field>
<field name="code">pos.payment</field>
</record>
<record model="ir.sequence" id="seq_pos_payment">
<field name="name">POS Payment</field>
<field name="code">pos.payment</field>
<field name="prefix">Payment/</field>
<field name="padding">2</field>
</record>
<record model="ir.sequence.type" id="seq_type_pos_payment">
<field name="name">POS Payment</field>
<field name="code">pos.payment</field>
</record>
<record model="ir.sequence" id="seq_pos_payment">
<field name="name">POS Payment</field>
<field name="code">pos.payment</field>
<field name="prefix">Payment/</field>
<field name="padding">2</field>
</record>
<record model="ir.sequence.type" id="seq_type_pos_order_line">
<field name="name">POS order line</field>
<field name="code">pos.order.line</field>
</record>
<record model="ir.sequence" id="seq_pos_order_line">
<field name="name">POS order line</field>
<field name="code">pos.order.line</field>
<field name="prefix">Order Line/</field>
<field name="padding">2</field>
</record>
<record model="ir.sequence.type" id="seq_type_pos_order_line">
<field name="name">POS order line</field>
<field name="code">pos.order.line</field>
</record>
<record model="ir.sequence" id="seq_pos_order_line">
<field name="name">POS order line</field>
<field name="code">pos.order.line</field>
<field name="prefix">Order Line/</field>
<field name="padding">2</field>
</record>
</data>
</openerp>
+16 -14
View File
@@ -1,6 +1,9 @@
<?xml version="1.0"?>
<openerp>
<data>
<menuitem name="Point of Sale" id="menu_point_root" sequence="10"
icon="terp-partner"
groups="group_pos_manager,group_pos_user"/>
<record model="ir.ui.view" id="view_pos_pos_form">
<field name="name">pos.order</field>
@@ -9,11 +12,11 @@
<field name="arch" type="xml">
<form string="Sales Order POS">
<group col="6" colspan="4">
<field name="user_salesman_id" />
<field name="partner_id" on_change="onchange_partner_pricelist(partner_id)"/>
<field name="contract_number" groups="base.group_extended"/>
<field name="user_salesman_id" />
<field name="partner_id" on_change="onchange_partner_pricelist(partner_id)"/>
<field name="contract_number" groups="base.group_extended"/>
</group>
</group>
<notebook colspan="4">
<page string="Sale Order ">
<field name="lines" colspan="4" nolabel="1">
@@ -90,7 +93,7 @@
<group colspan="4">
<separator string="Invoicing" colspan="4"/>
<field name="sale_journal" domain="[('type','=','sale'),('company_id','=',company_id)]"/>
<field name="pricelist_id" domain="[('type','=','sale')]" widget="selection"/>
<field name="pricelist_id" domain="[('type','=','sale')]"/>
<field name="invoice_id"/>
<group colspan="2" col="3">
<button name="invoice" string="Create _Invoice" states="paid"/>
@@ -112,7 +115,7 @@
</page>
<page string="Notes" >
<field colspan="4" name="note" nolabel="1"/>
<field colspan="4" name="note" nolabel="1"/>
</page>
</notebook>
@@ -156,7 +159,7 @@
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="partner_id" select="1"/>
<field name="user_id" select="1" widget="selection"/>
<field name="user_id" select="1"/>
<field name="date_order" select="1" string="Order date" />
<newline/>
<group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
@@ -169,7 +172,6 @@
</field>
</record>
<menuitem name="Point of Sale" id="menu_point_root" sequence="10"/>
<menuitem name="Point of Sale" id="menu_point_of_sale" parent="menu_point_root" sequence="1" />
<menuitem name="Sales Order" parent="menu_point_of_sale" id="menu_point_ofsale" action="action_pos_pos_form" sequence="1"/>
<menuitem name="Products" id="menu_point_of_sale_product" parent="menu_point_root" sequence="2" />
@@ -186,7 +188,7 @@
<field name="view_id" ref="view_pos_order_tree"/>
<field name="domain">['|',('state_2','=','to_verify'),('state','=','advance')]</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
@@ -199,7 +201,7 @@
<field name="view_id" ref="view_pos_order_tree"/>
<field name="domain">[('state','!=', 'invoiced')]</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
<menuitem name="Invoicing" id="menu_point_of_sale_invoicing" parent="menu_point_root" sequence="4" />
@@ -212,7 +214,7 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=', 'paid')]</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
<record model="ir.actions.act_window" id="action_pos_order_tree2">
<field name="name">Point of Sale</field>
@@ -222,7 +224,7 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('date_order','&lt;=', time.strftime('%Y-%m-%d 23:59:59'))]</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
<record model="ir.actions.act_window" id="action_pos_order_tree3">
@@ -232,7 +234,7 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
<record model="ir.actions.act_window" id="action_pos_order_tree_open">
<field name="name">Opened Sales</field>
@@ -241,7 +243,7 @@
<field name="view_type">form</field>
<field name="view_mode">form,tree</field>
<field name="context">{"search_default_user_id":uid}</field>
<field name="search_view_id" ref="view_pos_order_filter"/>
<field name="search_view_id" ref="view_pos_order_filter"/>
</record>
<record model="ir.ui.view" id="view_pos_order_line">
+62 -62
View File
@@ -1,84 +1,84 @@
<?xml version="1.0"?>
<openerp>
<data>
<record model="workflow" id="wkf_pos">
<field name="name">Pos workflow</field>
<field name="osv">pos.order</field>
<field name="on_create">True</field>
</record>
<record model="workflow" id="wkf_pos">
<field name="name">Pos workflow</field>
<field name="osv">pos.order</field>
<field name="on_create">True</field>
</record>
<!-- Roles definition -->
<!-- Roles definition -->
<record model="res.roles" id="role_pos">
<field name="name">POS - Confirmation</field>
</record>
<record model="res.roles" id="role_pos">
<field name="name">POS - Confirmation</field>
</record>
<!--Activities-->
<record model="workflow.activity" id="act_draft">
<field name="wkf_id" ref="wkf_pos"/>
<field name="flow_start">True</field>
<field name="name">draft</field>
</record>
<record model="workflow.activity" id="act_draft">
<field name="wkf_id" ref="wkf_pos"/>
<field name="flow_start">True</field>
<field name="name">draft</field>
</record>
<record model="workflow.activity" id="act_paid">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">paid</field>
<field name="action">action_paid()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_paid">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">paid</field>
<field name="action">action_paid()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_done">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">done</field>
<field name="flow_stop">True</field>
<field name="action">action_done()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_done">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">done</field>
<field name="flow_stop">True</field>
<field name="action">action_done()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_invoiced">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">invoiced</field>
<field name="flow_stop">True</field>
<field name="action">action_invoice()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_invoiced">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">invoiced</field>
<field name="flow_stop">True</field>
<field name="action">action_invoice()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_cancel">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">cancel</field>
<field name="flow_stop">True</field>
<field name="action">action_cancel()</field>
<field name="kind">function</field>
</record>
<record model="workflow.activity" id="act_cancel">
<field name="wkf_id" ref="wkf_pos"/>
<field name="name">cancel</field>
<field name="flow_stop">True</field>
<field name="action">action_cancel()</field>
<field name="kind">function</field>
</record>
<!--Transitions-->
<record model="workflow.transition" id="trans_draft_paid">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_paid"/>
<field name="condition">test_paid()</field>
<field name="signal">paid</field>
</record>
<record model="workflow.transition" id="trans_draft_paid">
<field name="act_from" ref="act_draft"/>
<field name="act_to" ref="act_paid"/>
<field name="condition">test_paid()</field>
<field name="signal">paid</field>
</record>
<record model="workflow.transition" id="trans_paid_done">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_done"/>
<field name="signal">done</field>
</record>
<record model="workflow.transition" id="trans_paid_done">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_done"/>
<field name="signal">done</field>
</record>
<record model="workflow.transition" id="trans_paid_invoice">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_invoiced"/>
<field name="signal">invoice</field>
</record>
<record model="workflow.transition" id="trans_paid_invoice">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_invoiced"/>
<field name="signal">invoice</field>
</record>
<record model="workflow.transition" id="trans_paid_cancel">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_cancel"/>
<field name="signal">cancel</field>
</record>
<record model="workflow.transition" id="trans_paid_cancel">
<field name="act_from" ref="act_paid"/>
<field name="act_to" ref="act_cancel"/>
<field name="signal">cancel</field>
</record>
</data>
File diff suppressed because one or more lines are too long
+2 -500
View File
@@ -1,505 +1,7 @@
<?xml version="1.0" ?>
<openerp>
<data>
<data>
<record id="res_users_shopuser0" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_partner_manager')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Fabien')]"/>
<field eval="[(6,0,[ref('purchase.res_roles_purchase0'),ref('sale.res_roles_salesman0')])]" name="roles_id"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;en_US&quot;&quot;&quot;" name="context_lang"/>
<field eval="&quot;&quot;&quot;Shop 1 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="stock.res_company_shop0"/>
<field name="company_ids" eval="[(4, ref('stock.res_company_shop0'))]"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="res_users_shopuser1" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_partner_manager')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Eric')]"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;Shop 2 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="stock.res_company_tinyshop0"/>
<field name="company_ids" eval="[(4, ref('stock.res_company_tinyshop0'))]"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="ir_rule_0" model="ir.rule">
<field name="name">POS line</field>
<field name="model_id" ref="model_pos_order_line"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
</data>
<data>
<record id="res_groups_posuserposline0" model="res.groups">
<field eval="[(6,0,[ref('point_of_sale.menu_action_pos_order_line'),ref('point_of_sale.menu_action_pos_order_line_day')])]" name="menu_access"/>
<field eval="[(6,0,[ref('ir_rule_0')])]" name="rule_groups"/>
<field eval="[(6,0,[ref('res_users_shopuser0'),ref('res_users_shopuser1')])]" name="users"/>
<field eval="&quot;&quot;&quot;POS_user_pos_line&quot;&quot;&quot;" name="name"/>
</record>
<record id="ir_model_access_posorderline0_1" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order.line&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuserposline0"/>
</record>
<record id="ir_model_access_posorder0_1" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuserposline0"/>
</record>
</data>
<data>
<record id="ir_rule_0" model="ir.rule">
<field eval="&quot;&quot;&quot;point&quot;&quot;&quot;" name="name"/>
<field name="model_id" ref="model_pos_order"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="ir_rule_group_posreporting0" model="ir.rule">
<field name="model_id" ref="point_of_sale.model_report_transaction_pos"/>
<field eval="&quot;&quot;&quot;POS Reporting&quot;&quot;&quot;" name="name"/>
<field name="global" eval="True"/>
</record>
<record id="ir_rule_5" model="ir.rule">
<field name="model_id" ref="point_of_sale.model_report_transaction_pos"/>
<field name="domain_force">['|',('user_id','=',False),('user_id','=',[user.id])]</field>
</record>
</data>
<data>
<record id="res_groups_posuser0" model="res.groups">
<field eval="[(6,0,[ref('point_of_sale.menu_point_ofsale'),
ref('point_of_sale.menu_point_config'),
ref('stock.menu_action_location_form'),
ref('stock.menu_action_location_tree'),
ref('stock.menu_picking_waiting'),
ref('stock.menu_action_picking_tree3'),
ref('stock.menu_action_picking_tree5'),
ref('stock.menu_action_picking_form'),
ref('stock.menu_action_picking_tree7'),
ref('stock.menu_action_picking_tree8'),
ref('stock.menu_action_picking_tree9'),
ref('procurement.menu_mrp_procurement_action3'),
ref('point_of_sale.menu_point_root')])]" name="menu_access"/>
<field eval="[(6,0,[ref('res_users_shopuser0'),ref('res_users_shopuser1')])]" name="users"/>
<field eval="[(6,0,[ref('point_of_sale.ir_rule_group_point0'),ref('point_of_sale.ir_rule_group_poslinecompany0'),ref('point_of_sale.ir_rule_group_posreporting0')])]" name="rule_groups"/>
<field eval="&quot;&quot;&quot;POS_user&quot;&quot;&quot;" name="name"/>
</record>
<record id="ir_model_access_point0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_reporttransacationpos0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_report_transaction_pos"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;report.transacation.pos&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_posorderline0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order.line&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modelsmrp_pdt0" model="ir.model.access">
<field name="model_id" ref="procurement.model_procurement_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;MRP - Procurement&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modelsupp_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_supplierinfo"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Supplier Infos&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modeluom_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_uom"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - UOM&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountmoveline0" model="ir.model.access">
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Move Line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountmove0" model="ir.model.access">
<field name="model_id" ref="account.model_account_move"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Ledger Posting&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountjournal0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Journal&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_saleshop0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_shop"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.shop&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockwarehouse0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_warehouse"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.warehouse&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockwarehouseorderpoint0" model="ir.model.access">
<field name="model_id" ref="procurement.model_stock_warehouse_orderpoint"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.warehouse.orderpoint&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stocklocation0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_location"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.location&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_saleorder0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.order&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
</record>
<record id="ir_model_access_saleorderline0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.order.line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_purchaseorder0" model="ir.model.access">
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;purchase.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_purchaseorderlines0" model="ir.model.access">
<field name="model_id" ref="purchase.model_purchase_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Purchase Order lines&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_inv0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Invoice&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_invorderlines0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Invoice lines&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_acc0" model="ir.model.access">
<field name="model_id" ref="account.model_account_account"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_period0" model="ir.model.access">
<field name="model_id" ref="account.model_account_period"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Period&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalperiod0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_period"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal - Period&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_values0" model="ir.model.access">
<field name="model_id" ref="base.model_ir_values"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;values&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_prop0" model="ir.model.access">
<field name="model_id" ref="base.model_ir_property"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;properties&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_pdt_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_product"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Product&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_pdt_tmplt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_template"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Template&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountinvtax0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice_tax"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Invoice Tax&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricelist0" model="ir.model.access">
<field name="model_id" ref="product.model_product_pricelist"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.pricelist&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricelisttype0" model="ir.model.access">
<field name="model_id" ref="product.model_product_pricelist_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.pricelist.type&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricetype0" model="ir.model.access">
<field name="model_id" ref="product.model_product_price_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.price.type&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productcategory0" model="ir.model.access">
<field name="model_id" ref="product.model_product_category"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.category&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockpicking0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_picking"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.picking&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockmove0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_move"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.move&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productunitofmeasure0" model="ir.model.access">
<field name="model_id" ref="product.model_product_uom"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product Unit of Measure&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalview0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_view"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal View&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalcolumn0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_column"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal Column&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_paymenttermline0" model="ir.model.access">
<field name="model_id" ref="account.model_account_payment_term_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Payment Term Line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_paymentterm0" model="ir.model.access">
<field name="model_id" ref="account.model_account_payment_term"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Payment Term&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_rescompany0" model="ir.model.access">
<field name="model_id" ref="base.model_res_company"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;res.company&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accounttype0" model="ir.model.access">
<field name="model_id" ref="account.model_account_account_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Type&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_procurement0" model="ir.model.access">
<field name="model_id" ref="procurement.model_procurement_order" />
<field eval="1" name="perm_read" />
<field eval="1" name="perm_write" />
<field eval="1" name="perm_create" />
<field eval="0" name="perm_unlink" />
<field name="name" eval="&quot;&quot;&quot;procurement.order&quot;&quot;&quot;" />
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_tax0" model="ir.model.access">
<field name="model_id" ref="account.model_account_tax"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;TAX&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<menuitem
id="stock.next_id_61"
name="Reporting"
parent="stock.menu_stock_root" groups="base.group_user"/>
<menuitem action="stock.action_picking_tree" id="stock.menu_action_picking_tree" parent="stock.menu_stock_warehouse_mgmt" sequence="19" groups="res_groups_posuser0"/>
<!-- <menuitem id="procurement.menu_mrp_reordering" name="Automatic Procurements" parent="stock.menu_stock_root" sequence="4" groups="base.group_user"/>-->
<menuitem parent="stock.next_id_61" action="stock.action_stock_line_date" id="stock.menu_report_stock_line_date" groups="base.group_user"/>
</data>
</data>
</openerp>
+8 -583
View File
@@ -1,592 +1,17 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record id="res_partner_tinyshop0" model="res.partner">
<field eval="0" name="customer"/>
<field eval="0" name="supplier"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Tiny Shop 1&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_partner_address_fabien0" model="res.partner.address">
<field eval="&quot;&quot;&quot;Fabien&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;92000&quot;&quot;&quot;" name="zip"/>
<field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
<field name="partner_id" ref="res_partner_tinyshop0"/>
<field name="country_id" ref="base.fr"/>
<field eval="&quot;&quot;&quot;Avenue de Paris&quot;&quot;&quot;" name="street"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;default&quot;&quot;&quot;" name="type"/>
</record>
<record id="res_company_shop0" model="res.company">
<field eval="5.0" name="security_lead"/>
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop0"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 1&quot;&quot;&quot;" name="name"/>
<data>
</record>
<record id="res_partner_tinyshop1" model="res.partner">
<field eval="1" name="customer"/>
<field eval="0" name="supplier"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;Tiny Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_partner_address_eric0" model="res.partner.address">
<field eval="&quot;&quot;&quot;Eric&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;1500&quot;&quot;&quot;" name="zip"/>
<field eval="&quot;&quot;&quot;M.&quot;&quot;&quot;" name="title"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field name="country_id" ref="base.fr"/>
<field eval="&quot;&quot;&quot;Avenue de la Resistance&quot;&quot;&quot;" name="street"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;default&quot;&quot;&quot;" name="type"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1" name="active"/>
</record>
<record id="res_company_tinyshop0" model="res.company">
<field name="currency_id" ref="base.EUR"/>
<field eval="1.0" name="po_lead"/>
<field name="partner_id" ref="res_partner_tinyshop1"/>
<field eval="1.0" name="manufacturing_lead"/>
<field name="parent_id" ref="base.main_company"/>
<field eval="80.0" name="schedule_range"/>
<field eval="&quot;&quot;&quot;Shop 2&quot;&quot;&quot;" name="name"/>
</record>
<record id="res_users_shopuser0" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_partner_manager')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Fabien')]"/>
<field eval="[(6,0,[ref('purchase.res_roles_purchase0'),ref('sale.res_roles_salesman0')])]" name="roles_id"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;en_US&quot;&quot;&quot;" name="context_lang"/>
<field eval="&quot;&quot;&quot;Shop 1 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;shop1&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="res_users_shopuser1" model="res.users">
<field model="ir.actions.actions" name="menu_id" search="[('name','=','Menu')]"/>
<field eval="[(6,0,[ref('base.group_partner_manager')])]" name="groups_id"/>
<field model="res.partner.address" name="address_id" search="[('name','=','Eric')]"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="password"/>
<field eval="&quot;&quot;&quot;Shop 2 User&quot;&quot;&quot;" name="name"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="&quot;&quot;&quot;shop2&quot;&quot;&quot;" name="login"/>
<field model="ir.actions.actions" name="action_id" search="[('name','=','Menu')]"/>
</record>
<record id="ir_rule_group_posline0" model="ir.rule.group">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="&quot;&quot;&quot;POS line&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="ir_rule_0" model="ir.rule">
<field eval="&quot;&quot;&quot;child_of&quot;&quot;&quot;" name="operator"/>
<field eval="&quot;&quot;&quot;user.company_id.id&quot;&quot;&quot;" name="operand"/>
<field name="field_id" ref="point_of_sale.field_pos_order_line_company_id"/>
<field name="rule_group" ref="ir_rule_group_posline0"/>
</record>
</data>
<data>
<record id="res_groups_posuserposline0" model="res.groups">
<field eval="[(6,0,[ref('point_of_sale.menu_action_pos_order_line'),ref('point_of_sale.menu_action_pos_order_line_day')])]" name="menu_access"/>
<field eval="[(6,0,[ref('ir_rule_group_posline0')])]" name="rule_groups"/>
<field eval="[(6,0,[ref('res_users_shopuser0'),ref('res_users_shopuser1')])]" name="users"/>
<field eval="&quot;&quot;&quot;POS_user_pos_line&quot;&quot;&quot;" name="name"/>
</record>
<record id="ir_model_access_posorderline0_1" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order.line&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuserposline0"/>
</record>
<record id="ir_model_access_posorder0_1" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuserposline0"/>
</record>
</data>
<data>
<record id="ir_rule_group_point0" model="ir.rule.group">
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field eval="&quot;&quot;&quot;point&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="ir_rule_0" model="ir.rule">
<field eval="&quot;&quot;&quot;child_of&quot;&quot;&quot;" name="operator"/>
<field eval="&quot;&quot;&quot;user.company_id.id&quot;&quot;&quot;" name="operand"/>
<field name="field_id" ref="point_of_sale.field_pos_order_company_id"/>
<field name="rule_group" ref="ir_rule_group_point0"/>
</record>
<record id="ir_rule_group_poslinecompany0" model="ir.rule.group">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="&quot;&quot;&quot;POS line company&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="ir_rule_4" model="ir.rule">
<field eval="&quot;&quot;&quot;child_of&quot;&quot;&quot;" name="operator"/>
<field eval="&quot;&quot;&quot;user.company_id.id&quot;&quot;&quot;" name="operand"/>
<field name="field_id" ref="point_of_sale.field_pos_order_line_company_id"/>
<field name="rule_group" ref="ir_rule_group_poslinecompany0"/>
</record>
<record id="ir_rule_group_posreporting0" model="ir.rule.group">
<field name="model_id" ref="point_of_sale.model_report_transaction_pos"/>
<field eval="&quot;&quot;&quot;POS Reporting&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="ir_rule_5" model="ir.rule">
<field eval="&quot;&quot;&quot;=&quot;&quot;&quot;" name="operator"/>
<field eval="&quot;&quot;&quot;user.id&quot;&quot;&quot;" name="operand"/>
<field name="field_id" ref="point_of_sale.field_report_transaction_pos_user_id"/>
<field name="rule_group" ref="ir_rule_group_posreporting0"/>
</record>
</data>
<data>
<record id="res_groups_posuser0" model="res.groups">
<field eval="[(6,0,[ref('point_of_sale.menu_point_ofsale'),
ref('point_of_sale.menu_point_config'),
ref('stock.menu_action_location_form'),
ref('stock.menu_action_location_tree'),
ref('stock.menu_picking_waiting'),
ref('stock.menu_action_picking_tree3'),
ref('stock.menu_action_picking_tree5'),
ref('stock.menu_action_picking_form'),
ref('stock.menu_action_picking_tree7'),
ref('stock.menu_action_picking_tree8'),
ref('stock.menu_action_picking_tree9'),
ref('procurement.menu_mrp_procurement_action3'),
ref('point_of_sale.menu_point_root')])]" name="menu_access"/>
<field eval="[(6,0,[ref('point_of_sale.ir_rule_group_point0'),ref('point_of_sale.ir_rule_group_poslinecompany0'),ref('point_of_sale.ir_rule_group_posreporting0')])]" name="rule_groups"/>
<field eva="[(6,0,[ref('res_users_shopuser0'),ref('res_users_shopuser1')])]" name="users"/>
<field eval="&quot;&quot;&quot;POS_user&quot;&quot;&quot;" name="name"/>
</record>
<record id="ir_model_access_point0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_reporttransacationpos0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_report_transaction_pos"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;report.transacation.pos&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_posorderline0" model="ir.model.access">
<field name="model_id" ref="point_of_sale.model_pos_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;pos.order.line&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modelsmrp_pdt0" model="ir.model.access">
<field name="model_id" ref="procurement.model_procurement_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;MRP - Procurement&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modelsupp_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_supplierinfo"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Supplier Infos&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_modeluom_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_uom"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - UOM&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountmoveline0" model="ir.model.access">
<field name="model_id" ref="account.model_account_move_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Move Line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountmove0" model="ir.model.access">
<field name="model_id" ref="account.model_account_move"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Ledger Posting&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountjournal0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Journal&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_saleshop0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_shop"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.shop&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockwarehouse0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_warehouse"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.warehouse&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockwarehouseorderpoint0" model="ir.model.access">
<field name="model_id" ref="mrp.model_stock_warehouse_orderpoint"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.warehouse.orderpoint&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stocklocation0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_location"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.location&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_saleorder0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.order&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_saleorderline0" model="ir.model.access">
<field name="model_id" ref="sale.model_sale_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;sale.order.line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_purchaseorder0" model="ir.model.access">
<field name="model_id" ref="purchase.model_purchase_order"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;purchase.order&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_purchaseorderlines0" model="ir.model.access">
<field name="model_id" ref="purchase.model_purchase_order_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Purchase Order lines&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_inv0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Invoice&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_invorderlines0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Invoice lines&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_acc0" model="ir.model.access">
<field name="model_id" ref="account.model_account_account"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_period0" model="ir.model.access">
<field name="model_id" ref="account.model_account_period"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Period&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalperiod0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_period"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal - Period&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_values0" model="ir.model.access">
<field name="model_id" ref="base.model_ir_values"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;values&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_prop0" model="ir.model.access">
<field name="model_id" ref="base.model_ir_property"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;properties&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_pdt_pdt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_product"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Product&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_pdt_tmplt0" model="ir.model.access">
<field name="model_id" ref="product.model_product_template"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product - Template&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accountinvtax0" model="ir.model.access">
<field name="model_id" ref="account.model_account_invoice_tax"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Invoice Tax&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricelist0" model="ir.model.access">
<field name="model_id" ref="product.model_product_pricelist"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.pricelist&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricelisttype0" model="ir.model.access">
<field name="model_id" ref="product.model_product_pricelist_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.pricelist.type&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productpricetype0" model="ir.model.access">
<field name="model_id" ref="product.model_product_price_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.price.type&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productcategory0" model="ir.model.access">
<field name="model_id" ref="product.model_product_category"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;product.category&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockpicking0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_picking"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.picking&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_stockmove0" model="ir.model.access">
<field name="model_id" ref="stock.model_stock_move"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;stock.move&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_productunitofmeasure0" model="ir.model.access">
<field name="model_id" ref="product.model_product_uom"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Product Unit of Measure&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalview0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_view"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal View&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_journalcolumn0" model="ir.model.access">
<field name="model_id" ref="account.model_account_journal_column"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Journal Column&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_paymenttermline0" model="ir.model.access">
<field name="model_id" ref="account.model_account_payment_term_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Payment Term Line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_paymentterm0" model="ir.model.access">
<field name="model_id" ref="account.model_account_payment_term"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Payment Term&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_rescompany0" model="ir.model.access">
<field name="model_id" ref="base.model_res_company"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;res.company&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_accounttype0" model="ir.model.access">
<field name="model_id" ref="account.model_account_account_type"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;Account Type&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_procurement0" model="ir.model.access">
<field name="model_id" ref="procurement.model_procurement_order" />
<field eval="1" name="perm_read" />
<field eval="1" name="perm_write" />
<field eval="1" name="perm_create" />
<field eval="0" name="perm_unlink" />
<field name="name" eval="&quot;&quot;&quot;procurement.order&quot;&quot;&quot;" />
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<record id="ir_model_access_tax0" model="ir.model.access">
<field name="model_id" ref="account.model_account_tax"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;TAX&quot;&quot;&quot;" name="name"/>
<field eval="1" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="res_groups_posuser0"/>
</record>
<menuitem
<menuitem
id="stock.next_id_61"
name="Reporting"
parent="stock.menu_stock_root" groups="base.group_user"/>
<!-- <menuitem-->
<!-- id="stock.next_id_62"-->
<!-- name="Traceability"-->
<!-- parent="stock.next_id_61" groups="base.group_user"/>-->
<!-- <menuitem id="stock.menu_traceability_low" name="Low Level" parent="stock.menu_traceability" groups="base.group_user"/>-->
<menuitem action="stock.action_picking_tree" id="stock.menu_action_picking_tree" parent="stock.menu_stock_root" sequence="19" groups="res_groups_posuser0"/>
<menuitem parent="stock.next_id_61" action="stock.action_stock_line_date" id="stock.menu_report_stock_line_date" groups="base.group_user"/>
</data>
<menuitem action="stock.action_picking_tree" id="stock.menu_action_picking_tree"
parent="stock.menu_stock_root" sequence="19" groups="res_groups_posuser0"/>
<menuitem parent="stock.next_id_61" action="stock.action_stock_line_date"
id="stock.menu_report_stock_line_date" groups="base.group_user"/>
</data>
</openerp>
+2 -319
View File
@@ -1,324 +1,7 @@
<?xml version="1.0" ?>
<openerp>
<data>
<data>
<record id="ir_sequence_accountjournal0" model="ir.sequence">
<field eval="&quot;&quot;&quot;account.journal&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;Account Journal&quot;&quot;&quot;" name="name"/>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
<field eval="1" name="active"/>
</record>
<record id="ir_sequence_vis0" model="ir.sequence">
<field eval="&quot;&quot;&quot;account.journal&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;vis&quot;&quot;&quot;" name="name"/>
<field eval="1" name="number_next"/>
<field eval="3" name="padding"/>
<field eval="1" name="number_increment"/>
<field eval="&quot;&quot;&quot;vis&quot;&quot;&quot;" name="prefix"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;001&quot;&quot;&quot;" name="suffix"/>
</record>
<record id="ir_sequence_tra0" model="ir.sequence">
<field eval="&quot;&quot;&quot;account.journal&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;tra&quot;&quot;&quot;" name="name"/>
<field eval="1" name="number_next"/>
<field eval="3" name="padding"/>
<field eval="1" name="number_increment"/>
<field eval="&quot;&quot;&quot;tra&quot;&quot;&quot;" name="prefix"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;001&quot;&quot;&quot;" name="suffix"/>
</record>
<record id="ir_sequence_ch0" model="ir.sequence">
<field eval="&quot;&quot;&quot;account.journal&quot;&quot;&quot;" name="code"/>
<field eval="&quot;&quot;&quot;ch&quot;&quot;&quot;" name="name"/>
<field eval="1" name="number_next"/>
<field eval="3" name="padding"/>
<field eval="1" name="number_increment"/>
<field eval="&quot;&quot;&quot;ch&quot;&quot;&quot;" name="prefix"/>
<field eval="1" name="active"/>
<field eval="&quot;&quot;&quot;001&quot;&quot;&quot;" name="suffix"/>
</record>
<record id="account_journal_xtransfer0" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;TRA&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_tra0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="base.main_company"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;CashBox&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xvisa0" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;Carte de crédit&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_vis0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="base.main_company"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;x Visa&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xcheque0" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;CHQ&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_ch0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="base.main_company"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;x Voucher&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="s_product_pos" model="product.product">
<field name="name">CashOut</field>
<field name="categ_id" ref="product.cat1"/>
<field name="type">service</field>
<field name="expense_pdt">True</field>
<field name="list_price">0.0</field>
<field name="standard_price">0.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="company_id" ref="base.main_company"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
</record>
<record id="e_product_pos" model="product.product">
<field name="name">CashIn</field>
<field name="categ_id" ref="product.cat1"/>
<field name="type">service</field>
<field name="income_pdt">True</field>
<field name="list_price">0.0</field>
<field name="standard_price">0.0</field>
<field name="uom_id" ref="product.product_uom_unit"/>
<field name="company_id" ref="base.main_company"/>
<field name="uom_po_id" ref="product.product_uom_unit"/>
</record>
<record id="account_journal_xtransfer1" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;TRA&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_tra0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;CashBox Shop2&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xvisa1" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;Carte de crédit&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_vis0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;Credit Card Shop2&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xcheque1" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;CHQ&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_ch0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_tinyshop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;Voucher Shop2&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="sales_journal_cof" model="account.journal">
<field name="name">Cofinoga Shop2</field>
<field name="code">COF</field>
<field name="type">cash</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="account.a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="account.a_sale"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="res_company_tinyshop0"/>
</record>
<record id="sales_journal_comp" model="account.journal">
<field name="name">Sales Journal Shop 2</field>
<field name="code">SAJ</field>
<field name="type">sale</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="account.a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="account.a_sale"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="res_company_tinyshop0"/>
</record>
<record id="account_journal_xtransfer2" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;TRA&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_tra0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;CashBox Shop 1&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xvisa2" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;Carte de crédit&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_vis0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;Credit Card Shop1&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="account_journal_xcheque2" model="account.journal">
<field eval="[(6,0,[])]" name="groups_id"/>
<field eval="&quot;&quot;&quot;CHQ&quot;&quot;&quot;" name="code"/>
<field eval="[(6,0,[])]" name="account_control_ids"/>
<field name="statement_sequence_id" ref="ir_sequence_ch0"/>
<field name="user_id" ref="base.user_root"/>
<field eval="0" name="centralisation"/>
<field eval="0" name="group_invoice_lines"/>
<field name="company_id" ref="res_company_shop0"/>
<field eval="&quot;&quot;&quot;cash&quot;&quot;&quot;" name="type"/>
<field name="default_credit_account_id" ref="account.a_sale"/>
<field name="default_debit_account_id" ref="account.a_sale"/>
<field name="view_id" ref="account.account_journal_bank_view"/>
<field eval="[(6,0,[])]" name="type_control_ids"/>
<field name="sequence_id" ref="ir_sequence_accountjournal0"/>
<field eval="1" name="active"/>
<field eval="0" name="update_posted"/>
<field eval="&quot;&quot;&quot;x Voucher Shop1&quot;&quot;&quot;" name="name"/>
<field eval="0" name="refund_journal"/>
<field eval="0" name="entry_posted"/>
</record>
<record id="sales_journal_cof2" model="account.journal">
<field name="name">Cofinoga Shop1</field>
<field name="code">COF</field>
<field name="type">cash</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="account.a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="account.a_sale"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="sales_journal_comp2" model="account.journal">
<field name="name">Sales Journal Shop1</field>
<field name="code">SAJ</field>
<field name="type">sale</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="account.a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="account.a_sale"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="res_company_shop0"/>
</record>
<record id="sales_journal_cofm" model="account.journal">
<field name="name">Cofinoga Central</field>
<field name="code">COF</field>
<field name="type">cash</field>
<field name="view_id" ref="account.account_journal_view"/>
<field name="sequence_id" ref="account.sequence_sale_journal"/>
<field model="account.account" name="default_credit_account_id" ref="account.a_sale"/>
<field model="account.account" name="default_debit_account_id" ref="account.a_sale"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="base.main_company"/>
</record>
<record id="point_of_sale.pos_order_posadvance" model="pos.order">
<field name="sale_journal" ref="sales_journal_comp2"/>
</record>
</data>
</data>
</openerp>
+2 -37
View File
@@ -1,41 +1,6 @@
<?xml version="1.0" ?>
<openerp>
<data>
<data>
<record id="ir_model_access_statemt" model="ir.model.access">
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;account.bank.statement&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="point_of_sale.res_groups_posuser0"/>
</record>
<record id="ir_model_access_statemtline" model="ir.model.access">
<field name="model_id" ref="account.model_account_bank_statement_line"/>
<field eval="1" name="perm_read"/>
<field eval="&quot;&quot;&quot;account.bank.statement.line&quot;&quot;&quot;" name="name"/>
<field eval="0" name="perm_unlink"/>
<field eval="1" name="perm_write"/>
<field eval="1" name="perm_create"/>
<field name="group_id" ref="point_of_sale.res_groups_posuser0"/>
</record>
<record id="ir_rule_group_bankstatementcompany0" model="ir.rule">
<field name="model_id" ref="account.model_account_bank_statement"/>
<field eval="&quot;&quot;&quot;Bank Statement company&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="ir_rule_group_bankstatementlinecompany0" model="ir.rule">
<field name="model_id" ref="account.model_account_bank_statement_line"/>
<field eval="&quot;&quot;&quot;Bank Statement line Company&quot;&quot;&quot;" name="name"/>
<field eval="1" name="global"/>
</record>
<record id="point_of_sale.res_groups_posuser0" model="res.groups">
<field eval="[(6,0,[ref('product.menu_config_product'),ref('product.menu_product_category_action_form'),ref('point_of_sale.menu_point_ofsale'),ref('point_of_sale.menu_point_config'),ref('point_of_sale.menu_statement_tree_all'),ref('stock.menu_stock_root'),ref('stock.menu_action_location_form'),ref('stock.menu_action_location_tree'),ref('stock.menu_picking_waiting'),ref('stock.menu_action_picking_tree3'),ref('stock.menu_action_picking_tree5'),ref('stock.menu_action_picking_form'),ref('stock.menu_action_picking_tree7'),ref('stock.menu_action_picking_tree8'),ref('stock.menu_action_picking_tree9'),ref('procurement.menu_mrp_procurement_action3'),ref('procurement.menu_mrp_procurement_new'),ref('mrp.next_id_77'),ref('mrp.menu_report_workcenter_load'),ref('mrp.menu_report_in_out_picking'),ref('base.menu_sales'),ref('sale.menu_action_shop_form'),ref('sale.menu_sale_order'),ref('sale.menu_action_order_tree'),ref('sale.menu_action_order_tree_all'),ref('sale.menu_action_order_tree2'),ref('sale.menu_action_order_tree3'),ref('sale.menu_action_order_tree7'),ref('sale.menu_action_order_tree8'),ref('sale.menu_action_order_line_tree1'),ref('delivery.menu_action_delivery_carrier_form'),ref('delivery.menu_action_delivery_grid_form'),ref('point_of_sale.menu_point_root')])]" name="menu_access"/>
<field eval="[(6,0,[ref('ir_rule_group_bankstatementcompany0'),ref('ir_rule_group_bankstatementlinecompany0'),ref('point_of_sale.ir_rule_group_point0'),ref('point_of_sale.ir_rule_group_poslinecompany0'),ref('point_of_sale.ir_rule_group_posreporting0')])]" name="rule_groups"/>
<field eval="&quot;&quot;&quot;POS_user&quot;&quot;&quot;" name="name"/>
</record>
</data>
</data>
</openerp>
+58 -58
View File
@@ -1,69 +1,69 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<openerp>
<data>
<data>
<report
id="pos_users_product_re"
string="User's Product"
model="account.bank.statement"
name="pos.user.product"
auto="False"
multi="True"
rml="point_of_sale/report/pos_users_product.rml"
/>
<report
id="pos_users_product_re"
string="User's Product"
model="account.bank.statement"
name="pos.user.product"
auto="False"
multi="True"
rml="point_of_sale/report/pos_users_product.rml"
/>
<report
id="account_statement"
string="Statement"
model="account.bank.statement"
name="account.statement"
auto="False"
multi="True"
rml="point_of_sale/report/account_statement.rml"
/>
<report
id="account_statement"
string="Statement"
model="account.bank.statement"
name="account.statement"
auto="False"
multi="True"
rml="point_of_sale/report/account_statement.rml"
/>
<report
id="all_closed_cashbox_of_the_day"
string="All Cloded CashBOx"
model="account.bank.statement"
name="all.closed.cashbox.of.the.day"
auto="False"
multi="True"
menu = 'False'
rml="point_of_sale/report/all_closed_cashbox_of_the_day.rml"
/>
<report
id="all_closed_cashbox_of_the_day"
string="All Cloded CashBOx"
model="account.bank.statement"
name="all.closed.cashbox.of.the.day"
auto="False"
multi="True"
menu = 'False'
rml="point_of_sale/report/all_closed_cashbox_of_the_day.rml"
/>
<report
id="pos_users_product_re"
string="User's Product"
model="account.bank.statement"
name="pos.user.product"
auto="False"
multi="True"
rml="point_of_sale/report/pos_users_product.rml"
/>
<report
id="pos_users_product_re"
string="User's Product"
model="account.bank.statement"
name="pos.user.product"
auto="False"
multi="True"
rml="point_of_sale/report/pos_users_product.rml"
/>
<report
id="account_statement"
string="Statement"
model="account.bank.statement"
name="account.statement"
auto="False"
multi="True"
rml="point_of_sale/report/account_statement.rml"
/>
<report
id="account_statement"
string="Statement"
model="account.bank.statement"
name="account.statement"
auto="False"
multi="True"
rml="point_of_sale/report/account_statement.rml"
/>
<report
id="all_closed_cashbox_of_the_day"
string="All Cloded CashBOx"
model="account.bank.statement"
name="all.closed.cashbox.of.the.day"
auto="False"
multi="True"
menu = 'False'
rml="point_of_sale/report/all_closed_cashbox_of_the_day.rml"
/>
<report
id="all_closed_cashbox_of_the_day"
string="All Cloded CashBOx"
model="account.bank.statement"
name="all.closed.cashbox.of.the.day"
auto="False"
multi="True"
menu = 'False'
rml="point_of_sale/report/all_closed_cashbox_of_the_day.rml"
/>
</data>
</data>
</openerp>
+3 -2
View File
@@ -1,5 +1,6 @@
<?xml version="1.0" ?>
<openerp>
<data>
</data>
<data>
</data>
</openerp>
+149 -149
View File
@@ -55,32 +55,32 @@
<field name="balance_end_real"/>
<notebook colspan="4">
<page string="Starting Details">
<field name="starting_details_ids" nolabel = "1" colspan="4">
<tree string = "Starting Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
<field name="starting_details_ids" nolabel = "1" colspan="4">
<tree string = "Starting Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
</page>
<page string="Ending Details">
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
</page>
<page string="Entry encoding">
<field colspan="4" name="line_ids" nolabel="1">
@@ -132,18 +132,18 @@
<field name="balance_end_real"/>
<notebook colspan="4">
<page string="Details">
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number, parent.balance_end)"/>
<field name="subtotal"/>
</form>
</field>
</page>
<page string="Entry encoding">
<field colspan="4" name="line_ids" nolabel="1">
@@ -185,18 +185,18 @@
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="domain">[('user_id','=',uid)]</field>
</record>
<record model="ir.actions.act_window.view" id="act_statement1_all">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_bank_statement_tree_all"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement2_all">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_bank_statement_tree_all"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement1_all">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_bank_statement_tree_all"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement2_all">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_bank_statement_tree_all"/>
</record>
<!-- <menuitem action="action_bank_statement_tree_all" id="menu_statement_tree_all" parent="point_of_sale.menu_point_root" sequence="2"/-->
<!-- <menuitem action="action_bank_statement_tree_all" id="menu_statement_tree_all" parent="point_of_sale.menu_point_root" sequence="2"/>
@@ -213,18 +213,18 @@
</record>
<record model="ir.actions.act_window.view" id="act_statement1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_bank_statement_tree1"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_bank_statement_tree1"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_bank_statement_tree1"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_bank_statement_tree1"/>
</record>
<!-- <menuitem action="action_bank_statement_tree1" id="menu_statement_tree1" parent="menu_statement_tree_all" sequence="2"/>-->
@@ -265,32 +265,32 @@
<page string="Starting Details">
<field name="balance_end" colspan="4" nolabel="1"/>
<newline/>
<field name="starting_details_ids" nolabel = "1" colspan="4">
<tree string = "Starting Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Starting Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal"/>
</form>
</field>
<field name="starting_details_ids" nolabel = "1" colspan="4">
<tree string = "Starting Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Starting Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal"/>
</form>
</field>
</page>
<page string="Ending Details">
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal"/>
</form>
</field>
<field name="ending_details_ids" nolabel = "1" colspan="4">
<tree string = "Ending Details" editable="bottom">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal" sum="Total"/>
</tree>
<form string = "Ending Details">
<field name="pieces"/>
<field name="number" on_change="on_change_sub(pieces,number)"/>
<field name="subtotal"/>
</form>
</field>
</page>
</notebook>
<group col="7" colspan="4">
@@ -332,45 +332,45 @@
<field name="domain">[('state','=','draft'),('user_id','=',uid)]</field>
</record>
<record model="ir.actions.act_window.view" id="act_statement12">
<field name="sequence" eval="2"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree2"/>
<field name="act_window_id" ref="action_bank_statement_treenew"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement22">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form2"/>
<field name="act_window_id" ref="action_bank_statement_treenew"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement12">
<field name="sequence" eval="2"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree2"/>
<field name="act_window_id" ref="action_bank_statement_treenew"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement22">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form2"/>
<field name="act_window_id" ref="action_bank_statement_treenew"/>
</record>
<!-- <menuitem action="action_bank_statement_treenew" id="menu_statement_tree2" parent="menu_statement_tree_all" sequence="1"/>-->
<menuitem action="action_bank_statement_treenew" id="menu_statement_tree2" parent="menu_statement_tree_all" sequence="1"/>
<record model="ir.actions.act_window" id="action_pos_account_bank_statment">
<record model="ir.actions.act_window" id="action_pos_account_bank_statment">
<field name="name">All Cashboxes</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.bank.statement</field>
<field name="view_type">form</field>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_pos_account_bank_statment"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form3"/>
<field name="act_window_id" ref="action_pos_account_bank_statment"/>
</record>
<menuitem name="All Cashboxes" parent="menu_point_report_register"
action="action_pos_account_bank_statment" id="menu_pos_bank_statment_tree" groups="base.group_extended" sequence="4"/>
<record model="ir.actions.act_window.view" id="act_statement_a1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_pos_account_bank_statment"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form3"/>
<field name="act_window_id" ref="action_pos_account_bank_statment"/>
</record>
<menuitem name="All Cashboxes" parent="menu_point_report_register"
action="action_pos_account_bank_statment" id="menu_pos_bank_statment_tree" groups="base.group_extended" sequence="4"/>
<record model="ir.actions.act_window" id="action_my_all_pos_account_bank_statment">
<record model="ir.actions.act_window" id="action_my_all_pos_account_bank_statment">
<field name="name">All My Cashboxes</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.bank.statement</field>
@@ -378,22 +378,22 @@
<field name="domain">[('user_id','=',uid)]</field>
</record>
<record model="ir.actions.act_window.view" id="act_my_all_statement_a1">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_my_all_pos_account_bank_statment"/>
</record>
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_my_all_pos_account_bank_statment"/>
</record>
<record model="ir.actions.act_window.view" id="act_my_all_statement_a2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_my_all_pos_account_bank_statment"/>
</record>
<!-- <menuitem name="All My Cashboxes" parent="menu_statement_tree_all"-->
<!-- action="action_my_all_pos_account_bank_statment" id="menu_my_pos_bank_statment_tree" sequence="3"/>-->
<record model="ir.actions.act_window.view" id="act_my_all_statement_a2">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_my_all_pos_account_bank_statment"/>
</record>
<!-- <menuitem name="All My Cashboxes" parent="menu_statement_tree_all"-->
<!-- action="action_my_all_pos_account_bank_statment" id="menu_my_pos_bank_statment_tree" sequence="3"/>-->
<record model="ir.actions.act_window" id="action_cashboxes_to_close">
<record model="ir.actions.act_window" id="action_cashboxes_to_close">
<field name="name">Cashboxes to Close</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.bank.statement</field>
@@ -401,44 +401,44 @@
<field name="view_mode">tree,form</field>
<field name="domain">[('state','=','draft')]</field>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a5">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_cashboxes_to_close"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a6">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_cashboxes_to_close"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a5">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
<field name="view_id" ref="view_bank_statement_tree"/>
<field name="act_window_id" ref="action_cashboxes_to_close"/>
</record>
<record model="ir.actions.act_window.view" id="act_statement_a6">
<field name="sequence" eval="1"/>
<field name="view_mode">form</field>
<field name="view_id" ref="view_bank_statement_form1"/>
<field name="act_window_id" ref="action_cashboxes_to_close"/>
</record>
<menuitem name="Cashboxes to Close" parent="menu_pos_bank_statment_tree"
action="action_cashboxes_to_close" id="menu_cashboxes_to_close_tree" groups="base.group_extended"/>
<menuitem name="Cashboxes to Close" parent="menu_pos_bank_statment_tree"
action="action_cashboxes_to_close" id="menu_cashboxes_to_close_tree" groups="base.group_extended"/>
<menuitem
<menuitem
name="Open Registers" parent="point_of_sale.menu_point_config"
string="Open Register"
action="action_pos_open_statement"
id="menu_open_statement" sequence="1" />
<menuitem icon="STOCK_PRINT"
action="action_report_all_closed_cashbox_of_the_day"
id="menu_all_closed_cashbox_of_the_day"
parent="menu_statement_tree_all"/>
action="action_report_all_closed_cashbox_of_the_day"
id="menu_all_closed_cashbox_of_the_day"
parent="menu_statement_tree_all"/>
<menuitem
<menuitem
name="Close Register" parent="point_of_sale.menu_point_config"
string="Close Register"
action="action_pos_close_statement"
id="menu_close_statement" sequence="2" />
<menuitem icon="STOCK_PRINT"
action="action_report_all_closed_cashbox_of_the_day"
id="menu_all_closed_cashbox_of_the_day"
parent="menu_point_report_register"/>
action="action_report_all_closed_cashbox_of_the_day"
id="menu_all_closed_cashbox_of_the_day"
parent="menu_point_report_register"/>
</data>
</data>
</openerp>

Some files were not shown because too many files have changed in this diff Show More