{ 3. public function resolveReceipt (Receipt $receipt) 4. { 5. $toSend = []; 6. foreach ($receipt->getList() as $name => $count) { 7. $available = $this->getAvailable($name); 8. if ($count > count($available)) { 9. throw new \AvailableException ($name, $available, $count); 10. } 11. 12. $needed = array_slice($available, 0, $count); 13. $toSend = array_merge($toSend, $needed); 14. $this->writeOff($needed, new Reason('Resolved for receipt №' .$receipt->getId())); 15. } 16. 17. $receipt->resolve(new \DateTime()); 18. 19. return new Car($toSend); 20. } 21. }