public function setData($data, $load_data_config = 1)
 {
     $jshopConfig = JSFactory::getConfig();
     $this->data = $data;
     $review = $this->review;
     $review->bind($data);
     if ($load_data_config) {
         $review->user_id = JFactory::getUser()->id;
         $review->time = getJsDate();
         $review->ip = $_SERVER['REMOTE_ADDR'];
         if ($jshopConfig->display_reviews_without_confirm) {
             $review->publish = 1;
         }
     }
 }
示例#2
0
 function getEnableCode($code)
 {
     $jshopConfig = JSFactory::getConfig();
     $db = JFactory::getDBO();
     if (!$jshopConfig->use_rabatt_code) {
         $this->error = _JSHOP_RABATT_NON_SUPPORT;
         return 0;
     }
     $date = getJsDate('now', 'Y-m-d');
     $query = "SELECT * FROM `#__jshopping_coupons` WHERE coupon_code = '" . $db->escape($code) . "' AND coupon_publish = '1'";
     extract(js_add_trigger(get_defined_vars(), "query"));
     $db->setQuery($query);
     $row = $db->loadObject();
     if (!isset($row->coupon_id)) {
         $this->error = _JSHOP_RABATT_NON_CORRECT;
         return 0;
     }
     if ($row->coupon_expire_date < $date && $row->coupon_expire_date != "0000-00-00") {
         $this->error = _JSHOP_RABATT_NON_CORRECT;
         return 0;
     }
     if ($row->coupon_start_date > $date) {
         $this->error = _JSHOP_RABATT_NON_CORRECT;
         return 0;
     }
     if ($row->used) {
         $this->error = _JSHOP_RABATT_USED;
         return 0;
     }
     if ($row->for_user_id) {
         $user = JFactory::getUser();
         if (!$user->id) {
             $this->error = _JSHOP_FOR_USE_COUPON_PLEASE_LOGIN;
             return 0;
         }
         if ($row->for_user_id != $user->id) {
             $this->error = _JSHOP_RABATT_NON_CORRECT;
             return 0;
         }
     }
     $this->load($row->coupon_id);
     return 1;
 }
示例#3
0
function getCalculateDeliveryDay($day, $date = null)
{
    if (!$date) {
        $date = getJsDate();
    }
    $time = intval(strtotime($date) + $day * 86400);
    return date('Y-m-d H:i:s', $time);
}
 function copy()
 {
     $jshopConfig = JSFactory::getConfig();
     $db = JFactory::getDBO();
     $text = array();
     $cid = JRequest::getVar('cid');
     JPluginHelper::importPlugin('jshoppingadmin');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeCopyProduct', array(&$cid));
     $_lang = $this->getModel("languages");
     $languages = $_lang->getAllLanguages(1);
     $_products = $this->getModel("products");
     // Get all data about products
     $tables = array('attr', 'attr2', 'images', 'prices', 'relations', 'to_categories', 'videos', 'files');
     foreach ($cid as $key => $value) {
         $product = JTable::getInstance('product', 'jshop');
         $product->load($value);
         $product->product_id = null;
         foreach ($languages as $lang) {
             $name_alias = 'alias_' . $lang->language;
             if ($product->{$name_alias}) {
                 $product->{$name_alias} = $product->{$name_alias} . date('ymdHis');
             }
         }
         $product->product_date_added = getJsDate();
         $product->date_modify = "";
         $product->average_rating = 0;
         $product->reviews_count = 0;
         $product->hits = 0;
         $product->store();
         $array = array();
         foreach ($tables as $table) {
             $query = "SELECT * FROM `#__jshopping_products_" . $table . "` AS prod_table WHERE prod_table.product_id = '" . $db->escape($value) . "'";
             $db->setQuery($query);
             $array[] = $db->loadAssocList();
         }
         $i = 0;
         foreach ($array as $key2 => $value2) {
             if (count($value2)) {
                 foreach ($value2 as $key3 => $value3) {
                     $db->setQuery($_products->copyProductBuildQuery($tables[$i], $value3, $product->product_id));
                     $db->query();
                 }
             }
             $i++;
         }
         //change order in category
         $query = "select * from #__jshopping_products_to_categories where product_id='" . $product->product_id . "'";
         $db->setQuery($query);
         $list = $db->loadObjectList();
         foreach ($list as $val) {
             $query = "select max(product_ordering) as k from #__jshopping_products_to_categories where category_id='" . $val->category_id . "' ";
             $db->setQuery($query);
             $ordering = $db->loadResult() + 1;
             $query = "update #__jshopping_products_to_categories set product_ordering='" . $ordering . "' where category_id='" . $val->category_id . "' and product_id='" . $product->product_id . "' ";
             $db->setQuery($query);
             $db->query();
         }
         $query = "update #__jshopping_products_attr set ext_attribute_product_id=0 where product_id='" . $product->product_id . "'";
         $db->setQuery($query);
         $list = $db->loadObjectList();
         $text[] = sprintf(_JSHOP_PRODUCT_COPY_TO, $value, $product->product_id) . "<br>";
     }
     $dispatcher->trigger('onAfterCopyProduct', array(&$cid));
     $this->setRedirect("index.php?option=com_jshopping&controller=products", implode("</li><li>", $text));
 }
 function changeStatusOrder($order_id, $status, $sendmessage = 1)
 {
     $mainframe = JFactory::getApplication();
     $lang = JSFactory::getLang();
     $jshopConfig = JSFactory::getConfig();
     $restext = '';
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeChangeOrderStatus', array(&$order_id, &$status, &$sendmessage, &$restext));
     $order = JSFactory::getTable('order', 'jshop');
     $order->load($order_id);
     $order->order_status = $status;
     $order->order_m_date = getJsDate();
     $order->store();
     $vendorinfo = $order->getVendorInfo();
     $order_status = JSFactory::getTable('orderStatus', 'jshop');
     $order_status->load($status);
     if ($jshopConfig->order_stock_removed_only_paid_status) {
         $product_stock_removed = in_array($status, $jshopConfig->payment_status_enable_download_sale_file);
     } else {
         $product_stock_removed = !in_array($status, $jshopConfig->payment_status_return_product_in_stock);
     }
     if ($order->order_created && !$product_stock_removed && $order->product_stock_removed == 1) {
         $order->changeProductQTYinStock("+");
     }
     if ($order->order_created && $product_stock_removed && $order->product_stock_removed == 0) {
         $order->changeProductQTYinStock("-");
     }
     $order_history = JSFactory::getTable('orderHistory', 'jshop');
     $order_history->order_id = $order->order_id;
     $order_history->order_status_id = $status;
     $order_history->status_date_added = getJsDate();
     $order_history->customer_notify = 1;
     $order_history->comments = $restext;
     $order_history->store();
     $name = $lang->get("name");
     $uri = JURI::getInstance();
     $liveurlhost = $uri->toString(array("scheme", 'host', 'port'));
     $order_details_url = $liveurlhost . SEFLink('index.php?option=com_jshopping&controller=user&task=order&order_id=' . $order_id, 1);
     if ($order->user_id == -1) {
         $order_details_url = '';
     }
     $message = $this->getMessageChangeStatusOrder($order, $order_status->{$name}, $vendorinfo, $order_details_url);
     if ($jshopConfig->admin_show_vendors) {
         $listVendors = $order->getVendors();
     } else {
         $listVendors = array();
     }
     $vendors_send_message = $jshopConfig->vendor_order_message_type == 1 || $order->vendor_type == 1 && $jshopConfig->vendor_order_message_type == 2;
     $vendor_send_order = $jshopConfig->vendor_order_message_type == 2 && $order->vendor_type == 0 && $order->vendor_id;
     if ($jshopConfig->vendor_order_message_type == 3) {
         $vendor_send_order = 1;
     }
     $admin_send_order = 1;
     if ($jshopConfig->admin_not_send_email_order_vendor_order && $vendor_send_order && count($listVendors)) {
         $admin_send_order = 0;
     }
     $mailfrom = $mainframe->getCfg('mailfrom');
     $fromname = $mainframe->getCfg('fromname');
     if ($sendmessage) {
         //message client
         $subject = sprintf(_JSHOP_ORDER_STATUS_CHANGE_SUBJECT, $order->order_number);
         $mailer = JFactory::getMailer();
         $mailer->setSender(array($mailfrom, $fromname));
         $mailer->addRecipient($order->email);
         $mailer->setSubject($subject);
         $mailer->setBody($message);
         $mailer->isHTML(false);
         $dispatcher->trigger('onBeforeSendMailChangeOrderStatusClient', array(&$mailer, &$order_id, &$status, &$sendmessage, &$order));
         $send = $mailer->Send();
         //message admin
         if ($admin_send_order) {
             $mailer = JFactory::getMailer();
             $mailer->setSender(array($mailfrom, $fromname));
             $mailer->addRecipient(explode(',', $jshopConfig->contact_email));
             $mailer->setSubject(_JSHOP_ORDER_STATUS_CHANGE_TITLE);
             $mailer->setBody($message);
             $mailer->isHTML(false);
             $dispatcher->trigger('onBeforeSendMailChangeOrderStatusAdmin', array(&$mailer, &$order_id, &$status, &$sendmessage, &$order));
             $send = $mailer->Send();
         }
         //message vendors
         if ($vendors_send_message || $vendor_send_order) {
             foreach ($listVendors as $k => $datavendor) {
                 $mailer = JFactory::getMailer();
                 $mailer->setSender(array($mailfrom, $fromname));
                 $mailer->addRecipient($datavendor->email);
                 $mailer->setSubject(_JSHOP_ORDER_STATUS_CHANGE_TITLE);
                 $mailer->setBody($message);
                 $mailer->isHTML(false);
                 $dispatcher->trigger('onBeforeSendMailChangeOrderStatusVendor', array(&$mailer, &$order_id, &$status, &$sendmessage, &$order));
                 $send = $mailer->Send();
             }
         }
     }
     $dispatcher->trigger('onAfterChangeOrderStatus', array(&$order_id, &$status, &$sendmessage));
     return 1;
 }
