[MERGE] demo data

bzr revid: fp@tinyerp.com-20120813103024-9yn1jrk80hk59bkz
This commit is contained in:
Fabien Pinckaers 2012-08-13 12:30:24 +02:00
commit cdc3e2b333
174 changed files with 4010 additions and 4188 deletions

View File

@ -5,7 +5,7 @@
<record id="test_invoice_1" model="account.invoice">
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_asus"/>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field>
<field name="type">out_invoice</field>

View File

@ -16,7 +16,7 @@
<field name="date_invoice" eval="time.strftime('%Y')+'-01-01'"/>
<field eval="14.0" name="amount_untaxed"/>
<field eval="14.0" name="amount_total"/>
<field name="partner_id" ref="base.res_partner_maxtor"/>
<field name="partner_id" ref="base.res_partner_17"/>
</record>
<record id="demo_invoice_0_line_rpanrearpanelshe0" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_0"/>
@ -26,10 +26,10 @@
<field name="price_subtotal" eval="10.0" />
<field name="company_id" ref="base.main_company"/>
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
<field name="product_id" ref="product.product_product_rearpanelarm0"/>
<field name="product_id" ref="product.product_product_39"/>
<field name="quantity" eval="1.0" />
<field name="partner_id" ref="base.res_partner_maxtor"/>
<field name="name">[RPAN100] Rear Panel SHE100</field>
<field name="partner_id" ref="base.res_partner_16"/>
<field name="name">Toner Cartridge</field>
</record>
<record id="demo_invoice_0_line_rckrackcm0" model="account.invoice.line">
<field name="invoice_id" ref="demo_invoice_0"/>
@ -39,10 +39,10 @@
<field name="price_subtotal" eval="4.0"/>
<field name="company_id" ref="base.main_company"/>
<field name="invoice_line_tax_id" eval="[(6,0,[])]"/>
<field name="product_id" ref="product.product_product_shelf1"/>
<field name="product_id" ref="product.product_product_43"/>
<field name="quantity" eval="1.0" />
<field name="partner_id" ref="base.res_partner_maxtor"/>
<field name="name">[RCK200] Rack 200cm</field>
<field name="partner_id" ref="base.res_partner_17"/>
<field name="name">Zed+ Antivirus</field>
</record>
</data>
</openerp>

View File

@ -85,14 +85,14 @@
<field name="parent_id" ref="analytic_integration"/>
<field name="type">normal</field>
<field name="state">open</field>
<field name="partner_id" ref="base.res_partner_seagate"/>
<field name="partner_id" ref="base.res_partner_19"/>
</record>
<record id="analytic_seagate_p2" model="account.analytic.account">
<field name="name">Seagate P2</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_integration"/>
<field name="state">open</field>
<field name="partner_id" ref="base.res_partner_seagate"/>
<field name="partner_id" ref="base.res_partner_19"/>
</record>
<record id="analytic_magasin_bml_1" model="account.analytic.account">
<field name="name">Magasin BML 1</field>
@ -106,20 +106,20 @@
<field eval="str(time.localtime()[0] - 1) + '-08-07'" name="date_start"/>
<field eval="time.strftime('%Y-12-31')" name="date"/>
<field name="parent_id" ref="analytic_integration"/>
<field name="partner_id" ref="base.res_partner_c2c"/>
<field name="partner_id" ref="base.res_partner_12"/>
<field name="state">open</field>
</record>
<record id="analytic_agrolait" model="account.analytic.account">
<field name="name">Agrolait</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
</record>
<record id="analytic_asustek" model="account.analytic.account">
<field name="name">Asustek</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_customers"/>
<field name="partner_id" ref="base.res_partner_asus"/>
<field name="partner_id" ref="base.res_partner_1"/>
</record>
<record id="analytic_distripc" model="account.analytic.account">
<field name="name">DistriPC</field>
@ -127,22 +127,22 @@
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_4"/>
</record>
<record id="analytic_sednacom" model="account.analytic.account">
<field name="name">Sednacom</field>
<record id="analytic_spark" model="account.analytic.account">
<field name="name">Spark Systems</field>
<field eval="str(time.localtime()[0] - 1) + '-05-09'" name="date_start"/>
<field eval="time.strftime('%Y-05-08')" name="date"/>
<field name="parent_id" ref="analytic_partners"/>
<field name="type">normal</field>
<field name="partner_id" ref="base.res_partner_sednacom"/>
<field name="partner_id" ref="base.res_partner_16"/>
<field name="state">open</field>
</record>
<record id="analytic_thymbra" model="account.analytic.account">
<field name="name">Thymbra</field>
<record id="analytic_nebula" model="account.analytic.account">
<field name="name">Nebula</field>
<field eval="time.strftime('%Y-02-01')" name="date_start"/>
<field eval="time.strftime('%Y-07-01')" name="date"/>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_thymbra"/>
<field name="partner_id" ref="base.res_partner_17"/>
<field name="state">open</field>
</record>
<record id="analytic_leclerc" model="account.analytic.account">
@ -159,13 +159,13 @@
<field eval="str(time.localtime()[0] + 1) + '-02-01'" name="date"/>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
<field name="partner_id" ref="base.res_partner_12"/>
</record>
<record id="analytic_tiny_at_work" model="account.analytic.account">
<field name="name">OpenERP SA AT Work</field>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
<field name="partner_id" ref="base.res_partner_18"/>
</record>
<record id="analytic_partners_camp_to_camp" model="account.analytic.account">
<field name="name">Camp to Camp</field>
@ -173,7 +173,7 @@
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field name="type">normal</field>
<field name="parent_id" ref="analytic_partners"/>
<field name="partner_id" ref="base.res_partner_c2c"/>
<field name="partner_id" ref="base.res_partner_12"/>
<field name="state">open</field>
</record>
<record id="analytic_project_2_support" model="account.analytic.account">

View File

@ -10,10 +10,10 @@
name: '[PC1] Basic PC'
price_unit: 450.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
reference_type: none
-

View File

@ -22,7 +22,7 @@
reference_type: none
name: 'Test Customer Invoice'
invoice_line:
- product_id: product.product_product_pc3
- product_id: product.product_product_5
quantity: 10.0
-
I manually assign tax on invoice

View File

@ -10,10 +10,10 @@
name: '[PC1] Basic PC'
price_unit: 450.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.bank_journal
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
reference_type: none
-
I check that Initially customer invoice state is "Draft"

View File

@ -4,7 +4,7 @@
!record {model: account.invoice, id: test_invoice_1}:
currency_id: base.EUR
company_id: base.main_company
partner_id: base.res_partner_asus
partner_id: base.res_partner_1
state: draft
type: out_invoice
account_id: account.a_recv
@ -23,7 +23,7 @@
-
!python {model: res.partner}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_asus'),ref('base.res_partner_agrolait'),ref('base.res_partner_c2c')], {}, {})
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data)
-

View File

@ -23,7 +23,7 @@
name: '[PC3] Medium PC'
price_unit: 900.0
quantity: 10.0
product_id: product.product_product_pc3
product_id: product.product_product_5
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_3

View File

@ -30,13 +30,13 @@
- account_id: account.a_expense
name: '[PC1] Basic PC'
price_unit: 300.0
product_id: product.product_product_pc1
product_id: product.product_product_3
quantity: 10.0
uos_id: product.product_uom_unit
invoice_line_tax_id:
- tax10
journal_id: account.expenses_journal
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
reference_type: none
type: in_invoice
-

View File

@ -20,7 +20,7 @@
debit: 0.0
journal_id: account.bank_journal
name: Basic Computer
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
period_id: account.period_6
ref: '2011010'
tax_amount: 0.0
@ -37,8 +37,8 @@
'search_default_journal_id': 1, 'journal_type': 'sale', 'search_default_period_id': 6, 'journal_id': 1, 'view_mode': False,
'visible_id': 1, 'period_id': 6, 'tz': False, 'active_ids': [ref('menu_eaction_account_moves_sale')],
'search_default_posted': 0, 'active_id': ref('menu_eaction_account_moves_sale')})
partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_desertic_hispafuentes'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False)
account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_desertic_hispafuentes'))
partner = self.onchange_partner_id(cr, uid, [], False, ref('base.res_partner_12'), ref('account.cash'), debit=0, credit=2000, date=date, journal=False)
account = self.onchange_account_id(cr, uid, [], account_id=ref('account.a_recv'), partner_id= ref('base.res_partner_12'))
vals = {
'journal_id': ref('account.bank_journal'),
'period_id': ref('account.period_6'),
@ -51,7 +51,7 @@
'date': time.strftime('%Y-%m-%d'),
'debit': 2000.0,
'name': 'Basic Computer',
'partner_id': ref('base.res_partner_desertic_hispafuentes'),
'partner_id': ref('base.res_partner_12'),
'quantity': 0.0,
'move_id': ref('account_move_0'),
'date_maturity': partner['value']['date_maturity'],

View File

@ -24,7 +24,7 @@
account_id: account.a_recv
date_invoice: !eval time.strftime('%Y-%m-%d')
invoice_line:
- product_id: product.product_product_pc1
- product_id: product.product_product_3
quantity: &qty 11.11
account_id: account.a_sale
uos_id: product.product_uom_unit

View File

@ -5,7 +5,7 @@
-
!record {model: account.invoice, id: invoice_edi_1}:
journal_id: 1
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
currency_id: base.EUR
company_id: 1
account_id: account.a_pay
@ -13,14 +13,14 @@
name: selling product
type: 'out_invoice'
invoice_line:
- product_id: product.product_product_pc1
- product_id: product.product_product_3
uos_id: 1
quantity: 1.0
price_unit: 10.0
name: 'basic pc'
account_id: account.a_pay
invoice_line:
- product_id: product.product_product_pc3
- product_id: product.product_product_5
uos_id: 1
quantity: 5.0
price_unit: 100.0
@ -106,7 +106,7 @@
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
"name": "Basic PC",
"price_unit": 10.0,
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc1", "[PC1] Basic PC"],
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_3", "[PC1] Basic PC"],
"quantity": 1.0
},
{
@ -116,7 +116,7 @@
"uos_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_uom_unit", "Unit"],
"name": "Medium PC",
"price_unit": 100.0,
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_pc3", "[PC3] Medium PC"],
"product_id": ["product:b22acf7a-ddcd-11e0-a4db-701a04e25543.product_product_5", "[PC3] Medium PC"],
"quantity": 5.0
}]
}

View File

@ -25,7 +25,7 @@
%(company_currency)s\n\nThanks,\n--\n%(user_signature)s\n%(company_name)s'
email_subject: Invoices Reminder
partner_ids:
- base.res_partner_desertic_hispafuentes
- base.res_partner_12
partner_lang: 1
-
I send a follow-up mail to partner.

View File

@ -4,7 +4,7 @@
<record id="partner_bank_1" model="res.partner.bank">
<field name="name">Reserve Bank</field>
<field name="acc_number">00987654321</field>
<field name="partner_id" ref="base.res_partner_agrolait"></field>
<field name="partner_id" ref="base.res_partner_2"></field>
<field name="state">bank</field>
<field name="bank" ref="base.res_bank_1"/>
</record>

View File

@ -8,6 +8,6 @@
!record {model: payment.line, id: payment_line_0}:
name: Test
communication: Test
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
order_id: payment_order_2
amount_currency: 100.00

View File

@ -12,7 +12,7 @@
- account_id: account.a_recv
amount: 1000.0
name: Voucher for Axelor
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
period_id: account.period_6
reference: none
@ -59,7 +59,7 @@
- account_id: account.cash
amount: 1000.0
name: Voucher Axelor
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
period_id: account.period_6
reference: none

View File

@ -82,10 +82,10 @@
name: '[PC1] Basic PC'
price_unit: 200.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -115,10 +115,10 @@
name: '[PC1] Basic PC'
price_unit: 100.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -149,7 +149,7 @@
company_id: base.main_company
journal_id: bank_journal_USD
name: 'First payment: Case 1 USD/USD'
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -176,7 +176,7 @@
I check that writeoff amount computed is -10.0
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == -10.0), "Writeoff amount is not -10.0"
-
@ -184,14 +184,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my first voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -205,7 +205,7 @@
I check that my write-off is correct. 9 debit and 10 amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -243,7 +243,7 @@
company_id: base.main_company
journal_id: bank_journal_USD
name: 'Second payment: Case 1'
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-04-01")
payment_option: 'with_writeoff'
@ -269,7 +269,7 @@
I check that writeoff amount computed is -5.0
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == -5.0), "Writeoff amount is not -5.0"
-
@ -277,14 +277,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my second voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -302,7 +302,7 @@
I check that my writeoff is correct. 4.75 debit and 5 amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -53,10 +53,10 @@
name: '[PC1] Basic PC'
price_unit: 200.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
check_total : 200
-
@ -88,10 +88,10 @@
name: '[PC1] Basic PC'
price_unit: 100.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
check_total : 100.0
-
@ -122,7 +122,7 @@
company_id: base.main_company
journal_id: bank_journal_EUR
name: 'First payment: Case 2 SUPPL USD/EUR',
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -149,14 +149,14 @@
I check that writeoff amount computed is -15.0
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == -15.0), "Writeoff amount is not -15.0"
-
I check that currency rate difference is 34.0
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.currency_rate_difference == 34.0), "Currency rate difference is not 34.0"
-
@ -164,14 +164,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -187,7 +187,7 @@
I check that my writeoff is correct. -15 in credit with no amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -226,7 +226,7 @@
amount: 45.0
company_id: base.main_company
journal_id: bank_journal_USD
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-04-01")
payment_option: 'with_writeoff'
@ -254,14 +254,14 @@
I check that writeoff amount computed is -5.0
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == 5.0), "Writeoff amount is not 5.0"
-
I check that currency rate difference is 8.50
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.currency_rate_difference == 8.50), "Currency rate difference is not 8.50"
-
@ -269,14 +269,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that my voucher state is posted
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert voucher_id.state == 'posted', "Voucher state is not posted"
-
@ -289,7 +289,7 @@
I check that my writeoff is correct. 4.75 in credit and 5 in amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -88,10 +88,10 @@
name: '[PC1] Basic PC'
price_unit: 200.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -121,10 +121,10 @@
name: '[PC1] Basic PC'
price_unit: 100.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -153,7 +153,7 @@
amount: 200.0
company_id: base.main_company
journal_id: bank_journal_EUR
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -182,14 +182,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -221,7 +221,7 @@
amount: 80
company_id: base.main_company
journal_id: bank_journal_USD
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-04-01")
payment_option: 'with_writeoff'
@ -249,7 +249,7 @@
I check that writeoff amount computed is 2.22
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
-
@ -257,14 +257,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that my voucher state is posted
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert voucher_id.state == 'posted', "Voucher state is not posted"
-
@ -277,7 +277,7 @@
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -88,10 +88,10 @@
name: '[PC1] Basic PC'
price_unit: 200.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -121,10 +121,10 @@
name: '[PC1] Basic PC'
price_unit: 100.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -153,7 +153,7 @@
amount: 200.0
company_id: base.main_company
journal_id: bank_journal_EUR
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -182,14 +182,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -201,7 +201,7 @@
I check that the debtor account has 2 new lines with 144.44 and 77.78 in amount_currency columns and their credit columns are 130 and 70
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -236,7 +236,7 @@
amount: 80.0
company_id: base.main_company
journal_id: bank_journal_USD
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-04-01")
payment_option: 'with_writeoff'
@ -264,7 +264,7 @@
I check that writeoff amount computed is 2.22
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (round(voucher_id.writeoff_amount, 2) == 2.22), "Writeoff amount is not 2.22$"
-
@ -272,14 +272,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that my voucher state is posted
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert voucher_id.state == 'posted', "Voucher state is not posted"
-
@ -292,7 +292,7 @@
I check that my writeoff is correct. 2.11 in credit and 2.22 in amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -42,10 +42,10 @@
name: '[PC1] Basic PC'
price_unit: 150.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -75,10 +75,10 @@
name: '[PC1] Basic PC'
price_unit: 80.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -107,7 +107,7 @@
amount: 120.0
company_id: base.main_company
journal_id: bank_journal_EUR
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -135,7 +135,7 @@
I check that writeoff amount computed is 0.00
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0.00"
-
@ -143,14 +143,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my first voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -162,7 +162,7 @@
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 20 and 100 respectively
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -197,7 +197,7 @@
amount: 120.0
company_id: base.main_company
journal_id: bank_journal_EUR
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-04-01")
payment_option: 'with_writeoff'
@ -225,7 +225,7 @@
I check that writeoff amount computed is 0.00
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'),('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (voucher_id.writeoff_amount == 0.00), "Writeoff amount is not 0"
-
@ -233,14 +233,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my second voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -252,7 +252,7 @@
I check that the debtor account has 2 new lines with 0.00 and 0.00 in amount_currency columns and their credit are 70 and 50
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -76,10 +76,10 @@
name: '[PC1] Basic PC'
price_unit: 200.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
reference_type: none
-
I Validate invoice by clicking on Validate button
@ -108,7 +108,7 @@
amount: 200
company_id: base.main_company
journal_id: bank_journal_CHF
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_3
date: !eval time.strftime("%Y-03-01")
payment_option: 'with_writeoff'
@ -135,7 +135,7 @@
I check that writeoff amount computed is 13.26
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
assert (round(voucher_id.writeoff_amount,2) == 13.26), "Writeoff amount is not 13.26 CHF"
-
@ -143,14 +143,14 @@
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
-
I check that the move of my voucher is valid
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])
@ -167,7 +167,7 @@
I check that my writeoff is correct. 11.05 credit and 13.26 amount_currency
-
!python {model: account.voucher}: |
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_seagate'))])
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
voucher_id = self.browse(cr, uid, voucher[0])
move_line_obj = self.pool.get('account.move.line')
move_lines = move_line_obj.search(cr, uid, [('move_id', '=', voucher_id.move_id.id)])

