dailydealFactory = $dailydealFactory; $this->scopeConfig=$scopeConfig; $this->productFactory= $productFactory; $this->loadedTimer = 0; } public function chkEnableDailydeals() { $storeScope = \Magento\Store\Model\ScopeInterface::SCOPE_STORE; $configPath = "sw_dailydeal/general/dailydeal_enabled"; $chkEnableDailydeals = $this->scopeConfig->getValue($configPath, $storeScope); return $chkEnableDailydeals; } // Get ObjectManager Instance public function getObjectManagerInstance() { $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); return $objectManager; } //Check Dailydeal Product public function isDealProduct($productId) { if(!$this->chkEnableDailydeals()) return false; $productcollection=$this->productFactory->create()->getCollection(); $productcollection->addAttributeToSelect('*'); $productcollection->addAttributeToFilter('entity_id', ['eq'=>$productId]); $sku=$productcollection->getFirstItem()->getSku(); $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$sku]); if ($dailydealcollection->getSize() ==1) { $objDate = $this->getObjectManagerInstance()->create('Magento\Framework\Stdlib\DateTime\DateTime'); $curdate=strtotime($this->getcurrentDate()); $Todate=strtotime($this->getDailydealToDate($sku)); $fromdate=strtotime($this->getDailydealFromDate($sku)); if (( $curdate <= $Todate ) && ($curdate >= $fromdate)) { return true; } else { return false; } } else { return false; } } // Get Product Price public function getProductPrice($sku) { $productcollection=$this->productFactory->create()->getCollection(); $productcollection->addAttributeToSelect('*'); $productcollection->addAttributeToFilter('sku', ['eq'=>$sku]); $productcollection->addAttributeToFilter('type_id', ['neq'=>'bundle']); if ($productcollection->getSize() ==1 && $productcollection->getFirstItem()->getTypeId() !="grouped") { return $productcollection->getFirstItem()->getFinalPrice(); } else { return 1; } } // Get Bundle Discount Value public function getbundleProductDiscount($sku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$sku]); if ($dailydealcollection->getFirstItem()->getSwDiscountType() ==1) { return '
Save:'.$this->getcurrencySymbol().''.number_format($dailydealcollection->getFirstItem()->getSwDiscountAmount(), 2).'
'; } elseif ($dailydealcollection->getFirstItem()->getSwDiscountType() ==2) { return '
OFF:'.number_format($dailydealcollection->getFirstItem()->getSwDiscountAmount(), 2).'%
'; } } //Get "Product price" by ProductId public function getDealproductbyId($productId) { $productcollection=$this->productFactory->create()->getCollection(); $productcollection->addAttributeToSelect('*'); $productcollection->addAttributeToFilter('entity_id', ['eq'=>$productId]); $sku=$productcollection->getFirstItem()->getSku(); return $this->getDealProductPrice($sku); } // Get Current Currency Symbol public function getcurrencySymbol() { $currencySymbol=$this->getObjectManagerInstance()->create('Magento\Store\Model\StoreManagerInterface'); return $currencySymbol->getStore()->getCurrentCurrency()->getCurrencySymbol(); } // Get Current Date public function getcurrentDate() { $objDate = $this->getObjectManagerInstance()->create('Magento\Framework\Stdlib\DateTime\DateTime'); return $objDate->gmtDate("Y-m-d H:i:s"); } // Get Collection of dailydeal public function getDailydealcollection() { $dailydealcollection=$this->dailydealFactory->create()->getCollection(); return $dailydealcollection; } // Get Discount Value of Dailydeal Product public function getDealProductDiscountValue($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); return $dailydealcollection->getFirstItem()->getSwDiscountAmount(); } // Get Dailydeal Product with Discount Price public function getDealProductPrice($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); return $dailydealcollection->getFirstItem()->getSwProductPrice(); } // Get Dailydeal Product TO date public function getDailydealToDate($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); return $dailydealcollection->getFirstItem()->getSwDateTo(); } // Get Dailydeal Product FROM Date public function getDailydealFromDate($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); return $dailydealcollection->getFirstItem()->getSwDateFrom(); } // Get "OFF value" (in percentage) of Dailydeal Product public function getDealOffValue($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); $discountType=$dailydealcollection->getFirstItem()->getSwDiscountType(); if ($discountType ==1) { $off=(($this->getProductPrice($dealproductsku)-$this->getDealProductPrice($dealproductsku))* 100)/ $this->getProductPrice($dealproductsku) ; return $off; } elseif ($discountType ==2) { return $dailydealcollection->getFirstItem()->getSwDiscountAmount(); } } // Get "Save value" (In price) of dailydeal Product public function getDealSaveValue($dealproductsku) { $dailydealcollection=$this->getDailydealcollection(); $dailydealcollection->addFieldToSelect('*'); $dailydealcollection->addFieldToFilter('sw_product_sku', ['eq'=>$dealproductsku]); $discountType=$dailydealcollection->getFirstItem()->getSwDiscountType(); if ($discountType ==1) { return $dailydealcollection->getFirstItem()->getSwDiscountAmount(); } elseif ($discountType ==2) { $save=$this->getProductPrice($dealproductsku) - $this->getDealProductPrice($dealproductsku); return $save; } } public function isLoadedTimer() { return $this->loadedTimer; } public function setLoadedTimer() { $this->loadedTimer = 1; } }