Comment 176 for bug 1160365

Revision history for this message
Fabien (Open ERP) (fp-tinyerp) wrote : Re: [Bug 1160365] Re: [7.0] incorrect handling of contact/companies for invoicing and related purposes

Nicolas,

My answer inline.

> 1) googledoc line 13: I'm not sure that on pdf this is the contact that
> is show as address:
>
> - ACME FR (is company)
> - ACME EUROP (is company
> - JOHN DO AT ACME EUROP contact for invoicing address
>
> When you print invoice for ACME FR, and send it for validation to JOHN
> DO AT ACME EUROP that is in charge of all invoice for ACME CORP, I think
> address should be ACME FR on invoice.

It depends on the configuration. Note that your example is different
from the line 13.

Based on your example, the answer is "like in v6.1":

  - If you invoice ACME FR, the invoice is sent to ACME FR
  - If you invoice "John Doe, Acme Europe", invoice is sent to John Doe
    and accounted for ACME Europe
  - If you invoice Acme Europe, invoice is sent to ACME Europe and
    accounted for ACME Europe
  - If John Doe works for both ACME FR and ACME Europe, you have to create
    two John Doe. (because their email, phone, work address may not be
    the same)

So, it's exactly like in v6.1. (and raphael's branch follow the same too)

> 2) scenario 4: How do you create this structure ? (runbot 7.0-fix-
> contact-company-handling is disable .. will test when it 's ok, but for
> me you can not add contact to partner that's not a company ...)

Yes, it's provided by this module. The data model and the code already
allows this (we just have to make the tab active on the form). To be
fair, I also marked that this feature would have been merged in
Raphaël's branch too.

> 3) Scenario 6: I don't see case when you disable (active = false) an
> contact because he has left le company and you have to create a refund.
> For me it's not john do at ACME that should be linked to the refund and
> eventually new invoice but the new contact .. ?

I have added this scenario.

Both approaches are good: (they are pros and cons for both)
  - v6.1 & v7: invoice address of a refund is the same than the invoice
  - raphael: invoice address of a refund is recomputed as the new
    invoice address

v6.1 & v7 is better if invoice address did not changed (the address may
have changed, but not "which record" give the best address)
raphael's solution is better if it changed, but not if the address did
not changed between the invoice and refund.

> 4) Scenario 7: You have to choose if it'a john do at ACME or not ... you
> say all over comment that it's not john do as partner_id but john do at
> ACME, and base contact add ability to have more function ? (I can test
> now because of nginx bad gateway on runbot, but will do it) Is there a
> branch with base_contact and fix-contact-company to test ?

Not yet. You must merge both locally.

Note that base_contact should not have impact according to the solution.
It's behaviour should be the same.

> 5) Scenatio 8: One company order, but the delivery is another company
> and invoicing too ... hum, how do you manage contact with this ?JOHN do
> at ACME can be contact for delivery and invoice (the person who check,
> validate et follow the project) and address can be different ? how do
> you configure this to your point of view ?

Two solutions:
  - you do it manually on the order: as OpenERP does only propositions,
    you can still change them.
Or you do that:
  - John Doe: default address
  - Marc Levy: contact address

> Ex: Nicolas JEUDY is in charge of a project that will be invoiced to
> TUXSERVICES FRANCE, and deliver to OPENERP (delivery address). But
> Nicolas JEUDY will be the only contact that is in charge of verifying
> computers are ok in OPENERP, and all goods are OK, but the delivery
> adresse (postal one in this case) is OPENERP ? should I create Nicolas
> JEUDY AT OPENERP ? Nicolas JEUDY will be able to recieve info only by
> email because postal adresse is wrong ...

Not sure I understood, your example. I updated the spreadsheet with new
scenario 10.

> A contact is not necessary a person who has same postal adress as
> company. it's just the contact for the project, invoice ... And think
> that the mistake ... I'm ready to test these scenario but can you just
> tell me how I can create this situation ?

No. The sale order address is the one that purchased!
A contact for a project, is on the project, not on the sale order.
This scenario has no sense IMHO.

> Some questions:
>
> - In my modules how do i know when partner_id is a contact or a company
> ? I have to check if parent_id exist or if commercial_id existe ? what
> is the way you think we should do it ?

* is_company is checked if it's a company

Please note that *you never need this*. Some data should belong to the
company (account receivable, fiscal position) other data should come
from the company (address, phone, email).

If you need:
  - an account receivable: partner_id.commercial_id.account_receivable
  - an email: partner_id.email

This always works for all kind of contacts and hierarchies:
  - subsidiaries of groups
  - single persons
  - main company
  - person representing a company
  - departments

When you implement a module, if you think the pricelist should come from
the company, you do this partner_id.commercial_id.pricelist or, if you
think the pricelist belong to the contact, you do this:
partner_id.pricelist.

> - On a contract, I should add ACME or john DO at ACME in partner_id ?

On the contract, you put the invoice address.

> If it's ACME, how to have this contract on issue or task when invoice
> timesheet on issue,task is active (analytique account) ? Now I create
> issue with the contact that call me, do you mean all contact in ACME
> will have accounting, sales, ... informations duplicate ?

I don't understand your question. What kind of data do you need on a issue ?

--
Fabien Pinckaers
CEO OpenERP
Chaussée de Namur 40
B-1367 Grand-Rosière
Belgium
Phone: +32.81.81.37.00
Fax: +32.81.73.35.01
Web: http://openerp.com