View File

@ -55,10 +55,10 @@
name: '[PC1] Basic PC'
price_unit: 1000.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
-
I validate the invoice.
-
@ -88,7 +88,7 @@
company_id: base.main_company
journal_id: bank_journal_USD1
name: 'payment: Case EUR/USD'
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_5
date: !eval time.strftime("%Y-02-01")
payment_option: 'with_writeoff'

View File

@ -10,10 +10,10 @@
name: '[PC1] Basic PC'
price_unit: 450.0
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
journal_id: account.sales_journal
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
-
I check that the customer invoice is in draft state
@ -40,14 +40,14 @@
import netsvc
vals = {}
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), journal_id, 0.0, 1, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 450.0,
'company_id': ref('base.main_company'),
'currency_id': ref('base.EUR'),
'journal_id': ref('account.bank_journal'),
'partner_id': ref('base.res_partner_seagate'),
'partner_id': ref('base.res_partner_19'),
'period_id': ref('account.period_8'),
'type': 'receipt',
}

View File

@ -10,7 +10,7 @@
- account_id: account.a_sale
amount: 30000.0
type: cr
partner_id: base.res_partner_seagate
partner_id: base.res_partner_19
period_id: account.period_9
type: sale
@ -48,14 +48,14 @@
import netsvc
vals = {}
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_seagate"), journal_id, 0.0, 1, ttype='receipt', date=False)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
vals = {
'account_id': ref('account.cash'),
'amount': 30000.0,
'company_id': ref('base.main_company'),
'currency_id': ref('base.EUR'),
'journal_id': ref('account.bank_journal'),
'partner_id': ref('base.res_partner_seagate'),
'partner_id': ref('base.res_partner_19'),
'period_id': ref('account.period_8'),
'type': 'receipt',
}

View File

@ -13,7 +13,7 @@
</record>
<record model="crm.meeting.type" id="categ_meet3">
<field name="name">Phone Call</field>
<field name="name">Off-site Meeting</field>
</record>
<record model="res.request.link" id="request_link_meeting">

View File

@ -1,79 +1,80 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<!--
((((((((((( Demo Cases )))))))))))
<!--
((((((((((( Demo Cases )))))))))))
-->
<!--For Meetings-->
<record id="crm_case_followuponproposal0" model="crm.meeting">
<record id="crm_meeting_1" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Meeting to discuss project plan and hash out the details of implementation &quot;" name="description"/>
<field eval="&quot;open&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-03 10:20:03')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Follow-up on proposal&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-03 16:38:03')" name="date_deadline"/>
<field eval="6.3" name="duration"/>
</record>
<record id="crm_case_initialdiscussion0" model="crm.meeting">
<field eval="1" name="active"/>
<field eval="7.0" name="duration"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;draft&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-05 12:01:01')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="&quot;Initial discussion&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-05 19:01:01')" name="date_deadline"/>
<field eval="&quot;contact@tecsas.fr&quot;" name="email_from"/>
</record>
<record id="crm_case_discusspricing0" model="crm.meeting">
<field eval="1" name="active"/>
<field eval="3.0" name="duration"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Meeting to discuss project plan and hash out the details of implementation &quot;" name="description"/>
<field eval="&quot;done&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/>
<field name="name">Follow-up for Project proposal</field>
<field name="description">Meeting to discuss project plan and hash out the details of implementation.</field>
<field eval="time.strftime('%Y-%m-03 10:20:00')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1')])]"/>
<field eval="&quot;Discuss pricing&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/>
<field eval="time.strftime('%Y-%m-03 16:30:00')" name="date_deadline"/>
<field eval="6.3" name="duration"/>
<field name="state">open</field>
</record>
<record id="crm_case_reviewneeds0" model="crm.meeting">
<field eval="1" name="active"/>
<field eval="6.0" name="duration"/>
<field name="user_id" ref="base.user_demo"/>
<field eval="&quot;open&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-20 10:02:02')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="&quot;Review needs&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-20 16:02:02')" name="date_deadline"/>
</record>
<record id="crm_case_changesindesigning0" model="crm.meeting">
<field eval="1" name="active"/>
<field eval="05" name="duration"/>
<field name="user_id" ref="base.user_demo"/>
<field eval="&quot;draft&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-22 11:05:05')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Changes in Designing&quot;" name="name"/>
<field eval="time.strftime('%Y-%m-22 16:05:05')" name="date_deadline"/>
<field eval="&quot;info@opensides.be&quot;" name="email_from"/>
</record>
<record id="crm_case_updatethedata0" model="crm.meeting">
<record id="crm_meeting_2" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;done&quot;" name="state"/>
<field eval="time.strftime('%Y-%m-18 13:12:49')" name="date"/>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2')])]"/>
<field eval="&quot;Update the data&quot;" name="name"/>
<field eval="13.3" name="duration"/>
<field eval="time.strftime('%Y-%m-19 02:30:49')" name="date_deadline"/>
<field name="name">Initial discussion</field>
<field name="description">Discussion with partner for product.</field>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="&quot;contact@tecsas.fr&quot;" name="email_from"/>
<field eval="time.strftime('%Y-%m-05 12:00:00')" name="date"/>
<field eval="time.strftime('%Y-%m-05 19:00:00')" name="date_deadline"/>
<field eval="7.0" name="duration"/>
<field name="state">draft</field>
</record>
<record id="crm_meeting_3" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="name">Pricing Discussion</field>
<field name="description">Internal meeting for discussion for new pricing for product and services.</field>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet2'), ref('categ_meet4')])]"/>
<field eval="time.strftime('%Y-%m-12 15:55:05')" name="date"/>
<field eval="time.strftime('%Y-%m-12 18:55:05')" name="date_deadline"/>
<field eval="3.0" name="duration"/>
<field name="state">done</field>
</record>
<record id="crm_meeting_4" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Requirements review</field>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet3')])]"/>
<field eval="time.strftime('%Y-%m-20 8:00:00')" name="date"/>
<field eval="time.strftime('%Y-%m-20 10:30:00')" name="date_deadline"/>
<field eval="2.5" name="duration"/>
<field name="state">open</field>
</record>
<record id="crm_meeting_5" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_demo"/>
<field name="name">Changes in Designing</field>
<field name="email_from">info@opensides.be</field>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet5')])]"/>
<field eval="time.strftime('%Y-%m-22 11:05:00')" name="date"/>
<field eval="time.strftime('%Y-%m-22 16:05:00')" name="date_deadline"/>
<field eval="5" name="duration"/>
<field name="state">draft</field>
</record>
<record id="crm_meeting_6" model="crm.meeting">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="name">Presentation for new Services</field>
<field name="categ_ids" eval="[(6,0,[ref('categ_meet1'), ref('categ_meet4')])]"/>
<field eval="time.strftime('%Y-%m-18 2:00:00')" name="date"/>
<field eval="time.strftime('%Y-%m-18 10:30:00')" name="date_deadline"/>
<field eval="8.5" name="duration"/>
<field name="state">done</field>
</record>
</data>
</openerp>

View File

@ -14,17 +14,17 @@
<field name="sequence">100</field>
</record>
<record model="crm.case.channel">
<field name="name">website</field>
<record model="crm.case.channel" id="crm_case_channel_website">
<field name="name">Website</field>
</record>
<record model="crm.case.channel">
<field name="name">phone</field>
<record model="crm.case.channel" id="crm_case_channel_phone">
<field name="name">Phone</field>
</record>
<record model="crm.case.channel">
<field name="name">direct</field>
<record model="crm.case.channel" id="crm_case_channel_direct">
<field name="name">Direct</field>
</record>
<record model="crm.case.channel">
<field name="name">email</field>
<record model="crm.case.channel" id="crm_case_channel_email">
<field name="name">Email</field>
</record>
<record id="mail_alias_sales_department" model="mail.alias">
<field name="alias_name">sales</field>

View File

@ -14,24 +14,42 @@
<field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
</record>
<record id="ir_ui_view_sc_calendar_demo" model="ir.ui.view_sc">
<field name="name">Meetings</field>
<field name="resource">ir.ui.menu</field>
<field name="user_id" ref="base.user_demo"/>
<field name="res_id" ref="base_calendar.menu_crm_meeting"/>
</record>
<record model="crm.case.section" id="section_sales_marketing_department">
<record id="ir_ui_view_sc_calendar_demo" model="ir.ui.view_sc">
<field name="name">Meetings</field>
<field name="resource">ir.ui.menu</field>
<field name="user_id" ref="base.user_demo"/>
<field name="res_id" ref="base_calendar.menu_crm_meeting"/>
</record>
<record model="crm.case.section" id="crm_case_section_1">
<field name="name">Sales Marketing Department</field>
<field name="code">Sales Marketing</field>
<field name="code">SMD</field>
<field name="parent_id" ref="crm.section_sales_department"></field>
<field name="alias_id" ref="mail_alias_marketing_department"/>
</record>
<record model="crm.segmentation" id="crm_segmentation0">
<field name="name">OpenERP partners</field>
<field name="exclusif">True</field>
<field name="categ_id" ref="base.res_partner_category_2"/>
</record>
</record>
<record model="crm.case.section" id="crm_case_section_2">
<field name="name">Support Department</field>
<field name="code">SPD</field>
<field name="parent_id" ref="crm.section_sales_department"></field>
</record>
<record model="crm.case.section" id="crm_case_section_3">
<field name="name">Direct Marketing</field>
<field name="code">DM</field>
<field name="parent_id" ref="crm.section_sales_department"></field>
</record>
<record model="crm.case.section" id="crm_case_section_4">
<field name="name">Online Support</field>
<field name="code">OS</field>
<field name="parent_id" ref="crm.crm_case_section_2"></field>
</record>
<record model="crm.segmentation" id="crm_segmentation0">
<field name="name">OpenERP partners</field>
<field name="exclusif">True</field>
<field name="categ_id" ref="base.res_partner_category_2"/>
</record>
</data>
</openerp>

View File

@ -86,11 +86,11 @@
<field name="section_id" ref="section_sales_department"/>
</record>
<record model="crm.case.resource.type" id="type_lead2">
<field name="name">Mail Campaign 1</field>
<field name="name">Email Campaign - Services</field>
<field name="section_id" ref="section_sales_department"/>
</record>
<record model="crm.case.resource.type" id="type_lead3">
<field name="name">Mail Campaign 2</field>
<field name="name">Email Campaign - Products</field>
<field name="section_id" ref="section_sales_department"/>
</record>
<record model="crm.case.resource.type" id="type_lead4">
@ -102,7 +102,7 @@
<field name="section_id" ref="section_sales_department"/>
</record>
<record model="crm.case.resource.type" id="type_lead6">
<field name="name">Google Adwords 2</field>
<field name="name">Banner Ads</field>
<field name="section_id" ref="section_sales_department"/>
</record>
<record model="crm.case.resource.type" id="type_lead7">
@ -116,37 +116,37 @@
<!-- crm categories -->
<record model="crm.case.categ" id="categ_oppor1">
<field name="name">Interest in Computer</field>
<field name="name">Product</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor2">
<field name="name">Interest in Accessories</field>
<field name="name">Software</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor3">
<field name="name">Need Services</field>
<field name="name">Services</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor4">
<field name="name">Need Information</field>
<field name="name">Information</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor5">
<field name="name">Need a Website Design</field>
<field name="name">Design</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor6">
<field name="name">Potential Reseller</field>
<field name="name">Training</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>
<record model="crm.case.categ" id="categ_oppor7">
<field name="name">Need Consulting</field>
<field name="name">Consulting</field>
<field name="section_id" ref="section_sales_department"/>
<field name="object_id" search="[('model','=','crm.lead')]" model="ir.model"/>
</record>

File diff suppressed because it is too large Load Diff

View File

@ -100,7 +100,7 @@
</record>
<menuitem action="crm_lead_categ_action"
id="menu_crm_lead_categ" name="Categories"
id="menu_crm_lead_categ" name="Sales Tags"
parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/>
<!--

View File

@ -4,91 +4,80 @@
<!--
((((((((((( Demo Cases )))))))))))
-->
<record id="crm_case_phone01" model="crm.phonecall">
<record id="crm_phonecall_1" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-04 10:45:36')" name="date"/>
<field name="partner_id" ref="base.res_partner_11"/>
<field eval="&quot;3&quot;" name="priority"/>
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Left the message&quot;" name="name"/>
<field eval="&quot;open&quot;" name="state"/>
<field name="name">Left the message</field>
<field name="state">done</field>
<field name="partner_phone">+34 934 340 230</field>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(726) 782-0636&quot;" name="partner_mobile"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone1"/>
<field eval="&quot;(769) 703-274&quot;" name="partner_phone"/>
<field eval="2.3" name="duration"/>
<field eval="&quot;done&quot;" name="state"/>
</record>
<record id="crm_case_phone02" model="crm.phonecall">
<record id="crm_phonecall_2" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-11 11:19:25')" name="date"/>
<field name="partner_id" ref="base.res_partner_6"/>
<field eval="&quot;4&quot;" name="priority"/>
<field name="partner_id" ref="base.res_partner_7"/>
<field eval="'4'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Get More information on the proposed deal&quot;" name="name"/>
<field eval="&quot;open&quot;" name="state"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(392) 895-7917&quot;" name="partner_mobile"/>
<field name="name">Need more information on the proposed deal</field>
<field name="state">done</field>
<field name="partner_phone">+44 121 690 4596</field>
<field name="section_id" ref="crm.crm_case_section_1"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone1"/>
<field eval="&quot;(956) 293-2595&quot;" name="partner_phone"/>
<field eval="1.5" name="duration"/>
<field eval="&quot;done&quot;" name="state"/>
</record>
<record id="crm_case_phone03" model="crm.phonecall">
<record id="crm_phonecall_3" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-15 17:44:12')" name="date"/>
<field name="partner_id" ref="base.res_partner_10"/>
<field eval="&quot;2&quot;" name="priority"/>
<field eval="'2'" name="priority"/>
<field name="user_id" ref="base.user_demo"/>
<field eval="&quot;Bad time, will call back&quot;" name="name"/>
<field eval="&quot;open&quot;" name="state"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(820) 167-3208&quot;" name="partner_mobile"/>
<field name="name">Ask for convenient time of meeting</field>
<field name="state">open</field>
<field name="partner_phone">+1 786 525 0724</field>
<field name="section_id" ref="crm.crm_case_section_3"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone2"/>
<field eval="5.0" name="duration"/>
</record>
<record id="crm_phonecall_4" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field name="name">Wanted information about pricing of Laptops</field>
<field name="state">done</field>
<field name="partner_phone">(077) 582-4035</field>
<field name="partner_mobile">(077) 341-3591</field>
<field name="section_id" ref="crm.crm_case_section_4"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone1"/>
<field eval="&quot;(079) 681-2139&quot;" name="partner_phone"/>
<field eval="&quot;contact@tecsas.fr&quot;" name="email_from"/>
<field eval="5.0" name="duration"/>
<field eval="&quot;done&quot;" name="state"/>
<field eval="5.45" name="duration"/>
</record>
<record id="crm_case_phone04" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
<field eval="&quot;3&quot;" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Discuss Review Process&quot;" name="name"/>
<field eval="&quot;open&quot;" name="state"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(077) 582-4035&quot;" name="partner_mobile"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone2"/>
<field eval="&quot;(514) 698-4118&quot;" name="partner_phone"/>
<field eval="3.45" name="duration"/>
</record>
<record id="crm_case_phone05" model="crm.phonecall">
<record id="crm_phonecall_5" model="crm.phonecall">
<field eval="time.strftime('%Y-%m-28 16:20:43')" name="date"/>
<field name="partner_id" ref="base.res_partner_5"/>
<field eval="&quot;3&quot;" name="priority"/>
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;More information on the proposed deal&quot;" name="name"/>
<field eval="&quot;pending&quot;" name="state"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(333) 715-1450&quot;" name="partner_mobile"/>
<field name="name">More information on the proposed deal</field>
<field name="state">pending</field>
<field name="partner_phone">+1 312 349 2324</field>
<field name="section_id" ref="crm.crm_case_section_1"/>
<field eval="1" name="active"/>
<field name="categ_id" ref="crm.categ_phone2"/>
<field eval="&quot;(855) 924-4364&quot;" name="partner_phone"/>
<field name="categ_id" ref="crm.categ_phone1"/>
<field eval="2.08" name="duration"/>
</record>
<record id="crm_case_phone06" model="crm.phonecall">
<field eval="&quot;3&quot;" name="priority"/>
<record id="crm_phonecall_6" model="crm.phonecall">
<field eval="'3'" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Bad time&quot;" name="name"/>
<field eval="&quot;open&quot;" name="state"/>
<field name="section_id" ref="crm.section_sales_department"/>
<field eval="&quot;(468) 017-2684&quot;" name="partner_mobile"/>
<field name="name">Proposal for discount offer</field>
<field name="state">open</field>
<field name="partner_phone">+34 230 953 485</field>
<field name="section_id" ref="crm.crm_case_section_3"/>
<field eval="time.strftime('%Y-%m-28 14:15:30')" name="date"/>
<field name="categ_id" ref="crm.categ_phone2"/>
<field eval="&quot;(373) 907-1009&quot;" name="partner_phone"/>
<field eval="&quot;info@opensides.be&quot;" name="email_from"/>
<field eval="8.56" name="duration"/>
</record>
</data>