示例#6
0
 function reviewsave()
 {
     $mainframe = JFactory::getApplication();
     $jshopConfig = JSFactory::getConfig();
     $db = JFactory::getDBO();
     $user = JFactory::getUser();
     $post = JRequest::get('post');
     $backlink = JRequest::getVar('back_link');
     $product_id = JRequest::getInt('product_id');
     JRequest::checkToken() or jexit('Invalid Token');
     JPluginHelper::importPlugin('jshoppingproducts');
     $dispatcher = JDispatcher::getInstance();
     $review = JTable::getInstance('review', 'jshop');
     if ($review->getAllowReview() <= 0) {
         JError::raiseWarning('', jshopReview::getText());
         $this->setRedirect($backlink);
         return 0;
     }
     $review->bind($post);
     $review->time = getJsDate();
     $review->user_id = $user->id;
     $review->ip = $_SERVER['REMOTE_ADDR'];
     if ($jshopConfig->display_reviews_without_confirm) {
         $review->publish = 1;
     }
     $dispatcher->trigger('onBeforeSaveReview', array(&$review));
     if (!$review->check()) {
         JError::raiseWarning('', _JSHOP_ENTER_CORRECT_INFO_REVIEW);
         $this->setRedirect($backlink);
         return 0;
     }
     $review->store();
     $dispatcher->trigger('onAfterSaveReview', array(&$review));
     $product = JTable::getInstance('product', 'jshop');
     $product->load($product_id);
     $product->loadAverageRating();
     $product->loadReviewsCount();
     $product->store();
     $lang = JSFactory::getLang();
     $name = $lang->get("name");
     $view_name = "product";
     $view_config = array("template_path" => JPATH_COMPONENT . "/templates/" . $jshopConfig->template . "/" . $view_name);
     $view = $this->getView($view_name, 'html', '', $view_config);
     $view->setLayout("commentemail");
     $view->assign('product_name', $product->{$name});
     $view->assign('user_name', $review->user_name);
     $view->assign('user_email', $review->user_email);
     $view->assign('mark', $review->mark);
     $view->assign('review', $review->review);
     $message = $view->loadTemplate();
     $mailfrom = $mainframe->getCfg('mailfrom');
     $fromname = $mainframe->getCfg('fromname');
     $mailer = JFactory::getMailer();
     $mailer->setSender(array($mailfrom, $fromname));
     $mailer->addRecipient(explode(',', $jshopConfig->contact_email));
     $mailer->setSubject(_JSHOP_NEW_COMMENT);
     $mailer->setBody($message);
     $mailer->isHTML(true);
     $send = $mailer->Send();
     if ($jshopConfig->display_reviews_without_confirm) {
         $this->setRedirect($backlink, _JSHOP_YOUR_REVIEW_SAVE_DISPLAY);
     } else {
         $this->setRedirect($backlink, _JSHOP_YOUR_REVIEW_SAVE);
     }
 }
 public function createOrder(&$adv_user, &$post)
 {
     $jshopConfig = JSFactory::getConfig();
     $dispatcher = JDispatcher::getInstance();
     $cart = $this->getCart();
     $orderNumber = $jshopConfig->getNextOrderNumber();
     $jshopConfig->updateNextOrderNumber();
     $pm_method = $this->getPaymentMethod();
     if ($jshopConfig->without_payment) {
         $pm_method->payment_type = 1;
         $paymentSystemVerySimple = 1;
     } else {
         $paymentsysdata = $pm_method->getPaymentSystemData();
         $payment_system = $paymentsysdata->paymentSystem;
         if ($paymentsysdata->paymentSystemVerySimple) {
             $paymentSystemVerySimple = 1;
         }
     }
     $order = JSFactory::getTable('order', 'jshop');
     $arr_property = $order->getListFieldCopyUserToOrder();
     foreach ($adv_user as $key => $value) {
         if (in_array($key, $arr_property)) {
             $order->{$key} = $value;
         }
     }
     $sh_mt_pr = $this->getShippingMethodPrice();
     $order->order_date = $order->order_m_date = getJsDate();
     $order->order_tax = $cart->getTax(1, 1, 1);
     $order->setTaxExt($cart->getTaxExt(1, 1, 1));
     $order->order_subtotal = $cart->getPriceProducts();
     $order->order_shipping = $cart->getShippingPrice();
     $order->order_payment = $cart->getPaymentPrice();
     $order->order_discount = $cart->getDiscountShow();
     $order->shipping_tax = $cart->getShippingPriceTaxPercent();
     $order->setShippingTaxExt($cart->getShippingTaxList());
     $order->payment_tax = $cart->getPaymentTaxPercent();
     $order->setPaymentTaxExt($cart->getPaymentTaxList());
     $order->order_package = $cart->getPackagePrice();
     $order->setPackageTaxExt($cart->getPackageTaxList());
     $order->order_total = $cart->getSum(1, 1, 1);
     $order->currency_exchange = $jshopConfig->currency_value;
     $order->vendor_type = $cart->getVendorType();
     $order->vendor_id = $cart->getVendorId();
     $order->order_status = $jshopConfig->default_status_order;
     $order->shipping_method_id = $cart->getShippingId();
     $order->payment_method_id = $cart->getPaymentId();
     $order->delivery_times_id = $sh_mt_pr->delivery_times_id;
     if ($jshopConfig->delivery_order_depends_delivery_product) {
         $order->delivery_time = $cart->getDelivery();
     }
     if ($jshopConfig->show_delivery_date) {
         $order->delivery_date = $cart->getDeliveryDate();
     }
     $order->coupon_id = $cart->getCouponId();
     $pm_params = $cart->getPaymentParams();
     if (is_array($pm_params) && !$paymentSystemVerySimple) {
         $payment_system->setParams($pm_params);
         $payment_params_names = $payment_system->getDisplayNameParams();
         $order->payment_params = getTextNameArrayValue($payment_params_names, $pm_params);
         $order->setPaymentParamsData($pm_params);
     }
     $sh_params = $cart->getShippingParams();
     if (is_array($sh_params)) {
         $sh_method = $this->getShippingMethod();
         $shippingForm = $sh_method->getShippingForm();
         if ($shippingForm) {
             $shippingForm->setParams($sh_params);
             $shipping_params_names = $shippingForm->getDisplayNameParams();
             $order->shipping_params = getTextNameArrayValue($shipping_params_names, $sh_params);
         }
         $order->setShippingParamsData($sh_params);
     }
     $order->ip_address = $_SERVER['REMOTE_ADDR'];
     $order->order_add_info = $post['order_add_info'];
     $order->currency_code = $jshopConfig->currency_code;
     $order->currency_code_iso = $jshopConfig->currency_code_iso;
     $order->order_number = $order->formatOrderNumber($orderNumber);
     $order->order_hash = md5(time() . $order->order_total . $order->user_id);
     $order->file_hash = md5(time() . $order->order_total . $order->user_id . "hashfile");
     $order->display_price = $jshopConfig->display_price_front_current;
     $order->lang = $jshopConfig->getLang();
     if ($order->client_type) {
         $order->client_type_name = $jshopConfig->user_field_client_type[$order->client_type];
     } else {
         $order->client_type_name = "";
     }
     if ($order->order_total == 0) {
         $pm_method->payment_type = 1;
         $order->order_status = $jshopConfig->payment_status_paid;
     }
     if ($pm_method->payment_type == 1) {
         $order->order_created = 1;
     } else {
         $order->order_created = 0;
     }
     if (!$adv_user->delivery_adress) {
         $order->copyDeliveryData();
     }
     $dispatcher->trigger('onBeforeCreateOrder', array(&$order, &$cart, &$this));
     $order->store();
     return $order;
 }
