Пример #1
0
    /**
     * On order confirm, add product media file in orderitemFIlesTable
     *
     * @param   INT  $order_id  order_id
     *
     * @return  VOID
     */
    public function addEntryInOrderItemFiles($order_id)
    {
        $productHelper = new productHelper();
        $comquick2cartHelper = new comquick2cartHelper();
        $params = JComponentHelper::getParams('com_quick2cart');
        $eProdExpFormat = $params->get('eProdExpFormat', 'epMonthExp');
        // Down count/ date limit / both
        $eProdUExpiryMode = $params->get('eProdUExpiryMode', 'epMaxDownload');
        $db = JFactory::getDBO();
        $q = "SELECT `item_id`,`order_item_id`,`product_quantity`\n\t\t\t\tFROM  `#__kart_order_item`\n\t\t\t\tWHERE `order_id` =" . (int) $order_id;
        $db->setQuery($q);
        $result = $db->loadAssocList();
        foreach ($result as $res) {
            $item_id = $res['item_id'];
            $mediaDetail = $productHelper->getMediaDetail($item_id);
            //  Copy all media
            foreach ($mediaDetail as $media) {
                $pfile = new stdClass();
                $pfile->product_file_id = $media['file_id'];
                $pfile->order_item_id = $res['order_item_id'];
                $pfile->expirary_date = '';
                $que = 'SELECT of.id FROM `#__kart_orderItemFiles` AS of
					where of.order_item_id=' . $pfile->order_item_id . ' AND of.`product_file_id`=' . $pfile->product_file_id . ' ORDER BY of.id';
                $db->setQuery($que);
                $fileid = $db->loadResult();
                if (!empty($fileid)) {
                    //  Actually will not come inside. still for worse case
                    $action = "updateObject";
                    $pfile->id = $fileid;
                } else {
                    $action = "insertObject";
                    $pfile->cdate = date('Y-m-d H:i:s');
                }
                //  if purchase require not req
                if ($media['purchase_required'] == 0) {
                    $pfile->download_limit = -1;
                } else {
                    //  DATE EXPIRATION
                    if ($eProdUExpiryMode == 'epDateExpiry' || $eProdUExpiryMode == 'epboth') {
                        //  expirary in months
                        if ($media['expiry_mode'] == 1) {
                            //  months
                            $exdate = $comquick2cartHelper->add_date($pfile->cdate, 0, $media['expiry_in']);
                        } else {
                            //  in days
                            $exdate = $comquick2cartHelper->add_date($pfile->cdate, $media['expiry_in']);
                        }
                        $pfile->expirary_date = $exdate;
                    }
                    if ($eProdUExpiryMode == 'epMaxDownload' || $eProdUExpiryMode == 'epboth') {
                        if ($media['download_limit'] > 0) {
                            //  not for unlimited
                            $pfile->download_limit = $media['download_limit'] * $res['product_quantity'];
                        } else {
                            $pfile->download_limit = $media['download_limit'];
                        }
                    }
                }
                $pfile->expiration_mode = $eProdUExpiryMode;
                if (!$db->{$action}('#__kart_orderItemFiles', $pfile, 'id')) {
                    echo JText::_("COM_QUICK2CART_ERROR_WHILE_ASSIGNING_MEIDA_FILE_TO_ORDER") . $db->stderr();
                    return false;
                }
            }
        }
    }