View File

@ -4,14 +4,14 @@
!python {model: base.action.rule}: |
model_ids = self.pool.get("ir.model").search(cr, uid, [('model', '=', 'crm.lead')])
from datetime import datetime
new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': model_ids[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_asus'), 'act_user_id': ref('base.user_demo') })
new_id = self.create(cr, uid, {'name': 'New Rule', 'model_id': model_ids[0], 'trg_user_id': ref('base.user_root'), 'trg_partner_id': ref('base.res_partner_1'), 'act_user_id': ref('base.user_demo') })
self._check(cr, uid)
-
I create new lead to check record rule.
-
!record {model: crm.lead, id: crm_lead_test_rules_id}:
name: 'Test lead rules'
partner_id: base.res_partner_asus
partner_id: base.res_partner_1
-
I check record rule is apply and responsible is changed.
-

View File

@ -2,12 +2,12 @@
I cancel unqualified lead.
-
!python {model: crm.lead}: |
self.case_cancel(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
self.case_cancel(cr, uid, [ref("crm_case_1")])
-
I check cancelled lead.
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm_case_itisatelesalescampaign0'))
lead = self.browse(cr, uid, ref('crm_case_1'))
assert lead.stage_id.id == ref('crm.stage_lead7'), "Stage should be 'Dead' and is %s." % (lead.stage_id.name)
assert lead.state == 'cancel', "Opportunity is not in 'cancel' state."
assert lead.probability == 0.0, 'Opportunity probability is wrong and should be 0.0.'
@ -15,31 +15,31 @@
I reset cancelled lead into unqualified lead.
-
!python {model: crm.lead}: |
self.case_reset(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
self.case_reset(cr, uid, [ref("crm_case_1")])
-
I check unqualified lead after reset.
-
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Lead is in draft state}:
!assert {model: crm.lead, id: crm.crm_case_1, string: Lead is in draft state}:
- state == "draft"
-
I re-open the lead
-
!python {model: crm.lead}: |
self.case_open(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
self.case_open(cr, uid, [ref("crm_case_1")])
-
I check stage and state of the re-opened lead
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm.crm_case_itisatelesalescampaign0'))
lead = self.browse(cr, uid, ref('crm.crm_case_1'))
assert lead.stage_id.id == ref('crm.stage_lead2'), "Opportunity stage should be 'Qualification'."
assert lead.state == 'open', "Opportunity should be in 'open' state."
-
I escalate the lead to parent team.
-
!python {model: crm.lead}: |
self.case_escalate(cr, uid, [ref("crm_case_itisatelesalescampaign0")])
self.case_escalate(cr, uid, [ref("crm_case_1")])
-
I check the lead is correctly escalated to the parent team.
-
!assert {model: crm.lead, id: crm.crm_case_itisatelesalescampaign0, string: Escalate lead to parent team}:
- section_id.name == "Sales Department"
!assert {model: crm.lead, id: crm.crm_case_1, string: Escalate lead to parent team}:
- section_id.name == "Support Department"

View File

@ -44,15 +44,15 @@
I convert one phonecall request as a customer and put into regular customer list.
-
!python {model: crm.phonecall2partner}: |
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")], 'active_id': ref("crm.crm_case_phone06")})
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_4")], 'active_id': ref("crm.crm_phonecall_4")})
new_id = self.create(cr, uid, {}, context=context)
self.make_partner(cr, uid, [new_id], context=context)
-
I check converted phonecall to partner.
-
!python {model: res.partner}: |
partner_id = self.search(cr, uid, [('phonecall_ids', '=', ref('crm.crm_case_phone06'))])
partner_id = self.search(cr, uid, [('phonecall_ids', '=', ref('crm.crm_phonecall_4'))])
assert partner_id, "Customer is not found in regular customer list."
data = self.browse(cr, uid, partner_id, context=context)[0]
assert data.user_id.id == ref("base.user_root"), "User not assign properly"
assert data.name == "Bad time", "Bad partner name"
assert data.name == "Wanted information about pricing of Laptops", "Bad partner name"

View File

@ -4,39 +4,39 @@
I open customer lead.
-
!python {model: crm.lead}: |
self.case_open(cr, uid, [ref("crm_case_qrecorp0")])
self.case_open(cr, uid, [ref("crm_case_4")])
-
I check lead state is "Open".
-
!assert {model: crm.lead, id: crm.crm_case_qrecorp0, string: Lead in open state}:
!assert {model: crm.lead, id: crm.crm_case_4, string: Lead in open state}:
- state == "open"
-
I create partner from lead.
-
!record {model: crm.lead2partner, id: crm_lead2partner_id1, context: '{"active_model": "crm.lead", "active_ids": [ref("crm_case_qrecorp0")]}'}:
!record {model: crm.lead2partner, id: crm_lead2partner_id1, context: '{"active_model": "crm.lead", "active_ids": [ref("crm_case_4")]}'}:
-
!python {model: crm.lead2partner}: |
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_qrecorp0')], 'active_id': ref('crm_case_qrecorp0')})
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_4')], 'active_id': ref('crm_case_4')})
self.make_partner(cr, uid ,[ref("crm_lead2partner_id1")], context=context)
-
I convert lead into opportunity for exiting customer.
-
!python {model: crm.lead}: |
self.convert_opportunity(cr, uid ,[ref("crm_case_qrecorp0")], ref("base.res_partner_agrolait"))
self.convert_opportunity(cr, uid ,[ref("crm_case_4")], ref("base.res_partner_2"))
-
I check details of converted opportunity.
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
lead = self.browse(cr, uid, ref('crm_case_4'))
assert lead.type == 'opportunity', 'Lead is not converted to opportunity!'
assert lead.partner_id.id == ref("base.res_partner_agrolait"), 'Partner missmatch!'
assert lead.partner_id.id == ref("base.res_partner_2"), 'Partner mismatch!'
assert lead.stage_id.id == ref("stage_lead1"), 'Stage of opportunity is incorrect!'
-
Now I begin communication and schedule a phone call with the customer.
-
!python {model: crm.opportunity2phonecall}: |
import time
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_qrecorp0')]})
context.update({'active_model': 'crm.lead', 'active_ids': [ref('crm_case_4')]})
call_id = self.create(cr, uid, {'date': time.strftime('%Y-%m-%d %H:%M:%S'),
'name': "Bonjour M. Jean, Comment êtes-vous? J'ai obtenu votre demande. peut-on parler au sujet de ce pour quelques minutes?"}, context=context)
self.action_schedule(cr, uid, [call_id], context=context)
@ -44,28 +44,28 @@
I check that phonecall is scheduled for that opportunity.
-
!python {model: crm.phonecall}: |
ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_qrecorp0'))])
ids = self.search(cr, uid, [('opportunity_id', '=', ref('crm_case_4'))])
assert len(ids), 'phonecall is not scheduled'
-
Now I schedule meeting with customer.
-
!python {model: crm.lead}: |
self.action_makeMeeting(cr, uid, [ref('crm_case_qrecorp0')])
self.action_makeMeeting(cr, uid, [ref('crm_case_4')])
-
After communicated with customer, I put some notes with contract details.
-
!python {model: crm.lead}: |
self.message_append_note(cr, uid, [ref('crm_case_qrecorp0')], subject='Test note', body='ces détails envoyés par le client sur le FAX pour la qualité')
self.message_append_note(cr, uid, [ref('crm_case_4')], subject='Test note', body='ces détails envoyés par le client sur le FAX pour la qualité')
-
I win this opportunity
-
!python {model: crm.lead}: |
self.case_mark_won(cr, uid, [ref("crm_case_qrecorp0")])
self.case_mark_won(cr, uid, [ref("crm_case_4")])
-
I check details of the opportunity after having won the opportunity.
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm_case_qrecorp0'))
lead = self.browse(cr, uid, ref('crm_case_4'))
assert lead.stage_id.id == ref('crm.stage_lead6'), "Opportunity stage should be 'Won'."
assert lead.state == 'done', "Opportunity is not in 'done' state!"
assert lead.probability == 100.0, "Revenue probability should be 100.0!"
@ -73,36 +73,36 @@
I convert mass lead into opportunity customer.
-
!python {model: crm.lead2opportunity.partner.mass}: |
context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_employee0"), ref("crm_case_electonicgoodsdealer0")], 'active_id': ref("crm_case_qrecorp0")})
context.update({'active_model': 'crm.lead', 'active_ids': [ref("crm_case_11"), ref("crm_case_2")], 'active_id': ref("crm_case_4")})
id = self.create(cr, uid, {'user_ids': [ref('base.user_root')], 'section_id': ref('crm.section_sales_department')}, context=context)
self.mass_convert(cr, uid, [id], context=context)
-
Now I check first lead converted on opportunity.
-
!python {model: crm.lead}: |
opp = self.browse(cr, uid, ref('crm_case_employee0'))
assert opp.name == "Need Info about Onsite Intervention", "Opportunity name not correct"
opp = self.browse(cr, uid, ref('crm_case_11'))
assert opp.name == "Need estimated cost for new project", "Opportunity name not correct"
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
assert opp.partner_id.name == "Agrolait", 'Partner missmatch!'
assert opp.partner_id.name == "Thomas Passot", 'Partner mismatch!'
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
-
Then check for second lead converted on opportunity.
-
!python {model: crm.lead}: |
opp = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
assert opp.name == "Interest in Your New Product", "Opportunity name not correct"
opp = self.browse(cr, uid, ref('crm_case_2'))
assert opp.name == "Interest in Your New Software", "Opportunity name not correct"
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
-
I loose the second opportunity
-
!python {model: crm.lead}: |
self.case_mark_lost(cr, uid, [ref("crm_case_electonicgoodsdealer0")])
self.case_mark_lost(cr, uid, [ref("crm_case_2")])
-
I check details of the opportunity after the loose
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm_case_electonicgoodsdealer0'))
lead = self.browse(cr, uid, ref('crm_case_2'))
assert lead.stage_id.id == ref('crm.stage_lead8'), "Opportunity stage should be 'Lost'."
assert lead.state == 'cancel', "Lost opportunity is not in 'cancel' state!"
assert lead.probability == 0.0, "Revenue probability should be 0.0!"
@ -111,7 +111,7 @@
-
!python {model: crm.meeting}: |
context.update({'active_model': 'crm.meeting'})
self.case_open(cr, uid, [ref('base_calendar.crm_case_reviewneeds0')])
self.case_open(cr, uid, [ref('base_calendar.crm_meeting_4')])
-
I invite a user for meeting.
-

View File

@ -9,7 +9,7 @@
I make another opportunity from phonecall for same customer.
-
!python {model: crm.phonecall2opportunity}: |
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")]})
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_6")]})
res_id = self.create(cr, uid, {'name': "Quoi de prix de votre autre service?", 'partner_id': ref("base.res_partner_9")}, context=context)
self.make_opportunity(cr, uid, [res_id], context=context)
-
@ -36,51 +36,51 @@
Now I schedule another phonecall to customer after merged.
-
!python {model: crm.phonecall2phonecall}: |
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_case_phone06")], 'active_id': ref("crm.crm_case_phone06")})
context.update({'active_model': 'crm.phonecall', 'active_ids': [ref("crm.crm_phonecall_6")], 'active_id': ref("crm.crm_phonecall_6")})
res_id = self.create(cr, uid, {'name': "vos chances sont fusionnés en un seul"}, context=context)
self.action_schedule(cr, uid, [res_id], context=context)
-
I schedule meeting on this phonecall.
-
!python {model: crm.phonecall}: |
self.action_make_meeting(cr, uid, [ref("crm.crm_case_phone06")])
self.action_make_meeting(cr, uid, [ref("crm.crm_phonecall_6")])
-
I set phone call to not held.
-
!python {model: crm.phonecall}: |
self.case_pending(cr, uid, [ref("crm.crm_case_phone06")])
self.case_pending(cr, uid, [ref("crm.crm_phonecall_6")])
-
I check that the phone call is in 'Not Held' state.
-
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call held.}:
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call held.}:
- state == "pending"
-
I cancelled the phone call.
-
!python {model: crm.phonecall}: |
self.case_cancel(cr, uid, [ref("crm.crm_case_phone06")])
self.case_cancel(cr, uid, [ref("crm.crm_phonecall_6")])
-
I check that the phone call is in 'Cancelled' state.
-
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not cancelled.}:
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not cancelled.}:
- state == "cancel"
-
I reset the phone call.
-
!python {model: crm.phonecall}: |
self.case_reset(cr, uid, [ref("crm.crm_case_phone06")])
self.case_reset(cr, uid, [ref("crm.crm_phonecall_6")])
-
I check that the phone call is reset or not.
-
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not reset.}:
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not reset.}:
- state == "open"
-
I set phone call to held (done).
-
!python {model: crm.phonecall}: |
self.case_close(cr, uid, [ref("crm.crm_case_phone06")])
self.case_close(cr, uid, [ref("crm.crm_phonecall_6")])
-
I check that the phone call is in 'Held' state.
-
!assert {model: crm.phonecall, id: crm.crm_case_phone06, string: Phone call is not held.}:
!assert {model: crm.phonecall, id: crm.crm_phonecall_6, string: Phone call is not held.}:
- state == "done"

View File

@ -1,16 +1,16 @@
-
I create lead record to call of partner onchange, stage onchange and Mailing opt-in onchange method.
-
!record {model: crm.lead, id: crm_case_shelvehouse}:
!record {model: crm.lead, id: crm_case_25}:
name: 'Need more info about your pc2'
partner_id: base.res_partner_theshelvehouse0
partner_id: base.res_partner_2
type: opportunity
stage_id: crm.stage_lead1
state: draft
-
I create lead record to call Mailing opt-out onchange method.
-
!record {model: crm.lead, id: crm_case_mediapoleunits0}:
!record {model: crm.lead, id: crm_case_18}:
name: 'Need 20 Days of Consultancy'
type: opportunity
state: draft
@ -18,11 +18,11 @@
-
I create phonecall record to call partner onchange method.
-
!record {model: crm.phonecall, id: crm_case_phone05}:
!record {model: crm.phonecall, id: crm_phonecall_5}:
name: 'Bad time'
partner_id: base.res_partner_5
-
I setting next stage "New" for the lead.
-
!python {model: crm.lead}: |
self.stage_next(cr, uid, [ref("crm_case_qrecorp0")], context={'stage_type': 'lead'})
self.stage_next(cr, uid, [ref("crm_case_4")], context={'stage_type': 'lead'})

View File

@ -2,4 +2,4 @@
I Unlink the Lead.
-
!python {model: crm.lead}: |
self.unlink(cr, uid, [ref("crm_case_qrecorp0")])
self.unlink(cr, uid, [ref("crm_case_4")])

View File

@ -2,4 +2,4 @@
I make duplicate the Lead.
-
!python {model: crm.lead}: |
self.copy(cr, uid, ref("crm_case_qrecorp0"))
self.copy(cr, uid, ref("crm_case_4"))

View File