示例#8
0
 function setInvoiceDate()
 {
     if (datenull($this->invoice_date)) {
         $db = JFactory::getDBO();
         $this->invoice_date = getJsDate();
         $query = "UPDATE `#__jshopping_orders` SET invoice_date='" . $db->escape($this->invoice_date) . "' WHERE order_id = '" . $db->escape($this->order_id) . "'";
         $db->setQuery($query);
         $db->query();
     }
 }
示例#9
0
文件: checkout.php 项目: Tommar/vino2
 function changeStatusOrder($order_id, $status, $sendmessage = 1)
 {
     $mainframe = JFactory::getApplication();
     $lang = JSFactory::getLang();
     $jshopConfig = JSFactory::getConfig();
     $restext = '';
     JPluginHelper::importPlugin('jshoppingorder');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeChangeOrderStatus', array(&$order_id, &$status, &$sendmessage, &$restext));
     $order = JTable::getInstance('order', 'jshop');
     $order->load($order_id);
     $order->order_status = $status;
     $order->store();
     $vendorinfo = $order->getVendorInfo();
     $order_status = JTable::getInstance('orderStatus', 'jshop');
     $order_status->load($status);
     if ($order->order_created && in_array($status, $jshopConfig->payment_status_return_product_in_stock)) {
         $order->changeProductQTYinStock("+");
     }
     $order_history = JTable::getInstance('orderHistory', 'jshop');
     $order_history->order_id = $order->order_id;
     $order_history->order_status_id = $status;
     $order_history->status_date_added = getJsDate();
     $order_history->customer_notify = 1;
     $order_history->comments = $restext;
     $order_history->store();
     if (!$sendmessage) {
         return 1;
     }
     $name = $lang->get("name");
     $uri = JURI::getInstance();
     $liveurlhost = $uri->toString(array("scheme", 'host', 'port'));
     $order_details_url = $liveurlhost . SEFLink('index.php?option=com_jshopping&controller=user&task=order&order_id=' . $order_id, 1);
     if ($order->user_id == -1) {
         $order_details_url = '';
     }
     include_once JPATH_COMPONENT_SITE . "/views/checkout/view.html.php";
     $view_name = "order";
     $view_config = array("template_path" => JPATH_COMPONENT_SITE . "/templates/" . $jshopConfig->template . "/" . $view_name);
     $view = new JshoppingViewCheckout($view_config);
     $view->setLayout("statusorder");
     $view->assign('order', $order);
     $view->assign('order_status', $order_status->{$name});
     $view->assign('vendorinfo', $vendorinfo);
     $view->assign('order_detail', $order_details_url);
     $dispatcher->trigger('onBeforeCreateMailOrderStatusView', array(&$view));
     $message = $view->loadTemplate();
     if ($jshopConfig->admin_show_vendors) {
         $listVendors = $order->getVendors();
     } else {
         $listVendors = array();
     }
     $vendors_send_message = $jshopConfig->vendor_order_message_type == 1 || $order->vendor_type == 1 && $jshopConfig->vendor_order_message_type == 2;
     $vendor_send_order = $jshopConfig->vendor_order_message_type == 2 && $order->vendor_type == 0 && $order->vendor_id;
     if ($jshopConfig->vendor_order_message_type == 3) {
         $vendor_send_order = 1;
     }
     $admin_send_order = 1;
     if ($jshopConfig->admin_not_send_email_order_vendor_order && $vendor_send_order && count($listVendors)) {
         $admin_send_order = 0;
     }
     $mailfrom = $mainframe->getCfg('mailfrom');
     $fromname = $mainframe->getCfg('fromname');
     //message client
     $subject = sprintf(_JSHOP_ORDER_STATUS_CHANGE_SUBJECT, $order->order_number);
     $mailer = JFactory::getMailer();
     $mailer->setSender(array($mailfrom, $fromname));
     $mailer->addRecipient($order->email);
     $mailer->setSubject($subject);
     $mailer->setBody($message);
     $mailer->isHTML(false);
     $send = $mailer->Send();
     //message admin
     if ($admin_send_order) {
         $mailer = JFactory::getMailer();
         $mailer->setSender(array($mailfrom, $fromname));
         $mailer->addRecipient(explode(',', $jshopConfig->contact_email));
         $mailer->setSubject(_JSHOP_ORDER_STATUS_CHANGE_TITLE);
         $mailer->setBody($message);
         $mailer->isHTML(false);
         $send = $mailer->Send();
     }
     //message vendors
     if ($vendors_send_message || $vendor_send_order) {
         foreach ($listVendors as $k => $datavendor) {
             $mailer = JFactory::getMailer();
             $mailer->setSender(array($mailfrom, $fromname));
             $mailer->addRecipient($datavendor->email);
             $mailer->setSubject(_JSHOP_ORDER_STATUS_CHANGE_TITLE);
             $mailer->setBody($message);
             $mailer->isHTML(false);
             $send = $mailer->Send();
         }
     }
     $dispatcher->trigger('onAfterChangeOrderStatus', array(&$order_id, &$status, &$sendmessage));
     return 1;
 }
