PartKeepr\StatisticBundle\Services\StatisticService::createStatisticSnapshot PHP Method

createStatisticSnapshot() public method

    public function createStatisticSnapshot()
    {
        $snapshot = new StatisticSnapshot();
        $snapshot->setParts($this->getPartCount());
        $snapshot->setCategories($this->getPartCategoryCount());
        $unitCounts = $this->getUnitCounts();
        $partUnitRepository = $this->entityManager->getRepository('PartKeeprPartBundle:PartMeasurementUnit');
        foreach ($unitCounts as $unitCount) {
            $snapshotUnit = new StatisticSnapshotUnit();
            $snapshotUnit->setPartUnit($partUnitRepository->findOneBy(['id' => $unitCount['partMeasurementUnit']['id']]));
            $snapshotUnit->setStatisticSnapshot($snapshot);
            if ($unitCount['stockLevel'] !== null) {
                $snapshotUnit->setStockLevel($unitCount['stockLevel']);
            } else {
                $snapshotUnit->setStockLevel(0);
            }
            $snapshot->getUnits()->add($snapshotUnit);
        }
        $this->entityManager->persist($snapshot);
        $this->entityManager->flush();
    }