Example #1
0
 /**
  * Create Job instance from job payload
  *
  * @param string $payload JSON job payload
  * @return Job
  */
 public static function createFromPayload($payload)
 {
     $data = json_decode($payload, true);
     $job = new self($data['job'], $data['data']);
     $job->setCreatedAt(new DateTime($data['created_at']));
     return $job;
 }
Example #2
0
 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;
 }
Example #3
0
 /**
  * @param Campaign $campaign
  * @param array $array
  * @return Campaign|Content
  */
 public static function createFromArray(Campaign $campaign = null, array $array = array())
 {
     $defaults = array("view_count" => 0, "like_count" => 0, "dislike_count" => 0, "favorite_count" => 0, "comment_count" => 0, "tw_share_count" => 0, "fb_share_count" => 0);
     $array = array_merge($defaults, $array);
     $content = new self($array['id'], $campaign);
     $content->setSource($array['source']);
     $content->setFoundAt(new \DateTime($array['found_at']));
     $content->setNativeId($array['native_id']);
     $content->setCreatedAt(new \DateTime($array['created_at']));
     $content->setUrl($array['url']);
     $content->setThumb($array['thumb']);
     $content->setVideoSrc($array['video_src']);
     $content->setTitle($array['title']);
     $content->setDescription($array['description']);
     $content->setVideoLength($array['video_length']);
     $content->setUsername($array['username']);
     $content->setViewCount($array['view_count']);
     $content->setLikeCount($array['like_count']);
     $content->setDislikeCount($array['dislike_count']);
     $content->setFavCount($array['favorite_count']);
     $content->setCommentCount($array['comment_count']);
     $content->setTwCount($array['tw_share_count']);
     $content->setFbCount($array['fb_share_count']);
     $content->setProcessed($array['processed']);
     if ($array['processed']) {
         $content->setProcessedAt(new \DateTime($array['processed_at']));
     }
     $content->setKeyword($array['keyword']);
     $content->setUserNativeId($array['user_native_id']);
     if (isset($array['popularity'])) {
         $content->setPopularity($array['popularity']);
     }
     if (isset($array['sr_status'])) {
         $content->setSrStatus($array['sr_status']);
     } else {
         if (isset($array['srstatus'])) {
             $content->setSrStatus($array['srstatus']);
         }
     }
     if (isset($array['followers'])) {
         $content->setUserReach($array['followers']);
     }
     return $content;
 }
 /**
  * @param $product
  * @return ShopifyProductEntity
  */
 public static function createFromProductCreationResponse($product)
 {
     $self = new self();
     $self->setId($product['product']['id']);
     $self->setVariantId($product['product']['variants'][0]['id']);
     $self->setCreatedAt(new \DateTime());
     $self->setUpdatedAt(new \DateTime());
     $self->setSku($product['product']['variants'][0]['sku']);
     $self->setHandle($product['product']['handle']);
     return $self;
 }