示例#10
0
 function save()
 {
     $db = JFactory::getDBO();
     $jshopConfig = JSFactory::getConfig();
     $post = JRequest::get('post');
     $client_id = JRequest::getInt('client_id', 0);
     $file_generete_pdf_order = $jshopConfig->file_generete_pdf_order;
     $dispatcher = JDispatcher::getInstance();
     $order_id = intval($post['order_id']);
     $orders = JSFactory::getModel("orders");
     $order = JSFactory::getTable('order', 'jshop');
     $order->load($order_id);
     if (!$order_id) {
         $order->user_id = -1;
         $order->order_date = getJsDate();
         $orderNumber = $jshopConfig->next_order_number;
         $jshopConfig->updateNextOrderNumber();
         $order->order_number = $order->formatOrderNumber($orderNumber);
         $order->order_hash = md5(time() . $order->order_total . $order->user_id);
         $order->file_hash = md5(time() . $order->order_total . $order->user_id . "hashfile");
         $order->ip_address = $_SERVER['REMOTE_ADDR'];
         $order->order_status = $jshopConfig->default_status_order;
     }
     $order->order_m_date = getJsDate();
     $order_created_prev = $order->order_created;
     if ($post['birthday']) {
         $post['birthday'] = getJsDateDB($post['birthday'], $jshopConfig->field_birthday_format);
     }
     if ($post['d_birthday']) {
         $post['d_birthday'] = getJsDateDB($post['d_birthday'], $jshopConfig->field_birthday_format);
     }
     if ($post['invoice_date']) {
         $post['invoice_date'] = getJsDateDB($post['invoice_date'], $jshopConfig->store_date_format);
     }
     if (!$jshopConfig->hide_tax) {
         $post['order_tax'] = 0;
         $order_tax_ext = array();
         if (isset($post['tax_percent'])) {
             foreach ($post['tax_percent'] as $k => $v) {
                 if ($post['tax_percent'][$k] != "" || $post['tax_value'][$k] != "") {
                     $order_tax_ext[number_format($post['tax_percent'][$k], 2)] = $post['tax_value'][$k];
                 }
             }
         }
         $post['order_tax_ext'] = serialize($order_tax_ext);
         $post['order_tax'] = number_format(array_sum($order_tax_ext), 2);
     }
     $currency = JSFactory::getTable('currency', 'jshop');
     $currency->load($post['currency_id']);
     $post['currency_code'] = $currency->currency_code;
     $post['currency_code_iso'] = $currency->currency_code_iso;
     $post['currency_exchange'] = $currency->currency_value;
     $dispatcher->trigger('onBeforeSaveOrder', array(&$post, &$file_generete_pdf_order, &$order));
     $order->bind($post);
     $order->delivery_times_id = $post['order_delivery_times_id'];
     $order->store();
     $order_id = $order->order_id;
     $order_items = $order->getAllItems();
     $orders->saveOrderItem($order_id, $post, $order_items);
     $order->items = null;
     $vendor_id = $order->getVendorIdForItems();
     $order->vendor_id = $vendor_id;
     $order->store();
     JSFactory::loadLanguageFile($order->getLang());
     $lang = JSFactory::getLang($order->getLang());
     $order->items = null;
     if ($order->order_created == 1 && $order_created_prev == 0) {
         $order->updateProductsInStock(1);
         $checkout = JSFactory::getModel('checkout', 'jshop');
         if ($jshopConfig->send_order_email) {
             $checkout->sendOrderEmail($order_id, 1);
         }
     } elseif ($order->order_created == 1 && $jshopConfig->generate_pdf) {
         $order->load($order_id);
         $order->prepareOrderPrint();
         $order->generatePdf($file_generete_pdf_order);
     }
     JSFactory::loadAdminLanguageFile();
     $dispatcher->trigger('onAfterSaveOrder', array(&$order, &$file_generete_pdf_order));
     $this->setRedirect("index.php?option=com_jshopping&controller=orders&client_id=" . $client_id);
 }
示例#11
0
 function saveOrderHistory($notify, $comments)
 {
     $history = JSFactory::getTable('orderHistory', 'jshop');
     $history->order_id = $this->order_id;
     $history->order_status_id = $this->order_status;
     $history->status_date_added = getJsDate();
     $history->customer_notify = $notify;
     $history->comments = $comments;
     JDispatcher::getInstance()->trigger('onBeforeJshopOrderSaveOrderHistory', array(&$history, &$notify, &$comments, &$this));
     return $history->store();
 }
 public function storeStatDownloads()
 {
     $stat_download = $this->stat_download;
     $id = $this->id;
     $stat_download[$id]['download'] = intval($stat_download[$id]['download']) + 1;
     $stat_download[$id]['time'] = getJsDate();
     $this->order->setFilesStatDownloads($stat_download);
     $this->order->store();
 }