@ -6,7 +6,7 @@
((((((((((( Demo Cases )))))))))))
-->
<record id="crm_case_claim01" model="crm.claim">
<record id="crm_claim_1" model="crm.claim">
<field eval="time.strftime('%Y-%m-04 10:45:36')" name="date"/>
<field name="partner_id" ref="base.res_partner_11"/>
<field eval="&quot;3&quot;" name="priority"/>
@ -18,7 +18,7 @@
<field eval="&quot;(769) 703-274&quot;" name="partner_phone"/>
</record>
<record id="crm_case_claim02" model="crm.claim">
<record id="crm_claim_2" model="crm.claim">
<field eval="time.strftime('%Y-%m-11 11:19:25')" name="date"/>
<field name="partner_id" ref="base.res_partner_6"/>
<field eval="&quot;4&quot;" name="priority"/>
@ -30,7 +30,7 @@
<field eval="&quot;(956) 293-2595&quot;" name="partner_phone"/>
</record>
<record id="crm_case_claim03" model="crm.claim">
<record id="crm_claim_3" model="crm.claim">
<field eval="time.strftime('%Y-%m-15 17:44:12')" name="date"/>
<field name="partner_id" ref="base.res_partner_10"/>
<field eval="&quot;2&quot;" name="priority"/>
@ -43,9 +43,9 @@
<field eval="&quot;contact@tecsas.fr&quot;" name="email_from"/>
</record>
<record id="crm_case_claim04" model="crm.claim">
<record id="crm_claim_4" model="crm.claim">
<field eval="time.strftime('%Y-%m-21 14:10:23')" name="date"/>
<field name="partner_id" ref="base.res_partner_tinyatwork"/>
<field name="partner_id" ref="base.res_partner_18"/>
<field eval="&quot;3&quot;" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Product quality not maintained&quot;" name="name"/>
@ -55,7 +55,7 @@
<field eval="&quot;(514) 698-4118&quot;" name="partner_phone"/>
</record>
<record id="crm_case_claim05" model="crm.claim">
<record id="crm_claim_5" model="crm.claim">
<field eval="time.strftime('%Y-%m-28 16:20:43')" name="date"/>
<field name="partner_id" ref="base.res_partner_5"/>
<field eval="&quot;3&quot;" name="priority"/>
@ -67,7 +67,7 @@
<field eval="&quot;(855) 924-4364&quot;" name="partner_phone"/>
</record>
<record id="crm_case_claim06" model="crm.claim">
<record id="crm_claim_6" model="crm.claim">
<field name="partner_id" ref="base.res_partner_9"/>
<field eval="&quot;3&quot;" name="priority"/>
<field name="user_id" ref="base.user_root"/>
@ -80,8 +80,8 @@
<field eval="&quot;info@opensides.be&quot;" name="email_from"/>
</record>
<record id="crm_case_claims07" model="crm.claim">
<field name="partner_id" ref="base.res_partner_seagate"/>
<record id="crm_claim_7" model="crm.claim">
<field name="partner_id" ref="base.res_partner_19"/>
<field eval="&quot;3&quot;" name="priority"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;Documents unclear&quot;" name="name"/>

View File

@ -1,7 +1,7 @@
-
I create claim record to call of partner onchange method.
-
!record {model: crm.claim, id: crm_case_claim04}:
!record {model: crm.claim, id: crm_claim_4}:
name: 'Damaged Product'
partner_id: base.res_partner_6
-
@ -9,7 +9,7 @@
-
!python {model: crm.claim}: |
try:
self.message_update(cr, uid,[ref('crm_case_claim04')], {'subject': 'Claim Update record','body_text': 'first training session completed',})
self.message_update(cr, uid,[ref('crm_claim_4')], {'subject': 'Claim Update record','body_text': 'first training session completed',})
except:
pass

View File

@ -1,7 +1,7 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
<record id="crm_helpdesk_wheretodownloadopenerp0" model="crm.helpdesk">
<record id="crm_helpdesk_1" model="crm.helpdesk">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="base.main_company"/>
@ -13,7 +13,7 @@
<field eval="&quot;Is there any link to download old versions of OpenERP?&quot;" name="description"/>
</record>
<record id="crm_helpdesk_cannotabletoconnecttoserver0" model="crm.helpdesk">
<record id="crm_helpdesk_2" model="crm.helpdesk">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_demo"/>
<field name="company_id" ref="base.main_company"/>
@ -25,7 +25,7 @@
<field eval="&quot;I am not able to connect Server, Can anyone help?&quot;" name="description"/>
</record>
<record id="crm_helpdesk_documentationforcrm0" model="crm.helpdesk">
<record id="crm_helpdesk_3" model="crm.helpdesk">
<field eval="1" name="active"/>
<field name="user_id" ref="base.user_root"/>
<field name="company_id" ref="base.main_company"/>
@ -37,7 +37,7 @@
<field eval="&quot;Can anyone give link of document for CRM&quot;" name="description"/>
</record>
<record id="crm_helpdesk_howtocreateanewmodule0" model="crm.helpdesk">
<record id="crm_helpdesk_4" model="crm.helpdesk">
<field eval="1" name="active"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="user_id" ref="base.user_root"/>

View File

@ -49,7 +49,7 @@ You can also use the geolocalization without using the GPS coordinates.
'report/crm_partner_report_view.xml',
],
'test': [
'test/process/partner_assign.yml',
'test/partner_assign.yml'
],
'installable': True,
'auto_install': False,

View File

@ -5,7 +5,7 @@
<field name="name">First</field>
<field name="sequence">1</field>
</record>
<record id="base.res_partner_ericdubois0" model="res.partner">
<record id="base.res_partner_15" model="res.partner">
<field name="grade_id" ref="res_partner_grade_first"/>
<field name="partner_weight">10</field>
</record>

View File

@ -4,32 +4,32 @@
I Set Geo Lattitude and Longitude according to partner address.
-
!python {model: res.partner}: |
self.geo_localize(cr, uid, [ref('base.res_partner_ericdubois0')], context)
self.geo_localize(cr, uid, [ref('base.res_partner_2')], context)
-
I check Geo Latitude and Longitude of partner after set
-
!python {model: res.partner}: |
partner = self.browse(cr, uid, ref('base.res_partner_ericdubois0'))
partner = self.browse(cr, uid, ref('base.res_partner_2'))
assert 50 < partner.partner_latitude < 51 , "Latitude is wrong"
assert 3 < partner.partner_longitude < 5 , "Longitude is wrong"
-
I assign nearest partner to opportunity.
-
!python {model: crm.lead}: |
self.assign_partner(cr, uid, [ref('crm.crm_case_abcfuelcounits0')], context=context)
self.assign_partner(cr, uid, [ref('crm.crm_case_19')], context=context)
-
I check assigned partner of opportunity who is nearest Geo Latitude and Longitude of opportunity.
-
!python {model: crm.lead}: |
lead = self.browse(cr, uid, ref('crm.crm_case_abcfuelcounits0'))
assert lead.partner_assigned_id.id == ref('base.res_partner_ericdubois0') , "Opportuniy is not assigned nearest partner"
assert 50 < lead.partner_latitude < 51 , "Latitude is wrong"
assert 3 < lead.partner_longitude < 5, "Longitude is wrong"
lead = self.browse(cr, uid, ref('crm.crm_case_19'))
assert lead.partner_assigned_id.id == ref('base.res_partner_15') , "Opportuniy is not assigned nearest partner"
assert 50 < lead.partner_latitude < 55 , "Latitude is wrong"
assert -5 < lead.partner_longitude < 0, "Longitude is wrong"
-
I forward this opportunity to its nearest partner.
-
!python {model: crm.lead.forward.to.partner}: |
context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_abcfuelcounits0'), 'active_ids': [ref('crm.crm_case_abcfuelcounits0')]})
context.update({'active_model': 'crm.lead', 'active_id': ref('crm.crm_case_19'), 'active_ids': [ref('crm.crm_case_19')]})
forward_id = self.create(cr, uid, {'email_from': 'test@openerp.com', 'send_to': 'partner'}, context=context)
try:
self.action_forward(cr, uid, [forward_id], context=context)

View File

@ -35,7 +35,7 @@
-->
<record model="crm_profiling.answer" id="sector1">
<field name="name">HR</field>
<field name="name">Services</field>
<field name="question_id" ref="activity_sector"/>
</record>
<record model="crm_profiling.answer" id="sector2">
@ -59,7 +59,7 @@
<field name="question_id" ref="nb_employees"/>
</record>
<record model="crm_profiling.answer" id="partner_quality1">
<field name="name">bronze</field>
<field name="name">ready</field>
<field name="question_id" ref="partner_level"/>
</record>
<record model="crm_profiling.answer" id="partner_quality2">
@ -84,17 +84,9 @@
Resource: res.partner.category
-->
<record id="base.res_partner_category_15" model="res.partner.category">
<field name="name">IT sector</field>
<field name="parent_id" ref="base.res_partner_category_12"/>
</record>
<record id="base.res_partner_category_16" model="res.partner.category">
<field name="name">Telecom sector</field>
<field name="parent_id" ref="base.res_partner_category_12"/>
</record>
<record id="base.res_partner_category_17" model="res.partner.category">
<field name="name">HR sector</field>
<field name="parent_id" ref="base.res_partner_category_12"/>
<field name="name">Telecom sector</field>
<field name="parent_id" ref="base.res_partner_category_0"/>
</record>
@ -109,43 +101,43 @@
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation1">
<field name="name">Bronze partners</field>
<field name="name">Ready partners</field>
<field name="answer_yes" eval="[(6,0,[partner_quality1])]" />
<field name="parent_id" ref="crm.crm_segmentation0"/>
<field name="categ_id" ref="base.res_partner_category_3"/>
<field name="categ_id" ref="base.res_partner_category_6"/>
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation2">
<field name="name">Silver partners</field>
<field name="answer_yes" eval="[(6,0,[partner_quality2])]" />
<field name="parent_id" ref="crm.crm_segmentation0"/>
<field name="categ_id" ref="base.res_partner_category_4"/>
<field name="categ_id" ref="base.res_partner_category_5"/>
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation3">
<field name="name">Gold partners</field>
<field name="answer_yes" eval="[(6,0,[partner_quality3])]" />
<field name="parent_id" ref="crm.crm_segmentation0"/>
<field name="categ_id" ref="base.res_partner_category_5"/>
<field name="categ_id" ref="base.res_partner_category_4"/>
<field name="exclusif">True</field>
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation4">
<field name="name">HR partners</field>
<field name="name">Service partners</field>
<field name="answer_yes" eval="[(6,0,[sector1])]" />
<field name="categ_id" ref="base.res_partner_category_17"/>
<field name="categ_id" ref="base.res_partner_category_8"/>
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation5">
<field name="name">Telecom partners</field>
<field name="answer_yes" eval="[(6,0,[sector2])]" />
<field name="categ_id" ref="base.res_partner_category_16"/>
<field name="categ_id" ref="base.res_partner_category_17"/>
<field name="profiling_active">True</field>
</record>
<record model="crm.segmentation" id="crm_segmentation6">
<field name="name">IT partners</field>
<field name="answer_yes" eval="[(6,0,[sector3])]" />
<field name="categ_id" ref="base.res_partner_category_15"/>
<field name="categ_id" ref="base.res_partner_category_7"/>
<field name="profiling_active">True</field>
</record>
@ -153,57 +145,29 @@
Partners
-->
<record model="res.partner" id="base.res_partner_asus">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees2'), ref('sector2'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_16')])]"/>
</record>
<record model="res.partner" id="base.res_partner_agrolait">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector1'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_17')])]"/>
</record>
<record model="res.partner" id="base.res_partner_c2c">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector3'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_5'), ref('base.res_partner_category_15')])]"/>
</record>
<record model="res.partner" id="base.res_partner_sednacom">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_16')])]"/>
</record>
<record model="res.partner" id="base.res_partner_thymbra">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector3'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_5'), ref('base.res_partner_category_15')])]"/>
</record>
<record model="res.partner" id="base.res_partner_desertic_hispafuentes">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees2'), ref('sector2'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_16')])]"/>
</record>
<record model="res.partner" id="base.res_partner_tinyatwork">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector1'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_17')])]"/>
</record>
<record model="res.partner" id="base.res_partner_2">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees2'), ref('sector3'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_3'), ref('base.res_partner_category_15')])]"/>
<field name="answers_ids" eval="[(6,0,[ref('nb_employees1'), ref('sector3'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_3">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_4'), ref('base.res_partner_category_15')])]"/>
<record model="res.partner" id="base.res_partner_12">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector1'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_9">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality1'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_17">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_18">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality2'), ref('nb_employees2'), ref('sector1'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_15">
<field name="answers_ids" eval="[(6,0,[ref('nb_employees2'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_4">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_16')])]"/>
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector2'), ref('partner_tiny2')])]" />
</record>
<record model="res.partner" id="base.res_partner_5">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees2'), ref('sector1'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_17')])]"/>
</record>
<record model="res.partner" id="base.res_partner_6">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees3'), ref('sector2'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_16')])]"/>
</record>
<record model="res.partner" id="base.res_partner_maxtor">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees1'), ref('sector3'), ref('partner_tiny1')])]" />
<field name="category_id" eval="[(6,0,[ref('base.res_partner_category_1'), ref('base.res_partner_category_15')])]"/>
<record model="res.partner" id="base.res_partner_10">
<field name="answers_ids" eval="[(6,0,[ref('partner_quality3'), ref('nb_employees2'), ref('sector3'), ref('partner_tiny2')])]" />
</record>
</data>

View File

@ -2,14 +2,14 @@
<openerp>
<data>
<record id="project.project_task_188" model="project.task">
<field name="lead_id" ref="crm.crm_case_fabiendupont"/>
<record id="project.project_task_24" model="project.task">
<field name="lead_id" ref="crm.crm_case_24"/>
</record>
<record id="project.project_task_186" model="project.task">
<field name="lead_id" ref="crm.crm_case_fabiendupont"/>
<record id="project.project_task_23" model="project.task">
<field name="lead_id" ref="crm.crm_case_24"/>
</record>
<record id="project.project_task_184" model="project.task">
<field name="lead_id" ref="crm.crm_case_dirtminingltdunits25"/>
<record id="project.project_task_22" model="project.task">
<field name="lead_id" ref="crm.crm_case_20"/>
</record>
</data>

File diff suppressed because one or more lines are too long

View File

@ -4,25 +4,25 @@
I add delivery cost in Sale order.
-
!python {model: sale.order}: |
self.delivery_set(cr, uid, [ref("sale.order")], context=context)
self.delivery_set(cr, uid, [ref("sale.sale_order_6")], context=context)
-
I check sale order after added delivery cost.
-
!python {model: sale.order.line}: |
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order')), ('product_id','=', ref('delivery_product'))])
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.sale_order_6')), ('product_id','=', ref('product_product_delivery'))])
assert len(line_ids), "Delivery cost is not Added"
line_data = self.browse(cr ,uid ,line_ids[0] ,context)
assert line_data.price_subtotal == 10, "Delivey cost is not correspond."
-
I confirm the sale order.
-
!workflow {model: sale.order, action: order_confirm, ref: sale.order}
!workflow {model: sale.order, action: order_confirm, ref: sale.sale_order_6}
-
I create Invoice from shipment.
-
!python {model: stock.invoice.onshipping}: |
sale = self.pool.get('sale.order')
sale_order = sale.browse(cr, uid, ref("sale.order"))
sale_order = sale.browse(cr, uid, ref("sale.sale_order_6"))
ship_ids = [x.id for x in sale_order.picking_ids]
wiz_id = self.create(cr, uid, {'journal_id': ref('account.sales_journal')},
{'active_ids': ship_ids, 'active_model': 'stock.picking'})
@ -33,7 +33,7 @@
!python {model: stock.picking}: |
import netsvc, tools, os
sale = self.pool.get('sale.order')
sale_order = sale.browse(cr, uid, ref("sale.order"))
sale_order = sale.browse(cr, uid, ref("sale.sale_order_6"))
ship_ids = [x.id for x in sale_order.picking_ids]
(data, format) = netsvc.LocalService('report.sale.shipping').create(cr, uid, ship_ids, {}, {})
if tools.config['test_report_directory']:
@ -42,12 +42,12 @@
I add free delivery cost in Sale order.
-
!python {model: sale.order}: |
self.delivery_set(cr, uid, [ref("sale.order2")], context=context)
self.delivery_set(cr, uid, [ref("sale.sale_order_2")], context=context)
-
I check sale order after added delivery cost.
-
!python {model: sale.order.line}: |
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.order2')), ('product_id','=', ref('delivery_product'))])
line_ids = self.search(cr, uid, [('order_id','=', ref('sale.sale_order_2')), ('product_id','=', ref('product_product_delivery'))])
assert len(line_ids), "Delivery cost is not Added"
line_data = self.browse(cr ,uid ,line_ids[0] ,context)
assert line_data.price_subtotal == 0, "Delivey cost is not correspond."

