Impacted versions:
* 11.0

Steps to reproduce:
* Create company A
* Create company B
* Admin user with both companies but currently in company B
* Create Demo user only with company B
* Create fiscal position A to company A
* Create fiscal position B to company B
* Create vendor with fiscal position A with company A and the same vendor with fiscal position B in company B
* Create product and add the vendor created before
* Set like **Create a draft purchase order**
* Logging with Demo user
* Create sale order with one sale order line with route **make to order**
* Validate sale order

Current behavior:
The purchase order created by sale order has the fiscal position **company A**

Expected behavior:
The purchase order must have fiscal position **company B**
addons/purchase/models/purchase.py
create_uid = fields.Many2one('res.users', 'Responsible')
    company_id = fields.Many2one('res.company', 'Company', required=True, index=True, states=READONLY_STATES, default=lambda self: self.env.user.company_id.id)
    picking_type_id = fields.Many2one('stock.picking.type', 'Deliver To', states=READONLY_STATES, required=True, default=_default_picking_type,\
        help="This will determine picking type of incoming shipment")
    default_location_dest_id_usage = fields.Selection(related='picking_type_id.default_location_dest_id.usage', string='Destination Location Type',\
        help="Technical field used to display the Drop Ship Address", readonly=True)
    group_id = fields.Many2one('procurement.group', string="Procurement Group", copy=False)
    is_shipped = fields.Boolean(compute="_compute_is_shipped")
    @api.model
    def name_search(self, name, args=None, operator='ilike', limit=100):
        args = args or []
        domain = []
        if name:
            domain = ['|', ('name', operator, name), ('partner_ref', operator, name)]
        pos = self.search(domain + args, limit=limit)
        return pos.name_get()
    @api.multi
    @api.depends('name', 'partner_ref')
    def name_get(self):
        result = []
        for po in self:
            name = po.name
            if po.partner_ref:
                name += ' ('+po.partner_ref+')'
            if po.amount_total:
                name += ': ' + formatLang(self.env, po.amount_total, currency_obj=po.currency_id)
            result.append((po.id, name))
        return result
    @api.model
    def create(self, vals):