示例#13
0
 function productGroupUpdate($id, $post)
 {
     $jshopConfig = JSFactory::getConfig();
     $product = JSFactory::getTable('product', 'jshop');
     $product->load($id);
     if ($post['access'] != -1) {
         $product->set('access', $post['access']);
     }
     if ($post['product_publish'] != -1) {
         $product->set('product_publish', $post['product_publish']);
     }
     if ($post['product_weight'] != "") {
         $product->set('product_weight', $post['product_weight']);
     }
     if ($post['product_quantity'] != "") {
         $product->set('product_quantity', $post['product_quantity']);
         $product->set('unlimited', 0);
     }
     if (isset($post['unlimited']) && $post['unlimited']) {
         $product->set('product_quantity', 1);
         $product->set('unlimited', 1);
     }
     if (isset($post['product_template']) && $post['product_template'] != -1) {
         $product->set('product_template', $post['product_template']);
     }
     if (isset($post['product_tax_id']) && $post['product_tax_id'] != -1) {
         $product->set('product_tax_id', $post['product_tax_id']);
     }
     if (isset($post['product_manufacturer_id']) && $post['product_manufacturer_id'] != -1) {
         $product->set('product_manufacturer_id', $post['product_manufacturer_id']);
     }
     if (isset($post['vendor_id']) && $post['vendor_id'] != -1) {
         $product->set('vendor_id', $post['vendor_id']);
     }
     if (isset($post['delivery_times_id']) && $post['delivery_times_id'] != -1) {
         $product->set('delivery_times_id', $post['delivery_times_id']);
     }
     if (isset($post['label_id']) && $post['label_id'] != -1) {
         $product->set('label_id', $post['label_id']);
     }
     if (isset($post['weight_volume_units']) && $post['weight_volume_units'] != "") {
         $product->set('weight_volume_units', $post['weight_volume_units']);
         $product->set('basic_price_unit_id', $post['basic_price_unit_id']);
     }
     if ($post['product_price'] != "") {
         $oldprice = $product->product_price;
         $price = $this->getModPrice($product->product_price, saveAsPrice($post['product_price']), $post['mod_price']);
         $product->set('product_price', $price);
         if ($post['use_old_val_price'] == 1) {
             $product->set('product_old_price', $oldprice);
         }
     }
     if (isset($post['product_old_price']) && $post['product_old_price'] != "") {
         $price = $this->getModPrice($product->product_old_price, saveAsPrice($post['product_old_price']), $post['mod_old_price']);
         $product->set('product_old_price', $price);
     }
     if (isset($post['product_buy_price']) && $post['product_buy_price'] != "") {
         $product->set('product_buy_price', $post['product_buy_price']);
     }
     if (isset($post['product_price']) && $post['product_price'] != "" || $post['product_old_price'] != "") {
         $product->set('currency_id', $post['currency_id']);
     }
     if (isset($post['category_id']) && $post['category_id']) {
         $this->setCategoryToProduct($id, $post['category_id']);
     }
     if ($jshopConfig->admin_show_product_extra_field) {
         $_productfields = JSFactory::getModel("productFields");
         $list_productfields = $_productfields->getList(1);
         foreach ($list_productfields as $v) {
             $_nef = 'extra_field_' . $v->id;
             switch ($v->type) {
                 case 0:
                     if (isset($post['productfields'][$_nef]) and is_array($post['productfields'][$_nef]) and count($post['productfields'][$_nef]) > 0) {
                         if ($v->multilist == 1 || ($v->multilist == 0 and !in_array(0, $post['productfields'][$_nef]))) {
                             $product->set($_nef, implode(',', $post['productfields'][$_nef]));
                         }
                     }
                     break;
                 case 1:
                     if (isset($post[$_nef]) and $post[$_nef] != '') {
                         $product->set($_nef, $post[$_nef]);
                     }
                     break;
             }
         }
     }
     $this->updatePriceAndQtyDependAttr($id, $post);
     $product->store();
     if ($post['product_price'] != "") {
         $mprice = $product->getMinimumPrice();
         $product->set('min_price', $mprice);
     }
     if (!$product->unlimited) {
         $qty = $product->getFullQty();
         $product->set('product_quantity', $qty);
     }
     $product->date_modify = getJsDate();
     extract(js_add_trigger(get_defined_vars(), "beforeStore"));
     $product->store();
 }
 private function orderStatusStore()
 {
     $this->order->load($this->order_id);
     $prev_status = $this->order->order_status;
     $this->order->order_status = $this->status;
     $this->order->order_m_date = getJsDate();
     $this->order->store();
     return $prev_status;
 }
示例#15
0
 function saveTransactionData($rescode, $status_id, $data)
 {
     $row = JSFactory::getTable("PaymentTrx", "jshop");
     $row->order_id = $this->order_id;
     $row->rescode = $rescode;
     $row->status_id = $status_id;
     $row->transaction = $this->transaction;
     $row->date = getJsDate();
     $row->store();
     if (is_array($data)) {
         foreach ($data as $k => $v) {
             $rowdata = JSFactory::getTable("PaymentTrxData", "jshop");
             $rowdata->id = 0;
             $rowdata->trx_id = $row->id;
             $rowdata->order_id = $this->order_id;
             $rowdata->key = $k;
             $rowdata->value = $v;
             $rowdata->store();
         }
     }
 }
 function save()
 {
     $mainframe = JFactory::getApplication();
     $jshopConfig = JSFactory::getConfig();
     require_once $jshopConfig->path . 'lib/image.lib.php';
     require_once $jshopConfig->path . 'lib/uploadfile.class.php';
     $dispatcher = JDispatcher::getInstance();
     $_alias = JSFactory::getModel("alias");
     $db = JFactory::getDBO();
     $_categories = JSFactory::getModel("categories");
     $category = JSFactory::getTable("category", "jshop");
     if (!$_POST["category_id"]) {
         $_POST['category_add_date'] = getJsDate();
     }
     if (!isset($_POST['category_publish'])) {
         $_POST['category_publish'] = 0;
     }
     $post = JRequest::get('post');
     $_lang = JSFactory::getModel("languages");
     $languages = $_lang->getAllLanguages(1);
     if ($post['category_parent_id'] == $post['category_id']) {
         $post['category_parent_id'] = 0;
     }
     $dispatcher->trigger('onBeforeSaveCategory', array(&$post));
     foreach ($languages as $lang) {
         $post['name_' . $lang->language] = trim($post['name_' . $lang->language]);
         if ($jshopConfig->create_alias_product_category_auto && $post['alias_' . $lang->language] == "") {
             $post['alias_' . $lang->language] = $post['name_' . $lang->language];
         }
         $post['alias_' . $lang->language] = JApplication::stringURLSafe($post['alias_' . $lang->language]);
         if ($post['alias_' . $lang->language] != "" && !$_alias->checkExistAlias1Group($post['alias_' . $lang->language], $lang->language, $post['category_id'], 0)) {
             $post['alias_' . $lang->language] = "";
             JError::raiseWarning("", _JSHOP_ERROR_ALIAS_ALREADY_EXIST);
         }
         $post['description_' . $lang->language] = JRequest::getVar('description' . $lang->id, '', 'post', "string", 2);
         $post['short_description_' . $lang->language] = JRequest::getVar('short_description_' . $lang->language, '', 'post', "string", 2);
     }
     if (!$category->bind($post)) {
         JError::raiseWarning("", _JSHOP_ERROR_BIND);
         $this->setRedirect("index.php?option=com_jshopping&controller=categories");
         return 0;
     }
     $edit = $category->category_id;
     $upload_image = $_categories->uploadImage($post);
     if ($upload_image != '') {
         $category->category_image = $upload_image;
     }
     $this->_reorderCategory($category);
     if (!$category->store()) {
         JError::raiseWarning("", _JSHOP_ERROR_SAVE_DATABASE);
         $this->setRedirect("index.php?option=com_jshopping&controller=categories");
         return 0;
     }
     $dispatcher->trigger('onAfterSaveCategory', array(&$category));
     $success = $edit ? _JSHOP_CATEGORY_SUCC_UPDATE : _JSHOP_CATEGORY_SUCC_ADDED;
     if ($this->getTask() == 'apply') {
         $this->setRedirect('index.php?option=com_jshopping&controller=categories&task=edit&category_id=' . $category->category_id, $success);
     } else {
         $this->setRedirect('index.php?option=com_jshopping&controller=categories', $success);
     }
 }