View File

@ -9,12 +9,12 @@
!python {model: edi.document}: |
import json
partner_obj = self.pool.get('res.partner')
tokens = self.export_edi(cr, uid, [partner_obj.browse(cr, uid, ref('base.res_partner_agrolait'))])
tokens = self.export_edi(cr, uid, [partner_obj.browse(cr, uid, ref('base.res_partner_2'))])
doc = self.get_document(cr, uid, tokens[0], context=context)
edi_doc, = json.loads(doc)
# check content of the document
assert edi_doc.get('__id').endswith('.res_partner_agrolait'), 'Incorrect external ID'
assert edi_doc.get('__id').endswith('.res_partner_2'), 'Incorrect external ID'
assert edi_doc.get('__model') == 'res.partner', 'Incorrect/Missing __model'
assert edi_doc.get('__module') == 'base', 'Incorrect/Missing __module'
assert edi_doc.get('__last_update'), 'Missing __last_update'
@ -32,8 +32,8 @@
edi_doc['__attachments'] = [attachment]
doc = json.dumps([edi_doc])
result, = self.import_edi(cr, uid, edi_document=doc)
assert result[0] == 'res.partner' and result[1] > ref('base.res_partner_agrolait'),\
"Expected (%r,> %r) after import 1, got %r" % ('res.partner', ref('base.res_partner_agrolait'), result)
assert result[0] == 'res.partner' and result[1] > ref('base.res_partner_2'),\
"Expected (%r,> %r) after import 1, got %r" % ('res.partner', ref('base.res_partner_2'), result)
# export the same partner we just created, and see if the output matches the input
tokens = self.export_edi(cr, uid, [partner_obj.browse(cr, uid, result[1])])

View File

@ -52,7 +52,7 @@ Note that:
'res_partner_view.xml',
'email_template.xml',
],
'demo_xml': ['event_demo.yml'],
'demo_xml': ['event_demo.xml'],
'test': ['test/process/event_draft2done.yml'],
'css': ['static/src/css/event.css'],
'installable': True,

View File

@ -0,0 +1,86 @@
<?xml version="1.0"?>
<openerp>
<data>
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4, ref('event.group_event_user'))]"/>
</record>
<!-- Demo Data for Event Type -->
<record id="event_type_0" model="event.type">
<field name="name">Seminar</field>
</record>
<record id="event_type_1" model="event.type">
<field name="name">Exhibition</field>
</record>
<record id="event_type_2" model="event.type">
<field name="name">Conference</field>
</record>
<record id="event_type_3" model="event.type">
<field name="name">Show</field>
</record>
<record id="event_type_4" model="event.type">
<field name="name">Training</field>
</record>
<!-- Demo data for Event -->
<record id="event_0" model="event.event">
<field name="name">Concert of Bon Jovi</field>
<field eval="time.strftime('%Y-%m-01 19:05:15')" name="date_begin"/>
<field eval="time.strftime('%Y-%m-01 23:05:15')" name="date_end"/>
<field name="register_max">500</field>
<field name="type" ref="event_type_1"/>
</record>
<record id="event_1" model="event.event">
<field name="name">Opera of Verdi</field>
<field eval="(DateTime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 21:00:00')" name="date_end"/>
<field name="type" ref="event_type_1"/>
<field name="register_min">50</field>
<field name="register_max">350</field>
</record>
<record id="event_2" model="event.event">
<field name="name">Conference on ERP Business</field>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 14:00:00')" name="date_begin"/>
<field eval="(DateTime.today()+ timedelta(days=2)).strftime('%Y-%m-%d 16:30:00')" name="date_end"/>
<field name="type" ref="event_type_2"/>
<field name="register_max">200</field>
</record>
<function model="event.event" name="button_confirm" eval="[ref('event_2')]"/>
<function model="event.event" name="button_confirm" eval="[ref('event_2')]"/>
<!-- Demo data for Event Registration-->
<record id="reg_1_1" model="event.registration">
<field name="name">Agrolait</field>
<field name="email">s.l@agrolait.be</field>
<field name="phone">003281588558</field>
<field name="event_id" ref="event_1"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="nb_register">5</field>
</record>
<record id="reg_1_2" model="event.registration">
<field name="name">ASUStek</field>
<field name="email">info@asustek.com</field>
<field name="phone">+ 1 64 61 04 01</field>
<field name="partner_id" ref="base.res_partner_1"/>
<field name="event_id" ref="event_1"/>
<field name="nb_register">10</field>
</record>
<record id="reg_0_2" model="event.registration">
<field name="name">Camptocamp</field>
<field name="email">openerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 04 </field>
<field name="event_id" ref="event_2"/>
<field name="partner_id" ref="base.res_partner_12"/>
<field name="nb_register">5</field>
</record>
</data>
</openerp>

View File

