[MERGE] demo data
bzr revid: fp@tinyerp.com-20120813103024-9yn1jrk80hk59bkz
This commit is contained in:
commit
cdc3e2b333
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
|
||||
-
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
-
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
-
|
||||
|
|
|
@ -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'],
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
}]
|
||||
}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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)])
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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',
|
||||
}
|
||||
|
|
|
@ -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',
|
||||
}
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -6,74 +6,75 @@
|
|||
-->
|
||||
|
||||
<!--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=""Meeting to discuss project plan and hash out the details of implementation "" name="description"/>
|
||||
<field eval=""open"" 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=""Follow-up on proposal"" 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=""draft"" 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=""Initial discussion"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-05 19:01:01')" name="date_deadline"/>
|
||||
<field eval=""contact@tecsas.fr"" 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=""Meeting to discuss project plan and hash out the details of implementation "" name="description"/>
|
||||
<field eval=""done"" 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=""Discuss pricing"" 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=""open"" 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=""Review needs"" 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=""draft"" 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=""Changes in Designing"" name="name"/>
|
||||
<field eval="time.strftime('%Y-%m-22 16:05:05')" name="date_deadline"/>
|
||||
<field eval=""info@opensides.be"" 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=""done"" 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=""Update the data"" 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=""contact@tecsas.fr"" 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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -21,11 +21,28 @@
|
|||
<field name="res_id" ref="base_calendar.menu_crm_meeting"/>
|
||||
</record>
|
||||
|
||||
<record model="crm.case.section" id="section_sales_marketing_department">
|
||||
<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.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">
|
||||
|
@ -33,5 +50,6 @@
|
|||
<field name="exclusif">True</field>
|
||||
<field name="categ_id" ref="base.res_partner_category_2"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -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
|
@ -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"/>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -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=""3"" name="priority"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Left the message"" name="name"/>
|
||||
<field eval=""open"" 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=""(726) 782-0636"" name="partner_mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone1"/>
|
||||
<field eval=""(769) 703-274"" name="partner_phone"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field eval=""done"" 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=""4"" 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=""Get More information on the proposed deal"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(392) 895-7917"" 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=""(956) 293-2595"" name="partner_phone"/>
|
||||
<field eval="1.5" name="duration"/>
|
||||
<field eval=""done"" 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=""2"" name="priority"/>
|
||||
<field eval="'2'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field eval=""Bad time, will call back"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(820) 167-3208"" 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=""(079) 681-2139"" name="partner_phone"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field eval="5.0" name="duration"/>
|
||||
<field eval=""done"" 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=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Discuss Review Process"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(077) 582-4035"" name="partner_mobile"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="crm.categ_phone2"/>
|
||||
<field eval=""(514) 698-4118"" 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=""3"" name="priority"/>
|
||||
<field eval="'3'" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""More information on the proposed deal"" name="name"/>
|
||||
<field eval=""pending"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(333) 715-1450"" 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=""(855) 924-4364"" 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=""3"" 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=""Bad time"" name="name"/>
|
||||
<field eval=""open"" name="state"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval=""(468) 017-2684"" 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=""(373) 907-1009"" name="partner_phone"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
<field eval="8.56" name="duration"/>
|
||||
</record>
|
||||
</data>
|
||||
|
|
|
@ -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.
|
||||
-
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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.
|
||||
-
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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'})
|
||||
|
|
|
@ -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")])
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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=""3"" name="priority"/>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<field eval=""(769) 703-274"" 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=""4"" name="priority"/>
|
||||
|
@ -30,7 +30,7 @@
|
|||
<field eval=""(956) 293-2595"" 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=""2"" name="priority"/>
|
||||
|
@ -43,9 +43,9 @@
|
|||
<field eval=""contact@tecsas.fr"" 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=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Product quality not maintained"" name="name"/>
|
||||
|
@ -55,7 +55,7 @@
|
|||
<field eval=""(514) 698-4118"" 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=""3"" name="priority"/>
|
||||
|
@ -67,7 +67,7 @@
|
|||
<field eval=""(855) 924-4364"" 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=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
|
@ -80,8 +80,8 @@
|
|||
<field eval=""info@opensides.be"" 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=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval=""Documents unclear"" name="name"/>
|
||||
|
|
|
@ -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
|
||||
|
|
@ -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=""Is there any link to download old versions of OpenERP?"" 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=""I am not able to connect Server, Can anyone help?"" 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=""Can anyone give link of document for CRM"" 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"/>
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)
|
|
@ -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>
|
||||
|
|
|
@ -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
|
@ -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."
|
||||
|
|
|
@ -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])])
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
@ -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.
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
@ -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
|
@ -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"/>
|
||||
|
|
|
@ -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 id="hr_payroll.hr_employee_payroll" model="hr.employee">
|
||||
<field name="address_home_id" ref="base.res_partner_main2"/>
|
||||
</record>
|
||||
<record id="hr_payroll.hr_employee_bonamy0" model="hr.employee">
|
||||
<field name="address_home_id" ref="res_partner_bonamy"/>
|
||||
</record>
|
||||
|
||||
|
||||
|
||||
</data>
|
||||
|
|
|
@ -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
|
||||
-
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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'})
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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")]})
|
||||
|
|
|
@ -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
|
||||
-
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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"/>
|
||||
|
|
|
@ -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
|
||||
|
||||
-
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
@ -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".'
|
||||
|
||||
|
|
|
@ -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
|
@ -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])
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
|
|
|
@ -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,26 +210,23 @@
|
|||
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".
|
||||
-
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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}: |
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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!'
|
||||
|
|
|
@ -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
Loading…
Reference in New Issue