示例#17
0
 function save()
 {
     $db = JFactory::getDBO();
     $jshopConfig = JSFactory::getConfig();
     $post = JRequest::get('post');
     $client_id = JRequest::getInt('client_id', 0);
     $file_generete_pdf_order = $jshopConfig->file_generete_pdf_order;
     JPluginHelper::importPlugin('jshoppingadmin');
     $dispatcher = JDispatcher::getInstance();
     $order_id = intval($post['order_id']);
     $orders = $this->getModel("orders");
     $order = JTable::getInstance('order', 'jshop');
     $order->load($order_id);
     if (!$order_id) {
         $order->user_id = -1;
         $order->order_date = getJsDate();
         $orderNumber = $jshopConfig->next_order_number;
         $jshopConfig->updateNextOrderNumber();
         $order->order_number = $order->formatOrderNumber($orderNumber);
         $order->order_hash = md5(time() . $order->order_total . $order->user_id);
         $order->file_hash = md5(time() . $order->order_total . $order->user_id . "hashfile");
         $order->ip_address = $_SERVER['REMOTE_ADDR'];
         $order->order_status = $jshopConfig->default_status_order;
     }
     $order->order_m_date = getJsDate();
     $order_created_prev = $order->order_created;
     if ($post['birthday']) {
         $post['birthday'] = getJsDateDB($post['birthday'], $jshopConfig->field_birthday_format);
     }
     if ($post['d_birthday']) {
         $post['d_birthday'] = getJsDateDB($post['d_birthday'], $jshopConfig->field_birthday_format);
     }
     if ($post['invoice_date']) {
         $post['invoice_date'] = getJsDateDB($post['invoice_date'], $jshopConfig->store_date_format);
     }
     if (!$jshopConfig->hide_tax) {
         $post['order_tax'] = 0;
         $order_tax_ext = array();
         if (isset($post['tax_percent'])) {
             foreach ($post['tax_percent'] as $k => $v) {
                 if ($post['tax_percent'][$k] != "" || $post['tax_value'][$k] != "") {
                     $order_tax_ext[number_format($post['tax_percent'][$k], 2)] = $post['tax_value'][$k];
                 }
             }
         }
         $post['order_tax_ext'] = serialize($order_tax_ext);
         $post['order_tax'] = number_format(array_sum($order_tax_ext), 2);
     }
     $currency = JTable::getInstance('currency', 'jshop');
     $currency->load($post['currency_id']);
     $post['currency_code'] = $currency->currency_code;
     $post['currency_code_iso'] = $currency->currency_code_iso;
     $post['currency_exchange'] = $currency->currency_value;
     $dispatcher->trigger('onBeforeSaveOrder', array(&$post, &$file_generete_pdf_order));
     $order->bind($post);
     $order->store();
     $order_id = $order->order_id;
     $order_items = $order->getAllItems();
     $orders->saveOrderItem($order_id, $post, $order_items);
     JSFactory::loadLanguageFile($order->getLang());
     if ($jshopConfig->order_send_pdf_client || $jshopConfig->order_send_pdf_admin) {
         $order->load($order_id);
         $order->items = null;
         $order->products = $order->getAllItems();
         JSFactory::loadLanguageFile($order->getLang());
         $lang = JSFactory::getLang($order->getLang());
         $order->order_date = strftime($jshopConfig->store_date_format, strtotime($order->order_date));
         $order->order_tax_list = $order->getTaxExt();
         $country = JTable::getInstance('country', 'jshop');
         $country->load($order->country);
         $field_country_name = $lang->get("name");
         $order->country = $country->{$field_country_name};
         $d_country = JTable::getInstance('country', 'jshop');
         $d_country->load($order->d_country);
         $field_country_name = $lang->get("name");
         $order->d_country = $d_country->{$field_country_name};
         $shippingMethod = JTable::getInstance('shippingMethod', 'jshop');
         $shippingMethod->load($order->shipping_method_id);
         $pm_method = JTable::getInstance('paymentMethod', 'jshop');
         $pm_method->load($order->payment_method_id);
         $name = $lang->get("name");
         $description = $lang->get("description");
         $order->shipping_information = $shippingMethod->{$name};
         $order->payment_name = $pm_method->{$name};
         $order->payment_information = $order->payment_params;
         if ($jshopConfig->order_send_pdf_client || $jshopConfig->order_send_pdf_admin) {
             include_once $file_generete_pdf_order;
             $order->pdf_file = generatePdf($order);
             $order->insertPDF();
         }
     }
     if ($order->order_created == 1 && $order_created_prev == 0) {
         $order->items = null;
         JSFactory::loadLanguageFile($order->getLang());
         JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_jshopping/models');
         $checkout = JModelLegacy::getInstance('checkout', 'jshop');
         if ($jshopConfig->send_order_email) {
             $checkout->sendOrderEmail($order_id, 1);
         }
     }
     JSFactory::loadAdminLanguageFile();
     $dispatcher->trigger('onAfterSaveOrder', array(&$order, &$file_generete_pdf_order));
     $this->setRedirect("index.php?option=com_jshopping&controller=orders&client_id=" . $client_id);
 }
