'On creation of first contact for a company (or root) that has no address, assume contact address
was meant to be company address'

@api.multi
def _handle_first_contact_creation(self):

    parent = self.parent_id
    address_fields = self._address_fields()
    if ((parent.is_company or (not parent.parent_id)) and (len(parent.child_ids) == 1) and any((self[f] for f in address_fields)) and (not any((parent[f] for f in address_fields)))):
        addr_vals = self._update_fields_values(address_fields)
        parent.update_address(addr_vals)
