Impacted versions: 10.0

Steps to reproduce:
1. Create pos order with two products.
2. One of the products, must be type= Stockable Product and quantity=0.
3. Pay order.
4. check order --> extra info --> picking
5. picking state = Waiting Availability  

Current behavior:
picking State = Waiting Availability

Expected behavior:
picking State  = Done
[As in v9.0](https://youtu.be/X_R_jHZdYb8)

Video/Screenshot link (optional):
https://youtu.be/eWCe6juEcvw

'account_id': order_account,
                'credit': ((order.amount_total < 0) and -order.amount_total) or 0.0,
                'debit': ((order.amount_total > 0) and order.amount_total) or 0.0,
                'partner_id': partner_id
            })
            order.write({'state': 'done', 'account_move': move.id})
        all_lines = []
        for group_key, group_data in grouped_data.iteritems():
            for value in group_data:
                all_lines.append((0, 0, value),)
        if move:  
            move.sudo().write({'line_ids': all_lines})
            move.sudo().post()
        return True
    def _reconcile_payments(self):
        for order in self:
            aml = order.statement_ids.mapped('journal_entry_ids').mapped('line_ids') | order.account_move.line_ids | order.invoice_id.move_id.line_ids
            aml = aml.filtered(lambda r: not r.reconciled and r.account_id.internal_type == 'receivable' and r.partner_id == order.partner_id.commercial_partner_id)
            try:
                aml.reconcile()
            except:
                
                
                
                
                _logger.error('Reconciliation did not work for order %s', order.name)
                continue
    def _default_session(self):
        return self.env['pos.session'].search([('state', '=', 'opened'), ('user_id', '=', self.env.uid)], limit=1)
    def _default_pricelist(self):