示例#18
0
 function save()
 {
     $review = JSFactory::getTable('review', 'jshop');
     $post = JRequest::get('post');
     if (intval($post['review_id']) == 0) {
         $post['time'] = getJsDate();
     }
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onBeforeSaveReview', array(&$post));
     if (!$post['product_id']) {
         JError::raiseWarning("", _JSHOP_ERROR_DATA);
         $this->setRedirect("index.php?option=com_jshopping&controller=reviews");
         return 0;
     }
     if (!$review->bind($post)) {
         JError::raiseWarning("", _JSHOP_ERROR_BIND);
         $this->setRedirect("index.php?option=com_jshopping&controller=reviews");
         return 0;
     }
     if (!$review->store()) {
         JError::raiseWarning("", _JSHOP_ERROR_SAVE_DATABASE);
         $this->setRedirect("index.php?option=com_jshopping&controller=reviews&task=edit&cid[]=" . $review->review_id);
         return 0;
     }
     $product = JSFactory::getTable('product', 'jshop');
     $product->load($review->product_id);
     $product->loadAverageRating();
     $product->loadReviewsCount();
     $product->store();
     $dispatcher->trigger('onAfterSaveReview', array(&$review));
     if ($this->getTask() == 'apply') {
         $this->setRedirect("index.php?option=com_jshopping&controller=reviews&task=edit&cid[]=" . $review->review_id);
     } else {
         $this->setRedirect("index.php?option=com_jshopping&controller=reviews");
     }
 }