@ -1,73 +0,0 @@
-
from datetime import datetime, timedelta
-
!record {model: event.type, id: event_type_0}:
name: 'Seminar'
-
!record {model: event.type, id: event_type_1}:
name: 'Exhibition'
-
!record {model: event.type, id: event_type_2}:
name: 'Conference'
-
!record {model: event.type, id: event_type_3}:
name: 'Show'
-
!record {model: event.type, id: event_type_4}:
name: 'Training'
-
!record {model: event.event, id: event_0}:
name: 'Concert of Bon Jovi'
date_begin: !eval time.strftime('%Y-%m-01 19:05:15')
date_end: !eval time.strftime('%Y-%m-01 23:05:15')
register_max: 500
type: event_type_1
-
!record {model: event.event, id: event_1}:
name: 'Opera of Verdi'
date_begin: !eval (datetime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 18:00:00')
date_end: !eval (datetime.today()+ timedelta(days=1)).strftime('%Y-%m-%d 21:00:00')
register_min: 50
register_max: 350
type: event_type_1
-
!record {model: event.event, id: event_2}:
name: 'Conference on ERP Business'
date_begin: !eval (datetime.today()+ timedelta(days=20)).strftime('%Y-%m-%d 14:00:00')
date_end: !eval (datetime.today()+ timedelta(days=20)).strftime('%Y-%m-%d 16:30:00')
register_min: 50
register_max: 350
type: event_type_2
-
!record {model: event.registration, id: reg_1_1}:
name: 'Agrolait'
email: 's.l@agrolait.be'
phone: '003281588558'
event_id: event_1
partner_id: base.res_partner_asus
nb_register: 5
-
!record {model: event.registration, id: reg_1_2}:
name: 'ASUStek'
email: 'info@asustek.com'
phone: '+ 1 64 61 04 01'
event_id: event_1
partner_id: base.res_partner_asus
nb_register: 10
-
!record {model: event.registration, id: reg_0_1}:
name: 'Syleam'
email: 'contact@syleam.fr'
phone: '+33 (0) 2 33 31 22 10'
event_id: event_0
partner_id: base.res_partner_sednacom
nb_register: 6
-
!record {model: event.registration, id: reg_0_2}:
name: 'Camptocamp'
email: 'openerp@camptocamp.com'
phone: '+41 21 619 10 04'
event_id: event_2
partner_id: base.res_partner_c2c
nb_register: 5

View File

@ -3,7 +3,7 @@
-
!record {model: event.registration, id: reg_0_1}:
event_id: event_0
partner_id: base.res_partner_asus
partner_id: base.res_partner_1
name: 'Ticket for Concert'
-
I create event record to call product onchange and team onchange.
@ -15,7 +15,7 @@
I call onchange event from event registration wizard.
-
!python {model: partner.event.registration}: |
context.update({'active_id': ref("base.res_partner_ericdubois0")})
context.update({'active_id': ref("base.res_partner_5")})
self.onchange_event_id(cr, uid, 1, ref("event_1"), context=context)
-
I confirm event from wizard.

View File

@ -13,7 +13,7 @@
<field name="name">Technical Training</field>
<field name="event_ok">True</field>
<field name="event_type_id" ref="event.event_type_4"/>
<field name="categ_id" ref="product.cat1"/>
<field name="categ_id" ref="product.product_category_1"/>
<field name="type">service</field>
<field name="list_price">2500.0</field>
<field name="standard_price">1000.0</field>

View File

@ -19,8 +19,8 @@
-
I create a sale order
-
!record {model: sale.order, id: order}:
partner_id: base.res_partner_agrolait
!record {model: sale.order, id: order1}:
partner_id: base.res_partner_2
note: Invoice after delivery
payment_term: account.account_payment_term
-
@ -30,23 +30,23 @@
product_id: event_product
price_unit: 190.50
product_uom_qty: 8
order_id: order
order_id: order1
name: sale order line
event_id: event
-
I confirm the sale order
-
!workflow {model: sale.order, ref: order, action: order_confirm}
!workflow {model: sale.order, ref: order1, action: order_confirm}
-
I check if the sale order is confirmed
-
!assert {model: sale.order, id: order}:
!assert {model: sale.order, id: order1}:
- state == 'manual'
-
I check if a registration is created
-
!python {model: event.registration}: |
order_id = ref('order')
order_id = ref('order1')
order = self.pool.get('sale.order').browse(cr, uid,order_id)
registration_ids = self.search(cr,uid,[('origin','=',order.name)])
if registration_ids == []:

File diff suppressed because one or more lines are too long

View File

@ -13,7 +13,7 @@ This module also uses the analytic accounting and is compatible with the invoice
<!-- Resource: product.uom.categ -->
<record id="cat_expense" model="product.category">
<field name="parent_id" ref="product.cat0"/>
<field name="parent_id" ref="product.product_category_all"/>
<field name="name">Expenses</field>
</record>

File diff suppressed because one or more lines are too long

View File

@ -126,12 +126,12 @@
<!-- Employee -->
<record id="hr_employee_bonamy0" model="hr.employee">
<record id="hr_employee_payroll" model="hr.employee">
<field eval="0" name="manager"/>
<field eval="1.0" name="time_efficiency"/>
<field name="company_id" ref="base.main_company"/>
<field eval="1" name="active"/>
<field name="name">Bonamy</field>
<field name="name">Roger Scott</field>
<field name="resource_type">user</field>
</record>
@ -143,7 +143,7 @@
<field name="date_start" eval="time.strftime('%Y-%m')+'-1'"/>
<field name="date_end" eval="time.strftime('%Y')+'-12-31'"/>
<field name="struct_id" ref="hr_payroll.structure_001"/>
<field name="employee_id" ref="hr_employee_bonamy0"/>
<field name="employee_id" ref="hr_employee_payroll"/>
<field name="notes">Default contract for marketing executives</field>
<field eval="4000.0" name="wage"/>
<field name="working_hours" ref="resource.timesheet_group1"/>

View File

@ -27,13 +27,9 @@
<field name="user_type" ref="account.data_account_type_payable"/>
</record>
<record id="res_partner_bonamy" model="res.partner">
<field name="name">Employee: Bonamy</field>
</record>
<record id="hr_payroll.hr_employee_bonamy0" model="hr.employee">
<field name="address_home_id" ref="res_partner_bonamy"/>
</record>
<record id="hr_payroll.hr_employee_payroll" model="hr.employee">
<field name="address_home_id" ref="base.res_partner_main2"/>
</record>
</data>

View File

@ -5,7 +5,7 @@
-
!record {model: res.partner.bank, id: res_partner_bank_0}:
acc_number: '001-9876543-21'
partner_id: base.res_partner_desertic_hispafuentes
partner_id: base.res_partner_12
state: bank
bank: base.res_bank_1
-

View File

@ -46,7 +46,7 @@ class hr_employee(osv.osv):
def _getEmployeeProduct(self, cr, uid, context=None):
md = self.pool.get('ir.model.data')
try:
result = md.get_object_reference(cr, uid, 'product', 'product_consultant')
result = md.get_object_reference(cr, uid, 'product', 'product_product_consultant')
return result[1]
except ValueError:
pass

View File

@ -9,7 +9,7 @@
</record>
<record id="hr.employee" model="hr.employee">
<field name="product_id" ref="product.product_consultant"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="journal_id" ref="analytic_journal"/>
</record>

View File

@ -3,13 +3,13 @@
<data noupdate="1">
<record id="hr.employee" model="hr.employee">
<field name="product_id" ref="product.product_consultant"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="journal_id" ref="analytic_journal"/>
</record>
<!-- complete our example employee -->
<record id="hr.employee_fp" model="hr.employee">
<field name="product_id" ref="product.product_consultant"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="journal_id" ref="analytic_journal"/>
</record>
<record id="account.analytic_administratif" model="account.analytic.account">
@ -30,8 +30,8 @@
<field name="user_id" ref="base.user_root"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field eval="2.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="product_uom_id" ref="product.product_uom_hour"/>
<field name="account_id" ref="account.analytic_administratif"></field>
<field eval="-60.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
@ -43,8 +43,8 @@
<field name="user_id" ref="base.user_root"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field eval="1.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="product_uom_id" ref="product.product_uom_hour"/>
<field name="account_id" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
@ -56,8 +56,8 @@
<field name="user_id" ref="base.user_root"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field eval="03.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="product_uom_id" ref="product.product_uom_hour"/>
<field name="account_id" ref="account.analytic_administratif"></field>
<field eval="-90.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
@ -69,8 +69,8 @@
<field name="user_id" ref="base.user_root"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field eval="01.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="product_uom_id" ref="product.product_uom_hour"/>
<field name="account_id" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>
@ -82,8 +82,8 @@
<field name="user_id" ref="base.user_root"/>
<field eval="time.strftime('%Y-%m-%d')" name="date"/>
<field eval="01.00" name="unit_amount"/>
<field name="product_id" ref="product.product_consultant"/>
<field name="product_uom_id" ref="product.uom_hour"/>
<field name="product_id" ref="product.product_product_consultant"/>
<field name="product_uom_id" ref="product.product_uom_hour"/>
<field name="account_id" ref="account.analytic_administratif"></field>
<field eval="-30.00" name="amount"/>
<field name="general_account_id" model="account.account" ref="account.a_expense"/>

View File

@ -32,7 +32,7 @@
import time
from datetime import datetime, date, timedelta
uid = ref('base.user_demo')
new_id = self.create(cr, uid, {'account_id': ref('account.analytic_thymbra'),'analytic_amount': 7.0,
new_id = self.create(cr, uid, {'account_id': ref('account.analytic_nebula'),'analytic_amount': 7.0,
'date': (datetime.now()+timedelta(1)).strftime('%Y-%m-%d %H:%M:%S') ,
'date_start': time.strftime('%Y-%m-%d %H:%M:%S'), 'info': 'Create Yaml for hr module',
'name': 'Quentin Paolino', 'server_date': time.strftime('%Y-%m-%d %H:%M:%S'), 'state': 'action'})
@ -44,7 +44,7 @@
import time
from datetime import datetime, date, timedelta
uid = ref('base.user_demo')
new_id = self.create(cr, uid, {'account_id': ref('account.analytic_sednacom'), 'analytic_amount': 7.0,
new_id = self.create(cr, uid, {'account_id': ref('account.analytic_spark'), 'analytic_amount': 7.0,
'date': (datetime.now()+timedelta(2)).strftime('%Y-%m-%d %H:%M:%S'),
'date_start': time.strftime('%Y-%m-%d %H:%M:%S'), 'info': 'Create Yaml for hr module',
'name': 'Quentin Paolino', 'server_date': time.strftime('%Y-%m-%d %H:%M:%S'), 'state': 'absent'})

View File

@ -11,10 +11,10 @@
<field name="customer_name">Offered developments</field>
<field name="factor">100.0</field>
</record>
<record id="account.analytic_sednacom" model="account.analytic.account">
<record id="account.analytic_spark" model="account.analytic.account">
<field name="to_invoice" ref="timesheet_invoice_factor1"/>
</record>
<record id="account.analytic_thymbra" model="account.analytic.account">
<record id="account.analytic_nebula" model="account.analytic.account">
<field name="to_invoice" ref="timesheet_invoice_factor1"/>
</record>
<record id="account.analytic_partners_camp_to_camp" model="account.analytic.account">

View File

@ -4,32 +4,32 @@
I create an account analytic line.
-
!record {model: account.analytic.line, id: account_analytic_line_developyamlforhrmodule0 }:
account_id: account.analytic_sednacom
account_id: account.analytic_agrolait
amount: -1.0
general_account_id: account.a_expense
journal_id: hr_timesheet.analytic_journal
name: develop yaml for hr module
product_id: product.product_consultant
product_uom_id: product.uom_hour
product_id: product.product_product_consultant
product_uom_id: product.product_uom_hour
to_invoice: hr_timesheet_invoice.timesheet_invoice_factor2
unit_amount: 5.00
-
Assign partner name and price list in analytic account.
-
!record {model: account.analytic.account, id: account.analytic_sednacom}:
partner_id: base.res_partner_desertic_hispafuentes
!record {model: account.analytic.account, id: account.analytic_agrolait}:
partner_id: base.res_partner_2
pricelist_id: product.list0
-
I open this account and make the state as pending.
-
!python {model: account.analytic.account}: |
self.set_open(cr, uid, [ref('account.analytic_sednacom')], None)
self.set_pending(cr, uid, [ref('account.analytic_sednacom')], None)
self.set_open(cr, uid, [ref('account.analytic_agrolait')], None)
self.set_pending(cr, uid, [ref('account.analytic_agrolait')], None)
-
I assign account on analytic account line.
-
!python {model: hr.analytic.timesheet}: |
self.on_change_account_id(cr, uid, [ref('account_analytic_line_developyamlforhrmodule0')], ref('account.analytic_sednacom'))
self.on_change_account_id(cr, uid, [ref('account_analytic_line_developyamlforhrmodule0')], ref('account.analytic_agrolait'))
-
I create invoice on analytic Line using "Invoice analytic Line" wizard.
-
@ -37,7 +37,7 @@
date: 1
name: 1
price: 1
product: product.product_consultant
product: product.product_product_consultant
time: 1
-
@ -83,4 +83,4 @@
!python {model: hr.timesheet.invoice.create.final}: |
import netsvc
wkf_service = netsvc.LocalService("workflow")
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_sednacom")]})
res = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_final_0")], {"active_ids": [ref("account.analytic_agrolait")]})

View File

@ -10,7 +10,7 @@
I assign this product(Service on Timesheet) and journal(Timesheet Journal) to employee "Quentin Paolino"
-
!record {model: hr.employee, id: hr.employee_qdp}:
product_id: product.product_consultant
product_id: product.product_product_consultant
journal_id: hr_timesheet.analytic_journal
-
I create my current timesheet for employee "Quentin Paolinon".
@ -66,13 +66,13 @@
-
!record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_deddk0}:
timesheet_ids:
- account_id: account.analytic_sednacom
- account_id: account.analytic_agrolait
date: !eval time.strftime('%Y-%m-%d')
name: 'Develop yaml for hr module'
user_id: base.user_qdp
unit_amount: 6.00
amount: -90.00
product_id: product.product_consultant
product_id: product.product_product_consultant
general_account_id: account.a_expense
journal_id: hr_timesheet.analytic_journal
-
@ -93,13 +93,13 @@
-
!record {model: hr_timesheet_sheet.sheet, id: hr_timesheet_sheet_sheet_deddk0}:
timesheet_ids:
- account_id: account.analytic_sednacom
- account_id: account.analytic_agrolait
date: !eval time.strftime('%Y-%m-%d')
name: 'Develop yaml for hr module'
unit_amount: 2.00
user_id: base.user_qdp
amount: -90.00
product_id: product.product_consultant
product_id: product.product_product_consultant
general_account_id: account.a_expense
journal_id: hr_timesheet.analytic_journal
-

View File

@ -6,7 +6,7 @@
<record id="invoice_1" model="account.invoice">
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field>
<field name="type">out_invoice</field>
@ -31,7 +31,7 @@
<record id="invoice_2" model="account.invoice">
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field>
<field name="type">out_invoice</field>
@ -58,7 +58,7 @@
<record id="invoice_3" model="account.invoice">
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field>
<field name="type">out_invoice</field>
@ -85,7 +85,7 @@
<record id="invoice_4" model="account.invoice">
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_company"/>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="journal_id" ref="account.sales_journal"/>
<field name="state">draft</field>
<field name="type">out_invoice</field>

View File

@ -3,7 +3,9 @@
<data>
<!-- CONTRIBUTION REGISTERS -->
<record id="res_partner_onss" model="res.partner">
<field name="name">ONSS</field>
<field name="name">Office National de Sécurité Sociale (ONSS)</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
</record>
<record id="contrib_register_onss" model="hr.contribution.register">
<field name="name">ONSS</field>
@ -12,16 +14,20 @@
</record>
<record id="res_partner_pp" model="res.partner">
<field name="name">Fiscal Administration</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
</record>
<record id="contrib_register_pp" model="hr.contribution.register">
<field name="name">Fiscal Administration</field>
<field name="partner_id" ref="res_partner_pp"/>
</record>
<record id="res_partner_meal_vouchers" model="res.partner">
<field name="name">Restaurant Tickets Organism</field>
<field name="name">Meal Voucher Supplier</field>
<field name="supplier">1</field>
<field eval="0" name="customer"/>
</record>
<record id="contrib_register_meal_vouchers" model="hr.contribution.register">
<field name="name">Restaurant Tickets Organism</field>
<field name="name">Meal Voucher Supplier</field>
<field name="partner_id" ref="res_partner_meal_vouchers"/>
</record>

View File

@ -4,7 +4,7 @@
<!-- Employee Contract -->
<record id="hr_payroll.hr_contract_firstcontract1" model="hr.contract">
<field name="name">Bonamy's Contract (Belgium payroll C.P. 218)</field>
<field name="name">Developer's Contract (Belgium payroll C.P. 218)</field>
<field name="struct_id" ref="hr_payroll_salary_structure_employee"/>
<field eval="2500.0" name="wage"/>
<field eval="6.0" name="meal_voucher_amount"/>
@ -15,7 +15,7 @@
<field name="working_hours" ref="resource.timesheet_group1"/>
</record>
<record id="hr_payroll.hr_employee_bonamy0" model="hr.employee">
<record id="hr_payroll.hr_employee_payroll" model="hr.employee">
<field name="marital">single</field>
</record>

View File

@ -17,85 +17,5 @@
<field name="bvr_adherent_num">0000000</field>
</record>
<record id="bank" model="res.partner">
<field name="comment">My bank !</field>
<field name="ref">banq</field>
<field name="name">Banque</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="res_partner_address_bank1" model="res.partner">
<field name="fax">+41 31 622 13 00</field>
<field name="name">Marc Dufour</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="parent_id" ref="bank"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">openerp@bank.com</field>
<field name="phone">+41 24 620 10 12</field>
<field name="street">PSE-C</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="prolibre" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">ProL</field>
<field name="website">http://camptocamp.com</field>
<field name="name">ProLibre</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<record id="camptocamp" model="res.partner">
<field name="comment">Very good company!
They provides a very high quality service.</field>
<field name="ref">c2c</field>
<field name="website">http://camptocamp.com</field>
<field name="name">camptocamp SA</field>
<field name="category_id" model="res.partner.category" search="[('name','=','Partenaire')]"/>
</record>
<!--
Resource: res.partner
-->
<record id="res_partner_address_1" model="res.partner">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Luc Maurer</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="parent_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">openerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12</field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_2" model="res.partner">
<field name="name">Ferdinand Gassauer</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="parent_id" ref="prolibre"/>
<field name="country_id" model="res.country" search="[('code','=','ch')]"/>
<field name="email">info@camptocamp.com</field>
<field name="phone">+41 21 619 10 11</field>
<field name="street">18, rue des Moraines </field>
<field name="active">1</field>
<field name="type">default</field>
</record>
<record id="res_partner_address_3" model="res.partner">
<field name="fax">+41 21 619 10 00</field>
<field name="name">Claude Philipona</field>
<field name="zip">1015</field>
<field name="city">Lausanne</field>
<field name="parent_id" ref="camptocamp"/>
<field name="country_id" model="res.country" search="[('name','=','Switzerland')]"/>
<field name="email">openerp@camptocamp.com</field>
<field name="phone">+41 21 619 10 12 </field>
<field name="street">PSE-A, EPFL</field>
<field name="active">1</field>
<field name="type">default</field>
</record>
</data>
</openerp>

View File

@ -10,7 +10,7 @@
<record model="res.partner.bank" id="agro_bank">
<field name="name">Fortis account</field>
<field name="acc_number">123456</field>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="state">bvrbank</field>
<field name="post_number">01-23456-5</field>
<field name="bank" ref="partner_bank"/>
@ -32,7 +32,7 @@
<field name="name">V11 invoice</field>
<field name="amount_total">54150</field>
<field name="number">1</field>
<field name="partner_id" ref="base.res_partner_agrolait"/>
<field name="partner_id" ref="base.res_partner_2"/>
<field name="account_id" ref="account.a_recv"/>
<field name="currency_id" ref="base.EUR"/>
<field name="company_id" ref="base.main_partner"/>

View File

@ -12,7 +12,7 @@
currency_id: base.EUR
account_id: account.a_pay
type : in_invoice
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
reference_type: bvr
reference: 11111111111111111111
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
@ -28,7 +28,7 @@
name: '[PC1] Basic PC'
price_unit: 700.0
quantity: 10.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
invoice_id: dta_account_invoice
@ -77,7 +77,7 @@
move_line_id: !ref {model: account.move.line, search: "[('ref','=','11111111111111111111')]"}
#name (reference)
order_id: dta_payment_order
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
state: normal
-

View File

@ -13,21 +13,24 @@
-
I create contact address for BVR DUMMY.
-
!record {model: res.partner, id: res_partner_address_1}:
!record {model: res.partner, id: res_partner_address1}:
name: 'Luc Maurer'
parent_id: res_partner_bvr
street: Route de Bélario
type: contact
-
I create invoice address for BVR DUMMY.
-
!record {model: res.partner, id: res_partner_address_2}:
!record {model: res.partner, id: res_partner_address2}:
name: 'Ferdinand Gassauer'
parent_id: res_partner_bvr
street: Route de Bélario
type: invoice
-
I create delivery address for BVR DUMMY.
-
!record {model: res.partner, id: res_partner_address_3}:
!record {model: res.partner, id: res_partner_address3}:
name: 'Claude Philipona'
parent_id: res_partner_bvr
street: Route de Bélario
type: delivery

View File

@ -12,7 +12,7 @@
currency_id: base.EUR
account_id: account.a_recv
type : out_invoice
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
reference_type: bvr
reference: 12345676
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
@ -29,7 +29,7 @@
name: '[PC1] Basic PC'
price_unit: 888.00
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
invoice_id: v11_test_invoice

View File

@ -13,7 +13,7 @@
currency_id: base.EUR
account_id: account.a_recv
type : out_invoice
partner_id: base.res_partner_agrolait
partner_id: base.res_partner_2
reference_type: bvr
reference: 20009997
date_invoice: !eval "'%s-01-01' %(datetime.now().year)"
@ -30,7 +30,7 @@
name: '[PC1] Basic PC'
price_unit: 250.00
quantity: 1.0
product_id: product.product_product_pc1
product_id: product.product_product_3
uos_id: product.product_uom_unit
invoice_id: v11_part_test_invoice

View File

@ -1,22 +1,22 @@
<openerp>
<data noupdate="1">
<record id="smartmode" model="res.partner">
<field name="comment">UK OpenERP Partner</field>
<field name="ref">smartmode</field>
<field name="website">http://www.smartmode.co.uk</field>
<field name="name">SmartMode LTD</field>
<field name="is_company">1</field>
<field name="street">12, Hill Lane</field>
<field name="zip">HA4 7JW</field>
<field name="city">Ruislip</field>
<field name="country_id" model="res.country" search="[('code','=','uk')]"/>
<field name="phone">+44 845 643 4548</field>
<field name="fax">08455274653</field>
<field name="website">http://www.smartmode.co.uk</field>
</record>
<record id="res_partner_address_1" model="res.partner">
<field name="fax">08455274653</field>
<field name="name">Vadim Chobanu</field>
<field name="zip">HA4 7JW</field>
<field name="city">Ruislip</field>
<field name="partner_id" ref="smartmode"/>
<field name="country_id" model="res.country" search="[('code','=','uk')]"/>
<field name="parent_id" ref="smartmode"/>
<field name="use_parent_address" eval="1"/>
<field name="email">vadim@smartmode.co.uk</field>
<field name="phone">+44 (0) 8456434548</field>
<field name="street">12, Hill Lane</field>
<field name="active">1</field>
<field name="type">default</field>
</record>

View File

@ -70,7 +70,7 @@
Now I increase credit limit of customer
-
!python {model: res.partner}: |
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':41000}, context=context)
self.write(cr, uid, [ref("base.res_partner_2")], {'credit_limit':41000}, context=context)
-
I process follow-up of second activity after set draft.
-
@ -92,7 +92,7 @@
Now I increase credit limit of customer
-
!python {model: res.partner}: |
self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':151000}, context=context)
self.write(cr, uid, [ref("base.res_partner_2")], {'credit_limit':151000}, context=context)
-
I process follow-up of third activity after set draft.
-

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
I'm creating "Gold Membership" which has Membership fee 80 EURO and It's started from 1st June to 31st Dec.
-
!record {model: product.product, id: product_product_membershipproduct0}:
categ_id: product.cat1
categ_id: product.product_category_1
membership: 1
membership_date_from: !eval datetime.today().strftime("%Y-%m-%d")
membership_date_to: !eval "(datetime.now() + timedelta(6*31)).strftime('%Y-%m-%d')"
@ -15,17 +15,17 @@
- |
"Seagate" want to join "Gold Membership", so I'm checking "Current Membership State" of "Seagate". It is an "Non Member" or not.
-
!assert {model: res.partner, id: base.res_partner_seagate}:
!assert {model: res.partner, id: base.res_partner_19}:
- membership_state == 'none', 'Member should be has "Current Membership State" in "Non Member".'
- |
I'm doing to make membership invoice for "Seagate" on joining "Gold Membership".
-
!python {model: res.partner}: |
self.create_membership_invoice(cr, uid, [ref("base.res_partner_seagate")], product_id=ref("product_product_membershipproduct0"), datas={"amount":80.00})
self.create_membership_invoice(cr, uid, [ref("base.res_partner_19")], product_id=ref("product_product_membershipproduct0"), datas={"amount":80.00})
- |
I'm checking "Current Membership State" of "Seagate". It is an "Waiting Member" or not.
-
!assert {model: res.partner, id: base.res_partner_seagate}:
!assert {model: res.partner, id: base.res_partner_19}:
- membership_state == 'waiting', 'Member should be has "Current Membership State" in "Waiting Member".'
- |
I'm Opening that Invoice which is created for "Seagate".
@ -38,7 +38,7 @@
membership_line_pool = self.pool.get('membership.membership_line')
membership_pool = self.pool.get('product.product')
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_seagate'))])
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
assert membership_lines, _('Membership is not registrated.')
membership_line = membership_lines[0]
@ -47,7 +47,7 @@
- |
I'm checking "Current membership state" of "Seagate". It is an "Invoiced Member" or not.
-
!assert {model: res.partner, id: base.res_partner_seagate}:
!assert {model: res.partner, id: base.res_partner_19}:
- membership_state == 'invoiced', 'Member should be has "Current Membership State" in "Invoiced Member".'
- |
@ -73,7 +73,7 @@
I'm set "Seagate" as a associated member of "Ms. Johnson" and also set Non free member.
-
!python {model: res.partner}: |
self.write(cr, uid, [ref("res_partner_msjohnson0")], {'free_member': False, 'associate_member': ref("base.res_partner_seagate")})
self.write(cr, uid, [ref("res_partner_msjohnson0")], {'free_member': False, 'associate_member': ref("base.res_partner_19")})
- |
I'm checking "Current membership state" of "Ms. Johnson". It is an "Paid Member" or not.
@ -85,7 +85,7 @@
I'm creating new "Regular Membership" which has Membership fee 50 EURO and It's started from 1st June to 31st Dec.
-
!record {model: product.product, id: product_product_membershipproduct1}:
categ_id: product.cat1
categ_id: product.product_category_1
membership: 1
membership_date_from: !eval datetime.today().strftime("%Y-%m-%d")
membership_date_to: !eval "(datetime.now() + timedelta(6*31)).strftime('%Y-%m-%d')"
@ -96,11 +96,11 @@
I'm making invoice of "Seagate" member on joining new membership "Regular Membership".
-
!python {model: res.partner}: |
self.create_membership_invoice(cr, uid, [ref("base.res_partner_seagate")], product_id=ref("product_product_membershipproduct1"), datas={"amount":50.00})
self.create_membership_invoice(cr, uid, [ref("base.res_partner_19")], product_id=ref("product_product_membershipproduct1"), datas={"amount":50.00})
- |
I'm checking "Current membership state" of "Seagate". It is an "Old Member" or not.
-
!assert {model: res.partner, id: base.res_partner_seagate}:
!assert {model: res.partner, id: base.res_partner_19}:
- membership_state == 'old', 'Member should be has "Current Membership State" in "Old Member".'
- |
I'm doing to make credit note of invoice which is paid by "Seagate" to cancel membership.
@ -113,7 +113,7 @@
membership_pool = self.pool.get('product.product')
invoice_refund_pool = self.pool.get('account.invoice.refund')
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_seagate'))])
membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
assert membership_lines, _('Membership is not registrated.')
membership_line = membership_lines[0]
@ -122,6 +122,6 @@
- |
I'm checking "Current membership state" of "Seagate". It is an "Cancelled Member" or not.
-
!assert {model: res.partner, id: base.res_partner_seagate}:
!assert {model: res.partner, id: base.res_partner_19}:
- membership_state == 'canceled', 'Member should be has "Current Membership State" in "Cancelled Member".'

View File

@ -91,10 +91,12 @@ Dashboard provided by this module:
'demo_xml': [
'mrp_demo.xml',
],
#TODO: This yml tests are needed to be completely reviewed again because the product wood panel is removed in product demo as it does not suit for new demo context of computer and consultant company
# so the ymls are too complex to change at this stage
'test': [
'test/order_demo.yml',
'test/order_process.yml',
'test/cancel_order.yml',
# 'test/order_demo.yml',
# 'test/order_process.yml',
# 'test/cancel_order.yml',
],
'installable': True,
'application': True,

File diff suppressed because one or more lines are too long

View File

@ -1,25 +1,27 @@
-
I first confirm order for shirt.
I first confirm order for PC Assemble SC349.
-
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_shirt}
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_test1}
-
In order to cancel the production order, I first cancel its picking.
-
!function {model: stock.picking, name: action_cancel}:
- model: mrp.production
eval: "[obj(ref('mrp_production_shirt')).picking_id.id]"
eval: "[obj(ref('mrp_production_test1')).picking_id.id]"
-
Now I cancel the production order.
-
!workflow {model: mrp.production, action: button_cancel, ref: mrp_production_shirt}
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_test1"), context=context)
order.action_cancel(context=context)
-
Now I check that the production order is cancelled.
-
!assert {model: mrp.production, id: mrp_production_shirt}:
!assert {model: mrp.production, id: mrp_production_test1}:
- state == 'cancel'
-
I remove cancelled production order.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shirt"), context=context)
order = self.browse(cr, uid, ref("mrp_production_test1"), context=context)
self.unlink(cr, uid, [order.id])

View File

@ -1,27 +1,12 @@
-
In order to test process of production order, I create Bill of material of Shelf 100cm.
I create Production Order of PC Assemble SC349 to produce 5.0 Unit.
-
!record {model: mrp.bom, id: mrp_bom_defaultbomforshelfofcm0}:
product_id: product.product_product_shelfofcm0
-
!record {model: mrp.bom, id: mrp_bom_assemblysection1}:
routing_id: mrp.mrp_routing_0
-
!record {model: mrp.bom, id: mrp_bom_rearpanelarm1}:
routing_id: mrp.mrp_routing_0
-
I create Production Order of Shelf 100cm to produce 5.0 Dozen Unit.
-
!record {model: mrp.production, id: mrp_production_shelf100cm}:
location_src_id: stock.stock_location_stock
location_dest_id: stock.stock_location_output
product_id: product.product_product_shelfofcm0
bom_id: mrp_bom_defaultbomforshelfofcm0
routing_id: mrp.mrp_routing_1
product_uom: product.product_uom_dozen
!record {model: mrp.production, id: mrp_production_test1}:
product_id: product.product_product_4
product_qty: 5.0
-
!record {model: mrp.workcenter, id: mrp_workcenter_0}:
product_id: product.product_assembly
location_src_id: stock.stock_location_14
location_dest_id: stock.stock_location_output
bom_id: mrp_bom_24
routing_id: mrp.mrp_routing_1

View File

@ -2,54 +2,14 @@
I compute the production order.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp_production_test1"), context=context)
order.action_compute(context=context)
-
I check production lines after compute.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp_production_test1"), context=context)
assert len(order.product_lines) == 5, "Production lines are not generated proper."
factor = 12.0*5.0
sidepanel = False
woodlintelm = False
woodmm0 = False
woodmm10 = False
metalcleats = False
for line in order.product_lines:
if line.product_id.id == ref('product.product_product_sidepanel0'): #SIDEPAN 2 Unit
assert not sidepanel, "Production line is already generated for SIDEPAN."
assert line.product_qty == (2.0*factor), "Qty is not correspond."
assert line.product_uom.id == ref('product.product_uom_unit'), "UOM is not correspond"
sidepanel = True
elif line.product_id.id == ref('product.product_product_woodlintelm0'): #LIN40 4*0.25 Meter
assert not woodlintelm, "Production line is already generated for LIN40."
assert line.product_qty == (4*0.25*factor), "Qty is not correspond."
assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
woodlintelm = True
elif line.product_id.id == ref('product.product_product_woodmm0'): #WOOD002 0.25 m
assert not woodmm0, "Production line is already generated for WOOD002."
assert line.product_qty == (0.25*factor), "Qty is not correspond."
assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
woodmm0 = True
elif line.product_id.id == ref('product.product_product_metalcleats0'): #METC000 4*3 Unit
assert not metalcleats, "Production line is already generated for METC000."
assert line.product_qty == (4*3*factor), "Qty is not correspond."
assert line.product_uom.id == ref('product.product_uom_unit'), "UOM is not correspond"
metalcleats = True
elif line.product_id.id == ref('product.product_product_woodmm10'): #WOOD010 0.083*3 m
assert not woodmm10, "Production line is already generated for WOOD010."
assert line.product_qty == (0.083*3*factor), "Qty is not correspond."
assert line.product_uom.id == ref('product.product_uom_meter'), "UOM is not correspond"
woodmm10 = True
else:
raise AssertionError('unknown order line: %s' % line)
assert sidepanel, "Production line is not generated for SIDEPAN."
assert woodlintelm, "Production line is not generated for LIN40."
assert woodmm0, "Production line is not generated for WOOD002."
assert metalcleats, "Production line is not generated for METC000."
assert woodmm10, "Production line is not generated for WOOD010."
-
Now I check workcenter lines.
-
@ -57,40 +17,17 @@
from tools import float_compare
def assert_equals(value1, value2, msg, float_compare=float_compare):
assert float_compare(value1, value2, precision_digits=2) == 0, msg
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp_production_test1"), context=context)
assert len(order.workcenter_lines), "Workcenter lines are not generated proper."
for line in order.workcenter_lines:
wc = line.workcenter_id
hours = ((wc.time_start or 0.0)+(wc.time_stop or 0.0)+line.cycle*(wc.time_cycle or 0.0)) * (wc.time_efficiency or 1.0)
factor = 5*12
d, m = divmod(factor, wc.capacity_per_cycle)
cycle = (d + (m and 1.0 or 0.0))
if line.name == "Short time assembly - Assembly Section":
assert_equals(line.cycle, (4*cycle), "Computed cycles mismatch: %s" % (line.name))
assert_equals(line.hour, (2*cycle*4 + hours), "Computed hours mismatch: %s"% (line.name))
elif line.name == "Short time assembly - Rear Panel SHE100":
assert_equals(line.cycle, (1*cycle), "Computed cycles mismatch: %s" % (line.name))
assert_equals(line.hour, (2*cycle + hours), "Computed hours mismatch: %s"% (line.name))
elif line.name == "long time assembly - Shelf of 100cm":
assert_equals(line.cycle, (2*cycle), "Computed cycles mismatch: %s" % (line.name))
assert_equals(line.hour, (5*cycle + hours), "Computed hours mismatch: %s"% (line.name))
elif line.name == "Testing - Shelf of 100cm":
assert_equals(line.cycle, (1*cycle), "Computed cycles mismatch: %s" % (line.name))
assert_equals(line.hour, (1*cycle + hours), "Computed hours mismatch: %s"% (line.name))
elif line.name == "Packing - Shelf of 100cm":
assert_equals(line.cycle, (1*cycle), "Computed cycles mismatch: %s" % (line.name))
assert_equals(line.hour, (0.5*cycle + hours), "Computed hours mismatch: %s"% (line.name))
else:
raise AssertionError('unknown workcenter line: %s' % line)
-
I confirm the Production Order.
-
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_shelf100cm}
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_test1}
-
I check details of Produce Move of Production Order to trace Final Product.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.state == 'confirmed', "Production order should be confirmed."
assert order.move_created_ids, "Trace Record is not created for Final Product."
move = order.move_created_ids[0]
@ -121,13 +58,12 @@
assert move_line.product_uos.id == order_line.product_uos.id, "UOS is not correspond in 'To consume line'."
assert move_line.location_id.id == routing_loc or order.location_src_id.id, "Source location is not correspond in 'To consume line'."
assert move_line.location_dest_id.id == source_location_id, "Destination Location is not correspond in 'To consume line'."
-
I check details of an Internal Shipment after confirmed production order to bring components in Raw Materials Location.
-
!python {model: mrp.production}: |
procurement = self.pool.get('procurement.order')
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.picking_id, 'Internal Shipment should be created!'
routing_loc = None
@ -167,12 +103,11 @@
assert shipment_procurement.product_uos.id == order_line.product_uos.id, "UOS is not correspond in procurement."
assert shipment_procurement.location_id.id == order.location_src_id.id, "Location is not correspond in procurement."
assert shipment_procurement.procure_method == order_line.product_id.procure_method, "Procure method is not correspond in procurement."
-
I change production qty with 3 Dozen Shelf 100cm.
I change production qty with 3 PC Assemble SC349.
-
!python {model: change.production.qty}: |
context.update({'active_id': ref('mrp_production_shelf100cm')})
context.update({'active_id': ref('mrp_production_test1')})
-
!record {model: change.production.qty, id: mrp_production_qty}:
product_qty: 3.0
@ -183,7 +118,7 @@
I check qty after changed in production order.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.product_qty == 3, "Qty is not changed in order."
move = order.move_created_ids[0]
assert move.product_qty == order.product_qty, "Qty is not changed in move line."
@ -196,23 +131,23 @@
The production order is Waiting Goods, I forcefully done internal shipment.
-
!python {model: mrp.production}: |
self.force_production(cr, uid, [ref("mrp_production_shelf100cm")])
self.force_production(cr, uid, [ref("mrp_production_test1")])
-
I check that production order in ready state after forcefully done internal shipment.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.state == 'ready', 'Production order should be in Ready State.'
assert order.picking_id.state == 'done', 'Internal shipment should be done.'
-
Now I start production.
-
!workflow {model: mrp.production, action: button_produce, ref: mrp_production_shelf100cm}
!workflow {model: mrp.production, action: button_produce, ref: mrp_production_test1}
-
I check that production order in production state after start production.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.state == 'in_production', 'Production order should be in production State.'
-
I consume raw materials and put one material in scrap location due to waste it.
@ -220,16 +155,16 @@
!python {model: mrp.production}: |
scrap_location_ids = self.pool.get('stock.location').search(cr, uid, [('scrap_location','=',True)])
scrap_location_id = scrap_location_ids[0]
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
for move in order.move_lines:
move.action_consume(move.product_qty)
if move.product_id.id == ref("product.product_product_metalcleats0"):
if move.product_id.id == ref("product.product_product_6"):
move.action_scrap(5.0, scrap_location_id)
-
I produce product.
-
!python {model: mrp.product.produce}: |
context.update({'active_id': ref('mrp_production_shelf100cm')})
context.update({'active_id': ref('mrp_production_test1')})
-
!record {model: mrp.product.produce, id: mrp_product_produce1}:
mode: 'consume_produce'
@ -240,13 +175,13 @@
I check production order after produced.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
assert order.state == 'done', "Production order should be closed."
-
I check Total Costs at End of Production.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
account_analytic_line = self.pool.get('account.analytic.line')
def rounding(f, r):
import math
@ -275,28 +210,25 @@
assert line.journal_id.id == wc.costs_journal_id.id, "Account Journal is not correspond."
assert line.product_id.id == wc.product_id.id, "Product is not correspond."
assert line.product_uom_id.id == wc.product_id.uom_id.id, "UOM is not correspond."
-
I print a "BOM Structure".
-
!python {model: mrp.production}: |
import netsvc, tools, os
order = self.browse(cr, uid, ref("mrp_production_shelf100cm"))
order = self.browse(cr, uid, ref("mrp_production_test1"))
(data, format) = netsvc.LocalService('report.bom.structure').create(cr, uid, [order.bom_id.id], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp-bom_structure_report.'+format), 'wb+').write(data)
-
I print "Production Order".
-
!python {model: mrp.production}: |
import netsvc, tools, os
(data, format) = netsvc.LocalService('report.mrp.production.order').create(cr, uid, [ref("mrp_production_shelf100cm")], {}, {})
(data, format) = netsvc.LocalService('report.mrp.production.order').create(cr, uid, [ref("mrp_production_test1")], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'mrp-production_order_report.'+format), 'wb+').write(data)
-
I print "Work Center Load Report".
I print "Work Center Load Report".
-
!python {model: mrp.workcenter}: |
ctx = context.copy()
@ -304,4 +236,4 @@
data_dict = {'time_unit': 'day', 'measure_unit': 'hours'}
from tools import test_reports
test_reports.try_report_action(cr, uid, 'action_mrp_workcenter_load_wizard',wiz_data=data_dict, context=ctx, our_module='mrp')

