code: public function calculateShippableQuantity(
          Common\SaleItemInterface $saleItem,
          Shipment\ShipmentInterface $ignore = null
      ) {
          // TODO Return zero if not shippable (?)
  
          // Quantity = Sold - Shipped - Returned (ignoring current)
  
          // TODO Packaging format
          $quantity = $saleItem->getTotalQuantity();
          $quantity -= $this->invoiceCalculator->calculateCreditedQuantity($saleItem);
          $quantity -= $this->calculateShippedQuantity($saleItem, $ignore);
          $quantity += $this->calculateReturnedQuantity($saleItem);
  
          return max($quantity, 0);
      }
docs: @inheritdoc
  
  @todo Add bool $strict parameter : really shipped and not created/prepared