示例#19
0
 function step5save()
 {
     $session = JFactory::getSession();
     $jshopConfig = JSFactory::getConfig();
     $db = JFactory::getDBO();
     $checkout = JModelLegacy::getInstance('checkout', 'jshop');
     $mainframe = JFactory::getApplication();
     $checkout->checkStep(5);
     $checkagb = JRequest::getVar('agb');
     JPluginHelper::importPlugin('jshoppingorder');
     $dispatcher = JDispatcher::getInstance();
     $dispatcher->trigger('onLoadStep5save', array(&$checkagb));
     $lang = JSFactory::getLang();
     $user = JFactory::getUser();
     if ($user->id) {
         $adv_user = JSFactory::getUserShop();
     } else {
         $adv_user = JSFactory::getUserShopGuest();
     }
     $cart = JModelLegacy::getInstance('cart', 'jshop');
     $cart->load();
     $cart->setDisplayItem(1, 1);
     $cart->setDisplayFreeAttributes();
     if ($jshopConfig->check_php_agb && $checkagb != 'on') {
         JError::raiseWarning("", _JSHOP_ERROR_AGB);
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step5', 0, 1, $jshopConfig->use_ssl));
         return 0;
     }
     if (!$cart->checkListProductsQtyInStore()) {
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=cart&task=view', 1, 1));
         return 0;
     }
     if (!$cart->checkCoupon()) {
         $cart->setRabatt(0, 0, 0);
         JError::raiseWarning("", _JSHOP_RABATT_NON_CORRECT);
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=cart&task=view', 1, 1));
         return 0;
     }
     $orderNumber = $jshopConfig->next_order_number;
     $jshopConfig->updateNextOrderNumber();
     $payment_method_id = $cart->getPaymentId();
     $pm_method = JTable::getInstance('paymentMethod', 'jshop');
     $pm_method->load($payment_method_id);
     $payment_method = $pm_method->payment_class;
     if ($jshopConfig->without_payment) {
         $pm_method->payment_type = 1;
         $paymentSystemVerySimple = 1;
     } else {
         $paymentsysdata = $pm_method->getPaymentSystemData();
         $payment_system = $paymentsysdata->paymentSystem;
         if ($paymentsysdata->paymentSystemVerySimple) {
             $paymentSystemVerySimple = 1;
         }
         if ($paymentsysdata->paymentSystemError) {
             $cart->setPaymentParams("");
             JError::raiseWarning("", _JSHOP_ERROR_PAYMENT);
             $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=step3', 0, 1, $jshopConfig->use_ssl));
             return 0;
         }
     }
     $order = JTable::getInstance('order', 'jshop');
     $arr_property = $order->getListFieldCopyUserToOrder();
     foreach ($adv_user as $key => $value) {
         if (in_array($key, $arr_property)) {
             $order->{$key} = $value;
         }
     }
     $sh_mt_pr = JTable::getInstance('shippingMethodPrice', 'jshop');
     $sh_mt_pr->load($cart->getShippingPrId());
     $order->order_date = $order->order_m_date = getJsDate();
     $order->order_tax = $cart->getTax(1, 1, 1);
     $order->setTaxExt($cart->getTaxExt(1, 1, 1));
     $order->order_subtotal = $cart->getPriceProducts();
     $order->order_shipping = $cart->getShippingPrice();
     $order->order_payment = $cart->getPaymentPrice();
     $order->order_discount = $cart->getDiscountShow();
     $order->shipping_tax = $cart->getShippingPriceTaxPercent();
     $order->setShippingTaxExt($cart->getShippingTaxList());
     $order->payment_tax = $cart->getPaymentTaxPercent();
     $order->setPaymentTaxExt($cart->getPaymentTaxList());
     $order->order_package = $cart->getPackagePrice();
     $order->setPackageTaxExt($cart->getPackageTaxList());
     $order->order_total = $cart->getSum(1, 1, 1);
     $order->currency_exchange = $jshopConfig->currency_value;
     $order->vendor_type = $cart->getVendorType();
     $order->vendor_id = $cart->getVendorId();
     $order->order_status = $jshopConfig->default_status_order;
     $order->shipping_method_id = $cart->getShippingId();
     $order->payment_method_id = $cart->getPaymentId();
     $order->delivery_times_id = $sh_mt_pr->delivery_times_id;
     if ($jshopConfig->delivery_order_depends_delivery_product) {
         $order->delivery_time = $cart->getDelivery();
     }
     if ($jshopConfig->show_delivery_date) {
         $order->delivery_date = $cart->getDeliveryDate();
     }
     $order->coupon_id = $cart->getCouponId();
     $pm_params = $cart->getPaymentParams();
     if (is_array($pm_params) && !$paymentSystemVerySimple) {
         $payment_system->setParams($pm_params);
         $payment_params_names = $payment_system->getDisplayNameParams();
         $order->payment_params = getTextNameArrayValue($payment_params_names, $pm_params);
         $order->setPaymentParamsData($pm_params);
     }
     $name = $lang->get("name");
     $order->ip_address = $_SERVER['REMOTE_ADDR'];
     $order->order_add_info = JRequest::getVar('order_add_info', '');
     $order->currency_code = $jshopConfig->currency_code;
     $order->currency_code_iso = $jshopConfig->currency_code_iso;
     $order->order_number = $order->formatOrderNumber($orderNumber);
     $order->order_hash = md5(time() . $order->order_total . $order->user_id);
     $order->file_hash = md5(time() . $order->order_total . $order->user_id . "hashfile");
     $order->display_price = $jshopConfig->display_price_front_current;
     $order->lang = $jshopConfig->cur_lang;
     if ($order->client_type) {
         $order->client_type_name = $jshopConfig->user_field_client_type[$order->client_type];
     } else {
         $order->client_type_name = "";
     }
     if ($order->order_total == 0) {
         $pm_method->payment_type = 1;
         $jshopConfig->without_payment = 1;
         $order->order_status = $jshopConfig->payment_status_paid;
     }
     if ($pm_method->payment_type == 1) {
         $order->order_created = 1;
     } else {
         $order->order_created = 0;
     }
     if (!$adv_user->delivery_adress) {
         $order->copyDeliveryData();
     }
     $dispatcher->trigger('onBeforeCreateOrder', array(&$order));
     $order->store();
     $dispatcher->trigger('onAfterCreateOrder', array(&$order));
     if ($cart->getCouponId()) {
         $coupon = JTable::getInstance('coupon', 'jshop');
         $coupon->load($cart->getCouponId());
         if ($coupon->finished_after_used) {
             $free_discount = $cart->getFreeDiscount();
             if ($free_discount > 0) {
                 $coupon->coupon_value = $free_discount / $jshopConfig->currency_value;
             } else {
                 $coupon->used = $adv_user->user_id;
             }
             $coupon->store();
         }
     }
     $order->saveOrderItem($cart->products);
     $session->set("jshop_end_order_id", $order->order_id);
     $order_history = JTable::getInstance('orderHistory', 'jshop');
     $order_history->order_id = $order->order_id;
     $order_history->order_status_id = $order->order_status;
     $order_history->status_date_added = $order->order_date;
     $order_history->customer_notify = 1;
     $order_history->store();
     if ($pm_method->payment_type == 1) {
         $order->changeProductQTYinStock("-");
         if ($jshopConfig->send_order_email) {
             $checkout->sendOrderEmail($order->order_id);
         }
     }
     $dispatcher->trigger('onEndCheckoutStep5', array(&$order));
     $session->set("jshop_send_end_form", 0);
     if ($jshopConfig->without_payment) {
         $checkout->setMaxStep(10);
         $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=finish', 0, 1, $jshopConfig->use_ssl));
         return 0;
     }
     $pmconfigs = $pm_method->getConfigs();
     $task = "step6";
     if (isset($pmconfigs['windowtype']) && $pmconfigs['windowtype'] == 2) {
         $task = "step6iframe";
         $session->set("jsps_iframe_width", $pmconfigs['iframe_width']);
         $session->set("jsps_iframe_height", $pmconfigs['iframe_height']);
     }
     $checkout->setMaxStep(6);
     $this->setRedirect(SEFLink('index.php?option=com_jshopping&controller=checkout&task=' . $task, 0, 1, $jshopConfig->use_ssl));
 }
 function save()
 {
     $mainframe = JFactory::getApplication();
     $jshopConfig = JSFactory::getConfig();
     require_once $jshopConfig->path . 'lib/image.lib.php';
     require_once $jshopConfig->path . 'lib/uploadfile.class.php';
     JPluginHelper::importPlugin('jshoppingadmin');
     $dispatcher = JDispatcher::getInstance();
     $_alias = $this->getModel("alias");
     $db = JFactory::getDBO();
     $category = JTable::getInstance("category", "jshop");
     if (!$_POST["category_id"]) {
         $_POST['category_add_date'] = getJsDate();
     }
     if (!isset($_POST['category_publish'])) {
         $_POST['category_publish'] = 0;
     }
     $post = JRequest::get('post');
     $_lang = $this->getModel("languages");
     $languages = $_lang->getAllLanguages(1);
     if ($post['category_parent_id'] == $post['category_id']) {
         $post['category_parent_id'] = 0;
     }
     $dispatcher->trigger('onBeforeSaveCategory', array(&$post));
     foreach ($languages as $lang) {
         $post['name_' . $lang->language] = trim($post['name_' . $lang->language]);
         if ($jshopConfig->create_alias_product_category_auto && $post['alias_' . $lang->language] == "") {
             $post['alias_' . $lang->language] = $post['name_' . $lang->language];
         }
         $post['alias_' . $lang->language] = JApplication::stringURLSafe($post['alias_' . $lang->language]);
         if ($post['alias_' . $lang->language] != "" && !$_alias->checkExistAlias1Group($post['alias_' . $lang->language], $lang->language, $post['category_id'], 0)) {
             $post['alias_' . $lang->language] = "";
             JError::raiseWarning("", _JSHOP_ERROR_ALIAS_ALREADY_EXIST);
         }
         $post['description_' . $lang->language] = JRequest::getVar('description' . $lang->id, '', 'post', "string", 2);
         $post['short_description_' . $lang->language] = JRequest::getVar('short_description_' . $lang->language, '', 'post', "string", 2);
     }
     if (!$category->bind($post)) {
         JError::raiseWarning("", _JSHOP_ERROR_BIND);
         $this->setRedirect("index.php?option=com_jshopping&controller=categories");
         return 0;
     }
     $edit = $category->category_id;
     $upload = new UploadFile($_FILES['category_image']);
     $upload->setAllowFile(array('jpeg', 'jpg', 'gif', 'png'));
     $upload->setDir($jshopConfig->image_category_path);
     $upload->setFileNameMd5(0);
     $upload->setFilterName(1);
     if ($upload->upload()) {
         $name = $upload->getName();
         if ($post['old_image'] && $name != $post['old_image']) {
             @unlink($jshopConfig->image_category_path . "/" . $post['old_image']);
         }
         @chmod($jshopConfig->image_category_path . "/" . $name, 0777);
         if ($post['size_im_category'] < 3) {
             if ($post['size_im_category'] == 1) {
                 $category_width_image = $jshopConfig->image_category_width;
                 $category_height_image = $jshopConfig->image_category_height;
             } else {
                 $category_width_image = JRequest::getInt('category_width_image');
                 $category_height_image = JRequest::getInt('category_height_image');
             }
             $path_full = $jshopConfig->image_category_path . "/" . $name;
             $path_thumb = $jshopConfig->image_category_path . "/" . $name;
             if (!ImageLib::resizeImageMagic($path_full, $category_width_image, $category_height_image, $jshopConfig->image_cut, $jshopConfig->image_fill, $path_thumb, $jshopConfig->image_quality, $jshopConfig->image_fill_color)) {
                 JError::raiseWarning("", _JSHOP_ERROR_CREATE_THUMBAIL);
                 saveToLog("error.log", "SaveCategory - Error create thumbail");
             }
             @chmod($jshopConfig->image_category_path . "/" . $name, 0777);
             unset($img);
         }
         $category->category_image = $name;
     } else {
         if ($upload->getError() != 4) {
             JError::raiseWarning("", _JSHOP_ERROR_UPLOADING_IMAGE);
             saveToLog("error.log", "SaveCategory - Error upload image. code: " . $upload->getError());
         }
     }
     $this->_reorderCategory($category);
     if (!$category->store()) {
         JError::raiseWarning("", _JSHOP_ERROR_SAVE_DATABASE);
         $this->setRedirect("index.php?option=com_jshopping&controller=categories");
         return 0;
     }
     $dispatcher->trigger('onAfterSaveCategory', array(&$category));
     $success = $edit ? _JSHOP_CATEGORY_SUCC_UPDATE : _JSHOP_CATEGORY_SUCC_ADDED;
     if ($this->getTask() == 'apply') {
         $this->setRedirect('index.php?option=com_jshopping&controller=categories&task=edit&category_id=' . $category->category_id, $success);
     } else {
         $this->setRedirect('index.php?option=com_jshopping&controller=categories', $success);
     }
 }