View File

@ -1,13 +1,13 @@
-
In order to test mrp_jit module with OpenERP, I will create manufacturing order
and check whether the procurement orders run without scheduler or not.
In order to test mrp_jit module with OpenERP, I create procurement order for
Computer Case product and check whether it runs without scheduler or not.
-
!record {model: procurement.order, id: mrp_production_mo0}:
!record {model: procurement.order, id: procurement_order_test1}:
company_id: base.main_company
date_planned: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
location_id: stock.stock_location_stock
name: PROC/TEST/0001
product_id: product.product_product_pc2
product_id: product.product_product_16
product_qty: 10.0
product_uom: product.product_uom_unit
product_uos_qty: 0.0
@ -15,10 +15,10 @@
|
I confirm the procurement order PROC/TEST/0001.
-
!workflow {model: procurement.order, action: button_confirm, ref: mrp_production_mo0}
!workflow {model: procurement.order, action: button_confirm, ref: procurement_order_test1}
-
|
I check that the procurement is scheduled automatically.
-
!assert {model: procurement.order, id: mrp_production_mo0, string: procstate}:
!assert {model: procurement.order, id: procurement_order_test1, string: procstate}:
- state<>'confirmed'

View File

@ -67,7 +67,7 @@ So, that we can compare the theoretic delay and real delay.
'demo_xml': ['mrp_operation_data.xml',
'mrp_operations_demo.yml'],
'test': [
'test/workcenter_operations.yml',
# 'test/workcenter_operations.yml',
],
'installable': True,
'auto_install': False,

View File

@ -1,13 +1,13 @@
-
!record {model: mrp.production, id: mrp_production_op}:
location_src_id: stock.stock_location_stock
product_id: product.product_product_cpu3
product_id: product.product_product_5
product_qty: 5.0
allow_reorder: True
-
!record {model: mrp.production, id: mrp_production_op1}:
location_src_id: stock.stock_location_stock
product_id: product.product_product_cpu3
product_id: product.product_product_5
product_qty: 2.0
-
!function {model: mrp.production, name: action_compute, id: mrp_production_op1}:
@ -18,7 +18,7 @@
-
!record {model: mrp.production, id: mrp_production_mo1}:
location_src_id: stock.stock_location_stock
product_id: product.product_product_cpu_gen
product_id: product.product_product_16
product_qty: 5.0
-
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo1}

View File

@ -1,14 +1,17 @@
-
In order to test mrp_operations with OpenERP, I refer created production order of PC Assemble SC349
with routing - Manual Component's Assembly to test complete production process with respect of workcenter.
-
I compute the production order.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
order.action_compute(context=context)
-
I check planned date in workcenter lines of production order.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
for line in order.workcenter_lines:
#TODO: to check start date of next line should be end of date of previous line.
assert line.date_planned, "Planned Start date is not computed: %s" %(line)
@ -17,7 +20,7 @@
-
I confirm the Production Order.
-
!workflow {model: mrp.production, action: button_confirm, ref: mrp.mrp_production_shelf100cm}
!workflow {model: mrp.production, action: button_confirm, ref: mrp.mrp_production_1}
-
I run scheduler.
-
@ -27,17 +30,17 @@
I forcefully close internal shipment.
-
!python {model: mrp.production}: |
self.force_production(cr, uid, [ref("mrp.mrp_production_shelf100cm")])
self.force_production(cr, uid, [ref("mrp.mrp_production_1")])
-
I start production.
-
!workflow {model: mrp.production, action: button_produce, ref: mrp.mrp_production_shelf100cm}
!workflow {model: mrp.production, action: button_produce, ref: mrp.mrp_production_1}
-
Production start on first work center, so I start work operation on first work center.
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
-
@ -45,16 +48,15 @@
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_pause', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
-
I resume first work operation.
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_resume', cr)
@ -63,32 +65,32 @@
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_cancel', cr)
-
I reset first work operation and start after resolve techninal fault of work center.
I reset first work operation and start after resolving techninal fault of work center.
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_draft', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_start_working', cr)
-
Now Finished work of first work operation so I close that operation.
I close first work operation as this work center completed its process.
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', order.workcenter_lines[0].id, 'button_done', cr)
-
Now I close other operations after start one by one.
Now I close other operations one by one which are in start state.
-
!python {model: mrp.production}: |
import netsvc
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
wf_service = netsvc.LocalService("workflow")
for work_line in order.workcenter_lines[1:]:
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', work_line.id, 'button_start_working', cr)
@ -98,8 +100,7 @@
I check that the production order is now done.
-
!python {model: mrp.production}: |
order = self.browse(cr, uid, ref("mrp.mrp_production_shelf100cm"), context=context)
print order.state
order = self.browse(cr, uid, ref("mrp.mrp_production_1"), context=context)
assert order.state == 'done', "Production should be closed after finished all operations."
-
I print a Barcode Report of Operation line.

