public function addQueue($data, $cron = true) { $params = array(); $queue = new self(); $this->_storeId = $data["storeId"]; //$this->closeOpenQueues('erply_'.$data["type"]); $activeQueue = $this->loadActive('erply_' . $data["type"]); if (count($activeQueue) > 0) { return false; } if (isset($data["changedSince"])) { $lastQueue = $this->getCollection()->addFieldToFilter('job_code', array('eq' => 'erply_' . $data["type"]))->addFieldToFilter('status', array('eq' => 0))->addFieldToFilter('store_id', array('eq' => $data["storeId"])); $last = $lastQueue->getLastItem(); if ($last->getId()) { $params["changedSince"] = strtotime($last->getCreatedAt()); } else { $params["changedSince"] = strtotime("-24hour", time()); } $queue->setChangedSince($params["changedSince"]); } $data["totalRecords"] = Mage::getModel('Erply/Import')->getTotalRecords($data["storeId"], $data["type"], $params); if ($data["totalRecords"] == 0) { return false; } $data["recordsPerRun"] = Mage::getStoreConfig('eepohs_erply/queue/records_per_run', $data["storeId"]); if ($data["type"] == 'image_import') { $runEvery = Mage::getStoreConfig('eepohs_erply/queue/run_every', $data["storeId"]); $data["recordsPerRun"] = floor(450 / (60 / $runEvery)); } elseif ($data["type"] == 'price_update') { $data["recordsPerRun"] = $data["recordsPerRun"] * 5; } elseif ($data["type"] == 'inventory_update') { $data["recordsPerRun"] = $data["recordsPerRun"] * 5; } $data["loopsPerRun"] = Mage::getStoreConfig('eepohs_erply/queue/loops_per_run', $data["storeId"]); $queue->setJobCode('erply_' . $data["type"]); $queue->setStoreId($data["storeId"]); $queue->setTotalRecords($data["totalRecords"]); $queue->setRecordsPerRun($data["recordsPerRun"]); $queue->setLastPageNo(0); $queue->setLoopsPerRun($data["loopsPerRun"]); $queue->setStatus(1); $queue->setCreatedAt(strftime('%Y-%m-%d %H:%M:%S', time())); $queue->setUpdatedAt(strftime('%Y-%m-%d %H:%M:%S', time())); $queue->setScheduledAt($data["scheduleDateTime"]); $queue->save(); if ($cron) { Mage::getModel('Erply/Cron')->addCronJob('erply_' . $data["type"], $data["scheduleDateTime"]); // $this->_redirectSuccess("Cron Job added!"); } return true; }