예제 #1
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $this->params = Djcatalog2Helper::getParams();
     $this->state = $this->get('State');
     $this->item = $this->get('Item');
     if (empty($this->item)) {
         return JError::raiseError(404, JText::_('COM_DJCATALOG2_ORDER_NOT_FOUND'));
         return;
     }
     if ($user->guest) {
         $return_url = base64_encode(DJCatalogHelperRoute::getOrderRoute($this->item->id));
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return true;
     }
     if ($user->id != $this->item->user_id) {
         return JError::raiseWarning(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $this->items = $this->item->items;
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->_prepareDocument();
     parent::display($tpl);
 }
예제 #2
0
파일: cart.php 프로젝트: ForAEdesWeb/AEW4
 public function confirm()
 {
     JSession::checkToken() or jexit(JText::_('JINVALID_TOKEN'));
     if ($this->allowCheckout() == false) {
         return false;
     }
     $app = JFactory::getApplication();
     $date = JFactory::getDate();
     $model = $this->getModel('Order');
     $db = JFactory::getDbo();
     $post_data = $this->input->post->get('jform', array(), 'array');
     $basket = Djcatalog2HelperCart::getInstance();
     $items = $basket->getItems();
     $user = Djcatalog2Helper::getUser();
     $user_data = Djcatalog2Helper::getUserProfile($user->id);
     $user_data = JArrayHelper::fromObject($user_data);
     $form = $model->getForm(array(), false);
     if (!$form) {
         $app->enqueueMessage($model->getError(), 'error');
         return false;
     }
     $form_data = array();
     $fields = $form->getFieldset('basicprofile');
     foreach ($fields as $field) {
         if (isset($user_data[$field->fieldname])) {
             $form_data[$field->fieldname] = $user_data[$field->fieldname];
         }
         if (isset($post_data['djcatalog2profile'][$field->fieldname])) {
             $form_data[$field->fieldname] = $post_data['djcatalog2profile'][$field->fieldname];
         }
         if (!isset($form_data[$field->fieldname])) {
             $form_data[$field->fieldname] = null;
         }
     }
     $data = array('djcatalog2profile' => $form_data);
     if (empty($data) || empty($data['djcatalog2profile'])) {
         $data = array('djcatalog2profile' => $user_data);
     }
     // Test whether the data is valid.
     $validData = $model->validate($form, $data);
     // Check for validation errors.
     if ($validData === false) {
         // Get the validation messages.
         $errors = $model->getErrors();
         // Push up to three validation messages out to the user.
         for ($i = 0, $n = count($errors); $i < $n && $i < 3; $i++) {
             if ($errors[$i] instanceof Exception) {
                 $app->enqueueMessage($errors[$i]->getMessage(), 'warning');
             } else {
                 $app->enqueueMessage($errors[$i], 'warning');
             }
         }
         // Save the data in the session.
         $app->setUserState('com_djcatalog2.order.data', $data);
         // Redirect back to the quote screen.
         $this->setRedirect(JRoute::_(DJCatalogHelperRoute::getQueryRoute(), false));
         return false;
     }
     $totals = $basket->getTotal();
     $tax_rules = $user_data->tax_rules;
     $app->setUserState('com_djcatalog2.order.data', $validData);
     $orderData = $validData['djcatalog2profile'];
     $order = array();
     $order['id'] = null;
     $order['user_id'] = $user->id;
     if (($user->guest || empty($user->email)) && !empty($orderData['email'])) {
         $quote['email'] = $orderData['email'];
     } else {
         $quote['email'] = $user->email;
     }
     $order['order_number'] = null;
     $order['invoice_number'] = null;
     $order['created_date'] = $date->toSql(true);
     $order['total'] = $totals['net'];
     $order['tax'] = $totals['tax'];
     $order['grand_total'] = $totals['gross'];
     $order['payment_method'] = '';
     $order['currency'] = '';
     $order['status'] = $user->guest ? 'N' : 'A';
     $quote['firstname'] = $orderData['firstname'];
     $quote['lastname'] = $orderData['lastname'];
     $quote['company'] = $orderData['company'];
     $quote['address'] = $orderData['address'];
     $quote['city'] = $orderData['city'];
     $quote['postcode'] = $orderData['postcode'];
     $quote['country_id'] = $orderData['country_id'];
     if ((empty($orderData['country_name']) || $orderData['country_name'] == '*') && !empty($orderData['country_id'])) {
         $db->setQuery('select country_name from #__djc2_countries where id=' . (int) $orderData['country_id']);
         $country = $db->loadResult();
         $quote['country'] = $country ? $country : '';
     } else {
         $quote['country'] = $orderData['country_name'];
     }
     $quote['vat_id'] = $orderData['vat_id'];
     $quote['customer_note'] = $orderData['customer_note'];
     $order_items = array();
     foreach ($items as $item) {
         $record = array();
         $record['id'] = 0;
         $record['item_id'] = $item->id;
         $record['item_name'] = $item->name;
         $record['quantity'] = $item->_quantity;
         $record['cost'] = $item->_prices['total']['net'];
         $record['base_cost'] = $item->_prices['base']['net'];
         $record['tax'] = $item->_prices['total']['tax'];
         $record['total'] = $item->_prices['total']['gross'];
         $record['tax_rate'] = isset($tax_rules[$item->tax_rate_id]) && $item->tax_rate_id > 0 ? round($tax_rules[$item->tax_rate_id] / 100, 4) : 0;
         $order_items[] = $record;
     }
     $order['order_items'] = array();
     foreach ($order_items as $pos => $rec) {
         foreach ($rec as $key => $value) {
             if (!isset($order['order_items'][$key])) {
                 $order['order_items'][$key] = array();
             }
             $order['order_items'][$key][] = $value;
         }
     }
     if ($model->save($order) == false) {
         $msg = $model->getError();
         $app->redirect(JRoute::_(DJCatalogHelperRoute::getCheckoutRoute(), false), JText::_('COM_DJCATALOG2_ORDER_STORE_ERRROR') . ' ' . $msg);
         return false;
     }
     $basket->clear();
     $order['id'] = $model->getState('order.id');
     $order['order_number'] = $model->getState('order.number');
     $order['items'] = $order_items;
     if ($this->_sendEmail($order, 'order') == false) {
         $app->enqueueMessage(JText::_('COM_DJCATLAOG2_ORDER_NOTIFICATION_ERROR'), 'error');
     }
     $app->redirect(JRoute::_(DJCatalogHelperRoute::getOrderRoute($order['id']), false), JText::_('COM_DJCATALOG2_ORDER_SENT'));
     return true;
 }
예제 #3
0
파일: order.php 프로젝트: ForAEdesWeb/AEW3
    ?>
			</td>
			<td align="center"><?php 
    echo DJCatalog2HtmlHelper::formatPrice($item['tax'], $params, false);
    ?>
			</td>
			<td align="center"><?php 
    echo DJCatalog2HtmlHelper::formatPrice($item['total'], $params, false);
    ?>
			</td>
		</tr>
		<?php 
}
?>
	</tbody>
</table>
<br />
<p>
<?php 
echo JText::_('COM_DJCATALOG2_EMAIL_ORDER_CLIENT_FOOTER');
?>
<a href="<?php 
echo JRoute::_(DJCatalogHelperRoute::getOrderRoute($data['id']), true, -1);
?>
">
<?php 
echo JText::_('COM_DJCATALOG2_EMAIL_ORDER_CLIENT_LINK');
?>
</a>
</p>
</div>
예제 #4
0
echo JText::_('COM_DJCATALOG2_ORDER_STATUS');
?>
			</th>
			<th class="djc_thead djc_thead_order_total">
				<?php 
echo JText::_('COM_DJCATALOG2_ORDER_FINAL_PRICE');
?>
			</th>
		</tr>
	</thead>
	<tbody>
		<?php 
$k = 1;
foreach ($this->items as $item) {
    $k = 1 - $k;
    $order_url = JRoute::_(DJCatalogHelperRoute::getOrderRoute($item->id));
    ?>
			<tr class="cat-list-row<?php 
    echo $k;
    ?>
 djc_row<?php 
    echo $k;
    ?>
">
				<td class="djc_td_order_no">
					<a href="<?php 
    echo $order_url;
    ?>
"><?php 
    echo str_pad($item->order_number, 5, '0', STR_PAD_LEFT);
    ?>
예제 #5
0
 *
 * You should have received a copy of the GNU General Public License
 * along with DJ-Catalog2. If not, see <http://www.gnu.org/licenses/>.
 *
 */
defined('_JEXEC') or die('Restricted access');
$params = JComponentHelper::getParams('com_djcatalog2');
require_once JPATH_ROOT . DS . 'components' . DS . 'com_djcatalog2' . DS . 'helpers' . DS . 'route.php';
?>

<div style="width: 800px; margin: 0 auto">
<p>
<?php 
echo JText::sprintf('COM_DJCATALOG2_EMAIL_ORDER_STATUS_CLIENT_HEADER', $data['firstname'], JText::_('COM_DJCATALOG2_ORDER_STATUS_' . $data['status']), str_pad($data['order_number'], 5, '0', STR_PAD_LEFT));
?>
</p>

<p>
<?php 
echo JText::_('COM_DJCATALOG2_EMAIL_ORDER_CLIENT_FOOTER');
?>
<a href="<?php 
echo JUri::root(false) . DJCatalogHelperRoute::getOrderRoute($data['id']);
?>
">
<?php 
echo JText::_('COM_DJCATALOG2_EMAIL_ORDER_CLIENT_LINK');
?>
</a>
</p>
</div>