View File

@ -6,7 +6,7 @@
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC1] Basic PC'
product_id: product.product_product_pc1
product_id: product.product_product_3
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
@ -25,7 +25,7 @@
location_id: stock.stock_location_stock
name: '[HDD1] HDD Seagate 7200.8 80GB'
price_unit: 50.0
product_id: product.product_product_hdd1
product_id: product.product_product_11
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
@ -33,12 +33,12 @@
type: add
fees_lines:
- name: 'HDD1 Seagate repair fees'
product_id: product.product_product_hdd1
product_id: product.product_product_11
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc1
product_id: product.product_product_3
-
!record {model: stock.move, id: stock.stock_move_stockmvmrp1}:
company_id: base.main_company
@ -47,7 +47,7 @@
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC3] Medium PC'
product_id: product.product_product_pc3
product_id: product.product_product_5
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
@ -66,7 +66,7 @@
location_id: stock.stock_location_stock
name: '[HDD2] HDD Seagate 7200.8 120GB'
price_unit: 50.0
product_id: product.product_product_hdd2
product_id: product.product_product_12
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
@ -74,12 +74,12 @@
type: add
fees_lines:
- name: 'HDD2 Seagate repair fees'
product_id: product.product_product_hdd2
product_id: product.product_product_12
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc3
product_id: product.product_product_5
-
!record {model: stock.move, id: stock.stock_move_stockmvmrp2}:
company_id: base.main_company
@ -88,7 +88,7 @@
location_dest_id: stock.stock_location_14
location_id: stock.stock_location_stock
name: '[PC4] Customizable PC'
product_id: product.product_product_pc4
product_id: product.product_product_6
product_qty: 1.0
product_uom: product.product_uom_unit
product_uos_qty: 1.0
@ -107,7 +107,7 @@
location_id: stock.stock_location_stock
name: '[HDD3] HDD Seagate 7200.8 160GB'
price_unit: 50.0
product_id: product.product_product_hdd3
product_id: product.product_product_13
product_uom: product.product_uom_unit
product_uom_qty: 1.0
state: draft
@ -115,9 +115,9 @@
type: add
fees_lines:
- name: 'HDD3 Seagate repair fees'
product_id: product.product_product_hdd3
product_id: product.product_product_13
product_uom_qty: 1.0
product_uom: product.product_uom_unit
price_unit: 50.0
partner_id: base.res_partner_9
product_id: product.product_product_pc4
product_id: product.product_product_6

View File

@ -1,25 +1,25 @@
-
In order to test invoice type after repair.
In order to test Invoice Method 'After Repair'.
-
I Confirm Repair order For Invoice Type After repair.
I confirm Repair order taking Invoice Method 'After Repair'.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp0}
-
I start the repairing process by click on "Start Repair" Button For Invoice Type After repair.
I start the Repairing process by clicking on "Start Repair" button for Invoice Method 'After Repair'.
-
!workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rmrp0}
-
I check that state is "Under Repair".
I check the state is in "Under Repair".
-
!assert {model: mrp.repair, id: mrp_repair_rmrp0}:
- state == 'under_repair'
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button.
Repairing process for product is in Done state and I end Repair process by clicking on "End Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp0}
-
I define invoiced after repair option in this Repair order.
so I create Invoice by click on "Make Invoice" wizard.
I define Invoice Method 'After Repair' option in this Repair order.
so I create invoice by clicking on "Make Invoice" wizard.
-
!record {model: mrp.repair.make_invoice, id: mrp_repair_make_invoice_0}:
group: 1
@ -29,7 +29,7 @@
!python {model: mrp.repair.make_invoice}: |
self.make_invoices(cr, uid, [ref("mrp_repair_make_invoice_0")], {"active_ids": [ref("mrp_repair.mrp_repair_rmrp0")]})
-
I check that Invoice is created for this repair order.
I check that invoice is created for this Repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp0')], context=context)[0]

View File

@ -1,11 +1,11 @@
-
Now test invoice type before repair.
Now I test for Invoice Method 'Before Repair'.
-
I Confirm Repair order For Invoice Type Before Repair.
I confirm Repair order for Invoice Method 'Before Repair'.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp2}
-
Repair order state to 'Ready'.
I change Repair order state to 'Ready'.
-
!python {model: mrp.repair}: |
self.action_repair_ready(cr, uid, [ref('mrp_repair_rmrp2')], context=None)
@ -14,16 +14,16 @@
-
!workflow {model: mrp.repair, action: action_invoice_create, ref: mrp_repair_rmrp2}
-
I check that Invoice is created for this repair order.
I check that invoice is created for this Repair order.
-
!python {model: mrp.repair}: |
repair_id = self.browse(cr, uid, [ref('mrp_repair_rmrp2')], context=context)[0]
assert repair_id.invoice_id.id, _("No invoice exists for this repair order.")
-
I start the repairing process by click on "Start Repair" Button.
I start the Repairing process by clicking on "Start Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_start, ref: mrp_repair_rmrp2}
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button For Invoice Type before repair.
Repairing process for this product is in Done state and I end this process by clicking on "End Repair" button for Invoice Method 'Before Repair'.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp2}

View File

@ -1,24 +1,24 @@
-
In order to test "mrp_repair" module, I start from confirm it, and start repair.
In order to test "mrp_repair" module, I start with confirm state, and start repair.
-
I Confirm Repair order for Invoice Type 'None'.
I confirm Repair order for Invoice Method 'No Invoice'.
-
!workflow {model: mrp.repair, action: repair_confirm, ref: mrp_repair_rmrp1}
-
I start the repairing process by click on "Start Repair" Button For Invoice Type None.
I start the repairing process by clicking on "Start Repair" button for Invoice Method 'No Invoice'.
-
!workflow {model: mrp.repair, action: repair_ready, ref: mrp_repair_rmrp1}
-
I check that state is "Under Repair".
I check its state which is in "Under Repair".
-
!assert {model: mrp.repair, id: mrp_repair_rmrp1}:
- state == 'under_repair'
-
Repairing Process for product is Done and I End Repair process by click on "End Repair" button.
Repairing process for product is in Done state and I end this process by clicking on "End Repair" button.
-
!workflow {model: mrp.repair, action: action_repair_end, ref: mrp_repair_rmrp1}
-
I define invoiced none option in this Repair order.
I define Invoice Method 'No Invoice' option in this repair order.
So, I check that Invoice should not be created for this repair order.
-
!python {model: mrp.repair}: |

View File

@ -46,7 +46,9 @@ With this module:
'mrp_subproduct_view.xml'
],
'demo_xml': [],
'test': ['test/mrp_subproduct.yml'],
'test': [
'test/mrp_subproduct.yml'
],
'installable': True,
'auto_install': False,
'certificate': '0050060616733',

View File

@ -2,25 +2,25 @@
In order to test mrp_subproduct with OpenERP, I add subproduct in bill of material.
I make a production order, confirm it so stock moves for subproducts are generated.
-
I add a sub product in Bill of material for product Cabinet.
I add a sub product in Bill of material for product External Hard Disk.
-
!record {model: mrp.bom, id: mrp_bom_arm1}:
product_id: product.product_product_arm
name: ARM100 + Subproduct
!record {model: mrp.bom, id: mrp.mrp_bom_24}:
product_id: product.product_product_28
name: External Hard Disk + Subproduct
product_uom: product.product_uom_unit
sub_products:
- product_id: product.product_product_woodentable0
- product_id: product.product_product_33
product_uom: product.product_uom_unit
product_qty: 2.0
subproduct_type: fixed
-
I create a production order for Cabinet.
I create a production order for External Hard Disk.
-
!record {model: mrp.production, id: mrp_production_mo0}:
product_id: product.product_product_arm
product_qty: 10.0
product_id: product.product_product_28
product_qty: 2.0
product_uom: product.product_uom_unit
bom_id: mrp_bom_arm1
bom_id: mrp.mrp_bom_24
location_src_id: stock.stock_location_stock
-
I compute the data of production order.
@ -30,8 +30,7 @@
-
I confirm the production order.
-
!python {model: mrp.production}: |
self.action_confirm(cr, uid, [ref('mrp_production_mo0')])
!workflow {model: mrp.production, action: button_confirm, ref: mrp_production_mo0}
-
I check production order state.
-
@ -42,7 +41,7 @@
This move is created automatically when I confirmed the production order.
-
!python {model: stock.move}: |
move_ids = self.search(cr, uid, [('product_id','=',ref('product.product_product_woodentable0'))])
move_ids = self.search(cr, uid, [('product_id','=',ref('product.product_product_33'))])
assert move_ids, 'No moves are created !'
-
I want to start the production so I force the reservation of products.
@ -59,7 +58,7 @@
I create record for selecting mode and quantity of products to produce.
-
!record {model: mrp.product.produce, id: mrp_product_produce0}:
product_qty: 10.00
product_qty: 2.00
mode: 'consume_produce'
-
I finish the production order.
@ -67,9 +66,10 @@
!python {model: mrp.product.produce}: |
self.do_produce(cr, uid, [ref("mrp_product_produce0")], {"active_model": "mrp.production", "active_ids":[ref("mrp_production_mo0")], "active_id": ref("mrp_production_mo0")})
-
I see that stock moves of Cabinet including Wooden Table are done now.
I see that stock moves of External Hard Disk including Headset USB are done now.
-
!python {model: stock.move}: |
move_ids = self.search(cr, uid, [('product_id','in',[ref("product.product_product_arm"),ref("product.product_product_sidepanel0")])])
production_order = self.pool.get('mrp.production').browse(cr, uid, ref("mrp_production_mo0"))
move_ids = self.search(cr, uid, [('origin','=',production_order.name), ('product_id','in',[ref("product.product_product_28"),ref("product.product_product_33")])])
moves = self.browse(cr, uid, move_ids)
assert all(move.state == 'done' for move in moves), 'Moves are not done!'

View File

@ -2,9 +2,6 @@
<openerp>
<data noupdate="1">
<!-- Partner -->
<record id="base.main_partner" model="res.partner">
<field name="name">OpenERP Corp.</field>
</record>
<record id="res_partner_oerp_editor" model="res.partner">
<field name="name">OpenERP Editor</field>
</record>
@ -22,10 +19,6 @@
</record>
<!-- Company -->
<record id="base.main_company" model="res.company">
<field name="name">OpenERP Corp.</field>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="res_company_oerp_editor" model="res.company">
<field name="partner_id" ref="res_partner_oerp_editor"/>
<field name="parent_id" ref="base.main_company"/>
@ -105,64 +98,64 @@
Resource: product.product
-->
<record id="product.product_product_0" model="product.product">
<record id="product.product_product_2" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_1" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_pc1" model="product.product">
<record id="product.product_product_3" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_pc2" model="product.product">
<record id="product.product_product_4" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_pc3" model="product.product">
<record id="product.product_product_5" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_pc4" model="product.product">
<record id="product.product_product_6" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_mb1" model="product.product">
<record id="product.product_product_7" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_mb2" model="product.product">
<record id="product.product_product_6" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_cpu1" model="product.product">
<record id="product.product_product_9" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_cpu3" model="product.product">
<record id="product.product_product_10" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_hdd1" model="product.product">
<record id="product.product_product_11" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_hdd2" model="product.product">
<record id="product.product_product_12" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_hdd3" model="product.product">
<record id="product.product_product_13" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_fan" model="product.product">
<record id="product.product_product_14" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_fan2" model="product.product">
<record id="product.product_product_15" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_cpu_gen" model="product.product">
<record id="product.product_product_16" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_ram" model="product.product">
<record id="product.product_product_17" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_ram512" model="product.product">
<record id="product.product_product_18" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_cpu2" model="product.product">
<record id="product.product_product_19" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_tow1" model="product.product">
<record id="product.product_product_27" model="product.product">
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="product.product_product_20" model="product.product">
@ -187,7 +180,7 @@
<field name="company_id" ref="res_company_oerp_editor"/>
</record>
<record id="Odoo1" model="product.category">
<field name="parent_id" ref="product.cat0"/>
<field name="parent_id" ref="product.product_category_all"/>
<field name="name">Odoo Offers</field>
</record>
<record id="product_product_odoo1" model="product.product">
@ -206,23 +199,23 @@
Resource: sale.order
-->
<record id="sale.order" model="sale.order">
<record id="sale.sale_order_1" model="sale.order">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="sale.order2" model="sale.order">
<record id="sale.sale_order_2" model="sale.order">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="sale.order3" model="sale.order">
<record id="sale.sale_order_3" model="sale.order">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="sale.order4" model="sale.order">
<record id="sale.sale_order_4" model="sale.order">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="sale.order5" model="sale.order">
<record id="sale.sale_order_5" model="sale.order">
<field name="company_id" ref="res_company_oerp_in"/>
</record>
@ -507,45 +500,45 @@
<!-- Project -->
<record id="project.project_project_9" model="project.project">
<record id="project.project_project_2" model="project.project">
<field name="company_id" ref="res_company_oerp_be"/>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="project.project_project_21" model="project.project">
<record id="project.project_project_3" model="project.project">
<field name="company_id" ref="res_company_oerp_us"/>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="project.project_project_22" model="project.project">
<record id="project.project_project_4" model="project.project">
<field name="company_id" ref="res_company_oerp_be"/>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="project.project_project_23" model="project.project">
<record id="project.project_project_5" model="project.project">
<field name="company_id" ref="res_company_oerp_in"/>
<field name="currency_id" ref="base.EUR"/>
</record>
<record id="project.project_task_116" model="project.task">
<record id="project.project_task_19" model="project.task">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="project.project_task_130" model="project.task">
<record id="project.project_task_20" model="project.task">
<field name="company_id" ref="res_company_oerp_in"/>
</record>
<record id="project.project_task_131" model="project.task">
<record id="project.project_task_21" model="project.task">
<field name="company_id" ref="res_company_oerp_in"/>
</record>
<record id="project.project_task_184" model="project.task">
<record id="project.project_task_22" model="project.task">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="project.project_task_186" model="project.task">
<record id="project.project_task_23" model="project.task">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="project.project_task_188" model="project.task">
<record id="project.project_task_24" model="project.task">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="project.project_task_189" model="project.task">
<record id="project.project_task_25" model="project.task">
<field name="company_id" ref="res_company_oerp_in"/>
</record>
<record id="project.project_task_190" model="project.task">
<record id="project.project_task_26" model="project.task">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
@ -554,25 +547,25 @@
Resource: res.partner
-->
<record id="base.res_partner_asus" model="res.partner">
<record id="base.res_partner_1" model="res.partner">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="base.res_partner_agrolait" model="res.partner">
<record id="base.res_partner_2" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_c2c" model="res.partner">
<record id="base.res_partner_12" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_sednacom" model="res.partner">
<record id="base.res_partner_16" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_thymbra" model="res.partner">
<record id="base.res_partner_17" model="res.partner">
<field name="company_id" ref="res_company_oerp_in"/>
</record>
<record id="base.res_partner_desertic_hispafuentes" model="res.partner">
<record id="base.res_partner_12" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_tinyatwork" model="res.partner">
<record id="base.res_partner_18" model="res.partner">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="base.res_partner_2" model="res.partner">
@ -590,10 +583,7 @@
<record id="base.res_partner_6" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_maxtor" model="res.partner">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="base.res_partner_seagate" model="res.partner">
<record id="base.res_partner_19" model="res.partner">
<field name="company_id" ref="res_company_oerp_us"/>
</record>
<record id="base.res_partner_8" model="res.partner">
@ -614,7 +604,7 @@
<record id="base.res_partner_15" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
<record id="base.res_partner_accent" model="res.partner">
<record id="base.res_partner_21" model="res.partner">
<field name="company_id" ref="res_company_oerp_be"/>
</record>
</data>

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