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

if stock_production_lot:
                            if stock_production_lot.product_id.tracking == 'lot':
                                qty = pack_lot_names.count(lot_name)
                            else:
                                qty = 1.0
                            qty_done += qty
                            pack_lots.append({'lot_id': stock_production_lot.id, 'qty': qty})
                else:
                    qty_done = pack_operation.product_qty
                pack_operation.write({'pack_lot_ids': map(lambda x: (0, 0, x), pack_lots), 'qty_done': qty_done})
    def _prepare_bank_statement_line_payment_values(self, data):
        """Create a new payment for the order"""
        args = {
            'amount': data['amount'],
            'date': data.get('payment_date', fields.Date.today()),
            'name': self.name + ': ' + (data.get('payment_name', '') or ''),
            'partner_id': self.env["res.partner"]._find_accounting_partner(self.partner_id).id or False,
        }
        journal_id = data.get('journal', False)
        statement_id = data.get('statement_id', False)
        assert journal_id or statement_id, "No statement_id or journal_id passed to the method!"
        journal = self.env['account.journal'].browse(journal_id)
        
        company_cxt = dict(self.env.context, force_company=journal.company_id.id)
        account_def = self.env['ir.property'].with_context(company_cxt).get('property_account_receivable_id', 'res.partner')
        args['account_id'] = (self.partner_id.property_account_receivable_id.id) or (account_def and account_def.id) or False
        if not args['account_id']:
            if not args['partner_id']:
                msg = _('There is no receivable account defined to make payment.')
            else: